From d93e1e39a93a5c9436b466088567f01189d7d643 Mon Sep 17 00:00:00 2001 From: Gabriele Cosmo Date: Thu, 9 Jun 2016 12:11:21 +0200 Subject: [PATCH] Import Geant4 7.1.0 source tree --- Configure | 136 +- ReleaseNotes/Patch4.7.0-1.txt | 129 + ReleaseNotes/ReleaseNotes4.7.1.html | 967 ++ config/G4VIS_BUILD.gmk | 15 +- config/History | 38 +- config/architecture.gmk | 24 +- config/binmake.gmk | 14 +- config/common.gmk | 6 +- config/globlib.gmk | 6 +- config/scripts/env.csh.SH | 19 +- config/scripts/env.sh.SH | 23 +- config/scripts/install.sh.SH | 32 +- config/scripts/move.sh.SH | 23 +- config/sys/Darwin-g++.gmk | 18 +- config/sys/SUN-CC.gmk | 5 +- .../MOMO/MomoHome/include/MomoEventAction.hh | 2 +- .../MOMO/MomoHome/include/MomoRunAction.hh | 2 +- .../MOMO/MomoHome/src/MomoEventAction.cc | 2 +- .../MOMO/MomoHome/src/MomoRunAction.cc | 2 +- environments/MOMO/docs/MOMOHelp.html | 0 examples/History | 44 +- examples/README | 25 +- examples/advanced/Rich/History | 9 +- examples/advanced/Rich/RichTbSim.cc | 10 +- .../Rich/include/RichTbEventAction.hh | 8 +- .../Rich/include/RichTbGeometryParameters.hh | 2 +- examples/advanced/Rich/include/RichTbHit.hh | 4 +- .../advanced/Rich/include/RichTbRunConfig.hh | 2 +- .../Rich/src/PadHpdPhotoElectricEffect.cc | 2 +- .../advanced/Rich/src/RichTbEventAction.cc | 3 +- examples/advanced/Rich/src/RichTbHit.cc | 6 +- examples/advanced/Rich/src/RichTbMaterial.cc | 2 +- .../advanced/Rich/src/RichTbVisManager.cc | 142 - examples/advanced/Tiara/GNUmakefile | 2 +- examples/advanced/Tiara/History | 10 +- examples/advanced/Tiara/README | 10 +- examples/advanced/Tiara/envCommon.csh | 31 +- examples/advanced/Tiara/run/runSim.py | 6 +- .../advanced/Tiara/run/runSimNoAnalysis.py | 6 +- examples/advanced/Tiara/run/runVisMode.py | 6 +- examples/advanced/Tiara/run/vis.mac | 2 +- .../Tiara/source/CLHEPWrapper/include/CLHEP.i | 2 +- .../Tiara/source/G4KernelWrapper/G4String.i | 2 +- .../source/G4KernelWrapper/include/G4Kernel.i | 2 +- .../Tiara/source/TiaraWrapper/include/Tiara.i | 2 +- .../Tiara/source/py_modules/dataAcess.py | 2 +- .../Tiara/source/py_modules/detector.py | 2 +- .../Tiara/source/py_modules/dpsManip.py | 2 +- .../Tiara/source/py_modules/extractShelve.py | 2 +- .../advanced/Tiara/source/py_modules/myPI.py | 2 +- .../Tiara/source/py_modules/myUtils.py | 2 +- .../Tiara/source/py_modules/parallelHall.py | 2 +- .../Tiara/source/py_modules/posLog.py | 2 +- .../Tiara/source/py_modules/runSequence.py | 2 +- .../Tiara/source/py_modules/slabGeometry.py | 2 +- .../Tiara/source/py_modules/tallyData.py | 2 +- .../source/py_modules/tiaraApplication.py | 2 +- .../Tiara/source/py_modules/tiaraDetectors.py | 2 +- .../source/py_modules/tiaraGenerators.py | 2 +- .../source/py_modules/tiaraSpecifications.py | 2 +- .../source/py_modules/variableGeometry.py | 2 +- .../source/tiara/include/TiaraCellScorer.hh | 2 +- .../tiara/include/TiaraCellScorerStore.hh | 2 +- .../tiara/include/TiaraConcreteShieldA.hh | 2 +- .../tiara/include/TiaraConcreteShieldB.hh | 2 +- .../tiara/include/TiaraDPSSampledEnergy.hh | 2 +- .../source/tiara/include/TiaraDimensions.hh | 2 +- .../tiara/include/TiaraEnergyCutProcess.hh | 2 +- .../source/tiara/include/TiaraFileAcess.hh | 2 +- .../include/TiaraFixedEnergyGenerator.hh | 2 +- .../source/tiara/include/TiaraGeometry.hh | 2 +- .../source/tiara/include/TiaraIronShieldA.hh | 2 +- .../source/tiara/include/TiaraIronShieldB.hh | 2 +- .../tiara/include/TiaraIsotropicDirections.hh | 2 +- .../source/tiara/include/TiaraMaterials.hh | 2 +- .../source/tiara/include/TiaraMeasure.hh | 2 +- .../Tiara/source/tiara/include/TiaraPart.hh | 2 +- .../source/tiara/include/TiaraPhysicsList.hh | 2 +- .../include/TiaraPrimaryGeneratorAction.hh | 2 +- .../Tiara/source/tiara/include/TiaraRandom.hh | 2 +- .../tiara/include/TiaraSampledEnergy.hh | 2 +- .../Tiara/source/tiara/include/TiaraSim.hh | 2 +- .../Tiara/source/tiara/include/TiaraTally.hh | 2 +- .../tiara/include/TiaraTimedEventAction.hh | 2 +- .../source/tiara/include/TiaraVComponent.hh | 2 +- .../tiara/include/TiaraVDirectionGenerator.hh | 2 +- .../include/TiaraVSourceEnergyGenerator.hh | 2 +- .../tiara/include/TiaraVisEventAction.hh | 2 +- .../source/tiara/include/TiaraVisRunAction.hh | 2 +- .../Tiara/source/tiara/src/TiaraCellScorer.cc | 2 +- .../source/tiara/src/TiaraCellScorerStore.cc | 2 +- .../source/tiara/src/TiaraConcreteShieldA.cc | 2 +- .../source/tiara/src/TiaraConcreteShieldB.cc | 2 +- .../source/tiara/src/TiaraDPSSampledEnergy.cc | 2 +- .../Tiara/source/tiara/src/TiaraDimensions.cc | 2 +- .../source/tiara/src/TiaraEnergyCutProcess.cc | 2 +- .../Tiara/source/tiara/src/TiaraFileAcess.cc | 2 +- .../tiara/src/TiaraFixedEnergyGenerator.cc | 2 +- .../Tiara/source/tiara/src/TiaraGeometry.cc | 2 +- .../source/tiara/src/TiaraIronShieldA.cc | 2 +- .../source/tiara/src/TiaraIronShieldB.cc | 2 +- .../tiara/src/TiaraIsotropicDirections.cc | 2 +- .../Tiara/source/tiara/src/TiaraMaterials.cc | 2 +- .../Tiara/source/tiara/src/TiaraMeasure.cc | 2 +- .../source/tiara/src/TiaraPhysicsList.cc | 2 +- .../tiara/src/TiaraPrimaryGeneratorAction.cc | 2 +- .../Tiara/source/tiara/src/TiaraRandom.cc | 2 +- .../source/tiara/src/TiaraSampledEnergy.cc | 2 +- .../Tiara/source/tiara/src/TiaraSim.cc | 8 +- .../source/tiara/src/TiaraStackingAction.cc | 2 +- .../Tiara/source/tiara/src/TiaraTally.cc | 2 +- .../source/tiara/src/TiaraTimedEventAction.cc | 2 +- .../Tiara/source/tiara/src/TiaraVComponent.cc | 2 +- .../tiara/src/TiaraVDirectionGenerator.cc | 2 +- .../tiara/src/TiaraVSourceEnergyGenerator.cc | 2 +- .../source/tiara/src/TiaraVisEventAction.cc | 2 +- .../Tiara/source/tiara/src/TiaraVisManager.cc | 145 - .../source/tiara/src/TiaraVisRunAction.cc | 2 +- examples/advanced/air_shower/History | 13 +- examples/advanced/air_shower/README | 28 +- examples/advanced/air_shower/Ultra.cc | 6 +- examples/advanced/air_shower/UltraMacro.mac | 0 .../advanced/air_shower/Visualisation.mac | 6 +- .../air_shower/src/UltraRunActionMessenger.cc | 4 +- .../air_shower/src/UltraVisManager.cc | 158 - examples/advanced/brachytherapy/Brachy.cc | 6 +- examples/advanced/brachytherapy/History | 9 +- examples/advanced/brachytherapy/README | 6 +- .../include/BrachyAnalysisManager.hh | 2 +- .../include/BrachyDetectorConstruction.hh | 2 +- .../include/BrachyDetectorConstructionI.hh | 2 +- .../include/BrachyDetectorConstructionIr.hh | 2 +- .../BrachyDetectorConstructionLeipzig.hh | 2 +- .../include/BrachyDetectorMessenger.hh | 2 +- .../include/BrachyEventAction.hh | 2 +- .../brachytherapy/include/BrachyFactory.hh | 2 +- .../brachytherapy/include/BrachyFactoryI.hh | 2 +- .../brachytherapy/include/BrachyFactoryIr.hh | 2 +- .../include/BrachyFactoryLeipzig.hh | 2 +- .../brachytherapy/include/BrachyMaterial.hh | 2 +- .../brachytherapy/include/BrachyPhantomHit.hh | 2 +- .../include/BrachyPhantomROGeometry.hh | 2 +- .../brachytherapy/include/BrachyPhantomSD.hh | 2 +- .../include/BrachyPhysicsList.hh | 2 +- .../include/BrachyPrimaryGeneratorAction.hh | 2 +- .../include/BrachyPrimaryGeneratorActionI.hh | 2 +- .../include/BrachyPrimaryGeneratorActionIr.hh | 2 +- .../brachytherapy/include/BrachyRunAction.hh | 2 +- .../include/BrachyRunMessenger.hh | 2 +- .../src/BrachyAnalysisManager.cc | 2 +- .../src/BrachyDetectorConstruction.cc | 2 +- .../src/BrachyDetectorConstructionI.cc | 2 +- .../src/BrachyDetectorConstructionIr.cc | 2 +- .../src/BrachyDetectorConstructionLeipzig.cc | 2 +- .../src/BrachyDetectorMessenger.cc | 2 +- .../brachytherapy/src/BrachyEventAction.cc | 2 +- .../brachytherapy/src/BrachyFactory.cc | 2 +- .../brachytherapy/src/BrachyFactoryI.cc | 2 +- .../brachytherapy/src/BrachyFactoryIr.cc | 2 +- .../brachytherapy/src/BrachyFactoryLeipzig.cc | 2 +- .../brachytherapy/src/BrachyMaterial.cc | 2 +- .../brachytherapy/src/BrachyPhantomHit.cc | 2 +- .../src/BrachyPhantomROGeometry.cc | 2 +- .../brachytherapy/src/BrachyPhantomSD.cc | 2 +- .../brachytherapy/src/BrachyPhysicsList.cc | 2 +- .../src/BrachyPrimaryGeneratorAction.cc | 2 +- .../src/BrachyPrimaryGeneratorActionI.cc | 6 +- .../src/BrachyPrimaryGeneratorActionIr.cc | 6 +- .../brachytherapy/src/BrachyRunAction.cc | 2 +- .../brachytherapy/src/BrachyRunMessenger.cc | 2 +- .../brachytherapy/src/BrachyVisManager.cc | 151 - .../CompositeCalorimeter.cc | 4 +- .../advanced/composite_calorimeter/History | 5 +- .../composite_calorimeter/src/CCalG4Ecal.cc | 2 +- .../composite_calorimeter/src/CCalG4Hcal.cc | 2 +- .../src/CCalSteppingAction.cc | 2 +- .../src/CCalVisManager.cc | 137 - .../advanced/cosmicray_charging/CRCharging.cc | 4 +- examples/advanced/cosmicray_charging/History | 6 + .../include/LISAPhysicsList.hh | 2 +- .../cosmicray_charging/src/LISARunAction.cc | 2 +- .../cosmicray_charging/src/LISAVisManager.cc | 160 - .../gammaray_telescope/GammaRayTel.cc | 8 +- examples/advanced/gammaray_telescope/History | 5 +- examples/advanced/gammaray_telescope/README | 6 +- .../advanced/gammaray_telescope/emlowe.mac | 8 +- .../advanced/gammaray_telescope/emstd.mac | 8 +- .../gammaray_telescope/gammaraytel.out | 13622 ++++++++-------- .../gammaray_telescope/gammaraytel.stt_out | 2 +- .../include/GammaRayTelAnalysis.hh | 2 +- .../include/GammaRayTelAnalysisMessenger.hh | 2 +- .../include/GammaRayTelAnticoincidenceHit.hh | 2 +- .../include/GammaRayTelAnticoincidenceSD.hh | 2 +- .../include/GammaRayTelCalorimeterHit.hh | 2 +- .../include/GammaRayTelCalorimeterSD.hh | 2 +- .../GammaRayTelDetectorConstruction.hh | 2 +- .../include/GammaRayTelDetectorMessenger.hh | 2 +- .../include/GammaRayTelDigi.hh | 2 +- .../include/GammaRayTelDigitizer.hh | 2 +- .../include/GammaRayTelDigitizerMessenger.hh | 2 +- .../include/GammaRayTelDummySD.hh | 2 +- .../include/GammaRayTelEMPhysics.hh | 2 +- .../include/GammaRayTelEventAction.hh | 2 +- .../include/GammaRayTelGeneralPhysics.hh | 2 +- .../include/GammaRayTelHadronPhysics.hh | 2 +- .../include/GammaRayTelIonPhysics.hh | 2 +- .../include/GammaRayTelMuonPhysics.hh | 2 +- .../GammaRayTelPrimaryGeneratorAction.hh | 2 +- .../GammaRayTelPrimaryGeneratorMessenger.hh | 2 +- .../include/GammaRayTelRunAction.hh | 2 +- .../include/GammaRayTelTrackerHit.hh | 2 +- .../include/GammaRayTelTrackerROGeometry.hh | 2 +- .../include/GammaRayTelTrackerSD.hh | 2 +- .../advanced/gammaray_telescope/macro2.mac | 5 +- .../src/GammaRayTelAnalysis.cc | 2 +- .../src/GammaRayTelAnalysisMessenger.cc | 2 +- .../src/GammaRayTelAnticoincidenceHit.cc | 2 +- .../src/GammaRayTelAnticoincidenceSD.cc | 2 +- .../src/GammaRayTelCalorimeterHit.cc | 2 +- .../src/GammaRayTelCalorimeterSD.cc | 2 +- .../src/GammaRayTelDetectorConstruction.cc | 31 +- .../src/GammaRayTelDetectorMessenger.cc | 2 +- .../gammaray_telescope/src/GammaRayTelDigi.cc | 2 +- .../src/GammaRayTelDigitizer.cc | 2 +- .../src/GammaRayTelDigitizerMessenger.cc | 2 +- .../src/GammaRayTelEMPhysics.cc | 2 +- .../src/GammaRayTelEventAction.cc | 2 +- .../src/GammaRayTelHadronPhysics.cc | 2 +- .../src/GammaRayTelIonPhysics.cc | 2 +- .../src/GammaRayTelMuonPhysics.cc | 2 +- .../src/GammaRayTelPhysicsList.cc | 2 +- .../src/GammaRayTelPrimaryGeneratorAction.cc | 12 +- .../GammaRayTelPrimaryGeneratorMessenger.cc | 2 +- .../src/GammaRayTelRunAction.cc | 2 +- .../src/GammaRayTelTrackerHit.cc | 2 +- .../src/GammaRayTelTrackerROGeometry.cc | 2 +- .../src/GammaRayTelTrackerSD.cc | 2 +- .../src/GammaRayTelVisManager.cc | 150 - .../advanced/hadrontherapy/G4History.macro | 28 + examples/advanced/hadrontherapy/GNUmakefile | 0 .../advanced/hadrontherapy/Hadrontherapy.cc | 195 +- examples/advanced/hadrontherapy/History | 46 +- examples/advanced/hadrontherapy/README | 198 +- .../advanced/hadrontherapy/currentEvent.rndm | 4 + .../advanced/hadrontherapy/currentRun.rndm | 4 + .../advanced/hadrontherapy/defaultMacro.mac | 54 +- .../include/HadrontherapyAnalysisManager.hh | 41 +- .../include/HadrontherapyBeamLine.hh | 150 + .../include/HadrontherapyCalorHit.hh | 84 - ...apyVisManager.hh => HadrontherapyDecay.hh} | 45 +- .../HadrontherapyDetectorConstruction.hh | 401 +- .../include/HadrontherapyDetectorMessenger.hh | 87 +- .../include/HadrontherapyDummySD.hh | 58 + .../include/HadrontherapyElectronEEDL.hh | 65 + .../include/HadrontherapyElectronPenelope.hh | 65 + .../HadrontherapyElectronStandard.hh} | 56 +- .../include/HadrontherapyEventAction.hh | 56 +- .../include/HadrontherapyIonLowE.hh | 63 +- .../include/HadrontherapyIonStandard.hh | 56 + .../include/HadrontherapyMaterial.hh | 73 + .../include/HadrontherapyMatrix.hh | 69 + .../include/HadrontherapyModulator.hh | 366 + .../include/HadrontherapyMuonStandard.hh | 56 + .../include/HadrontherapyParticles.hh | 63 + .../include/HadrontherapyPhantomHit.hh | 109 + .../include/HadrontherapyPhantomROGeometry.hh | 72 + ...rimeterSD.hh => HadrontherapyPhantomSD.hh} | 98 +- .../include/HadrontherapyPhotonEPDL.hh | 65 + .../include/HadrontherapyPhotonPenelope.hh | 58 + .../include/HadrontherapyPhotonStandard.hh | 65 + .../include/HadrontherapyPhysicsList.hh | 73 +- .../HadrontherapyPhysicsListMessenger.hh | 76 + .../include/HadrontherapyPositronPenelope.hh | 65 + .../include/HadrontherapyPositronStandard.hh | 65 + .../HadrontherapyPrimaryGeneratorAction.hh | 55 +- .../HadrontherapyPrimaryGeneratorMessenger.hh | 82 + .../include/HadrontherapyProtonPrecompound.hh | 165 + .../include/HadrontherapyRunAction.hh | 84 +- .../include/HadrontherapySteppingAction.hh | 33 +- .../advanced/hadrontherapy/modulatorMacro.mac | 1207 ++ .../src/HadrontherapyAnalysisManager.cc | 107 +- .../src/HadrontherapyBeamLine.cc | 829 + .../src/HadrontherapyCalorimeterSD.cc | 207 - ...rontherapyHit.cc => HadrontherapyDecay.cc} | 92 +- .../src/HadrontherapyDetectorConstruction.cc | 2123 +-- .../src/HadrontherapyDetectorMessenger.cc | 166 +- .../src/HadrontherapyElectronEEDL.cc | 72 + .../src/HadrontherapyElectronPenelope.cc | 76 + .../src/HadrontherapyElectronStandard.cc | 70 + .../src/HadrontherapyEventAction.cc | 139 +- .../hadrontherapy/src/HadrontherapyIonLowE.cc | 87 + .../src/HadrontherapyIonStandard.cc | 79 + .../src/HadrontherapyMaterial.cc | 274 + .../hadrontherapy/src/HadrontherapyMatrix.cc | 118 + .../src/HadrontherapyModulator.cc | 2108 +++ .../src/HadrontherapyMuonStandard.cc | 97 + .../src/HadrontherapyParticles.cc | 90 + .../src/HadrontherapyPhantomHit.cc | 73 + .../src/HadrontherapyPhantomROGeometry.cc | 200 + .../src/HadrontherapyPhantomSD.cc | 102 + .../src/HadrontherapyPhotonEPDL.cc | 72 + .../src/HadrontherapyPhotonPenelope.cc | 74 + .../src/HadrontherapyPhotonStandard.cc | 70 + .../src/HadrontherapyPhysicsList.cc | 724 +- .../src/HadrontherapyPhysicsListMessenger.cc | 73 + .../src/HadrontherapyPositronPenelope.cc | 72 + .../HadrontherapyPositronStandard.cc} | 104 +- ...=> HadrontherapyPrimaryGeneratorAction.cc} | 129 +- .../HadrontherapyPrimaryGeneratorMessenger.cc | 177 + .../src/HadrontherapyProtonPrecompound.cc | 349 + .../src/HadrontherapyRunAction.cc | 139 +- .../src/HadrontherapySteppingAction.cc | 73 +- .../src/HadrontherapyVisManager.cc | 144 - .../advanced/hadrontherapy/visualisation.mac | 32 - .../hadrontherapy/visualisationMacro.mac | 64 + examples/advanced/lAr_calorimeter/History | 5 +- .../lAr_calorimeter/include/FCALCalorHit.hh | 2 +- .../lAr_calorimeter/include/FCALEMModuleSD.hh | 2 +- .../include/FCALHadModuleSD.hh | 2 +- .../include/FCALPrimaryGeneratorAction.hh | 2 +- .../lAr_calorimeter/include/FCALRunAction.hh | 2 +- .../include/FCALSteppingAction.hh | 2 +- .../include/FCALSteppingVerbose.hh | 2 +- .../include/FCALTBEventAction.hh | 2 +- .../include/FCALTestbeamSetupSD.hh | 2 +- .../lAr_calorimeter/include/FCALVisManager.hh | 69 - examples/advanced/lAr_calorimeter/lArCal.cc | 8 +- .../lAr_calorimeter/src/FCALCalorHit.cc | 2 +- .../lAr_calorimeter/src/FCALEMModuleSD.cc | 2 +- .../lAr_calorimeter/src/FCALHadModuleSD.cc | 2 +- .../src/FCALPrimaryGeneratorAction.cc | 2 +- .../lAr_calorimeter/src/FCALRunAction.cc | 2 +- .../lAr_calorimeter/src/FCALSteppingAction.cc | 2 +- .../src/FCALSteppingVerbose.cc | 2 +- .../lAr_calorimeter/src/FCALTBEventAction.cc | 2 +- .../src/FCALTestbeamSetupSD.cc | 2 +- .../lAr_calorimeter/src/FCALVisManager.cc | 144 - examples/advanced/medical_linac/History | 11 +- examples/advanced/medical_linac/MedLinac.cc | 6 +- examples/advanced/medical_linac/README | 4 +- .../src/MedLinacAnalysisManager.cc | 18 +- .../src/MedLinacDetectorConstruction.cc | 12 +- .../src/MedLinacPhantomROGeometry.cc | 27 +- .../medical_linac/src/MedLinacVisManager.cc | 100 - examples/advanced/purging_magnet/History | 5 +- examples/advanced/purging_magnet/PurgMag.cc | 8 +- .../include/PurgMagAnalysisManager.hh | 2 +- .../include/PurgMagDetectorConstruction.hh | 2 +- .../include/PurgMagEventAction.hh | 2 +- .../include/PurgMagPhysicsList.hh | 2 +- .../include/PurgMagPrimaryGeneratorAction.hh | 2 +- .../include/PurgMagRunAction.hh | 2 +- .../include/PurgMagSteppingAction.hh | 2 +- .../include/PurgMagSteppingVerbose.hh | 2 +- .../include/PurgMagTabulatedField3D.hh | 2 +- .../include/PurgMagTrackingAction.hh | 2 +- .../include/PurgMagVisManager.hh | 70 - .../src/PurgMagAnalysisManager.cc | 2 +- .../src/PurgMagDetectorConstruction.cc | 2 +- .../purging_magnet/src/PurgMagEventAction.cc | 2 +- .../purging_magnet/src/PurgMagPhysicsList.cc | 2 +- .../src/PurgMagPrimaryGeneratorAction.cc | 2 +- .../purging_magnet/src/PurgMagRunAction.cc | 2 +- .../src/PurgMagSteppingAction.cc | 2 +- .../src/PurgMagSteppingVerbose.cc | 2 +- .../src/PurgMagTabulatedField3D.cc | 2 +- .../src/PurgMagTrackingAction.cc | 2 +- .../purging_magnet/src/PurgMagVisManager.cc | 162 - examples/advanced/radioprotection/History | 7 +- examples/advanced/radioprotection/README | 24 +- .../radioprotection/include/G4IonC12.hh | 2 +- .../radioprotection/include/G4IonFe52.hh | 2 +- .../radioprotection/include/G4IonSi28.hh | 2 +- .../include/RemSimAstronautDecorator.hh | 9 +- .../include/RemSimBasicGenerator.hh | 8 +- .../radioprotection/include/RemSimDecay.hh | 2 +- .../include/RemSimDecorator.hh | 5 +- .../include/RemSimDetectorConstruction.hh | 9 +- .../include/RemSimDetectorMessenger.hh | 2 +- .../include/RemSimElectronEEDL.hh | 2 +- .../include/RemSimEventAction.hh | 2 +- .../include/RemSimHadronicBertini.hh | 2 +- .../include/RemSimHadronicBinary.hh | 2 +- .../RemSimInterplanetarySpaceConfiguration.hh | 13 +- .../radioprotection/include/RemSimIonICRU.hh | 2 +- .../radioprotection/include/RemSimMaterial.hh | 2 +- .../include/RemSimMoonHabitat.hh | 7 +- .../include/RemSimMuonStandard.hh | 2 +- .../include/RemSimParticles.hh | 2 +- .../include/RemSimPhotonEPDL.hh | 2 +- .../include/RemSimPhysicsList.hh | 2 +- .../include/RemSimPhysicsListMessenger.hh | 2 +- .../include/RemSimPositronStandard.hh | 2 +- .../include/RemSimPrimaryGeneratorAction.hh | 7 +- .../RemSimPrimaryGeneratorMessenger.hh | 5 +- .../include/RemSimROGeometry.hh | 2 +- .../include/RemSimRoofDecorator.hh | 6 +- .../include/RemSimRunAction.hh | 16 +- .../include/RemSimSensitiveDetector.hh | 2 +- .../include/RemSimShelterSPEDecorator.hh | 6 +- .../include/RemSimShieldingDecorator.hh | 6 +- .../include/RemSimSteppingAction.hh | 2 +- .../include/RemSimSteppingActionMessenger.hh | 2 +- .../include/RemSimVGeometryComponent.hh | 5 +- .../include/RemSimVPrimaryGeneratorFactory.hh | 6 +- .../radioprotection/include/RemSimVehicle1.hh | 2 +- .../include/RemSimVisManager.hh | 60 - examples/advanced/radioprotection/moon.mac | 33 +- examples/advanced/radioprotection/remsim.cc | 8 +- .../advanced/radioprotection/src/G4IonC12.cc | 2 +- .../advanced/radioprotection/src/G4IonFe52.cc | 2 +- .../advanced/radioprotection/src/G4IonSi28.cc | 2 +- .../src/RemSimAnalysisManager.cc | 12 +- .../src/RemSimAstronautDecorator.cc | 39 +- .../src/RemSimBasicGenerator.cc | 11 +- .../radioprotection/src/RemSimDecay.cc | 2 +- .../radioprotection/src/RemSimDecorator.cc | 2 +- .../src/RemSimDetectorConstruction.cc | 50 +- .../src/RemSimDetectorMessenger.cc | 8 +- .../radioprotection/src/RemSimElectronEEDL.cc | 6 +- .../radioprotection/src/RemSimEventAction.cc | 2 +- .../src/RemSimHadronicBertini.cc | 2 +- .../src/RemSimHadronicBinary.cc | 2 +- .../RemSimInterplanetarySpaceConfiguration.cc | 137 +- .../radioprotection/src/RemSimIonICRU.cc | 6 +- .../radioprotection/src/RemSimMaterial.cc | 2 +- .../radioprotection/src/RemSimMoonHabitat.cc | 56 +- .../radioprotection/src/RemSimMuonStandard.cc | 6 +- .../radioprotection/src/RemSimParticles.cc | 2 +- .../radioprotection/src/RemSimPhotonEPDL.cc | 6 +- .../radioprotection/src/RemSimPhysicsList.cc | 2 +- .../src/RemSimPhysicsListMessenger.cc | 2 +- .../src/RemSimPositronStandard.cc | 8 +- .../src/RemSimPrimaryGeneratorAction.cc | 43 +- .../src/RemSimPrimaryGeneratorMessenger.cc | 17 +- .../radioprotection/src/RemSimROGeometry.cc | 2 +- .../src/RemSimRoofDecorator.cc | 8 +- .../radioprotection/src/RemSimRunAction.cc | 105 +- .../src/RemSimSensitiveDetector.cc | 7 +- .../src/RemSimShelterSPEDecorator.cc | 2 +- .../src/RemSimShieldingDecorator.cc | 2 +- .../src/RemSimSteppingAction.cc | 2 +- .../src/RemSimSteppingActionMessenger.cc | 2 +- .../src/RemSimVGeometryComponent.cc | 2 +- .../src/RemSimVPrimaryGeneratorFactory.cc | 2 +- .../radioprotection/src/RemSimVehicle1.cc | 2 +- .../radioprotection/src/RemSimVisManager.cc | 136 - .../advanced/radioprotection/vehicle1.mac | 7 +- .../advanced/radioprotection/vehicle2.mac | 4 +- examples/advanced/radioprotection/vis.mac | 11 +- examples/advanced/underground_physics/DMX.cc | 4 +- examples/advanced/underground_physics/History | 3 + .../include/DMXMinEkineCuts.hh | 2 +- .../include/DMXVisManager.hh | 80 - .../src/DMXMinEkineCuts.cc | 2 +- .../underground_physics/src/DMXVisManager.cc | 151 - .../xray_fluorescence/FlatSpectrum.dat | 52 + .../xray_fluorescence/G4History.macro | 15 +- examples/advanced/xray_fluorescence/History | 7 +- examples/advanced/xray_fluorescence/README | 111 +- .../xray_fluorescence/SILIefficiency.dat | 0 .../xray_fluorescence/SILIresponse.dat | 0 .../include/XrayFluoAnalysisManager.hh | 47 +- .../include/XrayFluoAnalysisMessenger.hh | 5 + .../include/XrayFluoDetectorConstruction.hh | 45 +- .../include/XrayFluoDetectorMessenger.hh | 2 + .../include/XrayFluoEventAction.hh | 4 +- .../include/XrayFluoMaterials.hh | 16 + .../include/XrayFluoPhysicsList.hh | 9 +- .../include/XrayFluoPhysicsListMessenger.hh | 6 +- .../include/XrayFluoPrimaryGeneratorAction.hh | 25 + .../XrayFluoPrimaryGeneratorMessenger.hh | 19 +- .../include/XrayFluoSimulation.hh | 2 +- .../advanced/xray_fluorescence/initInter.mac | 2 +- .../xray_fluorescence/readHbkAida3.py | 5 - examples/advanced/xray_fluorescence/readPY.py | 6 + .../src/XrayFluoAnalysisManager.cc | 416 +- .../src/XrayFluoAnalysisMessenger.cc | 14 +- .../xray_fluorescence/src/XrayFluoDataSet.cc | 27 +- .../src/XrayFluoDetectorConstruction.cc | 510 +- .../src/XrayFluoDetectorMessenger.cc | 16 +- .../src/XrayFluoEventAction.cc | 95 +- .../src/XrayFluoMaterials.cc | 254 +- .../XrayFluoMercuryDetectorConstruction.cc | 23 +- .../src/XrayFluoMercuryDetectorMessenger.cc | 2 +- .../src/XrayFluoNormalization.cc | 11 +- .../src/XrayFluoPhysicsList.cc | 66 +- .../src/XrayFluoPhysicsListMessenger.cc | 54 +- .../src/XrayFluoPlaneDetectorConstruction.cc | 12 +- .../src/XrayFluoPlaneDetectorMessenger.cc | 2 +- .../src/XrayFluoPrimaryGeneratorAction.cc | 75 +- .../src/XrayFluoPrimaryGeneratorMessenger.cc | 28 +- .../src/XrayFluoRunAction.cc | 23 +- .../src/XrayFluoSiLiDetectorType.cc | 29 +- .../src/XrayFluoSimulation.cc | 67 +- .../src/XrayFluoVisManager.cc | 163 - .../advanced/xray_fluorescence/testhbk.xml | Bin 1621 -> 0 bytes .../advanced/xray_fluorescence/xrayfluo.xml | Bin 1033 -> 28000 bytes examples/advanced/xray_telescope/History | 5 +- examples/advanced/xray_telescope/XrayTel.cc | 4 +- .../xray_telescope/analysis/Lab/cloud.tcl | 92 - .../xray_telescope/analysis/Lab/g4Xt.xrm | 364 - .../xray_telescope/analysis/Lab/gui.mac | 21 - .../xray_telescope/analysis/Lab/jas.sh | 3 - .../xray_telescope/analysis/Lab/main.xml | 380 - .../xray_telescope/analysis/Lab/run.mac | 9 - .../xray_telescope/analysis/Lab/session.tcl | 59 - .../xray_telescope/include/XrayTelAnalysis.hh | 2 +- .../xray_telescope/src/XrayTelAnalysis.cc | 2 +- .../xray_telescope/src/XrayTelVisManager.cc | 160 - examples/advanced/xray_telescope/test.out | 2 +- examples/extended/analysis/A01/.cvsignore | 18 +- examples/extended/analysis/A01/A01app.cc | 6 +- examples/extended/analysis/A01/GNUmakefile | 4 +- examples/extended/analysis/A01/History | 24 +- examples/extended/analysis/A01/README | 11 +- .../extended/analysis/A01/bheprep2-000-gz.mac | 44 + .../analysis/A01/bheprep2-000-zip.mac | 44 + examples/extended/analysis/A01/bheprep2.mac | 39 + examples/extended/analysis/A01/bheprep2gz.mac | 41 + .../extended/analysis/A01/bheprep2zip.mac | 42 + .../extended/analysis/A01/heprep2-000-gz.mac | 2 +- .../extended/analysis/A01/heprep2-000-zip.mac | 2 +- examples/extended/analysis/A01/heprep2.mac | 3 +- examples/extended/analysis/A01/heprep2gz.mac | 2 +- examples/extended/analysis/A01/heprep2zip.mac | 4 +- .../A01/include/A01DriftChamberHit.hh | 7 +- .../A01/include/A01EmCalorimeterHit.hh | 7 +- .../A01/include/A01HadCalorimeterHit.hh | 7 +- .../analysis/A01/include/A01HodoscopeHit.hh | 7 +- .../analysis/A01/src/A01DriftChamberHit.cc | 72 +- .../analysis/A01/src/A01EmCalorimeterHit.cc | 76 +- .../analysis/A01/src/A01EventAction.cc | 25 +- .../analysis/A01/src/A01HadCalorimeterHit.cc | 72 +- .../analysis/A01/src/A01HodoscopeHit.cc | 76 +- .../analysis/A01/src/A01VisManager.cc | 134 - examples/extended/analysis/A01/test.out | 2 +- examples/extended/analysis/AnaEx01/AnaEx01.cc | 2 +- examples/extended/analysis/AnaEx01/History | 5 +- .../AnaEx01/include/AnaEx01AnalysisManager.hh | 2 +- .../AnaEx01/include/AnaEx01CalorHit.hh | 2 +- .../AnaEx01/include/AnaEx01CalorimeterSD.hh | 2 +- .../include/AnaEx01DetectorConstruction.hh | 2 +- .../include/AnaEx01DetectorMessenger.hh | 2 +- .../AnaEx01/include/AnaEx01EventAction.hh | 2 +- .../AnaEx01/include/AnaEx01PhysicsList.hh | 2 +- .../include/AnaEx01PrimaryGeneratorAction.hh | 2 +- .../AnaEx01PrimaryGeneratorMessenger.hh | 2 +- .../AnaEx01/include/AnaEx01RunAction.hh | 2 +- .../AnaEx01/include/AnaEx01SteppingAction.hh | 2 +- .../AnaEx01/include/AnaEx01SteppingVerbose.hh | 2 +- .../AnaEx01/include/AnaEx01VisManager.hh | 70 - .../AnaEx01/src/AnaEx01AnalysisManager.cc | 2 +- .../analysis/AnaEx01/src/AnaEx01CalorHit.cc | 2 +- .../AnaEx01/src/AnaEx01CalorimeterSD.cc | 2 +- .../src/AnaEx01DetectorConstruction.cc | 2 +- .../AnaEx01/src/AnaEx01DetectorMessenger.cc | 2 +- .../AnaEx01/src/AnaEx01EventAction.cc | 2 +- .../AnaEx01/src/AnaEx01PhysicsList.cc | 2 +- .../src/AnaEx01PrimaryGeneratorAction.cc | 2 +- .../src/AnaEx01PrimaryGeneratorMessenger.cc | 2 +- .../analysis/AnaEx01/src/AnaEx01RunAction.cc | 2 +- .../AnaEx01/src/AnaEx01SteppingAction.cc | 2 +- .../AnaEx01/src/AnaEx01SteppingVerbose.cc | 2 +- .../analysis/AnaEx01/src/AnaEx01VisManager.cc | 145 - examples/extended/analysis/History | 5 +- examples/extended/biasing/B01/exampleB01.cc | 2 +- examples/extended/biasing/B01/exampleB01.out | 80 +- .../B01/include/B01DetectorConstruction.hh | 2 +- .../B01/src/B01DetectorConstruction.cc | 2 +- .../biasing/B01/src/B01PhysicsList.cc | 2 +- .../B01/src/B01PrimaryGeneratorAction.cc | 2 +- examples/extended/biasing/B02/History | 10 +- examples/extended/biasing/B02/exampleB02.cc | 2 +- examples/extended/biasing/B02/exampleB02.out | 2 +- .../biasing/B02/include/B02CellScorer.hh | 2 +- .../biasing/B02/include/B02CellScorerStore.hh | 2 +- .../B02/include/B02DetectorConstruction.hh | 2 +- .../B02ImportanceDetectorConstruction.hh | 2 +- .../include/B02ScoringDetectorConstruction.hh | 2 +- examples/extended/biasing/B02/setupPI.csh | 23 +- .../extended/biasing/B02/src/B02CellScorer.cc | 2 +- .../biasing/B02/src/B02CellScorerStore.cc | 2 +- .../B02/src/B02DetectorConstruction.cc | 2 +- .../src/B02ImportanceDetectorConstruction.cc | 2 +- .../biasing/B02/src/B02PhysicsList.cc | 2 +- .../B02/src/B02PrimaryGeneratorAction.cc | 2 +- .../B02/src/B02ScoringDetectorConstruction.cc | 2 +- .../extended/biasing/B03/B03RunApplication.py | 3 +- examples/extended/biasing/B03/GNUmakefile | 12 +- examples/extended/biasing/B03/History | 10 +- examples/extended/biasing/B03/exampleB03.cc | 2 +- examples/extended/biasing/B03/exampleB03.out | 2 +- .../biasing/B03/include/B03AppBase.hh | 2 +- .../B03/include/B03DetectorConstruction.hh | 2 +- .../B03ImportanceDetectorConstruction.hh | 2 +- .../biasing/B03/include/B03PhysicsList.hh | 2 +- .../B03/include/B03PrimaryGeneratorAction.hh | 2 +- examples/extended/biasing/B03/setupPI.csh | 33 +- .../extended/biasing/B03/src/B03AppBase.cc | 2 +- .../B03/src/B03DetectorConstruction.cc | 2 +- .../src/B03ImportanceDetectorConstruction.cc | 2 +- .../biasing/B03/src/B03PhysicsList.cc | 2 +- .../B03/src/B03PrimaryGeneratorAction.cc | 2 +- examples/extended/biasing/History | 5 +- .../electromagnetic/MuonProcesses/History | 15 +- .../MuonProcesses/MuonProcesses.cc | 8 +- .../MuonProcesses/MuonProcesses.out | 2 +- .../electromagnetic/MuonProcesses/README | 96 +- .../electromagnetic/MuonProcesses/allproc.mac | 5 +- .../electromagnetic/MuonProcesses/brem.mac | 5 +- .../include/DetectorConstruction.hh | 2 +- .../include/DetectorMessenger.hh | 2 +- .../MuonProcesses/include/EventAction.hh | 2 +- .../include/EventActionMessenger.hh | 2 +- .../MuonProcesses/include/HistoManager.hh | 12 +- .../MuonProcesses/include/HistoMessenger.hh | 5 +- .../MuonProcesses/include/MuCrossSections.hh | 2 +- .../MuonProcesses/include/MuNuclearBuilder.hh | 2 +- .../MuonProcesses/include/PhysListEmG4v52.hh | 2 +- .../include/PhysListEmStandard.hh | 2 +- .../MuonProcesses/include/PhysicsList.hh | 2 +- .../include/PhysicsListMessenger.hh | 2 +- .../include/PrimaryGeneratorAction.hh | 2 +- .../MuonProcesses/include/ProcessesCount.hh | 2 +- .../MuonProcesses/include/RunAction.hh | 2 +- .../MuonProcesses/include/StackingAction.hh | 2 +- .../MuonProcesses/include/SteppingAction.hh | 2 +- .../MuonProcesses/include/SteppingVerbose.hh | 2 +- .../electromagnetic/MuonProcesses/ioni.mac | 5 +- .../electromagnetic/MuonProcesses/munucl.mac | 5 +- .../electromagnetic/MuonProcesses/pair.mac | 5 +- .../MuonProcesses/src/DetectorConstruction.cc | 2 +- .../MuonProcesses/src/DetectorMessenger.cc | 2 +- .../MuonProcesses/src/EventAction.cc | 2 +- .../MuonProcesses/src/EventActionMessenger.cc | 2 +- .../MuonProcesses/src/HistoManager.cc | 44 +- .../MuonProcesses/src/HistoMessenger.cc | 12 +- .../MuonProcesses/src/MuCrossSections.cc | 2 +- .../MuonProcesses/src/MuNuclearBuilder.cc | 2 +- .../MuonProcesses/src/PhysListEmG4v52.cc | 2 +- .../MuonProcesses/src/PhysListEmStandard.cc | 25 +- .../MuonProcesses/src/PhysicsList.cc | 10 +- .../MuonProcesses/src/PhysicsListMessenger.cc | 2 +- .../src/PrimaryGeneratorAction.cc | 2 +- .../MuonProcesses/src/RunAction.cc | 2 +- .../MuonProcesses/src/StackingAction.cc | 2 +- .../MuonProcesses/src/SteppingAction.cc | 2 +- .../MuonProcesses/src/SteppingVerbose.cc | 2 +- .../MuonProcesses/src/VisManager.cc | 151 - .../electromagnetic/PhotonProcesses/History | 18 +- .../PhotonProcesses/PhotonProcesses.cc | 8 +- .../electromagnetic/PhotonProcesses/README | 92 +- .../PhotonProcesses/allproceses.mac | 4 +- .../electromagnetic/PhotonProcesses/anni.mac | 6 +- .../PhotonProcesses/compton.mac | 6 +- .../electromagnetic/PhotonProcesses/conv.mac | 6 +- .../PhotonProcesses/convtomu.mac | 4 +- .../include/DetectorConstruction.hh | 2 +- .../include/DetectorMessenger.hh | 2 +- .../PhotonProcesses/include/EventAction.hh | 2 +- .../include/EventActionMessenger.hh | 2 +- .../PhotonProcesses/include/HistoManager.hh | 14 +- .../PhotonProcesses/include/HistoMessenger.hh | 5 +- .../include/PhysListEmG4v52.hh} | 46 +- .../include/PhysListEmStandard.hh | 2 +- .../PhotonProcesses/include/PhysicsList.hh | 2 +- .../include/PhysicsListMessenger.hh | 2 +- .../include/PrimaryGeneratorAction.hh | 2 +- .../PhotonProcesses/include/ProcessesCount.hh | 2 +- .../PhotonProcesses/include/RunAction.hh | 2 +- .../PhotonProcesses/include/SteppingAction.hh | 2 +- .../include/SteppingVerbose.hh | 2 +- .../electromagnetic/PhotonProcesses/phot.mac | 10 +- .../src/DetectorConstruction.cc | 16 +- .../PhotonProcesses/src/DetectorMessenger.cc | 2 +- .../PhotonProcesses/src/EventAction.cc | 2 +- .../src/EventActionMessenger.cc | 2 +- .../PhotonProcesses/src/HistoManager.cc | 47 +- .../PhotonProcesses/src/HistoMessenger.cc | 12 +- .../src/PhysListEmG4v52.cc} | 92 +- .../PhotonProcesses/src/PhysListEmStandard.cc | 2 +- .../PhotonProcesses/src/PhysicsList.cc | 12 +- .../src/PhysicsListMessenger.cc | 2 +- .../src/PrimaryGeneratorAction.cc | 2 +- .../PhotonProcesses/src/RunAction.cc | 31 +- .../PhotonProcesses/src/SteppingAction.cc | 4 +- .../PhotonProcesses/src/SteppingVerbose.cc | 2 +- .../PhotonProcesses/src/VisManager.cc | 151 - .../extended/electromagnetic/TestEm1/History | 22 +- .../extended/electromagnetic/TestEm1/README | 195 +- .../electromagnetic/TestEm1/TestEm1.cc | 8 +- .../electromagnetic/TestEm1/TestEm1.in | 12 +- .../electromagnetic/TestEm1/TestEm1.out | 149 +- .../TestEm1/include/DetectorConstruction.hh | 2 +- .../TestEm1/include/DetectorMessenger.hh | 2 +- .../TestEm1/include/EventAction.hh | 2 +- .../TestEm1/include/EventActionMessenger.hh | 2 +- .../TestEm1/include/HistoManager.hh | 14 +- .../TestEm1/include/HistoMessenger.hh | 5 +- .../TestEm1/include/PhysListEmG4v52.hh | 2 +- .../TestEm1/include/PhysListEmStandard.hh | 2 +- .../TestEm1/include/PhysicsList.hh | 2 +- .../TestEm1/include/PhysicsListMessenger.hh | 2 +- .../TestEm1/include/PrimaryGeneratorAction.hh | 2 +- .../include/PrimaryGeneratorMessenger.hh | 2 +- .../TestEm1/include/ProcessesCount.hh | 2 +- .../TestEm1/include/RunAction.hh | 2 +- .../TestEm1/include/SteppingAction.hh | 2 +- .../TestEm1/include/SteppingVerbose.hh | 2 +- .../TestEm1/include/TrackingAction.hh | 2 +- .../electromagnetic/TestEm1/range.mac | 4 +- .../TestEm1/src/DetectorConstruction.cc | 6 +- .../TestEm1/src/DetectorMessenger.cc | 2 +- .../TestEm1/src/EventAction.cc | 2 +- .../TestEm1/src/EventActionMessenger.cc | 2 +- .../TestEm1/src/G4eBremsstrahlungCMS.cc | 96 - .../TestEm1/src/HistoManager.cc | 47 +- .../TestEm1/src/HistoMessenger.cc | 11 +- .../TestEm1/src/PhysListEmG4v52.cc | 28 +- .../TestEm1/src/PhysListEmStandard.cc | 13 +- .../TestEm1/src/PhysicsList.cc | 8 +- .../TestEm1/src/PhysicsListMessenger.cc | 2 +- .../TestEm1/src/PrimaryGeneratorAction.cc | 2 +- .../TestEm1/src/PrimaryGeneratorMessenger.cc | 2 +- .../electromagnetic/TestEm1/src/RunAction.cc | 2 +- .../TestEm1/src/SteppingAction.cc | 2 +- .../TestEm1/src/SteppingVerbose.cc | 2 +- .../TestEm1/src/TrackingAction.cc | 2 +- .../electromagnetic/TestEm1/src/VisManager.cc | 155 - .../extended/electromagnetic/TestEm10/History | 5 +- .../electromagnetic/TestEm10/TestEm10.cc | 13 +- .../TestEm10/TestEm10.large_N.out | 2 +- .../electromagnetic/TestEm10/TestEm10.out | 301 +- .../TestEm10/include/Em10CalorHit.hh | 2 +- .../TestEm10/include/Em10CalorimeterSD.hh | 2 +- .../include/Em10DetectorConstruction.hh | 2 +- .../TestEm10/include/Em10DetectorMessenger.hh | 2 +- .../TestEm10/include/Em10EventAction.hh | 2 +- .../include/Em10EventActionMessenger.hh | 2 +- .../TestEm10/include/Em10PhysicsList.hh | 2 +- .../include/Em10PhysicsListMessenger.hh | 2 +- .../include/Em10PrimaryGeneratorAction.hh | 2 +- .../include/Em10PrimaryGeneratorMessenger.hh | 2 +- .../TestEm10/include/Em10RunAction.hh | 2 +- .../TestEm10/include/Em10RunMessenger.hh | 2 +- .../TestEm10/include/Em10StepCut.hh | 2 +- .../TestEm10/include/Em10SteppingAction.hh | 2 +- .../TestEm10/include/Em10SteppingMessenger.hh | 2 +- .../TestEm10/include/Em10SteppingVerbose.hh | 2 +- .../include/TRTDetectorConstruction.hh | 2 +- .../TestEm10/include/TRTMaterials.hh | 2 +- .../TestEm10/src/Em10CalorHit.cc | 2 +- .../TestEm10/src/Em10CalorimeterSD.cc | 2 +- .../TestEm10/src/Em10DetectorConstruction.cc | 2 +- .../TestEm10/src/Em10DetectorMessenger.cc | 2 +- .../TestEm10/src/Em10EventAction.cc | 2 +- .../TestEm10/src/Em10EventActionMessenger.cc | 2 +- .../TestEm10/src/Em10PhysicsList.cc | 2 +- .../TestEm10/src/Em10PhysicsListMessenger.cc | 2 +- .../src/Em10PrimaryGeneratorAction.cc | 2 +- .../src/Em10PrimaryGeneratorMessenger.cc | 2 +- .../TestEm10/src/Em10RunAction.cc | 2 +- .../TestEm10/src/Em10RunMessenger.cc | 2 +- .../TestEm10/src/Em10StepCut.cc | 2 +- .../TestEm10/src/Em10SteppingAction.cc | 2 +- .../TestEm10/src/Em10SteppingMessenger.cc | 2 +- .../TestEm10/src/Em10SteppingVerbose.cc | 2 +- .../TestEm10/src/Em10VisManager.cc | 145 - .../electromagnetic/TestEm11/GNUmakefile | 38 + .../extended/electromagnetic/TestEm11/History | 19 + .../extended/electromagnetic/TestEm11/README | 176 + .../electromagnetic/TestEm11/TestEm11.cc | 119 + .../electromagnetic/TestEm11/TestEm11.in | 30 + .../electromagnetic/TestEm11/geant3/README | 47 + .../electromagnetic/TestEm11/geant3/gmakeB | 30 + .../electromagnetic/TestEm11/geant3/gmakeT | 30 + .../TestEm11/geant3/include/calor.inc | 13 + .../TestEm11/geant3/include/celoss.inc | 3 + .../TestEm11/geant3/include/histo.inc | 8 + .../electromagnetic/TestEm11/geant3/run01.dat | 28 + .../electromagnetic/TestEm11/geant3/run02.dat | 25 + .../TestEm11/geant3/src/ffuser.F | 11 + .../TestEm11/geant3/src/gtgama.F | 267 + .../TestEm11/geant3/src/gukine.F | 40 + .../TestEm11/geant3/src/guout.F | 20 + .../TestEm11/geant3/src/gustep.F | 47 + .../TestEm11/geant3/src/gutrak.F | 57 + .../TestEm11/geant3/src/gutrev.F | 27 + .../TestEm11/geant3/src/main.F | 61 + .../TestEm11/geant3/src/ugeom.F | 79 + .../TestEm11/geant3/src/uginit.F | 72 + .../TestEm11/geant3/src/uglast.F | 100 + .../TestEm11/geant3/src/uhinit.F | 29 + .../TestEm11/include/DetectorConstruction.hh | 91 + .../include/DetectorMessenger.hh} | 67 +- .../include/EventAction.hh} | 61 +- .../TestEm11/include/EventActionMessenger.hh | 59 + .../TestEm11/include/HistoManager.hh} | 72 +- .../include/HistoMessenger.hh} | 48 +- .../TestEm11/include/PhysListEmG4v52.hh} | 59 +- .../TestEm11/include/PhysListEmStandard.hh | 64 + .../include/PhysicsList.hh} | 69 +- .../TestEm11/include/PhysicsListMessenger.hh | 67 + .../include/PrimaryGeneratorAction.hh | 65 + .../include/PrimaryGeneratorMessenger.hh | 58 + .../TestEm11/include/RunAction.hh | 79 + .../include/StepMax.hh} | 50 +- .../TestEm11/include/StepMaxMessenger.hh} | 40 +- .../TestEm11/include/SteppingAction.hh | 58 + .../include/SteppingVerbose.hh | 20 +- .../TestEm11/include/TrackingAction.hh} | 52 +- .../electromagnetic/TestEm11/run01.mac | 32 + .../electromagnetic/TestEm11/run02.mac | 31 + .../TestEm11/src/DetectorConstruction.cc | 234 + .../TestEm11/src/DetectorMessenger.cc | 125 + .../IonC12.cc => TestEm11/src/EventAction.cc} | 100 +- .../TestEm11/src/EventActionMessenger.cc | 81 + .../TestEm11/src/HistoManager.cc | 227 + .../TestEm11/src/HistoMessenger.cc | 123 + .../TestEm11/src/PhysListEmG4v52.cc | 117 + .../TestEm11/src/PhysListEmStandard.cc | 116 + .../TestEm11/src/PhysicsList.cc | 304 + .../TestEm11/src/PhysicsListMessenger.cc | 116 + .../TestEm11/src/PrimaryGeneratorAction.cc | 90 + .../src/PrimaryGeneratorMessenger.cc} | 66 +- .../electromagnetic/TestEm11/src/RunAction.cc | 217 + .../TestEm11/src/StepMax.cc} | 78 +- .../src/StepMaxMessenger.cc} | 54 +- .../TestEm11/src/SteppingAction.cc | 82 + .../src/SteppingVerbose.cc | 149 +- .../TestEm11/src/TrackingAction.cc | 88 + .../extended/electromagnetic/TestEm11/vis.mac | 32 + .../extended/electromagnetic/TestEm2/History | 15 +- .../extended/electromagnetic/TestEm2/README | 81 +- .../electromagnetic/TestEm2/TestEm2.cc | 8 +- .../electromagnetic/TestEm2/TestEm2.out | 116 +- .../TestEm2/include/DecaysBuilder.hh | 2 +- .../TestEm2/include/DetectorConstruction.hh | 2 +- .../TestEm2/include/DetectorMessenger.hh | 2 +- .../TestEm2/include/EmAcceptance.hh | 2 +- .../TestEm2/include/EventAction.hh | 2 +- .../TestEm2/include/EventActionMessenger.hh | 2 +- .../TestEm2/include/G4EmHadronBuilder.hh | 2 +- .../TestEm2/include/G4EmHadronBuilder52.hh | 2 +- .../TestEm2/include/G4EmHighEnergyBuilder.hh | 2 +- .../TestEm2/include/G4EmMuonBuilder.hh | 2 +- .../TestEm2/include/G4EmMuonBuilder52.hh | 2 +- .../TestEm2/include/G4EmQEDBuilder.hh | 2 +- .../TestEm2/include/G4EmQEDBuilder52.hh | 2 +- .../TestEm2/include/G4EmQEDBuilder70.hh | 2 +- .../TestEm2/include/G4StepLimiterBuilder.hh | 2 +- .../TestEm2/include/G4StepLimiterMessenger.hh | 2 +- .../TestEm2/include/G4StepLimiterPerRegion.hh | 2 +- .../TestEm2/include/ParticlesBuilder.hh | 2 +- .../TestEm2/include/PhysicsList.hh | 2 +- .../TestEm2/include/PhysicsListMessenger.hh | 2 +- .../TestEm2/include/PrimaryGeneratorAction.hh | 2 +- .../TestEm2/include/RunAction.hh | 12 +- .../TestEm2/include/RunActionMessenger.hh | 2 +- .../TestEm2/include/SteppingAction.hh | 2 +- .../TestEm2/include/SteppingVerbose.hh | 2 +- .../TestEm2/include/TrackingAction.hh | 2 +- .../electromagnetic/TestEm2/run01.mac | 9 +- .../electromagnetic/TestEm2/run01.out | 2 +- .../TestEm2/src/DecaysBuilder.cc | 2 +- .../TestEm2/src/DetectorConstruction.cc | 2 +- .../TestEm2/src/DetectorMessenger.cc | 2 +- .../TestEm2/src/EmAcceptance.cc | 2 +- .../TestEm2/src/EventAction.cc | 2 +- .../TestEm2/src/EventActionMessenger.cc | 2 +- .../TestEm2/src/G4EmHadronBuilder.cc | 2 +- .../TestEm2/src/G4EmHadronBuilder52.cc | 2 +- .../TestEm2/src/G4EmHighEnergyBuilder.cc | 2 +- .../TestEm2/src/G4EmMuonBuilder.cc | 2 +- .../TestEm2/src/G4EmMuonBuilder52.cc | 2 +- .../TestEm2/src/G4EmQEDBuilder.cc | 2 +- .../TestEm2/src/G4EmQEDBuilder52.cc | 20 +- .../TestEm2/src/G4EmQEDBuilder70.cc | 111 - .../TestEm2/src/G4StepLimiterBuilder.cc | 2 +- .../TestEm2/src/G4StepLimiterMessenger.cc | 2 +- .../TestEm2/src/G4StepLimiterPerRegion.cc | 2 +- .../TestEm2/src/ParticlesBuilder.cc | 2 +- .../TestEm2/src/PhysicsList.cc | 12 +- .../TestEm2/src/PhysicsListMessenger.cc | 2 +- .../TestEm2/src/PrimaryGeneratorAction.cc | 2 +- .../electromagnetic/TestEm2/src/RunAction.cc | 45 +- .../TestEm2/src/RunActionMessenger.cc | 2 +- .../TestEm2/src/SteppingAction.cc | 2 +- .../TestEm2/src/SteppingVerbose.cc | 2 +- .../TestEm2/src/TrackingAction.cc | 2 +- .../electromagnetic/TestEm2/src/VisManager.cc | 151 - .../extended/electromagnetic/TestEm2/vis.mac | 2 +- .../extended/electromagnetic/TestEm3/History | 40 +- .../extended/electromagnetic/TestEm3/README | 90 +- .../electromagnetic/TestEm3/TestEm3.cc | 10 +- .../electromagnetic/TestEm3/TestEm3.in | 17 +- .../electromagnetic/TestEm3/TestEm3.out | 101 +- .../electromagnetic/TestEm3/atlashec.mac | 5 +- .../electromagnetic/TestEm3/geant3/README | 8 +- .../TestEm3/geant3/g4mat/README | 4 +- .../TestEm3/geant3/g4mat/gmakeB | 2 +- .../TestEm3/geant3/g4mat/gmakeT | 2 +- .../TestEm3/geant3/g4mat/lead.dat | 27 + .../TestEm3/geant3/g4mat/src/ug3g4.F | 10 +- .../TestEm3/geant3/g4mat/src/uginit.F | 2 +- .../TestEm3/geant3/g4mat/src/uglast.F | 2 +- .../TestEm3/geant3/include/celoss.inc | 3 + .../electromagnetic/TestEm3/geant3/linac.dat | 30 + .../TestEm3/geant3/src/gukine.F | 4 - .../TestEm3/geant3/src/gustep.F | 21 +- .../TestEm3/geant3/src/gutrak.F | 21 + .../TestEm3/geant3/src/uginit.F | 22 +- .../TestEm3/geant3/src/uglast.F | 62 +- .../TestEm3/geant3/src/uhinit.F | 6 +- .../TestEm3/include/DetectorConstruction.hh | 2 +- .../TestEm3/include/DetectorMessenger.hh | 2 +- .../TestEm3/include/EmAcceptance.hh | 2 +- .../TestEm3/include/EventAction.hh | 2 +- .../TestEm3/include/EventActionMessenger.hh | 2 +- .../TestEm3/include/HistoManager.hh | 14 +- .../TestEm3/include/HistoMessenger.hh | 7 +- .../TestEm3/include/PhysListEmG4v52.hh | 2 +- .../TestEm3/include/PhysListEmStandard.hh | 2 +- .../TestEm3/include/PhysicsList.hh | 2 +- .../TestEm3/include/PhysicsListMessenger.hh | 2 +- .../TestEm3/include/PrimaryGeneratorAction.hh | 2 +- .../include/PrimaryGeneratorMessenger.hh | 2 +- .../TestEm3/include/RunAction.hh | 20 +- .../TestEm3/include/RunActionMessenger.hh | 2 +- .../TestEm3/include/StepMax.hh | 53 +- .../TestEm3/include/StepMaxMessenger.hh | 2 +- .../TestEm3/include/SteppingAction.hh | 13 +- .../TestEm3/include/SteppingVerbose.hh | 2 +- .../electromagnetic/TestEm3/linac.mac | 40 + .../electromagnetic/TestEm3/run01.mac | 5 +- .../electromagnetic/TestEm3/run02.mac | 5 +- .../electromagnetic/TestEm3/run15.mac | 5 +- .../TestEm3/src/DetectorConstruction.cc | 2 +- .../TestEm3/src/DetectorMessenger.cc | 2 +- .../TestEm3/src/EmAcceptance.cc | 2 +- .../TestEm3/src/EventAction.cc | 8 +- .../TestEm3/src/EventActionMessenger.cc | 2 +- .../TestEm3/src/HistoManager.cc | 64 +- .../TestEm3/src/HistoMessenger.cc | 11 +- .../TestEm3/src/PhysListEmG4v52.cc | 20 +- .../TestEm3/src/PhysListEmStandard.cc | 16 +- .../TestEm3/src/PhysicsList.cc | 8 +- .../TestEm3/src/PhysicsListMessenger.cc | 2 +- .../TestEm3/src/PrimaryGeneratorAction.cc | 7 +- .../TestEm3/src/PrimaryGeneratorMessenger.cc | 2 +- .../electromagnetic/TestEm3/src/RunAction.cc | 62 +- .../TestEm3/src/RunActionMessenger.cc | 2 +- .../electromagnetic/TestEm3/src/StepMax.cc | 25 +- .../TestEm3/src/StepMaxMessenger.cc | 2 +- .../TestEm3/src/SteppingAction.cc | 73 +- .../TestEm3/src/SteppingVerbose.cc | 2 +- .../electromagnetic/TestEm3/src/VisManager.cc | 141 - .../extended/electromagnetic/TestEm4/History | 11 +- .../extended/electromagnetic/TestEm4/README | 80 +- .../electromagnetic/TestEm4/TestEm4.cc | 8 +- .../electromagnetic/TestEm4/TestEm4.out | 39 +- .../TestEm4/include/DetectorConstruction.hh | 2 +- .../TestEm4/include/EventAction.hh | 2 +- .../TestEm4/include/EventActionMessenger.hh | 2 +- .../TestEm4/include/PhysicsList.hh | 2 +- .../TestEm4/include/PrimaryGeneratorAction.hh | 2 +- .../TestEm4/include/RunAction.hh | 2 +- .../TestEm4/include/SteppingAction.hh | 2 +- .../TestEm4/include/SteppingVerbose.hh | 2 +- .../TestEm4/src/DetectorConstruction.cc | 2 +- .../TestEm4/src/EventAction.cc | 2 +- .../TestEm4/src/EventActionMessenger.cc | 2 +- .../TestEm4/src/PhysicsList.cc | 2 +- .../TestEm4/src/PrimaryGeneratorAction.cc | 2 +- .../electromagnetic/TestEm4/src/RunAction.cc | 40 +- .../TestEm4/src/SteppingAction.cc | 2 +- .../TestEm4/src/SteppingVerbose.cc | 2 +- .../electromagnetic/TestEm4/src/VisManager.cc | 145 - .../extended/electromagnetic/TestEm5/History | 21 +- .../extended/electromagnetic/TestEm5/README | 85 +- .../electromagnetic/TestEm5/TestEm5.cc | 8 +- .../electromagnetic/TestEm5/TestEm5.in | 12 +- .../electromagnetic/TestEm5/TestEm5.out | 84 +- .../electromagnetic/TestEm5/anthony.mac | 5 +- .../electromagnetic/TestEm5/berger.mac | 5 +- .../electromagnetic/TestEm5/bichsel.mac | 5 +- .../electromagnetic/TestEm5/davidw.mac | 3 +- .../electromagnetic/TestEm5/dedx2.mac | 5 +- .../electromagnetic/TestEm5/gottsch.mac | 5 +- .../electromagnetic/TestEm5/hanson.mac | 5 +- .../TestEm5/include/DetectorConstruction.hh | 2 +- .../TestEm5/include/DetectorMessenger.hh | 2 +- .../TestEm5/include/EventAction.hh | 2 +- .../TestEm5/include/EventMessenger.hh | 2 +- .../TestEm5/include/HistoManager.hh | 14 +- .../TestEm5/include/HistoMessenger.hh | 5 +- .../electromagnetic/TestEm5/include/IonC12.hh | 66 - .../TestEm5/include/PhysListBinaryCascade.hh | 2 +- .../TestEm5/include/PhysListEmG4v52.hh | 2 +- .../TestEm5/include/PhysListEmPenelope.hh | 63 + .../TestEm5/include/PhysListEmStandard.hh | 2 +- .../TestEm5/include/PhysListHadronElastic.hh | 2 +- .../include/PhysListIonBinaryCascade.hh | 6 +- .../TestEm5/include/PhysicsList.hh | 2 +- .../TestEm5/include/PhysicsListMessenger.hh | 2 +- .../TestEm5/include/PrimaryGeneratorAction.hh | 2 +- .../include/PrimaryGeneratorMessenger.hh | 2 +- .../TestEm5/include/RunAction.hh | 2 +- .../TestEm5/include/StackingAction.hh | 2 +- .../TestEm5/include/StackingMessenger.hh | 2 +- .../TestEm5/include/StepMax.hh | 2 +- .../TestEm5/include/StepMaxMessenger.hh | 2 +- .../TestEm5/include/SteppingAction.hh | 2 +- .../TestEm5/include/SteppingVerbose.hh | 2 +- .../TestEm5/include/TrackingAction.hh | 2 +- .../TestEm5/include/VisManager.hh | 65 - .../electromagnetic/TestEm5/kulchi.mac | 5 +- .../electromagnetic/TestEm5/mumsc.mac | 5 +- .../electromagnetic/TestEm5/neutron.mac | 34 + .../electromagnetic/TestEm5/references.txt | 92 + .../electromagnetic/TestEm5/shen1.mac | 5 +- .../electromagnetic/TestEm5/shen2.mac | 5 +- .../TestEm5/src/DetectorConstruction.cc | 11 +- .../TestEm5/src/DetectorMessenger.cc | 2 +- .../TestEm5/src/EventAction.cc | 2 +- .../TestEm5/src/EventMessenger.cc | 2 +- .../TestEm5/src/HistoManager.cc | 51 +- .../TestEm5/src/HistoMessenger.cc | 14 +- .../TestEm5/src/PhysListBinaryCascade.cc | 2 +- .../TestEm5/src/PhysListEmG4v52.cc | 20 +- .../src/PhysListEmPenelope.cc} | 93 +- .../TestEm5/src/PhysListEmStandard.cc | 8 +- .../TestEm5/src/PhysListHadronElastic.cc | 6 +- .../TestEm5/src/PhysListIonBinaryCascade.cc | 59 +- .../TestEm5/src/PhysicsList.cc | 18 +- .../TestEm5/src/PhysicsListMessenger.cc | 2 +- .../TestEm5/src/PrimaryGeneratorAction.cc | 2 +- .../TestEm5/src/PrimaryGeneratorMessenger.cc | 2 +- .../electromagnetic/TestEm5/src/RunAction.cc | 8 +- .../TestEm5/src/StackingAction.cc | 2 +- .../TestEm5/src/StackingMessenger.cc | 2 +- .../electromagnetic/TestEm5/src/StepMax.cc | 2 +- .../TestEm5/src/StepMaxMessenger.cc | 2 +- .../TestEm5/src/SteppingAction.cc | 2 +- .../TestEm5/src/SteppingVerbose.cc | 2 +- .../TestEm5/src/TrackingAction.cc | 2 +- .../electromagnetic/TestEm5/src/VisManager.cc | 141 - .../electromagnetic/TestEm5/tramu.mac | 5 +- .../electromagnetic/TestEm5/vincour.mac | 5 +- .../extended/electromagnetic/TestEm6/History | 11 +- .../extended/electromagnetic/TestEm6/README | 116 +- .../electromagnetic/TestEm6/TestEm6.cc | 8 +- .../electromagnetic/TestEm6/TestEm6.out | 118 +- .../TestEm6/include/DetectorConstruction.hh | 2 +- .../TestEm6/include/DetectorMessenger.hh | 2 +- .../TestEm6/include/EventAction.hh | 2 +- .../TestEm6/include/EventActionMessenger.hh | 2 +- .../TestEm6/include/PhysicsList.hh | 2 +- .../TestEm6/include/PhysicsListMessenger.hh | 2 +- .../TestEm6/include/PrimaryGeneratorAction.hh | 2 +- .../include/PrimaryGeneratorMessenger.hh | 2 +- .../TestEm6/include/RunAction.hh | 2 +- .../TestEm6/include/SteppingAction.hh | 2 +- .../TestEm6/include/SteppingVerbose.hh | 2 +- .../TestEm6/include/VisManager.hh | 65 - .../TestEm6/src/DetectorConstruction.cc | 2 +- .../TestEm6/src/DetectorMessenger.cc | 2 +- .../TestEm6/src/EventAction.cc | 2 +- .../TestEm6/src/EventActionMessenger.cc | 2 +- .../TestEm6/src/PhysicsList.cc | 2 +- .../TestEm6/src/PhysicsListMessenger.cc | 2 +- .../TestEm6/src/PrimaryGeneratorAction.cc | 2 +- .../TestEm6/src/PrimaryGeneratorMessenger.cc | 2 +- .../electromagnetic/TestEm6/src/RunAction.cc | 51 +- .../TestEm6/src/SteppingAction.cc | 2 +- .../TestEm6/src/SteppingVerbose.cc | 2 +- .../electromagnetic/TestEm6/src/VisManager.cc | 141 - .../extended/electromagnetic/TestEm7/History | 19 +- .../extended/electromagnetic/TestEm7/README | 79 +- .../electromagnetic/TestEm7/TestEm7.cc | 8 +- .../electromagnetic/TestEm7/TestEm7.in | 8 +- .../electromagnetic/TestEm7/TestEm7.out | 115 +- .../TestEm7/include/DetectorConstruction.hh | 2 +- .../TestEm7/include/DetectorMessenger.hh | 2 +- .../TestEm7/include/EventAction.hh | 2 +- .../TestEm7/include/EventActionMessenger.hh | 2 +- .../TestEm7/include/PhysListBinaryCascade.hh | 2 +- .../TestEm7/include/PhysListEmG4v52.hh | 2 +- .../TestEm7/include/PhysListEmStandard.hh | 2 +- .../TestEm7/include/PhysListHadronElastic.hh | 2 +- .../include/PhysListIonBinaryCascade.hh | 6 +- .../TestEm7/include/PhysicsList.hh | 2 +- .../TestEm7/include/PhysicsListMessenger.hh | 2 +- .../TestEm7/include/PrimaryGeneratorAction.hh | 2 +- .../include/PrimaryGeneratorMessenger.hh | 2 +- .../TestEm7/include/RunAction.hh | 2 +- .../TestEm7/include/StepMax.hh | 2 +- .../TestEm7/include/StepMaxMessenger.hh | 2 +- .../TestEm7/include/SteppingAction.hh | 2 +- .../TestEm7/include/SteppingVerbose.hh | 2 +- .../TestEm7/include/TrackingAction.hh | 2 +- .../TestEm7/include/VisManager.hh | 65 - .../TestEm7/src/DetectorConstruction.cc | 2 +- .../TestEm7/src/DetectorMessenger.cc | 2 +- .../TestEm7/src/EventAction.cc | 2 +- .../TestEm7/src/EventActionMessenger.cc | 2 +- .../TestEm7/src/PhysListBinaryCascade.cc | 2 +- .../TestEm7/src/PhysListEmG4v52.cc | 24 +- .../TestEm7/src/PhysListEmStandard.cc | 6 +- .../TestEm7/src/PhysListHadronElastic.cc | 2 +- .../TestEm7/src/PhysListIonBinaryCascade.cc | 46 +- .../TestEm7/src/PhysicsList.cc | 8 +- .../TestEm7/src/PhysicsListMessenger.cc | 2 +- .../TestEm7/src/PrimaryGeneratorAction.cc | 2 +- .../TestEm7/src/PrimaryGeneratorMessenger.cc | 2 +- .../electromagnetic/TestEm7/src/RunAction.cc | 39 +- .../electromagnetic/TestEm7/src/StepMax.cc | 2 +- .../TestEm7/src/StepMaxMessenger.cc | 2 +- .../TestEm7/src/SteppingAction.cc | 2 +- .../TestEm7/src/SteppingVerbose.cc | 2 +- .../TestEm7/src/TrackingAction.cc | 2 +- .../electromagnetic/TestEm7/src/VisManager.cc | 141 - .../extended/electromagnetic/TestEm8/History | 14 +- .../electromagnetic/TestEm8/TestEm8.cc | 8 +- .../electromagnetic/TestEm8/TestEm8.out | 98 +- .../TestEm8/include/Em8CalorHit.hh | 2 +- .../TestEm8/include/Em8CalorimeterSD.hh | 2 +- .../include/Em8DetectorConstruction.hh | 2 +- .../TestEm8/include/Em8DetectorMessenger.hh | 2 +- .../TestEm8/include/Em8EventAction.hh | 2 +- .../include/Em8EventActionMessenger.hh | 2 +- .../include/Em8PrimaryGeneratorAction.hh | 2 +- .../include/Em8PrimaryGeneratorMessenger.hh | 2 +- .../TestEm8/include/Em8RunAction.hh | 2 +- .../TestEm8/include/Em8RunMessenger.hh | 2 +- .../TestEm8/include/Em8SteppingAction.hh | 2 +- .../TestEm8/include/Em8SteppingVerbose.hh | 2 +- .../TestEm8/include/Em8VisManager.hh | 66 - .../electromagnetic/TestEm8/include/IonC12.hh | 68 - .../TestEm8/include/PhysListEmG4v52.hh | 2 +- .../TestEm8/include/PhysListEmModel.hh | 2 +- .../TestEm8/include/PhysListEmModelPai.hh | 2 +- .../TestEm8/include/PhysListEmPAI.hh | 2 +- .../TestEm8/include/PhysListEmPaiPhoton.hh | 2 +- .../TestEm8/include/PhysListEmStandard.hh | 2 +- .../TestEm8/include/PhysListGeneral.hh | 2 +- .../TestEm8/include/PhysListParticles.hh | 2 +- .../TestEm8/include/PhysicsList.hh | 2 +- .../TestEm8/include/PhysicsListMessenger.hh | 2 +- .../TestEm8/include/StepMax.hh | 2 +- .../TestEm8/include/StepMaxMessenger.hh | 2 +- .../include/TRTDetectorConstruction.hh | 2 +- .../TestEm8/include/TRTMaterials.hh | 2 +- .../TestEm8/src/Em8CalorHit.cc | 2 +- .../TestEm8/src/Em8CalorimeterSD.cc | 2 +- .../TestEm8/src/Em8DetectorConstruction.cc | 2 +- .../TestEm8/src/Em8DetectorMessenger.cc | 2 +- .../TestEm8/src/Em8EventAction.cc | 2 +- .../TestEm8/src/Em8EventActionMessenger.cc | 2 +- .../TestEm8/src/Em8PrimaryGeneratorAction.cc | 2 +- .../src/Em8PrimaryGeneratorMessenger.cc | 2 +- .../TestEm8/src/Em8RunAction.cc | 2 +- .../TestEm8/src/Em8RunMessenger.cc | 2 +- .../TestEm8/src/Em8SteppingAction.cc | 2 +- .../TestEm8/src/Em8SteppingVerbose.cc | 2 +- .../TestEm8/src/Em8VisManager.cc | 145 - .../TestEm8/src/PhysListEmG4v52.cc | 22 +- .../TestEm8/src/PhysListEmModelPai.cc | 5 +- .../TestEm8/src/PhysListEmPAI.cc | 2 +- .../TestEm8/src/PhysListEmPaiPhoton.cc | 5 +- .../TestEm8/src/PhysListEmStandard.cc | 2 +- .../TestEm8/src/PhysListGeneral.cc | 2 +- .../TestEm8/src/PhysListParticles.cc | 7 +- .../TestEm8/src/PhysicsList.cc | 2 +- .../TestEm8/src/PhysicsListMessenger.cc | 2 +- .../electromagnetic/TestEm8/src/StepMax.cc | 2 +- .../TestEm8/src/StepMaxMessenger.cc | 2 +- .../electromagnetic/TestEm9/GNUmakefile | 2 +- .../extended/electromagnetic/TestEm9/History | 19 +- .../electromagnetic/TestEm9/TestEm9.cc | 12 +- .../electromagnetic/TestEm9/TestEm9.in | 2 +- .../electromagnetic/TestEm9/TestEm9.out | 211 +- .../electromagnetic/TestEm9/cms10gev.mac | 45 + .../extended/electromagnetic/TestEm9/csi.mac | 2 +- .../TestEm9/include/DetectorConstruction.hh | 2 +- .../TestEm9/include/DetectorMessenger.hh | 2 +- .../TestEm9/include/EmAcceptance.hh | 2 +- .../TestEm9/include/EventAction.hh | 2 +- .../TestEm9/include/EventActionMessenger.hh | 2 +- .../electromagnetic/TestEm9/include/Histo.hh | 2 +- .../TestEm9/include/HistoManager.hh | 2 +- .../TestEm9/include/HistoMessenger.hh | 2 +- .../electromagnetic/TestEm9/include/IonC12.hh | 68 - .../TestEm9/include/PhysListBinaryCascade.hh | 2 +- .../TestEm9/include/PhysListEmG4v52.hh | 2 +- .../TestEm9/include/PhysListEmStandard.hh | 2 +- .../TestEm9/include/PhysListGeneral.hh | 2 +- .../TestEm9/include/PhysListHadronElastic.hh | 0 .../include/PhysListIonBinaryCascade.hh | 6 +- .../TestEm9/include/PhysListParticles.hh | 2 +- .../TestEm9/include/PhysicsList.hh | 2 +- .../TestEm9/include/PhysicsListMessenger.hh | 2 +- .../TestEm9/include/PrimaryGeneratorAction.hh | 2 +- .../TestEm9/include/RunAction.hh | 0 .../TestEm9/include/StepMax.hh | 2 +- .../TestEm9/include/StepMaxMessenger.hh | 2 +- .../TestEm9/include/SteppingAction.hh | 2 +- .../TestEm9/include/TrackingAction.hh | 0 .../TestEm9/include/VisManager.hh | 72 - .../TestEm9/src/DetectorConstruction.cc | 138 +- .../TestEm9/src/DetectorMessenger.cc | 2 +- .../TestEm9/src/EmAcceptance.cc | 2 +- .../TestEm9/src/EventAction.cc | 2 +- .../TestEm9/src/EventActionMessenger.cc | 6 +- .../TestEm9/src/HistoMessenger.cc | 5 +- .../TestEm9/src/PhysListBinaryCascade.cc | 2 +- .../TestEm9/src/PhysListEmG4v52.cc | 24 +- .../TestEm9/src/PhysListEmStandard.cc | 8 +- .../TestEm9/src/PhysListGeneral.cc | 2 +- .../TestEm9/src/PhysListHadronElastic.cc | 0 .../TestEm9/src/PhysListIonBinaryCascade.cc | 56 +- .../TestEm9/src/PhysListParticles.cc | 13 +- .../TestEm9/src/PhysicsList.cc | 0 .../TestEm9/src/PhysicsListMessenger.cc | 2 +- .../TestEm9/src/PrimaryGeneratorAction.cc | 2 +- .../electromagnetic/TestEm9/src/RunAction.cc | 0 .../electromagnetic/TestEm9/src/StepMax.cc | 2 +- .../TestEm9/src/StepMaxMessenger.cc | 2 +- .../TestEm9/src/SteppingAction.cc | 2 +- .../electromagnetic/TestEm9/src/VisManager.cc | 144 - .../HepMC/HepMCEx01-clhep/History | 5 +- .../HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc | 8 +- .../HepMC/HepMCEx01-clhep/hepmc_ascii.out | 2 +- .../HepMC/HepMCEx01-clhep/hepmc_pygen.out | 2 +- .../HepMCEx01-clhep/include/ExN04EMPhysics.hh | 2 +- .../include/ExN04GeneralPhysics.hh | 2 +- .../include/ExN04HadronPhysics.hh | 2 +- .../include/ExN04IonPhysics.hh | 2 +- .../include/ExN04MuonPhysics.hh | 2 +- .../HepMCEx01-clhep/include/ExN04RunAction.hh | 2 +- .../include/ExN04SteppingVerbose.hh | 2 +- .../HepMCEx01-clhep/src/ExN04EMPhysics.cc | 2 +- .../src/ExN04GeneralPhysics.cc | 2 +- .../HepMCEx01-clhep/src/ExN04HadronPhysics.cc | 2 +- .../HepMCEx01-clhep/src/ExN04IonPhysics.cc | 2 +- .../HepMCEx01-clhep/src/ExN04MuonPhysics.cc | 2 +- .../HepMCEx01-clhep/src/ExN04PhysicsList.cc | 2 +- .../HepMCEx01-clhep/src/ExN04RunAction.cc | 2 +- .../src/ExN04SteppingVerbose.cc | 2 +- .../HepMCEx01-clhep/src/ExN04VisManager.cc | 145 - .../eventgenerator/HepMC/HepMCEx01/History | 5 +- .../HepMC/HepMCEx01/hepmcEx01.cc | 8 +- .../HepMC/HepMCEx01/hepmc_ascii.out | 2 +- .../HepMC/HepMCEx01/hepmc_pygen.out | 2 +- .../HepMC/HepMCEx01/include/ExN04EMPhysics.hh | 2 +- .../HepMCEx01/include/ExN04GeneralPhysics.hh | 2 +- .../HepMCEx01/include/ExN04HadronPhysics.hh | 2 +- .../HepMCEx01/include/ExN04IonPhysics.hh | 2 +- .../HepMCEx01/include/ExN04MuonPhysics.hh | 2 +- .../HepMC/HepMCEx01/include/ExN04RunAction.hh | 2 +- .../HepMCEx01/include/ExN04SteppingVerbose.hh | 2 +- .../HepMC/HepMCEx01/src/ExN04EMPhysics.cc | 2 +- .../HepMCEx01/src/ExN04GeneralPhysics.cc | 2 +- .../HepMC/HepMCEx01/src/ExN04HadronPhysics.cc | 2 +- .../HepMC/HepMCEx01/src/ExN04IonPhysics.cc | 2 +- .../HepMC/HepMCEx01/src/ExN04MuonPhysics.cc | 2 +- .../HepMC/HepMCEx01/src/ExN04PhysicsList.cc | 2 +- .../HepMC/HepMCEx01/src/ExN04RunAction.cc | 2 +- .../HepMCEx01/src/ExN04SteppingVerbose.cc | 2 +- .../HepMC/HepMCEx01/src/ExN04VisManager.cc | 145 - .../HepMC/HepMCEx02-clhep/History | 5 +- .../HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc | 8 +- .../HepMC/HepMCEx02-clhep/hepmc_ascii.out | 2 +- .../HepMC/HepMCEx02-clhep/hepmc_pygen.out | 2 +- .../HepMCEx02-clhep/include/H02EMPhysics.hh | 2 +- .../include/H02GeneralPhysics.hh | 2 +- .../HepMCEx02-clhep/include/H02IonPhysics.hh | 2 +- .../HepMCEx02-clhep/include/H02MuonPhysics.hh | 2 +- .../HepMCEx02-clhep/include/H02VisManager.hh | 44 - .../HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc | 2 +- .../HepMCEx02-clhep/src/H02GeneralPhysics.cc | 2 +- .../HepMCEx02-clhep/src/H02IonPhysics.cc | 2 +- .../HepMCEx02-clhep/src/H02MuonPhysics.cc | 2 +- .../HepMCEx02-clhep/src/H02PhysicsList.cc | 2 +- .../HepMCEx02-clhep/src/H02VisManager.cc | 151 - .../eventgenerator/HepMC/HepMCEx02/History | 5 +- .../HepMC/HepMCEx02/hepmcEx02.cc | 8 +- .../HepMC/HepMCEx02/hepmc_ascii.out | 2 +- .../HepMC/HepMCEx02/hepmc_pygen.out | 2 +- .../HepMC/HepMCEx02/include/H02EMPhysics.hh | 2 +- .../HepMCEx02/include/H02GeneralPhysics.hh | 2 +- .../HepMC/HepMCEx02/include/H02IonPhysics.hh | 2 +- .../HepMC/HepMCEx02/include/H02MuonPhysics.hh | 2 +- .../HepMC/HepMCEx02/include/H02VisManager.hh | 44 - .../HepMC/HepMCEx02/src/H02EMPhysics.cc | 2 +- .../HepMC/HepMCEx02/src/H02GeneralPhysics.cc | 2 +- .../HepMC/HepMCEx02/src/H02IonPhysics.cc | 2 +- .../HepMC/HepMCEx02/src/H02MuonPhysics.cc | 2 +- .../HepMC/HepMCEx02/src/H02PhysicsList.cc | 2 +- .../HepMC/HepMCEx02/src/H02VisManager.cc | 151 - .../extended/eventgenerator/HepMC/History | 5 +- .../extended/eventgenerator/exgps/History | 3 + .../extended/eventgenerator/exgps/exGPS.cc | 4 +- .../include/exGPSEventActionMessenger.hh | 2 +- .../exgps/include/exGPSVisManager.hh | 76 - .../exgps/src/exGPSEventActionMessenger.cc | 2 +- .../exgps/src/exGPSVisManager.cc | 163 - examples/extended/field/BlineTracer/History | 5 +- .../BlineTracer/include/G4BlineEquation.hh | 2 +- .../BlineTracer/include/G4BlineEventAction.hh | 2 +- .../include/G4BlinePrimaryGeneratorAction.hh | 2 +- .../include/G4BlineSteppingAction.hh | 2 +- .../BlineTracer/include/G4BlineTracer.hh | 2 +- .../include/G4BlineTracerMessenger.hh | 2 +- .../field/BlineTracer/src/G4BlineEquation.cc | 2 +- .../BlineTracer/src/G4BlineEventAction.cc | 2 +- .../src/G4BlinePrimaryGeneratorAction.cc | 2 +- .../BlineTracer/src/G4BlineSteppingAction.cc | 2 +- .../field/BlineTracer/src/G4BlineTracer.cc | 2 +- .../BlineTracer/src/G4BlineTracerMessenger.cc | 2 +- examples/extended/field/History | 5 +- examples/extended/field/field01/History | 5 +- examples/extended/field/field01/field01.cc | 8 +- examples/extended/field/field01/field01.out | 94 +- .../field/field01/include/F01CalorHit.hh | 2 +- .../field/field01/include/F01CalorimeterSD.hh | 2 +- .../include/F01DetectorConstruction.hh | 2 +- .../field01/include/F01DetectorMessenger.hh | 2 +- .../field/field01/include/F01EventAction.hh | 2 +- .../include/F01EventActionMessenger.hh | 2 +- .../field01/include/F01FieldMessenger.hh | 2 +- .../field/field01/include/F01FieldSetup.hh | 2 +- .../field/field01/include/F01PhysicsList.hh | 2 +- .../include/F01PhysicsListMessenger.hh | 2 +- .../include/F01PrimaryGeneratorAction.hh | 2 +- .../include/F01PrimaryGeneratorMessenger.hh | 2 +- .../field/field01/include/F01RunAction.hh | 2 +- .../field/field01/include/F01RunMessenger.hh | 2 +- .../field/field01/include/F01StepCut.hh | 2 +- .../field01/include/F01SteppingAction.hh | 2 +- .../field01/include/F01SteppingMessenger.hh | 2 +- .../field01/include/F01SteppingVerbose.hh | 2 +- .../field/field01/include/F01VisManager.hh | 66 - .../extended/field/field01/src/F01CalorHit.cc | 2 +- .../field/field01/src/F01CalorimeterSD.cc | 2 +- .../field01/src/F01DetectorConstruction.cc | 2 +- .../field/field01/src/F01DetectorMessenger.cc | 2 +- .../field/field01/src/F01EventAction.cc | 2 +- .../field01/src/F01EventActionMessenger.cc | 2 +- .../field/field01/src/F01FieldMessenger.cc | 2 +- .../field/field01/src/F01FieldSetup.cc | 2 +- .../field/field01/src/F01PhysicsList.cc | 2 +- .../field01/src/F01PhysicsListMessenger.cc | 2 +- .../field01/src/F01PrimaryGeneratorAction.cc | 2 +- .../src/F01PrimaryGeneratorMessenger.cc | 2 +- .../field/field01/src/F01RunAction.cc | 2 +- .../field/field01/src/F01RunMessenger.cc | 2 +- .../extended/field/field01/src/F01StepCut.cc | 2 +- .../field/field01/src/F01SteppingAction.cc | 2 +- .../field/field01/src/F01SteppingMessenger.cc | 2 +- .../field/field01/src/F01SteppingVerbose.cc | 2 +- .../field/field01/src/F01VisManager.cc | 145 - examples/extended/field/field02/History | 5 +- examples/extended/field/field02/field02.cc | 8 +- examples/extended/field/field02/field02.out | 7574 +++++---- .../field/field02/include/F02CalorHit.hh | 2 +- .../field/field02/include/F02CalorimeterSD.hh | 2 +- .../include/F02DetectorConstruction.hh | 2 +- .../field02/include/F02DetectorMessenger.hh | 2 +- .../field02/include/F02ElectricFieldSetup.hh | 2 +- .../field/field02/include/F02EventAction.hh | 2 +- .../include/F02EventActionMessenger.hh | 2 +- .../field02/include/F02FieldMessenger.hh | 2 +- .../field/field02/include/F02PhysicsList.hh | 2 +- .../include/F02PhysicsListMessenger.hh | 2 +- .../include/F02PrimaryGeneratorAction.hh | 2 +- .../include/F02PrimaryGeneratorMessenger.hh | 2 +- .../field/field02/include/F02RunAction.hh | 2 +- .../field/field02/include/F02RunMessenger.hh | 2 +- .../field/field02/include/F02StepCut.hh | 2 +- .../field02/include/F02SteppingAction.hh | 2 +- .../field02/include/F02SteppingMessenger.hh | 2 +- .../field02/include/F02SteppingVerbose.hh | 2 +- .../field/field02/include/F02VisManager.hh | 66 - .../extended/field/field02/src/F02CalorHit.cc | 2 +- .../field/field02/src/F02CalorimeterSD.cc | 2 +- .../field02/src/F02DetectorConstruction.cc | 2 +- .../field/field02/src/F02DetectorMessenger.cc | 2 +- .../field02/src/F02ElectricFieldSetup.cc | 2 +- .../field/field02/src/F02EventAction.cc | 2 +- .../field02/src/F02EventActionMessenger.cc | 2 +- .../field/field02/src/F02FieldMessenger.cc | 2 +- .../field/field02/src/F02PhysicsList.cc | 2 +- .../field02/src/F02PhysicsListMessenger.cc | 2 +- .../field02/src/F02PrimaryGeneratorAction.cc | 2 +- .../src/F02PrimaryGeneratorMessenger.cc | 2 +- .../field/field02/src/F02RunAction.cc | 2 +- .../field/field02/src/F02RunMessenger.cc | 2 +- .../extended/field/field02/src/F02StepCut.cc | 2 +- .../field/field02/src/F02SteppingAction.cc | 2 +- .../field/field02/src/F02SteppingMessenger.cc | 2 +- .../field/field02/src/F02SteppingVerbose.cc | 2 +- .../field/field02/src/F02VisManager.cc | 145 - examples/extended/field/field03/History | 5 +- examples/extended/field/field03/field03.cc | 8 +- examples/extended/field/field03/field03.out | 86 +- .../field/field03/include/F03CalorHit.hh | 2 +- .../field/field03/include/F03CalorimeterSD.hh | 2 +- .../include/F03DetectorConstruction.hh | 2 +- .../field03/include/F03DetectorMessenger.hh | 2 +- .../field/field03/include/F03EventAction.hh | 2 +- .../include/F03EventActionMessenger.hh | 2 +- .../field03/include/F03FieldMessenger.hh | 2 +- .../field/field03/include/F03FieldSetup.hh | 2 +- .../field/field03/include/F03PhysicsList.hh | 2 +- .../include/F03PhysicsListMessenger.hh | 2 +- .../include/F03PrimaryGeneratorAction.hh | 2 +- .../include/F03PrimaryGeneratorMessenger.hh | 2 +- .../field/field03/include/F03RunAction.hh | 2 +- .../field/field03/include/F03RunMessenger.hh | 2 +- .../field/field03/include/F03StepCut.hh | 2 +- .../field03/include/F03SteppingAction.hh | 2 +- .../field03/include/F03SteppingMessenger.hh | 2 +- .../field03/include/F03SteppingVerbose.hh | 2 +- .../field/field03/include/F03VisManager.hh | 66 - .../extended/field/field03/src/F03CalorHit.cc | 2 +- .../field/field03/src/F03CalorimeterSD.cc | 2 +- .../field03/src/F03DetectorConstruction.cc | 2 +- .../field/field03/src/F03DetectorMessenger.cc | 2 +- .../field/field03/src/F03EventAction.cc | 2 +- .../field03/src/F03EventActionMessenger.cc | 2 +- .../field/field03/src/F03FieldMessenger.cc | 2 +- .../field/field03/src/F03FieldSetup.cc | 2 +- .../field/field03/src/F03PhysicsList.cc | 2 +- .../field03/src/F03PhysicsListMessenger.cc | 2 +- .../field03/src/F03PrimaryGeneratorAction.cc | 2 +- .../src/F03PrimaryGeneratorMessenger.cc | 2 +- .../field/field03/src/F03RunAction.cc | 2 +- .../field/field03/src/F03RunMessenger.cc | 2 +- .../extended/field/field03/src/F03StepCut.cc | 2 +- .../field/field03/src/F03SteppingAction.cc | 2 +- .../field/field03/src/F03SteppingMessenger.cc | 2 +- .../field/field03/src/F03SteppingVerbose.cc | 2 +- .../field/field03/src/F03VisManager.cc | 145 - examples/extended/g3tog4/History | 5 +- .../extended/g3tog4/clGeometry/clGeometry.cc | 10 +- .../extended/g3tog4/clGeometry/clGeometry.out | 2 +- .../include/G3toG4DetectorConstruction.hh | 2 +- .../clGeometry/include/G3toG4EventAction.hh | 2 +- .../include/G3toG4EventActionMessenger.hh | 2 +- .../clGeometry/include/G3toG4PhysicsList.hh | 2 +- .../include/G3toG4PrimaryGeneratorAction.hh | 2 +- .../clGeometry/include/G3toG4RunAction.hh | 2 +- .../clGeometry/include/G3toG4VisManager.hh | 66 - .../src/G3toG4DetectorConstruction.cc | 2 +- .../clGeometry/src/G3toG4EventAction.cc | 2 +- .../src/G3toG4EventActionMessenger.cc | 2 +- .../clGeometry/src/G3toG4PhysicsList.cc | 2 +- .../src/G3toG4PrimaryGeneratorAction.cc | 2 +- .../g3tog4/clGeometry/src/G3toG4RunAction.cc | 2 +- .../g3tog4/clGeometry/src/G3toG4VisManager.cc | 146 - examples/extended/g3tog4/cltog4/cltog4.cc | 6 +- examples/extended/g3tog4/cltog4/cltog4.out | 2 +- .../include/G3toG4DetectorConstruction.hh | 2 +- .../cltog4/include/G3toG4EventAction.hh | 2 +- .../include/G3toG4EventActionMessenger.hh | 2 +- .../cltog4/include/G3toG4PhysicsList.hh | 2 +- .../include/G3toG4PrimaryGeneratorAction.hh | 2 +- .../g3tog4/cltog4/include/G3toG4RunAction.hh | 2 +- .../g3tog4/cltog4/include/G3toG4VisManager.hh | 66 - .../cltog4/src/G3toG4DetectorConstruction.cc | 2 +- .../g3tog4/cltog4/src/G3toG4EventAction.cc | 2 +- .../cltog4/src/G3toG4EventActionMessenger.cc | 2 +- .../g3tog4/cltog4/src/G3toG4PhysicsList.cc | 2 +- .../src/G3toG4PrimaryGeneratorAction.cc | 2 +- .../g3tog4/cltog4/src/G3toG4RunAction.cc | 2 +- .../g3tog4/cltog4/src/G3toG4VisManager.cc | 146 - examples/extended/gdml/History | 5 +- examples/extended/gdml/g4_gdml_read_write.cc | 6 +- .../include/g4rwPrimaryGeneratorAction.hh | 2 +- .../gdml/src/g4rwDetectorConstruction.cc | 2 +- examples/extended/gdml/src/g4rwPhysicsList.cc | 2 +- .../gdml/src/g4rwPrimaryGeneratorAction.cc | 2 +- examples/extended/gdml/src/g4rwVisManager.cc | 141 - examples/extended/geometry/olap/History | 5 +- .../geometry/olap/include/G4GeoNav.hh | 2 +- .../geometry/olap/include/OlapDetConstr.hh | 2 +- .../geometry/olap/include/OlapEventAction.hh | 2 +- .../geometry/olap/include/OlapGenerator.hh | 2 +- .../geometry/olap/include/OlapLogManager.hh | 2 +- .../geometry/olap/include/OlapManager.hh | 2 +- .../olap/include/OlapManagerMessenger.hh | 2 +- .../geometry/olap/include/OlapNotify.hh | 2 +- .../geometry/olap/include/OlapPhysicsList.hh | 2 +- .../geometry/olap/include/OlapRunAction.hh | 2 +- .../olap/include/OlapSteppingAction.hh | 2 +- .../geometry/olap/include/RandomDetector.hh | 2 +- .../geometry/olap/include/SolidAnalyser.hh | 2 +- .../extended/geometry/olap/include/tree.hh | 2 +- examples/extended/geometry/olap/olapex.cc | 10 +- .../extended/geometry/olap/src/G4GeoNav.cc | 2 +- .../geometry/olap/src/OlapDetConstr.cc | 12 +- .../geometry/olap/src/OlapEventAction.cc | 2 +- .../geometry/olap/src/OlapGenerator.cc | 6 +- .../geometry/olap/src/OlapLogManager.cc | 2 +- .../extended/geometry/olap/src/OlapManager.cc | 2 +- .../geometry/olap/src/OlapManagerMessenger.cc | 2 +- .../extended/geometry/olap/src/OlapNotify.cc | 2 +- .../geometry/olap/src/OlapPhysicsList.cc | 2 +- .../geometry/olap/src/OlapRunAction.cc | 2 +- .../geometry/olap/src/OlapSteppingAction.cc | 2 +- .../geometry/olap/src/OlapVisManager.cc | 147 - .../geometry/olap/src/RandomDetector.cc | 10 +- .../geometry/olap/src/SolidAnalyser.cc | 2 +- examples/extended/medical/DICOM/14196616.dat | 4 +- examples/extended/medical/DICOM/14196616.g4 | Bin 721221 -> 524326 bytes examples/extended/medical/DICOM/14196633.dat | 4 +- examples/extended/medical/DICOM/14196633.g4 | Bin 721221 -> 524326 bytes examples/extended/medical/DICOM/14196650.dat | 4 +- examples/extended/medical/DICOM/14196650.g4 | Bin 721221 -> 524326 bytes .../extended/medical/DICOM/CT2Density.dat | 22 +- examples/extended/medical/DICOM/Colormap.dat | 21 + examples/extended/medical/DICOM/History | 8 +- examples/extended/medical/DICOM/README | 18 +- examples/extended/medical/DICOM/dicom.cc | 4 +- .../DICOM/include/DicomConfiguration.hh | 40 +- .../medical/DICOM/include/DicomGeometry.hh | 1 - .../medical/DICOM/include/DicomHandler.hh | 44 +- .../DICOM/include/DicomPatientConstructor.hh | 1 - .../include/DicomPatientParameterisation.hh | 36 +- .../medical/DICOM/include/DicomVisManager.hh | 60 - .../medical/DICOM/src/DicomConfiguration.cc | 141 +- .../medical/DICOM/src/DicomGeometry.cc | 34 +- .../medical/DICOM/src/DicomHandler.cc | 1014 +- .../extended/medical/DICOM/src/DicomOctree.cc | 3 + .../DICOM/src/DicomPatientConstructor.cc | 74 +- .../DICOM/src/DicomPatientParameterisation.cc | 509 +- .../medical/DICOM/src/DicomPhysicsList.cc | 1 - .../medical/DICOM/src/DicomVisManager.cc | 150 - .../medical/GammaTherapy/GammaTherapy.cc | 4 +- .../medical/GammaTherapy/GammaTherapy.in | 4 +- .../medical/GammaTherapy/GammaTherapy.out | 191 +- .../extended/medical/GammaTherapy/History | 21 +- examples/extended/medical/GammaTherapy/README | 0 examples/extended/medical/GammaTherapy/be.in | 21 +- .../extended/medical/GammaTherapy/be_w.in | 12 +- .../extended/medical/GammaTherapy/cu_w.in | 4 +- .../GammaTherapy/include/CheckVolumeSD.hh | 0 .../GammaTherapy/include/DecaysBuilder.hh | 2 +- .../include/DetectorConstruction.hh | 0 .../GammaTherapy/include/DetectorMessenger.hh | 0 .../include/EmBinaryCascadeBuilder.hh | 0 .../include/EmGammaNucleusBuilder.hh | 0 .../include/EmHadronElasticBuilder.hh | 0 .../include/EmIonBinaryCascadeBuilder.hh | 0 .../GammaTherapy/include/EventAction.hh | 0 .../include/EventActionMessenger.hh | 2 +- .../GammaTherapy/include/G4EmHadronBuilder.hh | 2 +- .../include/G4EmHadronBuilder52.hh | 2 +- .../GammaTherapy/include/G4EmMuonBuilder.hh | 2 +- .../GammaTherapy/include/G4EmMuonBuilder52.hh | 2 +- .../GammaTherapy/include/G4EmQEDBuilder.hh | 2 +- .../GammaTherapy/include/G4EmQEDBuilder52.hh | 2 +- .../include/G4LowEnergyQEDBuilder.hh | 2 +- .../include/G4PenelopeQEDBuilder.hh | 2 +- .../include/G4StepLimiterBuilder.hh | 2 +- .../include/G4StepLimiterMessenger.hh | 2 +- .../include/G4StepLimiterPerRegion.hh | 7 +- .../medical/GammaTherapy/include/Histo.hh | 0 .../GammaTherapy/include/ParticlesBuilder.hh | 2 +- .../medical/GammaTherapy/include/PhantomSD.hh | 0 .../GammaTherapy/include/PhysicsList.hh | 6 +- .../include/PhysicsListMessenger.hh | 2 +- .../include/PrimaryGeneratorAction.hh | 0 .../include/PrimaryGeneratorMessenger.hh | 0 .../medical/GammaTherapy/include/RunAction.hh | 0 .../medical/GammaTherapy/include/TargetSD.hh | 0 .../GammaTherapy/include/TrackingAction.hh | 0 .../GammaTherapy/include/VisManager.hh | 77 - .../medical/GammaTherapy/src/CheckVolumeSD.cc | 0 .../medical/GammaTherapy/src/DecaysBuilder.cc | 2 +- .../GammaTherapy/src/DetectorConstruction.cc | 238 +- .../GammaTherapy/src/DetectorMessenger.cc | 0 .../src/EmBinaryCascadeBuilder.cc | 0 .../GammaTherapy/src/EmGammaNucleusBuilder.cc | 11 +- .../src/EmHadronElasticBuilder.cc | 0 .../src/EmIonBinaryCascadeBuilder.cc | 2 +- .../medical/GammaTherapy/src/EventAction.cc | 0 .../GammaTherapy/src/EventActionMessenger.cc | 2 +- .../GammaTherapy/src/G4EmHadronBuilder.cc | 2 +- .../GammaTherapy/src/G4EmHadronBuilder52.cc | 2 +- .../GammaTherapy/src/G4EmMuonBuilder.cc | 2 +- .../GammaTherapy/src/G4EmMuonBuilder52.cc | 2 +- .../GammaTherapy/src/G4EmQEDBuilder.cc | 2 +- .../GammaTherapy/src/G4EmQEDBuilder52.cc | 20 +- .../GammaTherapy/src/G4EmQEDBuilder70.cc | 111 - .../GammaTherapy/src/G4LowEnergyQEDBuilder.cc | 2 +- .../GammaTherapy/src/G4PenelopeQEDBuilder.cc | 2 +- .../GammaTherapy/src/G4StepLimiterBuilder.cc | 26 +- .../src/G4StepLimiterMessenger.cc | 2 +- .../src/G4StepLimiterPerRegion.cc | 8 +- .../medical/GammaTherapy/src/Histo.cc | 0 .../GammaTherapy/src/ParticlesBuilder.cc | 2 +- .../medical/GammaTherapy/src/PhantomSD.cc | 0 .../medical/GammaTherapy/src/PhysicsList.cc | 24 +- .../GammaTherapy/src/PhysicsListMessenger.cc | 2 +- .../src/PrimaryGeneratorAction.cc | 0 .../src/PrimaryGeneratorMessenger.cc | 0 .../medical/GammaTherapy/src/RunAction.cc | 0 .../medical/GammaTherapy/src/TargetSD.cc | 0 .../GammaTherapy/src/TrackingAction.cc | 0 .../medical/GammaTherapy/src/VisManager.cc | 144 - examples/extended/optical/LXe/History | 8 +- examples/extended/optical/LXe/LXe.cc | 4 +- examples/extended/optical/LXe/LXe.out | 2 +- .../LXe/src/LXeDetectorConstruction.cc | 2 +- .../extended/optical/LXe/src/LXeVisManager.cc | 137 - examples/extended/parallel/ExDiane/Brachy.cc | 2 +- examples/extended/parallel/ExDiane/History | 5 +- .../ExDiane/include/BrachyAnalysisManager.hh | 2 +- .../include/BrachyDetectorConstruction.hh | 2 +- .../include/BrachyDetectorConstructionI.hh | 2 +- .../include/BrachyDetectorConstructionIr.hh | 2 +- .../BrachyDetectorConstructionLeipzig.hh | 2 +- .../include/BrachyDetectorMessenger.hh | 2 +- .../ExDiane/include/BrachyEventAction.hh | 2 +- .../parallel/ExDiane/include/BrachyFactory.hh | 2 +- .../ExDiane/include/BrachyFactoryI.hh | 2 +- .../ExDiane/include/BrachyFactoryIr.hh | 2 +- .../ExDiane/include/BrachyFactoryLeipzig.hh | 2 +- .../ExDiane/include/BrachyMaterial.hh | 2 +- .../ExDiane/include/BrachyPhantomHit.hh | 2 +- .../include/BrachyPhantomROGeometry.hh | 2 +- .../ExDiane/include/BrachyPhantomSD.hh | 2 +- .../ExDiane/include/BrachyPhysicsList.hh | 2 +- .../include/BrachyPrimaryGeneratorAction.hh | 2 +- .../include/BrachyPrimaryGeneratorActionI.hh | 2 +- .../include/BrachyPrimaryGeneratorActionIr.hh | 2 +- .../ExDiane/include/BrachyRunAction.hh | 2 +- .../ExDiane/include/BrachyRunMessenger.hh | 2 +- .../ExDiane/include/BrachySimulation.hh | 2 +- .../ExDiane/include/BrachyVisManager.hh | 58 - .../ExDiane/src/BrachyAnalysisManager.cc | 2 +- .../ExDiane/src/BrachyDetectorConstruction.cc | 2 +- .../src/BrachyDetectorConstructionI.cc | 2 +- .../src/BrachyDetectorConstructionIr.cc | 2 +- .../src/BrachyDetectorConstructionLeipzig.cc | 2 +- .../ExDiane/src/BrachyDetectorMessenger.cc | 2 +- .../parallel/ExDiane/src/BrachyEventAction.cc | 2 +- .../parallel/ExDiane/src/BrachyFactory.cc | 2 +- .../parallel/ExDiane/src/BrachyFactoryI.cc | 2 +- .../parallel/ExDiane/src/BrachyFactoryIr.cc | 2 +- .../ExDiane/src/BrachyFactoryLeipzig.cc | 2 +- .../parallel/ExDiane/src/BrachyMaterial.cc | 2 +- .../parallel/ExDiane/src/BrachyPhantomHit.cc | 2 +- .../ExDiane/src/BrachyPhantomROGeometry.cc | 2 +- .../parallel/ExDiane/src/BrachyPhantomSD.cc | 2 +- .../parallel/ExDiane/src/BrachyPhysicsList.cc | 2 +- .../src/BrachyPrimaryGeneratorAction.cc | 2 +- .../src/BrachyPrimaryGeneratorActionI.cc | 2 +- .../src/BrachyPrimaryGeneratorActionIr.cc | 2 +- .../parallel/ExDiane/src/BrachyRunAction.cc | 2 +- .../ExDiane/src/BrachyRunMessenger.cc | 2 +- .../parallel/ExDiane/src/BrachySimulation.cc | 4 +- .../parallel/ExDiane/src/BrachyVisManager.cc | 151 - .../ParN02/AnnotatedFiles/G4HCofThisEvent.hh | 120 + .../ParN02/AnnotatedFiles/G4HCofThisEvent.msh | 56 + .../ParN02/AnnotatedFiles/G4String.hh} | 56 +- .../ParN02/AnnotatedFiles/G4String.msh | 31 + .../AnnotatedFiles/G4THitsCollection.hh | 184 + .../AnnotatedFiles/G4THitsCollection.msh | 75 + .../AnnotatedFiles/G4VHitsCollection.hh | 86 + .../AnnotatedFiles/G4VHitsCollection.msh | 81 + .../AnnotatedFiles/MarshaledG4HCofThisEvent.h | 162 + .../ParN02/AnnotatedFiles/MarshaledG4String.h | 137 + .../MarshaledG4THitsCollection.h | 279 + .../MarshaledG4VHitsCollection.h | 262 + examples/extended/parallel/ParN02/History | 9 +- examples/extended/parallel/ParN02/ParN02.cc | 8 +- examples/extended/parallel/ParN02/ParTopC.icc | 2 +- .../include/ExN02ChamberParameterisation.hh | 2 +- .../include/ExN02DetectorConstruction.hh | 2 +- .../ParN02/include/ExN02DetectorMessenger.hh | 2 +- .../ParN02/include/ExN02EventAction.hh | 2 +- .../ParN02/include/ExN02MagneticField.hh | 2 +- .../ParN02/include/ExN02PhysicsList.hh | 2 +- .../include/ExN02PrimaryGeneratorAction.hh | 2 +- .../parallel/ParN02/include/ExN02RunAction.hh | 2 +- .../ParN02/include/ExN02SteppingAction.hh | 2 +- .../ParN02/include/ExN02SteppingVerbose.hh | 2 +- .../ParN02/include/ExN02TrackerHit.hh | 2 +- .../parallel/ParN02/include/ExN02TrackerSD.hh | 2 +- .../ParN02/include/ExN02VisManager.hh | 72 - .../parallel/ParN02/include/ParRunManager.hh | 2 +- .../src/ExN02ChamberParameterisation.cc | 2 +- .../ParN02/src/ExN02DetectorConstruction.cc | 2 +- .../ParN02/src/ExN02DetectorMessenger.cc | 2 +- .../parallel/ParN02/src/ExN02EventAction.cc | 2 +- .../parallel/ParN02/src/ExN02MagneticField.cc | 2 +- .../parallel/ParN02/src/ExN02PhysicsList.cc | 2 +- .../ParN02/src/ExN02PrimaryGeneratorAction.cc | 2 +- .../parallel/ParN02/src/ExN02RunAction.cc | 2 +- .../ParN02/src/ExN02SteppingAction.cc | 2 +- .../ParN02/src/ExN02SteppingVerbose.cc | 2 +- .../parallel/ParN02/src/ExN02TrackerHit.cc | 2 +- .../parallel/ParN02/src/ExN02TrackerSD.cc | 2 +- .../parallel/ParN02/src/ExN02VisManager.cc | 145 - .../ParN04/AnnotatedFiles/G4HCofThisEvent.hh | 120 + .../ParN04/AnnotatedFiles/G4HCofThisEvent.msh | 56 + .../ParN04/AnnotatedFiles/G4String.hh | 52 + .../ParN04/AnnotatedFiles/G4String.msh | 31 + .../AnnotatedFiles/G4THitsCollection.hh | 216 + .../AnnotatedFiles/G4THitsCollection.msh | 177 + .../AnnotatedFiles/G4VHitsCollection.hh | 88 + .../AnnotatedFiles/G4VHitsCollection.msh | 120 + .../AnnotatedFiles/MarshaledG4HCofThisEvent.h | 162 + .../ParN04/AnnotatedFiles/MarshaledG4String.h | 137 + .../MarshaledG4THitsCollection.h | 381 + .../MarshaledG4VHitsCollection.h | 301 + examples/extended/parallel/ParN04/History | 9 +- examples/extended/parallel/ParN04/ParN04.cc | 8 +- examples/extended/parallel/ParN04/ParTopC.icc | 2 +- .../parallel/ParN04/include/ExN04EMPhysics.hh | 2 +- .../ParN04/include/ExN04GeneralPhysics.hh | 2 +- .../ParN04/include/ExN04HadronPhysics.hh | 2 +- .../ParN04/include/ExN04IonPhysics.hh | 2 +- .../ParN04/include/ExN04MuonPhysics.hh | 2 +- .../parallel/ParN04/include/ExN04RunAction.hh | 2 +- .../ParN04/include/ExN04SteppingVerbose.hh | 2 +- .../ParN04/include/ExN04VisManager.hh | 72 - .../parallel/ParN04/include/ParRunManager.hh | 2 +- .../parallel/ParN04/src/ExN04EMPhysics.cc | 2 +- .../ParN04/src/ExN04GeneralPhysics.cc | 2 +- .../parallel/ParN04/src/ExN04HadronPhysics.cc | 2 +- .../parallel/ParN04/src/ExN04IonPhysics.cc | 2 +- .../parallel/ParN04/src/ExN04MuonPhysics.cc | 2 +- .../parallel/ParN04/src/ExN04PhysicsList.cc | 2 +- .../parallel/ParN04/src/ExN04RunAction.cc | 2 +- .../ParN04/src/ExN04SteppingVerbose.cc | 2 +- .../parallel/ParN04/src/ExN04VisManager.cc | 145 - examples/extended/parallel/info/ParGeant4.txt | 140 + examples/extended/persistency/History | 11 +- .../persistency/PersEx01/G4PersEx01.cc | 8 +- .../extended/persistency/PersEx01/GNUmakefile | 5 +- .../PersEx01/HitsAnalyzer/HitsAnalyzer.cc | 25 +- examples/extended/persistency/PersEx01/README | 33 +- .../PersEx01/include/Pers01CalorHit.hh | 2 +- .../PersEx01/include/Pers01CalorimeterSD.hh | 2 +- .../include/Pers01DetectorConstruction.hh | 2 +- .../include/Pers01DetectorMessenger.hh | 2 +- .../PersEx01/include/Pers01EventAction.hh | 2 +- .../include/Pers01EventActionMessenger.hh | 2 +- .../PersEx01/include/Pers01PhysicsList.hh | 2 +- .../include/Pers01PrimaryGeneratorAction.hh | 2 +- .../Pers01PrimaryGeneratorMessenger.hh | 2 +- .../PersEx01/include/Pers01RunAction.hh | 2 +- .../PersEx01/include/Pers01SteppingAction.hh | 2 +- .../PersEx01/include/Pers01SteppingVerbose.hh | 2 +- .../PersEx01/include/Pers01VisManager.hh | 72 - .../PersEx01/src/Pers01CalorHit.cc | 7 +- .../PersEx01/src/Pers01CalorimeterSD.cc | 8 +- .../src/Pers01DetectorConstruction.cc | 2 +- .../PersEx01/src/Pers01DetectorMessenger.cc | 2 +- .../PersEx01/src/Pers01EventAction.cc | 2 +- .../src/Pers01EventActionMessenger.cc | 2 +- .../PersEx01/src/Pers01PhysicsList.cc | 2 +- .../src/Pers01PrimaryGeneratorAction.cc | 2 +- .../src/Pers01PrimaryGeneratorMessenger.cc | 2 +- .../PersEx01/src/Pers01RunAction.cc | 2 +- .../PersEx01/src/Pers01SteppingAction.cc | 2 +- .../PersEx01/src/Pers01SteppingVerbose.cc | 2 +- .../PersEx01/src/Pers01VisManager.cc | 145 - .../extended/persistency/rootio/GNUmakefile | 6 +- .../persistency/rootio/config/binmake.gmk | 20 +- .../persistency/rootio/config/common.gmk | 23 +- .../persistency/rootio/config/g4rootio.pl | 4 +- .../rootio/include/G4DigitRootIO.hh | 2 +- .../rootio/include/G4EventRootIO.hh | 2 +- .../rootio/include/G4HepMCRootIO.hh | 2 +- .../persistency/rootio/include/G4HitRootIO.hh | 2 +- .../rootio/include/G4MCTruthRootIO.hh | 2 +- .../persistency/rootio/include/G4RootEvent.hh | 2 +- .../rootio/include/G4RootIOManager.hh | 2 +- .../rootio/include/G4RootTransManager.hh | 6 +- .../persistency/rootio/src/G4DigitRootIO.cc | 8 +- .../persistency/rootio/src/G4EventRootIO.cc | 14 +- .../persistency/rootio/src/G4HepMCRootIO.cc | 8 +- .../persistency/rootio/src/G4HitRootIO.cc | 2 +- .../persistency/rootio/src/G4MCTruthRootIO.cc | 8 +- .../persistency/rootio/src/G4RootEvent.cc | 6 +- .../persistency/rootio/src/G4RootIOManager.cc | 2 +- .../rootio/src/G4RootTransManager.cc | 16 +- .../extended/radioactivedecay/exrdm/History | 13 +- .../extended/radioactivedecay/exrdm/README | 2 +- .../extended/radioactivedecay/exrdm/exRDM.cc | 4 +- .../extended/radioactivedecay/exrdm/exrdm.out | 2 +- .../exrdm/include/exrdmPhysListEmStandard.hh | 5 + .../exrdm/include/exrdmVisManager.hh | 72 - .../exrdm/macros/currentEvent.rndm | 2 +- .../radioactivedecay/exrdm/macros/runall.log | 1999 +-- .../radioactivedecay/exrdm/macros/test.aida | Bin 0 -> 1376 bytes .../radioactivedecay/exrdm/macros/test.mac | 40 + .../exrdm/src/exrdmPhysListEmStandard.cc | 20 +- .../exrdm/src/exrdmPhysListParticles.cc | 8 + .../exrdm/src/exrdmPhysicsList.cc | 62 +- .../exrdm/src/exrdmPhysicsListMessenger.cc~ | 113 - .../exrdm/src/exrdmVisManager.cc | 203 - examples/extended/runAndEvent/RE01/RE01.cc | 18 +- .../RE01/include/RE01BosonPhysics.hh | 2 +- .../RE01/include/RE01CalorimeterHit.hh | 9 +- .../include/RE01CalorimeterParametrisation.hh | 2 +- .../RE01/include/RE01CalorimeterROGeometry.hh | 2 +- .../RE01/include/RE01CalorimeterSD.hh | 2 +- .../RE01/include/RE01DecayPhysics.hh | 2 +- .../RE01/include/RE01DetectorConstruction.hh | 2 +- .../RE01/include/RE01DetectorParameterDef.hh | 2 +- .../runAndEvent/RE01/include/RE01DummySD.hh | 2 +- .../RE01/include/RE01EventAction.hh | 2 +- .../runAndEvent/RE01/include/RE01Field.hh | 2 +- .../RE01/include/RE01HadronPhysics.hh | 2 +- .../RE01/include/RE01IonPhysics.hh | 2 +- .../RE01/include/RE01LeptonPhysics.hh | 2 +- .../RE01/include/RE01PhysicsList.hh | 2 +- .../include/RE01PrimaryGeneratorAction.hh | 2 +- .../include/RE01PrimaryGeneratorMessenger.hh | 2 +- .../RE01/include/RE01RegionInformation.hh | 2 +- .../runAndEvent/RE01/include/RE01RunAction.hh | 2 +- .../RE01/include/RE01StackingAction.hh | 2 +- .../RE01/include/RE01SteppingAction.hh | 2 +- .../RE01/include/RE01TrackInformation.hh | 2 +- .../RE01/include/RE01TrackerHit.hh | 9 +- .../include/RE01TrackerParametrisation.hh | 2 +- .../runAndEvent/RE01/include/RE01TrackerSD.hh | 2 +- .../RE01/include/RE01TrackingAction.hh | 2 +- .../RE01/include/RE01Trajectory.hh | 8 +- examples/extended/runAndEvent/RE01/sample.out | 2 +- .../runAndEvent/RE01/src/RE01BosonPhysics.cc | 2 +- .../RE01/src/RE01CalorimeterHit.cc | 77 +- .../src/RE01CalorimeterParametrisation.cc | 2 +- .../RE01/src/RE01CalorimeterROGeometry.cc | 2 +- .../runAndEvent/RE01/src/RE01CalorimeterSD.cc | 2 +- .../runAndEvent/RE01/src/RE01DecayPhysics.cc | 2 +- .../RE01/src/RE01DetectorConstruction.cc | 2 +- .../RE01/src/RE01DetectorParameterDef.icc | 2 +- .../runAndEvent/RE01/src/RE01DummySD.cc | 2 +- .../runAndEvent/RE01/src/RE01EventAction.cc | 2 +- .../runAndEvent/RE01/src/RE01Field.cc | 2 +- .../runAndEvent/RE01/src/RE01HadronPhysics.cc | 2 +- .../runAndEvent/RE01/src/RE01IonPhysics.cc | 2 +- .../runAndEvent/RE01/src/RE01LeptonPhysics.cc | 2 +- .../runAndEvent/RE01/src/RE01PhysicsList.cc | 2 +- .../RE01/src/RE01PrimaryGeneratorAction.cc | 2 +- .../RE01/src/RE01PrimaryGeneratorMessenger.cc | 2 +- .../RE01/src/RE01RegionInformation.cc | 2 +- .../runAndEvent/RE01/src/RE01RunAction.cc | 2 +- .../RE01/src/RE01StackingAction.cc | 2 +- .../RE01/src/RE01SteppingAction.cc | 2 +- .../RE01/src/RE01TrackInformation.cc | 2 +- .../runAndEvent/RE01/src/RE01TrackerHit.cc | 74 +- .../RE01/src/RE01TrackerParametrisation.cc | 2 +- .../runAndEvent/RE01/src/RE01TrackerSD.cc | 2 +- .../RE01/src/RE01TrackingAction.cc | 2 +- .../runAndEvent/RE01/src/RE01Trajectory.cc | 89 +- examples/novice/N01/History | 5 +- examples/novice/N01/exampleN01.cc | 2 +- examples/novice/N01/exampleN01.out | 5 +- .../N01/include/ExN01DetectorConstruction.hh | 2 +- .../novice/N01/include/ExN01PhysicsList.hh | 2 +- .../include/ExN01PrimaryGeneratorAction.hh | 2 +- .../N01/src/ExN01DetectorConstruction.cc | 2 +- examples/novice/N01/src/ExN01PhysicsList.cc | 2 +- .../N01/src/ExN01PrimaryGeneratorAction.cc | 2 +- examples/novice/N02/History | 17 +- examples/novice/N02/exampleN02.cc | 8 +- examples/novice/N02/exampleN02.out | 5992 ++----- .../include/ExN02ChamberParameterisation.hh | 2 +- .../N02/include/ExN02DetectorConstruction.hh | 2 +- .../N02/include/ExN02DetectorMessenger.hh | 2 +- .../novice/N02/include/ExN02EventAction.hh | 2 +- .../novice/N02/include/ExN02MagneticField.hh | 2 +- .../novice/N02/include/ExN02PhysicsList.hh | 2 +- .../include/ExN02PrimaryGeneratorAction.hh | 2 +- examples/novice/N02/include/ExN02RunAction.hh | 2 +- .../novice/N02/include/ExN02SteppingAction.hh | 2 +- .../N02/include/ExN02SteppingVerbose.hh | 2 +- .../novice/N02/include/ExN02TrackerHit.hh | 2 +- examples/novice/N02/include/ExN02TrackerSD.hh | 2 +- .../novice/N02/include/ExN02VisManager.hh | 72 - .../N02/src/ExN02ChamberParameterisation.cc | 2 +- .../N02/src/ExN02DetectorConstruction.cc | 20 +- .../novice/N02/src/ExN02DetectorMessenger.cc | 2 +- examples/novice/N02/src/ExN02EventAction.cc | 2 +- examples/novice/N02/src/ExN02MagneticField.cc | 2 +- examples/novice/N02/src/ExN02PhysicsList.cc | 9 +- .../N02/src/ExN02PrimaryGeneratorAction.cc | 2 +- examples/novice/N02/src/ExN02RunAction.cc | 2 +- .../novice/N02/src/ExN02SteppingAction.cc | 2 +- .../novice/N02/src/ExN02SteppingVerbose.cc | 2 +- examples/novice/N02/src/ExN02TrackerHit.cc | 6 +- examples/novice/N02/src/ExN02TrackerSD.cc | 2 +- examples/novice/N02/src/ExN02VisManager.cc | 145 - examples/novice/N02/vis.mac | 1 + examples/novice/N03/History | 17 +- examples/novice/N03/exampleN03.cc | 10 +- examples/novice/N03/exampleN03.out | 147 +- .../N03/include/ExN03DetectorConstruction.hh | 2 +- .../N03/include/ExN03DetectorMessenger.hh | 2 +- .../novice/N03/include/ExN03EventAction.hh | 2 +- .../N03/include/ExN03EventActionMessenger.hh | 2 +- .../novice/N03/include/ExN03PhysicsList.hh | 2 +- .../include/ExN03PrimaryGeneratorAction.hh | 2 +- .../include/ExN03PrimaryGeneratorMessenger.hh | 2 +- examples/novice/N03/include/ExN03RunAction.hh | 2 +- .../novice/N03/include/ExN03SteppingAction.hh | 2 +- .../N03/include/ExN03SteppingVerbose.hh | 2 +- .../novice/N03/include/ExN03VisManager.hh | 72 - .../N03/src/ExN03DetectorConstruction.cc | 2 +- .../novice/N03/src/ExN03DetectorMessenger.cc | 2 +- examples/novice/N03/src/ExN03EventAction.cc | 10 +- .../N03/src/ExN03EventActionMessenger.cc | 2 +- examples/novice/N03/src/ExN03PhysicsList.cc | 2 +- .../N03/src/ExN03PrimaryGeneratorAction.cc | 2 +- .../N03/src/ExN03PrimaryGeneratorMessenger.cc | 2 +- examples/novice/N03/src/ExN03RunAction.cc | 2 +- .../novice/N03/src/ExN03SteppingAction.cc | 10 +- .../novice/N03/src/ExN03SteppingVerbose.cc | 2 +- examples/novice/N03/src/ExN03VisManager.cc | 145 - examples/novice/N03/visTutor/History | 3 + examples/novice/N04/History | 5 +- examples/novice/N04/exampleN04.EMtest.out | 143 +- examples/novice/N04/exampleN04.cc | 8 +- examples/novice/N04/exampleN04.out | 139 +- examples/novice/N04/include/ExN04RunAction.hh | 2 +- .../N04/include/ExN04SteppingVerbose.hh | 2 +- .../novice/N04/include/ExN04VisManager.hh | 72 - examples/novice/N04/src/ExN04RunAction.cc | 2 +- .../novice/N04/src/ExN04SteppingVerbose.cc | 2 +- examples/novice/N04/src/ExN04VisManager.cc | 145 - examples/novice/N05/History | 8 +- examples/novice/N05/exampleN05.cc | 8 +- examples/novice/N05/exampleN05.out | 322 +- .../novice/N05/include/ExN05CalorimeterHit.hh | 2 +- .../novice/N05/include/ExN05CalorimeterSD.hh | 2 +- .../N05/include/ExN05DetectorConstruction.hh | 2 +- .../N05/include/ExN05DetectorMessenger.hh | 2 +- .../novice/N05/include/ExN05EMShowerModel.hh | 2 +- .../novice/N05/include/ExN05EnergySpot.hh | 2 +- .../novice/N05/include/ExN05EventAction.hh | 2 +- .../N05/include/ExN05EventActionMessenger.hh | 2 +- .../novice/N05/include/ExN05MaxTimeCuts.hh | 2 +- .../novice/N05/include/ExN05MinEkineCuts.hh | 2 +- .../novice/N05/include/ExN05MinRangeCuts.hh | 2 +- .../novice/N05/include/ExN05PhysicsList.hh | 2 +- examples/novice/N05/include/ExN05PiModel.hh | 2 +- .../N05/include/ExN05PionShowerModel.hh | 2 +- .../include/ExN05PrimaryGeneratorAction.hh | 2 +- examples/novice/N05/include/ExN05RunAction.hh | 2 +- .../novice/N05/include/ExN05SpecialCuts.hh | 2 +- .../novice/N05/include/ExN05SteppingAction.hh | 2 +- .../include/ExN05SteppingActionMessenger.hh | 2 +- .../novice/N05/include/ExN05VisManager.hh | 70 - .../novice/N05/src/ExN05CalorimeterHit.cc | 2 +- examples/novice/N05/src/ExN05CalorimeterSD.cc | 2 +- .../N05/src/ExN05DetectorConstruction.cc | 2 +- .../novice/N05/src/ExN05DetectorMessenger.cc | 2 +- examples/novice/N05/src/ExN05EMShowerModel.cc | 8 +- examples/novice/N05/src/ExN05EnergySpot.cc | 2 +- examples/novice/N05/src/ExN05EventAction.cc | 2 +- .../N05/src/ExN05EventActionMessenger.cc | 2 +- examples/novice/N05/src/ExN05MaxTimeCuts.cc | 2 +- examples/novice/N05/src/ExN05MinEkineCuts.cc | 2 +- examples/novice/N05/src/ExN05MinRangeCuts.cc | 2 +- examples/novice/N05/src/ExN05PhysicsList.cc | 2 +- examples/novice/N05/src/ExN05PiModel.cc | 2 +- .../novice/N05/src/ExN05PionShowerModel.cc | 6 +- .../N05/src/ExN05PrimaryGeneratorAction.cc | 2 +- examples/novice/N05/src/ExN05RunAction.cc | 2 +- examples/novice/N05/src/ExN05SpecialCuts.cc | 2 +- .../novice/N05/src/ExN05SteppingAction.cc | 2 +- .../N05/src/ExN05SteppingActionMessenger.cc | 2 +- examples/novice/N05/src/ExN05VisManager.cc | 143 - examples/novice/N05/src/RandomGamma.cc | 15 +- examples/novice/N06/History | 11 +- examples/novice/N06/exampleN06.cc | 8 +- examples/novice/N06/exampleN06.out | 837 +- .../N06/include/ExN06DetectorConstruction.hh | 2 +- .../novice/N06/include/ExN06EventAction.hh | 2 +- .../novice/N06/include/ExN06PhysicsList.hh | 2 +- .../N06/include/ExN06PhysicsListMessenger.hh | 2 +- .../include/ExN06PrimaryGeneratorAction.hh | 2 +- .../include/ExN06PrimaryGeneratorMessenger.hh | 2 +- examples/novice/N06/include/ExN06RunAction.hh | 2 +- .../novice/N06/include/ExN06StackingAction.hh | 2 +- .../N06/include/ExN06SteppingVerbose.hh | 2 +- .../novice/N06/include/ExN06VisManager.hh | 72 - .../N06/src/ExN06DetectorConstruction.cc | 2 +- examples/novice/N06/src/ExN06EventAction.cc | 2 +- examples/novice/N06/src/ExN06PhysicsList.cc | 10 +- .../N06/src/ExN06PhysicsListMessenger.cc | 6 +- .../N06/src/ExN06PrimaryGeneratorMessenger.cc | 2 +- .../N06/src/ExN06PrimaryGeneratoraction.cc | 8 +- examples/novice/N06/src/ExN06RunAction.cc | 2 +- .../novice/N06/src/ExN06StackingAction.cc | 2 +- .../novice/N06/src/ExN06SteppingVerbose.cc | 2 +- examples/novice/N06/src/ExN06VisManager.cc | 145 - examples/novice/N07/History | 7 +- examples/novice/N07/exampleN07.cc | 8 +- examples/novice/N07/exampleN07.out | 394 +- examples/novice/N07/include/ExN07CalorHit.hh | 2 +- .../novice/N07/include/ExN07CalorimeterSD.hh | 2 +- .../N07/include/ExN07DetectorConstruction.hh | 2 +- .../N07/include/ExN07DetectorMessenger.hh | 2 +- .../novice/N07/include/ExN07EventAction.hh | 2 +- .../N07/include/ExN07GapParameterisation.hh | 2 +- .../novice/N07/include/ExN07PhysicsList.hh | 2 +- .../include/ExN07PrimaryGeneratorAction.hh | 2 +- examples/novice/N07/include/ExN07Run.hh | 2 +- examples/novice/N07/include/ExN07RunAction.hh | 2 +- examples/novice/N07/src/ExN07CalorHit.cc | 2 +- examples/novice/N07/src/ExN07CalorimeterSD.cc | 2 +- .../N07/src/ExN07DetectorConstruction.cc | 2 +- .../novice/N07/src/ExN07DetectorMessenger.cc | 2 +- examples/novice/N07/src/ExN07EventAction.cc | 2 +- .../N07/src/ExN07GapParameterisation.cc | 2 +- examples/novice/N07/src/ExN07PhysicsList.cc | 2 +- .../N07/src/ExN07PrimaryGeneratorAction.cc | 2 +- examples/novice/N07/src/ExN07Run.cc | 2 +- examples/novice/N07/src/ExN07RunAction.cc | 2 +- physics_lists/electromagnetic/History | 5 +- .../electromagnetic/standard/DecaysBuilder.cc | 2 +- .../electromagnetic/standard/DecaysBuilder.hh | 2 +- .../standard/G4EmHadronBuilder.cc | 2 +- .../standard/G4EmHadronBuilder.hh | 2 +- .../standard/G4EmHadronBuilder52.cc | 2 +- .../standard/G4EmHadronBuilder52.hh | 2 +- .../standard/G4EmHighEnergyBuilder.cc | 2 +- .../standard/G4EmHighEnergyBuilder.hh | 2 +- .../standard/G4EmMuonBuilder.cc | 2 +- .../standard/G4EmMuonBuilder.hh | 2 +- .../standard/G4EmMuonBuilder52.cc | 2 +- .../standard/G4EmMuonBuilder52.hh | 2 +- .../standard/G4EmQEDBuilder.cc | 2 +- .../standard/G4EmQEDBuilder.hh | 2 +- .../standard/G4EmQEDBuilder52.cc | 20 +- .../standard/G4EmQEDBuilder52.hh | 2 +- .../standard/G4EmQEDBuilder70.cc | 2 +- .../standard/G4EmQEDBuilder70.hh | 2 +- .../standard/G4StepLimiterBuilder.cc | 2 +- .../standard/G4StepLimiterBuilder.hh | 2 +- .../standard/G4StepLimiterMessenger.cc | 2 +- .../standard/G4StepLimiterMessenger.hh | 2 +- .../standard/G4StepLimiterPerRegion.cc | 2 +- .../standard/G4StepLimiterPerRegion.hh | 2 +- .../standard/ParticlesBuilder.cc | 2 +- .../standard/ParticlesBuilder.hh | 2 +- .../electromagnetic/standard/PhysicsList.cc | 2 +- .../electromagnetic/standard/PhysicsList.hh | 2 +- .../standard/PhysicsListMessenger.cc | 2 +- .../standard/PhysicsListMessenger.hh | 2 +- physics_lists/hadronic/FTFC/include/FTFC.icc | 18 +- physics_lists/hadronic/FTFC/index.html | 53 - physics_lists/hadronic/FTFP/include/FTFP.icc | 18 +- physics_lists/hadronic/FTFP/index.html | 53 - physics_lists/hadronic/History | 56 +- physics_lists/hadronic/LBE/include/LBE.icc | 64 +- .../hadronic/LBE/include/MinEkineCuts.hh | 2 +- physics_lists/hadronic/LBE/index.html | 53 - .../hadronic/LBE/src/MinEkineCuts.cc | 2 +- physics_lists/hadronic/LHEP/include/LHEP.icc | 18 +- physics_lists/hadronic/LHEP/index.html | 79 - .../hadronic/LHEP_BERT/include/LHEP_BERT.icc | 18 +- physics_lists/hadronic/LHEP_BERT/index.html | 53 - .../LHEP_BERT_HP/include/LHEP_BERT_HP.icc | 18 +- .../hadronic/LHEP_BIC/include/LHEP_BIC.icc | 18 +- physics_lists/hadronic/LHEP_BIC/index.html | 53 - .../LHEP_BIC_HP/include/LHEP_BIC_HP.icc | 18 +- .../hadronic/LHEP_GN/include/LHEP_GN.icc | 18 +- physics_lists/hadronic/LHEP_GN/index.html | 53 - .../hadronic/LHEP_HP/include/LHEP_HP.icc | 18 +- physics_lists/hadronic/LHEP_HP/index.html | 53 - .../hadronic/LHEP_LEAD/include/LHEP_LEAD.icc | 18 +- physics_lists/hadronic/LHEP_LEAD/index.html | 53 - .../LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc | 18 +- .../hadronic/LHEP_LEAD_HP/index.html | 53 - .../LHEP_PRECO/include/LHEP_PRECO.icc | 18 +- physics_lists/hadronic/LHEP_PRECO/index.html | 53 - .../LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc | 18 +- .../hadronic/LHEP_PRECO_HP/index.html | 53 - .../Packaging/include/G4HadronQEDBuilder.hh | 1 + .../hadronic/Packaging/include/plist.tmp | 4 +- physics_lists/hadronic/QGSC/include/QGSC.icc | 18 +- physics_lists/hadronic/QGSC/index.html | 53 - .../hadronic/QGSC_LEAD/include/QGSC_LEAD.icc | 18 +- physics_lists/hadronic/QGSC_LEAD/index.html | 53 - .../QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc | 18 +- .../hadronic/QGSC_LEAD_HP/index.html | 53 - physics_lists/hadronic/QGSP/include/QGSP.icc | 18 +- physics_lists/hadronic/QGSP/index.html | 52 - .../hadronic/QGSP_BERT/include/QGSP_BERT.icc | 18 +- physics_lists/hadronic/QGSP_BERT/index.html | 53 - .../hadronic/QGSP_BIC/include/QGSP_BIC.icc | 18 +- physics_lists/hadronic/QGSP_BIC/index.html | 53 - .../hadronic/QGSP_GN/include/QGSP_GN.icc | 18 +- physics_lists/hadronic/QGSP_GN/index.html | 53 - .../hadronic/QGSP_HP/include/QGSP_HP.icc | 18 +- physics_lists/hadronic/QGSP_HP/index.html | 53 - source/GNUmakefile | 44 +- source/digits_hits/History | 7 +- .../detector/include/G4CellScoreComposer.hh | 2 +- .../detector/include/G4CellScoreValues.hh | 2 +- .../detector/include/G4CellStoreScorer.hh | 2 +- .../include/G4CollectionNameVector.hh | 2 +- .../digits_hits/detector/include/G4HCtable.hh | 2 +- .../detector/include/G4SDManager.hh | 2 +- .../detector/include/G4SDStructure.hh | 2 +- .../detector/include/G4SDmessenger.hh | 2 +- .../detector/include/G4SensitiveVolumeList.hh | 2 +- .../include/G4SensitiveVolumeList.icc | 2 +- .../detector/include/G4TrackLogger.hh | 2 +- .../detector/include/G4VReadOutGeometry.hh | 2 +- .../detector/include/G4VSensitiveDetector.hh | 2 +- .../detector/src/G4CellScoreComposer.cc | 2 +- .../detector/src/G4CellStoreScorer.cc | 2 +- source/digits_hits/detector/src/G4HCtable.cc | 2 +- .../digits_hits/detector/src/G4SDManager.cc | 2 +- .../digits_hits/detector/src/G4SDStructure.cc | 2 +- .../digits_hits/detector/src/G4SDmessenger.cc | 2 +- .../detector/src/G4SensitiveVolumeList.cc | 2 +- .../digits_hits/detector/src/G4TrackLogger.cc | 2 +- .../detector/src/G4VReadOutGeometry.cc | 2 +- .../detector/src/G4VSensitiveDetector.cc | 2 +- .../digits/include/G4DCofThisEvent.hh | 2 +- .../digits/include/G4TDigiCollection.hh | 2 +- source/digits_hits/digits/include/G4VDigi.hh | 26 +- .../digits/include/G4VDigiCollection.hh | 2 +- .../digits_hits/digits/src/G4DCofThisEvent.cc | 2 +- .../digits/src/G4TDigiCollection.cc | 2 +- source/digits_hits/digits/src/G4VDigi.cc | 2 +- .../digits/src/G4VDigiCollection.cc | 2 +- .../hits/include/G4HCofThisEvent.hh | 2 +- .../hits/include/G4THitsCollection.hh | 2 +- source/digits_hits/hits/include/G4VHit.hh | 13 +- .../hits/include/G4VHitsCollection.hh | 2 +- .../digits_hits/hits/src/G4HCofThisEvent.cc | 2 +- .../digits_hits/hits/src/G4THitsCollection.cc | 2 +- source/digits_hits/hits/src/G4VHit.cc | 2 +- .../digits_hits/hits/src/G4VHitsCollection.cc | 2 +- source/event/History | 33 +- source/event/include/G4CellScorer.hh | 2 +- source/event/include/G4CellScorerStore.hh | 2 +- .../include/G4ClassificationOfNewTrack.hh | 2 +- source/event/include/G4EvManMessenger.hh | 2 +- source/event/include/G4Event.hh | 2 +- source/event/include/G4EventManager.hh | 2 +- .../event/include/G4GeneralParticleSource.hh | 2 +- source/event/include/G4HEPEvtInterface.hh | 2 +- source/event/include/G4HEPEvtParticle.hh | 2 +- source/event/include/G4ParticleGun.hh | 2 +- .../event/include/G4ParticleGunMessenger.hh | 2 +- source/event/include/G4PrimaryTransformer.hh | 28 +- source/event/include/G4ScoreTable.hh | 2 +- source/event/include/G4Scorer.hh | 2 +- source/event/include/G4StackChecker.hh | 2 +- source/event/include/G4StackManager.hh | 2 +- source/event/include/G4StackedTrack.hh | 2 +- source/event/include/G4StackingMessenger.hh | 2 +- source/event/include/G4TrackStack.hh | 2 +- source/event/include/G4TrajectoryContainer.hh | 2 +- source/event/include/G4UserEventAction.hh | 2 +- source/event/include/G4UserStackingAction.hh | 2 +- source/event/include/G4VPrimaryGenerator.hh | 2 +- .../event/include/G4VUserEventInformation.hh | 2 +- source/event/include/eventgendefs.hh | 2 +- source/event/include/evmandefs.hh | 2 +- source/event/include/trajectoryControl.hh | 2 +- source/event/src/G4CellScorer.cc | 2 +- source/event/src/G4CellScorerStore.cc | 2 +- source/event/src/G4EvManMessenger.cc | 2 +- source/event/src/G4Event.cc | 2 +- source/event/src/G4EventManager.cc | 2 +- .../src/G4GeneralParticleSourceMessenger.cc | 184 +- source/event/src/G4HEPEvtInterface.cc | 2 +- source/event/src/G4HEPEvtParticle.cc | 2 +- source/event/src/G4ParticleGun.cc | 15 +- source/event/src/G4ParticleGunMessenger.cc | 9 +- source/event/src/G4PrimaryTransformer.cc | 73 +- source/event/src/G4SPSAngDistribution.cc | 2 +- source/event/src/G4SPSEneDistribution.cc | 6 +- source/event/src/G4SPSPosDistribution.cc | 2 +- source/event/src/G4SPSRandomGenerator.cc | 6 +- source/event/src/G4ScoreTable.cc | 2 +- source/event/src/G4Scorer.cc | 2 +- source/event/src/G4SingleParticleSource.cc | 13 +- source/event/src/G4StackChecker.cc | 2 +- source/event/src/G4StackManager.cc | 2 +- source/event/src/G4StackedTrack.cc | 2 +- source/event/src/G4StackingMessenger.cc | 2 +- source/event/src/G4TrackStack.cc | 2 +- source/event/src/G4TrajectoryContainer.cc | 2 +- source/event/src/G4UserEventAction.cc | 2 +- source/event/src/G4UserStackingAction.cc | 2 +- source/event/src/G4VPrimaryGenerator.cc | 2 +- source/g3tog4/GNUmakefile | 6 +- source/g3tog4/History | 10 +- source/g3tog4/include/G3DetTable.hh | 2 +- source/g3tog4/include/G3DetTableEntry.hh | 2 +- source/g3tog4/include/G3Division.hh | 2 +- source/g3tog4/include/G3EleTable.hh | 2 +- source/g3tog4/include/G3G4Interface.hh | 2 +- source/g3tog4/include/G3MatTable.hh | 2 +- source/g3tog4/include/G3MatTableEntry.hh | 2 +- source/g3tog4/include/G3MedTable.hh | 2 +- source/g3tog4/include/G3MedTableEntry.hh | 2 +- source/g3tog4/include/G3PartTable.hh | 2 +- source/g3tog4/include/G3Pos.hh | 2 +- source/g3tog4/include/G3RotTable.hh | 2 +- source/g3tog4/include/G3RotTableEntry.hh | 2 +- source/g3tog4/include/G3SensVolVector.hh | 2 +- source/g3tog4/include/G3VolTable.hh | 2 +- source/g3tog4/include/G3VolTableEntry.hh | 2 +- source/g3tog4/include/G3toG4.hh | 2 +- source/g3tog4/include/G3toG4.inc | 2 +- source/g3tog4/include/G3toG4BuildTree.hh | 2 +- source/g3tog4/include/G3toG4MANY.hh | 2 +- source/g3tog4/include/G3toG4MakeSolid.hh | 2 +- source/g3tog4/include/G3toG4RotationMatrix.hh | 2 +- source/g3tog4/include/gcbank.inc | 2 +- source/g3tog4/src/G3DetTable.cc | 2 +- source/g3tog4/src/G3DetTableEntry.cc | 2 +- source/g3tog4/src/G3Division.cc | 2 +- source/g3tog4/src/G3EleTable.cc | 2 +- source/g3tog4/src/G3MatTable.cc | 2 +- source/g3tog4/src/G3MatTableEntry.cc | 2 +- source/g3tog4/src/G3MedTable.cc | 2 +- source/g3tog4/src/G3MedTableEntry.cc | 2 +- source/g3tog4/src/G3NegVolPars.cc | 6 +- source/g3tog4/src/G3PartTable.cc | 2 +- source/g3tog4/src/G3Pos.cc | 2 +- source/g3tog4/src/G3RotTable.cc | 2 +- source/g3tog4/src/G3RotTableEntry.cc | 2 +- source/g3tog4/src/G3VolTable.cc | 2 +- source/g3tog4/src/G3VolTableEntry.cc | 2 +- source/g3tog4/src/G3fillParams.cc.archive | 2 +- source/g3tog4/src/G3toG4BuildTree.cc | 6 +- source/g3tog4/src/G3toG4MANY.cc | 2 +- source/g3tog4/src/G3toG4MakeSolid.cc | 2 +- source/g3tog4/src/G3toG4RotationMatrix.cc | 2 +- source/g3tog4/src/G4BuildGeom.cc | 2 +- source/g3tog4/src/G4ggclos.cc | 2 +- source/g3tog4/src/G4gsatt.cc | 2 +- source/g3tog4/src/G4gsbool.cc | 2 +- source/g3tog4/src/G4gsdet.cc | 2 +- source/g3tog4/src/G4gsdeta.cc | 2 +- source/g3tog4/src/G4gsdetd.cc | 2 +- source/g3tog4/src/G4gsdeth.cc | 2 +- source/g3tog4/src/G4gsdetu.cc | 2 +- source/g3tog4/src/G4gsdetv.cc | 2 +- source/g3tog4/src/G4gsdk.cc | 2 +- source/g3tog4/src/G4gsdvn.cc | 2 +- source/g3tog4/src/G4gsdvn2.cc | 2 +- source/g3tog4/src/G4gsdvt.cc | 2 +- source/g3tog4/src/G4gsdvt2.cc | 2 +- source/g3tog4/src/G4gsdvx.cc | 2 +- source/g3tog4/src/G4gsmate.cc | 6 +- source/g3tog4/src/G4gsmixt.cc | 2 +- source/g3tog4/src/G4gspart.cc | 2 +- source/g3tog4/src/G4gspos.cc | 2 +- source/g3tog4/src/G4gsposp.cc | 2 +- source/g3tog4/src/G4gsrotm.cc | 2 +- source/g3tog4/src/G4gstmed.cc | 2 +- source/g3tog4/src/G4gstpar.cc | 2 +- source/g3tog4/src/G4gsvolu.cc | 2 +- source/g3tog4/src/clparse.cc | 2 +- source/g3tog4/src/g3routines.F | 2 +- source/g3tog4/src/g3test.F.main | 2 +- source/g3tog4/src/g3tog4.F | 2 +- source/g3tog4/src/g4geom.cc.main | 2 +- source/g3tog4/src/jshape.F | 2 +- source/g3tog4/src/mztog4.F | 2 +- source/g3tog4/src/rztog4.F | 2 +- source/g3tog4/src/tog4.F | 2 +- source/geometry/GNUmakefile | 4 +- .../biasing/include/G4GeometryCell.hh | 2 +- .../biasing/include/G4GeometryCellComp.hh | 2 +- .../include/G4GeometryCellImportance.hh | 2 +- .../biasing/include/G4GeometryCellStep.hh | 2 +- .../include/G4GeometryCellStepStream.hh | 2 +- .../biasing/include/G4GeometryCellWeight.hh | 2 +- source/geometry/biasing/include/G4IStore.hh | 2 +- .../biasing/include/G4ImportanceAlgorithm.hh | 2 +- .../include/G4ImportanceSplitExaminer.hh | 2 +- .../biasing/include/G4Nsplit_Weight.hh | 2 +- .../biasing/include/G4ParallelNavigator.hh | 2 +- .../biasing/include/G4ParallelStepper.hh | 2 +- .../biasing/include/G4ParallelWorld.hh | 2 +- .../geometry/biasing/include/G4VCellScorer.hh | 2 +- .../biasing/include/G4VCellScorerStore.hh | 2 +- .../biasing/include/G4VGCellFinder.hh | 2 +- source/geometry/biasing/include/G4VIStore.hh | 2 +- .../biasing/include/G4VImportanceAlgorithm.hh | 2 +- .../include/G4VImportanceSplitExaminer.hh | 2 +- .../geometry/biasing/include/G4VPGeoDriver.hh | 2 +- .../biasing/include/G4VParallelStepper.hh | 2 +- source/geometry/biasing/include/G4VScorer.hh | 2 +- .../include/G4VWeightWindowAlgorithm.hh | 2 +- .../include/G4VWeightWindowExaminer.hh | 2 +- .../biasing/include/G4VWeightWindowStore.hh | 2 +- .../include/G4WeightWindowAlgorithm.hh | 2 +- .../biasing/include/G4WeightWindowExaminer.hh | 2 +- .../biasing/include/G4WeightWindowStore.hh | 2 +- source/geometry/biasing/src/G4GeometryCell.cc | 2 +- .../biasing/src/G4GeometryCellComp.cc | 2 +- .../biasing/src/G4GeometryCellImportance.cc | 2 +- .../biasing/src/G4GeometryCellStep.cc | 2 +- .../biasing/src/G4GeometryCellStepStream.cc | 2 +- source/geometry/biasing/src/G4IStore.cc | 2 +- .../biasing/src/G4ImportanceAlgorithm.cc | 2 +- .../biasing/src/G4ImportanceSplitExaminer.cc | 2 +- .../geometry/biasing/src/G4Nsplit_Weight.cc | 2 +- .../biasing/src/G4ParallelNavigator.cc | 2 +- .../geometry/biasing/src/G4ParallelStepper.cc | 2 +- .../geometry/biasing/src/G4ParallelWorld.cc | 2 +- source/geometry/biasing/src/G4VCellScorer.cc | 2 +- .../biasing/src/G4VCellScorerStore.cc | 2 +- source/geometry/biasing/src/G4VGCellFinder.cc | 2 +- source/geometry/biasing/src/G4VIStore.cc | 2 +- .../biasing/src/G4VImportanceAlgorithm.cc | 2 +- .../biasing/src/G4VImportanceSplitExaminer.cc | 2 +- source/geometry/biasing/src/G4VPGeoDriver.cc | 2 +- .../biasing/src/G4VParallelStepper.cc | 2 +- source/geometry/biasing/src/G4VScorer.cc | 2 +- .../biasing/src/G4VWeightWindowAlgorithm.cc | 2 +- .../biasing/src/G4VWeightWindowExaminer.cc | 2 +- .../biasing/src/G4VWeightWindowStore.cc | 2 +- .../biasing/src/G4WeightWindowAlgorithm.cc | 2 +- .../biasing/src/G4WeightWindowExaminer.cc | 2 +- .../biasing/src/G4WeightWindowStore.cc | 2 +- source/geometry/divisions/History | 5 +- .../divisions/include/G4PVDivision.hh | 2 +- .../divisions/include/G4PVDivisionFactory.hh | 2 +- .../include/G4ParameterisationBox.hh | 2 +- .../include/G4ParameterisationCons.hh | 2 +- .../include/G4ParameterisationPara.hh | 2 +- .../include/G4ParameterisationPolycone.hh | 2 +- .../include/G4ParameterisationPolyhedra.hh | 2 +- .../include/G4ParameterisationTrd.hh | 2 +- .../include/G4ParameterisationTubs.hh | 2 +- .../include/G4VDivisionParameterisation.hh | 2 +- .../include/G4VDivisionParameterisation.icc | 2 +- source/geometry/divisions/src/G4PVDivision.cc | 2 +- .../divisions/src/G4PVDivisionFactory.cc | 2 +- .../divisions/src/G4ParameterisationBox.cc | 2 +- .../divisions/src/G4ParameterisationCons.cc | 2 +- .../divisions/src/G4ParameterisationPara.cc | 2 +- .../src/G4ParameterisationPolycone.cc | 2 +- .../src/G4ParameterisationPolyhedra.cc | 2 +- .../divisions/src/G4ParameterisationTrd.cc | 2 +- .../divisions/src/G4ParameterisationTubs.cc | 2 +- .../src/G4VDivisionParameterisation.cc | 2 +- .../magneticfield/include/G4CashKarpRKF45.hh | 2 +- .../magneticfield/include/G4ChordFinder.hh | 2 +- .../magneticfield/include/G4ChordFinder.icc | 2 +- .../magneticfield/include/G4ChordFinderSaf.hh | 2 +- .../magneticfield/include/G4ClassicalRK4.hh | 2 +- .../magneticfield/include/G4DELPHIMagField.hh | 2 +- .../magneticfield/include/G4ElectricField.hh | 2 +- .../include/G4ElectroMagneticField.hh | 2 +- .../include/G4EqMagElectricField.hh | 2 +- .../include/G4EquationOfMotion.hh | 2 +- .../include/G4EquationOfMotion.icc | 2 +- .../magneticfield/include/G4ExplicitEuler.hh | 2 +- .../geometry/magneticfield/include/G4Field.hh | 2 +- .../magneticfield/include/G4FieldManager.hh | 2 +- .../magneticfield/include/G4FieldManager.icc | 2 +- .../magneticfield/include/G4FieldTrack.hh | 2 +- .../magneticfield/include/G4FieldTrack.icc | 2 +- .../include/G4HarmonicPolMagField.hh | 2 +- .../include/G4HelixExplicitEuler.hh | 2 +- .../magneticfield/include/G4HelixHeum.hh | 2 +- .../include/G4HelixImplicitEuler.hh | 2 +- .../include/G4HelixSimpleRunge.hh | 2 +- .../magneticfield/include/G4ImplicitEuler.hh | 2 +- .../include/G4LineCurrentMagField.hh | 2 +- .../magneticfield/include/G4LineSection.hh | 2 +- .../include/G4MagErrorStepper.hh | 2 +- .../include/G4MagErrorStepper.icc | 2 +- .../include/G4MagHelicalStepper.hh | 2 +- .../include/G4MagHelicalStepper.icc | 2 +- .../include/G4MagIntegratorDriver.hh | 2 +- .../include/G4MagIntegratorDriver.icc | 2 +- .../include/G4MagIntegratorStepper.hh | 2 +- .../include/G4MagIntegratorStepper.icc | 2 +- .../magneticfield/include/G4Mag_EqRhs.hh | 2 +- .../magneticfield/include/G4Mag_SpinEqRhs.hh | 2 +- .../magneticfield/include/G4Mag_UsualEqRhs.hh | 2 +- .../magneticfield/include/G4MagneticField.hh | 2 +- .../include/G4QuadrupoleMagField.hh | 2 +- .../magneticfield/include/G4RKG3_Stepper.hh | 2 +- .../magneticfield/include/G4SimpleHeum.hh | 2 +- .../magneticfield/include/G4SimpleRunge.hh | 2 +- .../include/G4UniformElectricField.hh | 2 +- .../include/G4UniformMagField.hh | 2 +- .../magneticfield/src/G4CashKarpRKF45.cc | 2 +- .../magneticfield/src/G4ChordFinder.cc | 2 +- .../magneticfield/src/G4ClassicalRK4.cc | 2 +- .../magneticfield/src/G4DELPHIMagField.cc | 2 +- .../magneticfield/src/G4ElectricField.cc | 2 +- .../src/G4ElectroMagneticField.cc | 2 +- .../magneticfield/src/G4EqMagElectricField.cc | 2 +- .../magneticfield/src/G4EquationOfMotion.cc | 2 +- .../magneticfield/src/G4ExplicitEuler.cc | 2 +- .../magneticfield/src/G4FieldManager.cc | 2 +- .../magneticfield/src/G4FieldTrack.cc | 2 +- .../src/G4HarmonicPolMagField.cc | 2 +- .../magneticfield/src/G4HelixExplicitEuler.cc | 2 +- .../geometry/magneticfield/src/G4HelixHeum.cc | 2 +- .../magneticfield/src/G4HelixImplicitEuler.cc | 2 +- .../magneticfield/src/G4HelixSimpleRunge.cc | 2 +- .../magneticfield/src/G4ImplicitEuler.cc | 2 +- .../src/G4LineCurrentMagField.cc | 2 +- .../magneticfield/src/G4LineSection.cc | 2 +- .../magneticfield/src/G4MagErrorStepper.cc | 2 +- .../magneticfield/src/G4MagHelicalStepper.cc | 2 +- .../src/G4MagIntegratorDriver.cc | 2 +- .../src/G4MagIntegratorStepper.cc | 2 +- .../geometry/magneticfield/src/G4Mag_EqRhs.cc | 2 +- .../magneticfield/src/G4Mag_SpinEqRhs.cc | 2 +- .../magneticfield/src/G4Mag_UsualEqRhs.cc | 2 +- .../magneticfield/src/G4MagneticField.cc | 2 +- .../magneticfield/src/G4QuadrupoleMagField.cc | 2 +- .../magneticfield/src/G4RKG3_Stepper.cc | 2 +- .../magneticfield/src/G4SimpleHeum.cc | 2 +- .../magneticfield/src/G4SimpleRunge.cc | 2 +- .../src/G4UniformElectricField.cc | 2 +- .../magneticfield/src/G4UniformMagField.cc | 2 +- source/geometry/management/History | 39 +- .../management/include/G4AffineTransform.hh | 2 +- .../management/include/G4AffineTransform.icc | 2 +- .../management/include/G4AssemblyTriplet.hh | 2 +- .../management/include/G4AssemblyTriplet.icc | 2 +- .../management/include/G4BlockingList.hh | 6 +- .../management/include/G4BlockingList.icc | 2 +- .../management/include/G4GeometryManager.hh | 19 +- .../include/G4IdentityTrajectoryFilter.hh | 2 +- .../management/include/G4LogicalSurface.hh | 2 +- .../management/include/G4LogicalSurface.icc | 2 +- .../management/include/G4LogicalVolume.hh | 24 +- .../management/include/G4LogicalVolume.icc | 14 +- .../include/G4LogicalVolumeStore.hh | 2 +- .../include/G4PhysicalVolumeStore.hh | 2 +- .../management/include/G4ReflectedSolid.hh | 2 +- .../geometry/management/include/G4Region.hh | 22 +- .../geometry/management/include/G4Region.icc | 25 +- .../management/include/G4RegionStore.hh | 2 +- .../management/include/G4SmartVoxelHeader.hh | 2 +- .../management/include/G4SmartVoxelHeader.icc | 2 +- .../management/include/G4SmartVoxelNode.hh | 2 +- .../management/include/G4SmartVoxelNode.icc | 2 +- .../management/include/G4SmartVoxelProxy.hh | 2 +- .../management/include/G4SmartVoxelProxy.icc | 2 +- .../management/include/G4SmartVoxelStat.hh | 2 +- .../management/include/G4SolidStore.hh | 2 +- .../management/include/G4TouchableHandle.hh | 2 +- .../include/G4VCurvedTrajectoryFilter.hh | 2 +- .../include/G4VPVDivisionFactory.hh | 2 +- .../include/G4VPVParameterisation.hh | 2 +- .../management/include/G4VPhysicalVolume.hh | 2 +- .../management/include/G4VPhysicalVolume.icc | 2 +- .../geometry/management/include/G4VSolid.hh | 8 +- .../geometry/management/include/G4VSolid.icc | 2 +- .../management/include/G4VStoreNotifier.hh | 2 +- .../management/include/G4VTouchable.hh | 2 +- .../management/include/G4VTouchable.icc | 2 +- .../include/G4VUserRegionInformation.hh | 2 +- .../management/include/G4VoxelLimits.hh | 2 +- .../management/include/G4VoxelLimits.icc | 2 +- .../geometry/management/include/meshdefs.hh | 2 +- .../geometry/management/include/voxeldefs.hh | 2 +- .../geometry/management/src/G4BlockingList.cc | 2 +- .../management/src/G4GeometryManager.cc | 172 +- .../src/G4IdentityTrajectoryFilter.cc | 2 +- .../management/src/G4LogicalVolume.cc | 33 +- .../management/src/G4LogicalVolumeStore.cc | 2 +- .../management/src/G4PhysicalVolumeStore.cc | 2 +- .../management/src/G4ReflectedSolid.cc | 18 +- source/geometry/management/src/G4Region.cc | 26 +- .../geometry/management/src/G4RegionStore.cc | 2 +- .../management/src/G4SmartVoxelHeader.cc | 10 +- .../management/src/G4SmartVoxelNode.cc | 2 +- .../management/src/G4SmartVoxelProxy.cc | 2 +- .../management/src/G4SmartVoxelStat.cc | 2 +- .../geometry/management/src/G4SolidStore.cc | 2 +- .../src/G4VCurvedTrajectoryFilter.cc | 2 +- .../management/src/G4VPVDivisionFactory.cc | 2 +- .../management/src/G4VPVParameterisation.cc | 2 +- .../management/src/G4VPhysicalVolume.cc | 2 +- source/geometry/management/src/G4VSolid.cc | 2 +- .../management/src/G4VStoreNotifier.cc | 2 +- .../geometry/management/src/G4VoxelLimits.cc | 2 +- .../include/G4AuxiliaryNavServices.hh | 2 +- .../include/G4AuxiliaryNavServices.icc | 2 +- .../navigation/include/G4DrawVoxels.hh | 2 +- .../navigation/include/G4GeomTestErrorList.hh | 2 +- .../navigation/include/G4GeomTestLogger.hh | 2 +- .../include/G4GeomTestOverlapList.hh | 2 +- .../include/G4GeomTestOvershootList.hh | 2 +- .../navigation/include/G4GeomTestPoint.hh | 2 +- .../navigation/include/G4GeomTestSegment.hh | 2 +- .../include/G4GeomTestStreamLogger.hh | 2 +- .../navigation/include/G4GeomTestVolPoint.hh | 2 +- .../navigation/include/G4GeomTestVolume.hh | 2 +- .../navigation/include/G4GeometryMessenger.hh | 2 +- .../navigation/include/G4Navigator.hh | 2 +- .../navigation/include/G4Navigator.icc | 2 +- .../navigation/include/G4NormalNavigation.hh | 2 +- .../navigation/include/G4NormalNavigation.icc | 2 +- .../include/G4ParameterisedNavigation.hh | 2 +- .../include/G4ParameterisedNavigation.icc | 2 +- .../navigation/include/G4PropagatorInField.hh | 2 +- .../include/G4PropagatorInField.icc | 2 +- .../navigation/include/G4ReplicaNavigation.hh | 2 +- .../include/G4ReplicaNavigation.icc | 2 +- .../include/G4TransportationManager.hh | 2 +- .../include/G4TransportationManager.icc | 2 +- .../navigation/include/G4VoxelNavigation.hh | 2 +- .../navigation/include/G4VoxelNavigation.icc | 2 +- .../navigation/src/G4AuxiliaryNavServices.cc | 2 +- .../geometry/navigation/src/G4DrawVoxels.cc | 2 +- .../navigation/src/G4GeomTestErrorList.cc | 2 +- .../navigation/src/G4GeomTestOverlapList.cc | 2 +- .../navigation/src/G4GeomTestOvershootList.cc | 2 +- .../navigation/src/G4GeomTestPoint.cc | 2 +- .../navigation/src/G4GeomTestSegment.cc | 2 +- .../navigation/src/G4GeomTestStreamLogger.cc | 2 +- .../navigation/src/G4GeomTestVolPoint.cc | 2 +- .../navigation/src/G4GeomTestVolume.cc | 2 +- .../navigation/src/G4GeometryMessenger.cc | 2 +- .../navigation/src/G4NormalNavigation.cc | 2 +- .../src/G4ParameterisedNavigation.cc | 2 +- .../navigation/src/G4PropagatorInField.cc | 2 +- .../navigation/src/G4ReplicaNavigation.cc | 2 +- .../navigation/src/G4TransportationManager.cc | 2 +- .../navigation/src/G4VoxelNavigation.cc | 2 +- source/geometry/solids/BREPS/History | 10 +- .../solids/BREPS/include/G4Assembly.hh | 2 +- .../solids/BREPS/include/G4Assembly.icc | 2 +- .../BREPS/include/G4Axis2Placement3D.hh | 2 +- .../BREPS/include/G4Axis2Placement3D.icc | 2 +- .../solids/BREPS/include/G4BREPSolid.hh | 2 +- .../solids/BREPS/include/G4BREPSolid.icc | 2 +- .../solids/BREPS/include/G4BREPSolidBox.hh | 2 +- .../solids/BREPS/include/G4BREPSolidCone.hh | 2 +- .../BREPS/include/G4BREPSolidCylinder.hh | 2 +- .../BREPS/include/G4BREPSolidOpenPCone.hh | 2 +- .../solids/BREPS/include/G4BREPSolidPCone.hh | 2 +- .../BREPS/include/G4BREPSolidPolyhedra.hh | 2 +- .../solids/BREPS/include/G4BREPSolidSphere.hh | 2 +- .../solids/BREPS/include/G4BREPSolidTorus.hh | 2 +- .../solids/BREPS/include/G4BSplineCurve.hh | 2 +- .../solids/BREPS/include/G4BSplineCurve.icc | 2 +- .../BREPS/include/G4BSplineCurveWithKnots.hh | 2 +- .../solids/BREPS/include/G4BSplineSurface.hh | 2 +- .../solids/BREPS/include/G4BSplineSurface.icc | 2 +- .../include/G4BSplineSurfaceWithKnots.hh | 2 +- .../solids/BREPS/include/G4BezierSurface.hh | 2 +- .../solids/BREPS/include/G4BezierSurface.icc | 2 +- .../solids/BREPS/include/G4BoundingBox3D.hh | 2 +- .../solids/BREPS/include/G4BoundingBox3D.icc | 2 +- .../solids/BREPS/include/G4CircularCurve.hh | 2 +- .../solids/BREPS/include/G4CircularCurve.icc | 2 +- .../solids/BREPS/include/G4CompositeCurve.hh | 2 +- .../solids/BREPS/include/G4CompositeCurve.icc | 2 +- .../geometry/solids/BREPS/include/G4Conic.hh | 2 +- .../geometry/solids/BREPS/include/G4Conic.icc | 2 +- .../solids/BREPS/include/G4ConicalSurface.hh | 2 +- .../solids/BREPS/include/G4ConicalSurface.icc | 2 +- .../solids/BREPS/include/G4ControlPoints.hh | 2 +- .../solids/BREPS/include/G4ControlPoints.icc | 2 +- .../solids/BREPS/include/G4ConvexHull.hh | 2 +- .../geometry/solids/BREPS/include/G4Curve.hh | 2 +- .../geometry/solids/BREPS/include/G4Curve.icc | 2 +- .../solids/BREPS/include/G4CurvePoint.hh | 2 +- .../solids/BREPS/include/G4CurvePoint.icc | 2 +- .../BREPS/include/G4CurveRayIntersection.hh | 2 +- .../BREPS/include/G4CurveRayIntersection.icc | 2 +- .../solids/BREPS/include/G4CurveVector.hh | 2 +- .../BREPS/include/G4CylindricalSurface.hh | 2 +- .../BREPS/include/G4CylindricalSurface.icc | 2 +- .../solids/BREPS/include/G4Ellipse.hh | 2 +- .../solids/BREPS/include/G4Ellipse.icc | 2 +- .../solids/BREPS/include/G4FConicalSurface.hh | 2 +- .../BREPS/include/G4FConicalSurface.icc | 2 +- .../BREPS/include/G4FCylindricalSurface.hh | 2 +- .../BREPS/include/G4FCylindricalSurface.icc | 2 +- .../geometry/solids/BREPS/include/G4FPlane.hh | 2 +- .../solids/BREPS/include/G4FPlane.icc | 2 +- .../solids/BREPS/include/G4Globals.hh | 2 +- .../solids/BREPS/include/G4Hyperbola.hh | 2 +- .../solids/BREPS/include/G4Hyperbola.icc | 2 +- .../solids/BREPS/include/G4KnotVector.hh | 2 +- .../solids/BREPS/include/G4KnotVector.icc | 2 +- .../geometry/solids/BREPS/include/G4Line.hh | 2 +- .../geometry/solids/BREPS/include/G4Line.icc | 2 +- .../solids/BREPS/include/G4OsloMatrix.hh | 2 +- .../solids/BREPS/include/G4OsloMatrix.icc | 2 +- .../solids/BREPS/include/G4Parabola.hh | 2 +- .../solids/BREPS/include/G4Parabola.icc | 2 +- .../solids/BREPS/include/G4PlacedSolid.hh | 2 +- .../solids/BREPS/include/G4PlacedSolid.icc | 2 +- .../solids/BREPS/include/G4PlacementVector.hh | 2 +- .../geometry/solids/BREPS/include/G4Plane.hh | 2 +- .../solids/BREPS/include/G4Point3DVector.hh | 2 +- .../solids/BREPS/include/G4PointRat.hh | 2 +- .../solids/BREPS/include/G4PointRat.icc | 2 +- .../BREPS/include/G4ProjectedSurface.hh | 2 +- .../BREPS/include/G4ProjectedSurface.icc | 2 +- source/geometry/solids/BREPS/include/G4Ray.hh | 2 +- .../geometry/solids/BREPS/include/G4Ray.icc | 2 +- .../include/G4RectangularTrimmedSurface.hh | 2 +- .../solids/BREPS/include/G4STEPEntity.hh | 2 +- .../geometry/solids/BREPS/include/G4Sort.hh | 2 +- .../BREPS/include/G4SphericalSurface.hh | 2 +- .../BREPS/include/G4SphericalSurface.icc | 2 +- .../solids/BREPS/include/G4Surface.hh | 2 +- .../solids/BREPS/include/G4Surface.icc | 2 +- .../solids/BREPS/include/G4SurfaceBoundary.hh | 2 +- .../BREPS/include/G4SurfaceBoundary.icc | 2 +- .../solids/BREPS/include/G4SurfaceList.hh | 2 +- .../include/G4SurfaceOfLinearExtrusion.hh | 2 +- .../BREPS/include/G4SurfaceOfRevolution.hh | 2 +- .../solids/BREPS/include/G4ThreeMat.hh | 2 +- .../solids/BREPS/include/G4ToroidalSurface.hh | 2 +- .../BREPS/include/G4ToroidalSurface.icc | 2 +- .../geometry/solids/BREPS/include/G4UVHit.hh | 2 +- .../geometry/solids/BREPS/src/G4Assembly.cc | 2 +- .../solids/BREPS/src/G4Axis2Placement3D.cc | 2 +- .../geometry/solids/BREPS/src/G4BREPSolid.cc | 19 +- .../solids/BREPS/src/G4BREPSolidBox.cc | 2 +- .../solids/BREPS/src/G4BREPSolidCone.cc | 2 +- .../solids/BREPS/src/G4BREPSolidCylinder.cc | 2 +- .../solids/BREPS/src/G4BREPSolidOpenPCone.cc | 6 +- .../solids/BREPS/src/G4BREPSolidPCone.cc | 2 +- .../solids/BREPS/src/G4BREPSolidPolyhedra.cc | 2 +- .../solids/BREPS/src/G4BREPSolidSphere.cc | 2 +- .../solids/BREPS/src/G4BREPSolidTorus.cc | 2 +- .../solids/BREPS/src/G4BSplineCurve.cc | 2 +- .../BREPS/src/G4BSplineCurveWithKnots.cc | 2 +- .../solids/BREPS/src/G4BSplineSurface.cc | 2 +- .../BREPS/src/G4BSplineSurfaceWithKnots.cc | 2 +- .../solids/BREPS/src/G4BezierSurface.cc | 2 +- .../solids/BREPS/src/G4BoundingBox3D.cc | 2 +- .../solids/BREPS/src/G4CircularCurve.cc | 2 +- .../solids/BREPS/src/G4CompositeCurve.cc | 2 +- source/geometry/solids/BREPS/src/G4Conic.cc | 2 +- .../solids/BREPS/src/G4ConicalSurface.cc | 2 +- .../solids/BREPS/src/G4ControlPoints.cc | 2 +- source/geometry/solids/BREPS/src/G4Curve.cc | 2 +- .../geometry/solids/BREPS/src/G4CurvePoint.cc | 2 +- .../BREPS/src/G4CurveRayIntersection.cc | 2 +- .../solids/BREPS/src/G4CylindricalSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4Ellipse.cc | 2 +- .../solids/BREPS/src/G4FConicalSurface.cc | 2 +- .../solids/BREPS/src/G4FCylindricalSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4FPlane.cc | 2 +- .../geometry/solids/BREPS/src/G4Hyperbola.cc | 2 +- .../geometry/solids/BREPS/src/G4KnotVector.cc | 2 +- source/geometry/solids/BREPS/src/G4Line.cc | 2 +- .../geometry/solids/BREPS/src/G4OsloMatrix.cc | 2 +- .../geometry/solids/BREPS/src/G4Parabola.cc | 2 +- .../solids/BREPS/src/G4PlacedSolid.cc | 2 +- .../geometry/solids/BREPS/src/G4PointRat.cc | 2 +- .../solids/BREPS/src/G4ProjectedSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4Ray.cc | 2 +- .../BREPS/src/G4RectangularTrimmedSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4Sort.cc | 2 +- .../solids/BREPS/src/G4SphericalSurface.cc | 2 +- source/geometry/solids/BREPS/src/G4Surface.cc | 2 +- .../solids/BREPS/src/G4SurfaceBoundary.cc | 2 +- .../solids/BREPS/src/G4SurfaceList.cc | 2 +- .../BREPS/src/G4SurfaceOfLinearExtrusion.cc | 2 +- .../solids/BREPS/src/G4SurfaceOfRevolution.cc | 2 +- .../geometry/solids/BREPS/src/G4ThreeMat.cc | 2 +- .../solids/BREPS/src/G4ToroidalSurface.cc | 2 +- source/geometry/solids/Boolean/GNUmakefile | 2 +- source/geometry/solids/Boolean/History | 30 +- .../solids/Boolean/include/G4BooleanSolid.hh | 2 +- .../solids/Boolean/include/G4BooleanSolid.icc | 2 +- .../Boolean/include/G4DisplacedSolid.hh | 2 +- .../Boolean/include/G4IntersectionSolid.hh | 2 +- .../Boolean/include/G4SubtractionSolid.hh | 2 +- .../solids/Boolean/include/G4UnionSolid.hh | 2 +- .../solids/Boolean/src/G4BooleanSolid.cc | 17 +- .../solids/Boolean/src/G4DisplacedSolid.cc | 18 +- .../solids/Boolean/src/G4IntersectionSolid.cc | 209 +- .../solids/Boolean/src/G4SubtractionSolid.cc | 33 +- .../solids/Boolean/src/G4UnionSolid.cc | 41 +- source/geometry/solids/CSG/GNUmakefile | 2 +- source/geometry/solids/CSG/History | 56 +- source/geometry/solids/CSG/include/G4Box.hh | 12 +- source/geometry/solids/CSG/include/G4Box.icc | 2 +- .../geometry/solids/CSG/include/G4CSGSolid.hh | 2 +- source/geometry/solids/CSG/include/G4Cons.hh | 10 +- source/geometry/solids/CSG/include/G4Cons.icc | 2 +- source/geometry/solids/CSG/include/G4Orb.hh | 2 +- source/geometry/solids/CSG/include/G4Orb.icc | 2 +- source/geometry/solids/CSG/include/G4Para.hh | 12 +- source/geometry/solids/CSG/include/G4Para.icc | 2 +- .../geometry/solids/CSG/include/G4Sphere.hh | 12 +- .../geometry/solids/CSG/include/G4Sphere.icc | 2 +- source/geometry/solids/CSG/include/G4Torus.hh | 10 +- .../geometry/solids/CSG/include/G4Torus.icc | 2 +- source/geometry/solids/CSG/include/G4Trap.hh | 10 +- source/geometry/solids/CSG/include/G4Trap.icc | 2 +- source/geometry/solids/CSG/include/G4Trd.hh | 13 +- source/geometry/solids/CSG/include/G4Trd.icc | 2 +- source/geometry/solids/CSG/include/G4Tubs.hh | 9 +- source/geometry/solids/CSG/include/G4Tubs.icc | 2 +- source/geometry/solids/CSG/src/G4Box.cc | 141 +- source/geometry/solids/CSG/src/G4CSGSolid.cc | 18 +- source/geometry/solids/CSG/src/G4Cons.cc | 122 +- source/geometry/solids/CSG/src/G4Orb.cc | 10 +- source/geometry/solids/CSG/src/G4Para.cc | 161 +- source/geometry/solids/CSG/src/G4Sphere.cc | 133 +- source/geometry/solids/CSG/src/G4Torus.cc | 130 +- source/geometry/solids/CSG/src/G4Trap.cc | 214 +- source/geometry/solids/CSG/src/G4Trd.cc | 149 +- source/geometry/solids/CSG/src/G4Tubs.cc | 134 +- source/geometry/solids/History | 14 +- source/geometry/solids/specific/GNUmakefile | 3 +- source/geometry/solids/specific/History | 34 +- .../specific/include/G4ClippablePolygon.hh | 2 +- .../specific/include/G4ClippablePolygon.icc | 2 +- .../specific/include/G4EllipticalTube.hh | 2 +- .../specific/include/G4EllipticalTube.icc | 2 +- .../specific/include/G4EnclosingCylinder.hh | 2 +- .../solids/specific/include/G4FlatBoxSide.hh | 94 - .../solids/specific/include/G4FlatSurface.hh | 2 +- .../solids/specific/include/G4FlatTrapSide.hh | 24 +- .../solids/specific/include/G4Hype.hh | 2 +- .../solids/specific/include/G4Hype.icc | 2 +- .../specific/include/G4HyperbolicSurface.hh | 2 +- .../specific/include/G4IntersectingCone.hh | 2 +- .../solids/specific/include/G4PolyPhiFace.hh | 2 +- .../solids/specific/include/G4PolyPhiFace.icc | 2 +- .../solids/specific/include/G4Polycone.hh | 2 +- .../solids/specific/include/G4Polycone.icc | 2 +- .../solids/specific/include/G4PolyconeSide.hh | 2 +- .../solids/specific/include/G4Polyhedra.hh | 2 +- .../solids/specific/include/G4Polyhedra.icc | 2 +- .../specific/include/G4PolyhedraSide.hh | 2 +- .../specific/include/G4ReduciblePolygon.hh | 2 +- .../specific/include/G4SolidExtentList.hh | 2 +- .../solids/specific/include/G4TwistedBox.hh | 224 +- .../specific/include/G4TwistedBoxSide.hh | 129 - .../specific/include/G4TwistedSurface.hh | 2 +- .../solids/specific/include/G4TwistedTrap.hh | 268 +- .../include/G4TwistedTrapAlphaSide.hh | 210 + ...tedTrapSide.hh => G4TwistedTrapBoxSide.hh} | 115 +- .../include/G4TwistedTrapParallelSide.hh | 203 + .../solids/specific/include/G4TwistedTrd.hh | 89 + .../solids/specific/include/G4TwistedTubs.hh | 7 +- .../solids/specific/include/G4VCSGface.hh | 2 +- .../solids/specific/include/G4VCSGfaceted.hh | 2 +- .../solids/specific/include/G4VSurface.hh | 21 +- .../solids/specific/include/G4VSurface.icc | 2 +- .../specific/include/G4VTwistedFaceted.hh | 296 + .../solids/specific/src/G4ApproxPolySolver.cc | 550 - .../solids/specific/src/G4ClippablePolygon.cc | 2 +- .../solids/specific/src/G4EllipticalTube.cc | 19 +- .../specific/src/G4EnclosingCylinder.cc | 2 +- .../solids/specific/src/G4FlatBoxSide.cc | 450 - .../solids/specific/src/G4FlatSurface.cc | 2 +- .../solids/specific/src/G4FlatTrapSide.cc | 34 +- source/geometry/solids/specific/src/G4Hype.cc | 23 +- .../specific/src/G4HyperbolicSurface.cc | 2 +- .../solids/specific/src/G4IntersectingCone.cc | 2 +- .../solids/specific/src/G4PolyPhiFace.cc | 2 +- .../solids/specific/src/G4Polycone.cc | 2 +- .../solids/specific/src/G4PolyconeSide.cc | 2 +- .../solids/specific/src/G4Polyhedra.cc | 2 +- .../solids/specific/src/G4PolyhedraSide.cc | 2 +- .../solids/specific/src/G4ReduciblePolygon.cc | 2 +- .../solids/specific/src/G4SolidExtentList.cc | 2 +- .../solids/specific/src/G4TwistedBox.cc | 1020 +- .../solids/specific/src/G4TwistedSurface.cc | 7 +- .../solids/specific/src/G4TwistedTrap.cc | 1066 +- ...edBoxSide.cc => G4TwistedTrapAlphaSide.cc} | 613 +- ...tedTrapSide.cc => G4TwistedTrapBoxSide.cc} | 564 +- .../specific/src/G4TwistedTrapParallelSide.cc | 976 ++ .../solids/specific/src/G4TwistedTrd.cc | 100 + .../solids/specific/src/G4TwistedTubs.cc | 49 +- .../solids/specific/src/G4VCSGfaceted.cc | 18 +- .../solids/specific/src/G4VSurface.cc | 87 +- .../solids/specific/src/G4VTwistedFaceted.cc | 1123 ++ source/geometry/volumes/History | 6 +- .../volumes/include/G4AssemblyVolume.hh | 2 +- .../volumes/include/G4AssemblyVolume.icc | 2 +- source/geometry/volumes/include/G4GRSSolid.hh | 2 +- .../geometry/volumes/include/G4GRSSolid.icc | 2 +- .../volumes/include/G4GRSSolidHandle.hh | 2 +- .../geometry/volumes/include/G4GRSVolume.hh | 2 +- .../geometry/volumes/include/G4GRSVolume.icc | 2 +- .../volumes/include/G4GRSVolumeHandle.hh | 2 +- .../volumes/include/G4LogicalBorderSurface.hh | 2 +- .../include/G4LogicalBorderSurface.icc | 2 +- .../volumes/include/G4LogicalSkinSurface.hh | 2 +- .../volumes/include/G4LogicalSkinSurface.icc | 2 +- .../volumes/include/G4NavigationHistory.hh | 2 +- .../volumes/include/G4NavigationHistory.icc | 2 +- .../volumes/include/G4NavigationLevel.hh | 2 +- .../volumes/include/G4NavigationLevel.icc | 60 +- .../volumes/include/G4NavigationLevelRep.hh | 2 +- .../volumes/include/G4NavigationLevelRep.icc | 91 +- .../volumes/include/G4PVParameterised.hh | 2 +- .../geometry/volumes/include/G4PVPlacement.hh | 2 +- .../geometry/volumes/include/G4PVReplica.hh | 2 +- .../volumes/include/G4ReflectionFactory.hh | 2 +- .../volumes/include/G4TouchableHistory.hh | 2 +- .../volumes/include/G4TouchableHistory.icc | 2 +- .../include/G4TouchableHistoryHandle.hh | 2 +- .../geometry/volumes/src/G4AssemblyVolume.cc | 2 +- source/geometry/volumes/src/G4GRSSolid.cc | 2 +- source/geometry/volumes/src/G4GRSVolume.cc | 2 +- .../volumes/src/G4LogicalBorderSurface.cc | 2 +- .../volumes/src/G4LogicalSkinSurface.cc | 2 +- .../volumes/src/G4NavigationHistory.cc | 2 +- .../geometry/volumes/src/G4NavigationLevel.cc | 83 + .../volumes/src/G4NavigationLevelRep.cc | 114 + .../geometry/volumes/src/G4PVParameterised.cc | 2 +- source/geometry/volumes/src/G4PVPlacement.cc | 2 +- source/geometry/volumes/src/G4PVReplica.cc | 2 +- .../volumes/src/G4ReflectionFactory.cc | 2 +- .../volumes/src/G4TouchableHistory.cc | 9 +- .../HEPGeometry/include/G4LorentzRotation.hh | 2 +- .../HEPGeometry/include/G4LorentzVector.hh | 2 +- .../global/HEPGeometry/include/G4Normal3D.hh | 2 +- .../global/HEPGeometry/include/G4Plane3D.hh | 2 +- .../global/HEPGeometry/include/G4Point3D.hh | 2 +- .../HEPGeometry/include/G4Transform3D.hh | 2 +- .../global/HEPGeometry/include/G4Vector3D.hh | 2 +- source/global/HEPGeometry/include/geomdefs.hh | 2 +- .../include/G4AnalyticalPolSolver.hh | 75 + .../include/G4ChebyshevApproximation.hh | 112 +- .../include/G4DataInterpolation.hh | 2 +- .../HEPNumerics/include/G4GaussChebyshevQ.hh | 2 +- .../HEPNumerics/include/G4GaussHermiteQ.hh | 2 +- .../HEPNumerics/include/G4GaussJacobiQ.hh | 2 +- .../HEPNumerics/include/G4GaussLaguerreQ.hh | 2 +- .../HEPNumerics/include/G4GaussLegendreQ.hh | 6 +- .../HEPNumerics/include/G4Integrator.hh | 2 +- .../HEPNumerics/include/G4Integrator.icc | 203 +- .../include/G4JTPolynomialSolver.hh | 121 + .../HEPNumerics/include/G4PolynomialSolver.hh | 2 +- .../include/G4PolynomialSolver.icc | 2 +- .../include/G4SimpleIntegration.hh | 74 +- .../include/G4VGaussianQuadrature.hh | 62 +- .../HEPNumerics/src/G4AnalyticalPolSolver.cc | 442 + .../src/G4ChebyshevApproximation.cc | 138 +- .../HEPNumerics/src/G4DataInterpolation.cc | 359 +- .../HEPNumerics/src/G4GaussChebyshevQ.cc | 19 +- .../global/HEPNumerics/src/G4GaussHermiteQ.cc | 72 +- .../global/HEPNumerics/src/G4GaussJacobiQ.cc | 127 +- .../HEPNumerics/src/G4GaussLaguerreQ.cc | 78 +- .../HEPNumerics/src/G4GaussLegendreQ.cc | 251 +- .../HEPNumerics/src/G4JTPolynomialSolver.cc | 905 + .../HEPNumerics/src/G4SimpleIntegration.cc | 45 +- .../HEPNumerics/src/G4VGaussianQuadrature.cc | 22 +- source/global/HEPRandom/include/G4Poisson.hh | 2 +- .../HEPRandom/include/G4RandomDirection.hh | 2 +- source/global/HEPRandom/include/Randomize.hh | 2 +- source/global/History | 36 +- .../global/management/include/G4Allocator.hh | 2 +- .../management/include/G4AllocatorPool.hh | 12 +- .../management/include/G4ApplicationState.hh | 2 +- .../global/management/include/G4DataVector.hh | 70 +- .../management/include/G4DataVector.icc | 90 +- .../management/include/G4ExceptionSeverity.hh | 2 +- .../global/management/include/G4FastVector.hh | 2 +- .../include/G4LPhysicsFreeVector.hh | 2 +- .../include/G4LPhysicsFreeVector.icc | 57 +- .../management/include/G4OrderedTable.hh | 22 +- .../management/include/G4PhysicsFreeVector.hh | 13 +- .../include/G4PhysicsLinearVector.hh | 6 +- .../management/include/G4PhysicsLnVector.hh | 6 +- .../management/include/G4PhysicsLogVector.hh | 6 +- .../include/G4PhysicsOrderedFreeVector.hh | 2 +- .../include/G4PhysicsOrderedFreeVector.icc | 14 +- .../management/include/G4PhysicsTable.hh | 8 +- .../management/include/G4PhysicsTable.icc | 15 +- .../management/include/G4PhysicsVector.hh | 16 +- .../management/include/G4PhysicsVector.icc | 14 +- .../management/include/G4PhysicsVectorType.hh | 2 +- .../include/G4ReferenceCountedHandle.hh | 2 +- .../management/include/G4RotationMatrix.hh | 2 +- source/global/management/include/G4SIunits.hh | 2 +- .../management/include/G4StateManager.hh | 20 +- .../management/include/G4StateManager.icc | 55 +- source/global/management/include/G4String.hh | 10 +- source/global/management/include/G4String.icc | 60 +- .../management/include/G4ThreeVector.hh | 2 +- source/global/management/include/G4Timer.hh | 33 +- .../management/include/G4Timer.icc} | 30 +- .../global/management/include/G4Tokenizer.hh | 2 +- source/global/management/include/G4Types.hh | 6 +- .../global/management/include/G4UnitsTable.hh | 91 +- .../management/include/G4UnitsTable.icc | 110 +- .../global/management/include/G4UserLimits.hh | 2 +- .../management/include/G4UserLimits.icc | 6 +- .../management/include/G4VExceptionHandler.hh | 2 +- .../management/include/G4VStateDependent.hh | 6 +- .../management/include/G4coutDestination.hh | 12 +- source/global/management/include/G4ios.hh | 2 +- .../management/include/G4strstreambuf.hh | 2 +- .../management/include/G4strstreambuf.icc | 11 +- source/global/management/include/globals.hh | 2 +- source/global/management/include/templates.hh | 2 +- .../global/management/src/G4AllocatorPool.cc | 12 +- source/global/management/src/G4DataVector.cc | 34 +- source/global/management/src/G4Exception.cc | 23 +- .../management/src/G4LPhysicsFreeVector.cc | 18 +- .../global/management/src/G4OrderedTable.cc | 81 +- .../management/src/G4PhysicsFreeVector.cc | 21 +- .../management/src/G4PhysicsLinearVector.cc | 23 +- .../management/src/G4PhysicsLnVector.cc | 30 +- .../management/src/G4PhysicsLogVector.cc | 25 +- .../src/G4PhysicsOrderedFreeVector.cc | 58 +- .../global/management/src/G4PhysicsTable.cc | 106 +- .../global/management/src/G4PhysicsVector.cc | 42 +- .../global/management/src/G4StateManager.cc | 62 +- source/global/management/src/G4Timer.cc | 43 +- source/global/management/src/G4UnitsTable.cc | 110 +- .../management/src/G4VExceptionHandler.cc | 6 +- .../management/src/G4VStateDependent.cc | 14 +- .../management/src/G4coutDestination.cc | 38 +- source/global/management/src/G4ios.cc | 2 +- source/graphics_reps/GNUmakefile | 9 +- source/graphics_reps/History | 46 +- source/graphics_reps/include/G4AttCheck.hh | 107 + source/graphics_reps/include/G4AttDef.hh | 2 +- source/graphics_reps/include/G4AttDefStore.hh | 2 +- source/graphics_reps/include/G4AttValue.hh | 5 +- source/graphics_reps/include/G4Circle.hh | 2 +- source/graphics_reps/include/G4Color.hh | 2 +- source/graphics_reps/include/G4Colour.hh | 2 +- source/graphics_reps/include/G4NURBS.hh | 2 +- source/graphics_reps/include/G4NURBSbox.hh | 2 +- .../graphics_reps/include/G4NURBScylinder.hh | 2 +- .../include/G4NURBShexahedron.hh | 2 +- source/graphics_reps/include/G4NURBStube.hh | 2 +- .../include/G4NURBStubesector.hh | 2 +- .../include/G4PlacedPolyhedron.hh | 2 +- source/graphics_reps/include/G4Point3DList.hh | 2 +- source/graphics_reps/include/G4Polyhedron.hh | 15 +- source/graphics_reps/include/G4Polyline.hh | 2 +- source/graphics_reps/include/G4Polymarker.hh | 2 +- source/graphics_reps/include/G4Polymarker.icc | 2 +- source/graphics_reps/include/G4Scale.hh | 2 +- source/graphics_reps/include/G4Scale.icc | 2 +- source/graphics_reps/include/G4Square.hh | 2 +- source/graphics_reps/include/G4Square.icc | 2 +- source/graphics_reps/include/G4Text.hh | 2 +- source/graphics_reps/include/G4Text.icc | 2 +- source/graphics_reps/include/G4VMarker.hh | 2 +- source/graphics_reps/include/G4VMarker.icc | 2 +- source/graphics_reps/include/G4VVisPrim.hh | 2 +- .../graphics_reps/include/G4VisAttributes.hh | 17 +- .../graphics_reps/include/G4VisAttributes.icc | 9 +- source/graphics_reps/include/G4VisExtent.hh | 5 +- source/graphics_reps/include/G4Visible.hh | 2 +- source/graphics_reps/include/G4Visible.icc | 8 +- source/graphics_reps/include/HepPolyhedron.h | 15 +- source/graphics_reps/src/BooleanProcessor.src | 1 + source/graphics_reps/src/G4AttCheck.cc | 390 + source/graphics_reps/src/G4AttDefStore.cc | 2 +- source/graphics_reps/src/G4Circle.cc | 2 +- source/graphics_reps/src/G4Colour.cc | 2 +- source/graphics_reps/src/G4NURBS.cc | 2 +- source/graphics_reps/src/G4NURBSbox.cc | 2 +- source/graphics_reps/src/G4NURBScylinder.cc | 2 +- source/graphics_reps/src/G4NURBShexahedron.cc | 2 +- source/graphics_reps/src/G4NURBStube.cc | 2 +- source/graphics_reps/src/G4NURBStubesector.cc | 2 +- .../graphics_reps/src/G4PlacedPolyhedron.cc | 2 +- source/graphics_reps/src/G4Point3DList.cc | 2 +- source/graphics_reps/src/G4Polyhedron.cc | 20 +- source/graphics_reps/src/G4Polyline.cc | 2 +- source/graphics_reps/src/G4Polymarker.cc | 2 +- source/graphics_reps/src/G4Scale.cc | 16 +- source/graphics_reps/src/G4Square.cc | 2 +- source/graphics_reps/src/G4Text.cc | 2 +- source/graphics_reps/src/G4VMarker.cc | 2 +- source/graphics_reps/src/G4VVisPrim.cc | 2 +- source/graphics_reps/src/G4VisAttributes.cc | 2 +- source/graphics_reps/src/G4VisExtent.cc | 6 +- source/graphics_reps/src/G4Visible.cc | 8 +- source/graphics_reps/src/HepPolyhedron.cc | 8 +- source/intercoms/History | 21 +- source/intercoms/include/G4UIaliasList.hh | 2 +- source/intercoms/include/G4UIbatch.hh | 7 +- .../intercoms/include/G4UIcmdWith3Vector.hh | 2 +- .../include/G4UIcmdWith3VectorAndUnit.hh | 2 +- source/intercoms/include/G4UIcmdWithABool.hh | 2 +- .../intercoms/include/G4UIcmdWithADouble.hh | 2 +- .../include/G4UIcmdWithADoubleAndUnit.hh | 2 +- .../intercoms/include/G4UIcmdWithAString.hh | 2 +- .../intercoms/include/G4UIcmdWithAnInteger.hh | 2 +- .../include/G4UIcmdWithoutParameter.hh | 2 +- source/intercoms/include/G4UIcommand.hh | 2 +- source/intercoms/include/G4UIcommandStatus.hh | 2 +- source/intercoms/include/G4UIcommandTree.hh | 2 +- .../intercoms/include/G4UIcontrolMessenger.hh | 2 +- source/intercoms/include/G4UIdirectory.hh | 2 +- source/intercoms/include/G4UImanager.hh | 2 +- source/intercoms/include/G4UImessenger.hh | 2 +- source/intercoms/include/G4UIparameter.hh | 2 +- source/intercoms/include/G4UIsession.hh | 2 +- source/intercoms/include/G4UItokenNum.hh | 2 +- source/intercoms/include/G4UnitsMessenger.hh | 2 +- .../include/G4VFlavoredParallelWorld.hh | 2 +- .../include/G4VGlobalFastSimulationManager.hh | 2 +- source/intercoms/include/G4VGraphicsScene.hh | 78 +- source/intercoms/include/G4VVisManager.hh | 28 +- source/intercoms/src/G4UIaliasList.cc | 2 +- source/intercoms/src/G4UIbatch.cc | 14 +- source/intercoms/src/G4UIcmdWith3Vector.cc | 2 +- .../src/G4UIcmdWith3VectorAndUnit.cc | 2 +- source/intercoms/src/G4UIcmdWithABool.cc | 2 +- source/intercoms/src/G4UIcmdWithADouble.cc | 2 +- .../src/G4UIcmdWithADoubleAndUnit.cc | 2 +- source/intercoms/src/G4UIcmdWithAString.cc | 2 +- source/intercoms/src/G4UIcmdWithAnInteger.cc | 2 +- .../intercoms/src/G4UIcmdWithoutParameter.cc | 2 +- source/intercoms/src/G4UIcommand.cc | 2 +- source/intercoms/src/G4UIcommandTree.cc | 2 +- source/intercoms/src/G4UIcontrolMessenger.cc | 2 +- source/intercoms/src/G4UIdirectory.cc | 2 +- source/intercoms/src/G4UImanager.cc | 2 +- source/intercoms/src/G4UImessenger.cc | 2 +- source/intercoms/src/G4UIparameter.cc | 2 +- source/intercoms/src/G4UIsession.cc | 2 +- source/intercoms/src/G4UnitsMessenger.cc | 5 +- .../src/G4VGlobalFastSimulationManager.cc | 2 +- source/intercoms/src/G4VVisManager.cc | 2 +- source/interfaces/GAG/GNUmakefile | 4 +- source/interfaces/GAG/include/G4UIGAG.hh | 2 +- .../interfaces/GAG/include/G4UIGainServer.hh | 2 +- source/interfaces/GAG/src/G4UIGAG.cc | 2 +- source/interfaces/GAG/src/G4UIGainServer.cc | 10 +- source/interfaces/History | 23 +- source/interfaces/basic/GNUmakefile | 4 +- .../basic/include/G4UIArrayString.hh | 2 +- source/interfaces/basic/include/G4UIWin32.hh | 2 +- source/interfaces/basic/include/G4UIXaw.hh | 2 +- source/interfaces/basic/include/G4UIXm.hh | 2 +- source/interfaces/basic/include/G4UIcsh.hh | 2 +- source/interfaces/basic/include/G4UItcsh.hh | 2 +- .../interfaces/basic/include/G4UIterminal.hh | 2 +- source/interfaces/basic/include/G4VUIshell.hh | 2 +- .../interfaces/basic/src/G4UIArrayString.cc | 2 +- source/interfaces/basic/src/G4UIWin32.cc | 2 +- source/interfaces/basic/src/G4UIXaw.cc | 2 +- source/interfaces/basic/src/G4UIXm.cc | 2 +- source/interfaces/basic/src/G4UIcsh.cc | 2 +- source/interfaces/basic/src/G4UItcsh.cc | 2 +- source/interfaces/basic/src/G4UIterminal.cc | 2 +- source/interfaces/basic/src/G4VUIshell.cc | 2 +- source/interfaces/common/GNUmakefile | 4 +- .../common/include/G4VBasicShell.hh | 2 +- .../common/include/G4VInteractorManager.hh | 2 +- source/interfaces/common/include/G4Win32.hh | 2 +- source/interfaces/common/include/G4Xt.hh | 2 +- source/interfaces/common/src/G4VBasicShell.cc | 2 +- .../common/src/G4VInteractorManager.cc | 2 +- source/interfaces/common/src/G4Win32.cc | 2 +- source/interfaces/common/src/G4Xt.cc | 2 +- source/materials/GNUmakefile | 9 +- source/materials/History | 32 +- source/materials/include/G4AtomicShells.hh | 7 +- source/materials/include/G4Element.hh | 14 +- source/materials/include/G4ElementTable.hh | 2 +- source/materials/include/G4ElementVector.hh | 2 +- source/materials/include/G4IonisParamElm.hh | 2 +- source/materials/include/G4IonisParamMat.hh | 2 +- source/materials/include/G4Isotope.hh | 13 +- source/materials/include/G4IsotopeVector.hh | 2 +- source/materials/include/G4MPVEntry.hh | 2 +- source/materials/include/G4Material.hh | 2 +- .../include/G4MaterialPropertiesTable.hh | 11 +- .../include/G4MaterialPropertyVector.hh | 2 +- source/materials/include/G4MaterialTable.hh | 2 +- .../materials/include/G4NistElementBuilder.hh | 140 + source/materials/include/G4NistManager.hh | 216 + .../include/G4NistMaterialBuilder.hh | 142 + .../materials/include/G4NistMessenger.hh | 98 +- source/materials/include/G4OpticalSurface.hh | 2 +- source/materials/include/G4SandiaTable.hh | 2 +- .../materials/include/G4StaticSandiaData.hh | 2 +- source/materials/include/G4SurfaceProperty.hh | 2 +- source/materials/src/G4AtomicShells.cc | 224 +- source/materials/src/G4Element.cc | 28 +- source/materials/src/G4IonisParamElm.cc | 2 +- source/materials/src/G4IonisParamMat.cc | 38 +- source/materials/src/G4Isotope.cc | 8 +- source/materials/src/G4MPVEntry.cc | 2 +- source/materials/src/G4Material.cc | 8 +- .../src/G4MaterialPropertiesTable.cc | 74 +- .../materials/src/G4MaterialPropertyVector.cc | 2 +- source/materials/src/G4NistElementBuilder.cc | 2450 +++ source/materials/src/G4NistManager.cc | 235 + source/materials/src/G4NistMaterialBuilder.cc | 1540 ++ source/materials/src/G4NistMessenger.cc | 137 + source/materials/src/G4OpticalSurface.cc | 2 +- source/materials/src/G4SandiaTable.cc | 2 +- source/parameterisations/gflash/History | 49 +- source/parameterisations/gflash/README | 3 + .../gflash/src/GFlashHitMaker.cc | 5 +- .../src/GFlashHomoShowerParamterisation.cc | 30 +- .../gflash/src/GFlashShowerModel.cc | 4 +- .../gflash/src/GFlashShowerModelMessenger.cc | 4 +- source/parameterisations/gflash/src/Gamma.cc | 2 +- .../trd_clusters/include/G4FoamXTRdEdx.hh | 2 +- .../trd_clusters/include/G4FoamXrayTRmodel.hh | 2 +- .../trd_clusters/include/G4GamDistrXTRdEdx.hh | 2 +- .../include/G4GamDistrXrayTRmodel.hh | 2 +- .../include/G4IrregularXTRdEdx.hh | 2 +- .../include/G4IrregularXrayTRmodel.hh | 2 +- .../trd_clusters/include/G4PAIclusterModel.hh | 2 +- .../include/G4PhotoClusterModel.hh | 2 +- .../include/G4PlateIrrGasXTRdEdx.hh | 2 +- .../include/G4PlateIrrGasXrayTRmodel.hh | 2 +- .../trd_clusters/include/G4RegularXTRdEdx.hh | 2 +- .../include/G4RegularXrayTRmodel.hh | 2 +- .../trd_clusters/include/G4VClusterModel.hh | 2 +- .../trd_clusters/include/G4VXTRdEdx.hh | 2 +- .../trd_clusters/include/G4VXrayTRadModel.hh | 2 +- .../trd_clusters/include/G4VXrayTRmodel.hh | 2 +- .../trd_clusters/src/G4FoamXTRdEdx.cc | 2 +- .../trd_clusters/src/G4FoamXrayTRmodel.cc | 2 +- .../trd_clusters/src/G4GamDistrXTRdEdx.cc | 2 +- .../trd_clusters/src/G4GamDistrXrayTRmodel.cc | 2 +- .../trd_clusters/src/G4IrregularXTRdEdx.cc | 2 +- .../src/G4IrregularXrayTRmodel.cc | 2 +- .../trd_clusters/src/G4PAIclusterModel.cc | 2 +- .../trd_clusters/src/G4PhotoClusterModel.cc | 2 +- .../trd_clusters/src/G4PlateIrrGasXTRdEdx.cc | 2 +- .../src/G4PlateIrrGasXrayTRmodel.cc | 2 +- .../trd_clusters/src/G4RegularXTRdEdx.cc | 2 +- .../trd_clusters/src/G4RegularXrayTRmodel.cc | 2 +- .../trd_clusters/src/G4VClusterModel.cc | 2 +- .../trd_clusters/src/G4VXTRdEdx.cc | 2 +- .../trd_clusters/src/G4VXrayTRadModel.cc | 2 +- .../trd_clusters/src/G4VXrayTRmodel.cc | 2 +- source/particles/History | 23 +- .../bosons/include/G4BosonConstructor.hh | 2 +- .../bosons/include/G4ChargedGeantino.hh | 2 +- source/particles/bosons/include/G4Gamma.hh | 2 +- source/particles/bosons/include/G4Geantino.hh | 2 +- .../bosons/include/G4OpticalPhoton.hh | 2 +- .../bosons/include/G4UnknownParticle.hh | 31 +- source/particles/bosons/include/G4VBoson.hh | 2 +- .../bosons/src/G4BosonConstructor.cc | 2 +- .../particles/bosons/src/G4ChargedGeantino.cc | 2 +- source/particles/bosons/src/G4Gamma.cc | 2 +- source/particles/bosons/src/G4Geantino.cc | 2 +- .../particles/bosons/src/G4OpticalPhoton.cc | 2 +- .../particles/bosons/src/G4UnknownParticle.cc | 88 +- source/particles/bosons/src/G4VBoson.cc | 2 +- .../hadrons/barions/include/G4AntiLambda.hh | 2 +- .../barions/include/G4AntiLambdacPlus.hh | 2 +- .../hadrons/barions/include/G4AntiNeutron.hh | 2 +- .../barions/include/G4AntiOmegaMinus.hh | 2 +- .../barions/include/G4AntiOmegacZero.hh | 2 +- .../hadrons/barions/include/G4AntiProton.hh | 2 +- .../barions/include/G4AntiSigmaMinus.hh | 2 +- .../barions/include/G4AntiSigmaPlus.hh | 2 +- .../barions/include/G4AntiSigmaZero.hh | 2 +- .../barions/include/G4AntiSigmacPlus.hh | 2 +- .../barions/include/G4AntiSigmacPlusPlus.hh | 2 +- .../barions/include/G4AntiSigmacZero.hh | 2 +- .../hadrons/barions/include/G4AntiXiMinus.hh | 2 +- .../hadrons/barions/include/G4AntiXiZero.hh | 2 +- .../hadrons/barions/include/G4AntiXicPlus.hh | 2 +- .../hadrons/barions/include/G4AntiXicZero.hh | 2 +- .../barions/include/G4BaryonConstructor.hh | 2 +- .../hadrons/barions/include/G4Lambda.hh | 2 +- .../hadrons/barions/include/G4LambdacPlus.hh | 2 +- .../hadrons/barions/include/G4Neutron.hh | 2 +- .../hadrons/barions/include/G4OmegaMinus.hh | 2 +- .../hadrons/barions/include/G4OmegacZero.hh | 2 +- .../hadrons/barions/include/G4Proton.hh | 2 +- .../hadrons/barions/include/G4SigmaMinus.hh | 2 +- .../hadrons/barions/include/G4SigmaPlus.hh | 2 +- .../hadrons/barions/include/G4SigmaZero.hh | 2 +- .../hadrons/barions/include/G4SigmacPlus.hh | 2 +- .../barions/include/G4SigmacPlusPlus.hh | 2 +- .../hadrons/barions/include/G4SigmacZero.hh | 2 +- .../hadrons/barions/include/G4VBaryon.hh | 2 +- .../hadrons/barions/include/G4XiMinus.hh | 2 +- .../hadrons/barions/include/G4XiZero.hh | 2 +- .../hadrons/barions/include/G4XicPlus.hh | 2 +- .../hadrons/barions/include/G4XicZero.hh | 2 +- .../hadrons/barions/src/G4AntiLambda.cc | 2 +- .../hadrons/barions/src/G4AntiLambdacPlus.cc | 2 +- .../hadrons/barions/src/G4AntiNeutron.cc | 2 +- .../hadrons/barions/src/G4AntiOmegaMinus.cc | 2 +- .../hadrons/barions/src/G4AntiOmegacZero.cc | 2 +- .../hadrons/barions/src/G4AntiProton.cc | 2 +- .../hadrons/barions/src/G4AntiSigmaMinus.cc | 2 +- .../hadrons/barions/src/G4AntiSigmaPlus.cc | 2 +- .../hadrons/barions/src/G4AntiSigmaZero.cc | 2 +- .../hadrons/barions/src/G4AntiSigmacPlus.cc | 2 +- .../barions/src/G4AntiSigmacPlusPlus.cc | 2 +- .../hadrons/barions/src/G4AntiSigmacZero.cc | 2 +- .../hadrons/barions/src/G4AntiXiMinus.cc | 2 +- .../hadrons/barions/src/G4AntiXiZero.cc | 2 +- .../hadrons/barions/src/G4AntiXicPlus.cc | 2 +- .../hadrons/barions/src/G4AntiXicZero.cc | 2 +- .../barions/src/G4BaryonConstructor.cc | 2 +- .../particles/hadrons/barions/src/G4Lambda.cc | 2 +- .../hadrons/barions/src/G4LambdacPlus.cc | 2 +- .../hadrons/barions/src/G4Neutron.cc | 2 +- .../hadrons/barions/src/G4OmegaMinus.cc | 2 +- .../hadrons/barions/src/G4OmegacZero.cc | 2 +- .../particles/hadrons/barions/src/G4Proton.cc | 2 +- .../hadrons/barions/src/G4SigmaMinus.cc | 2 +- .../hadrons/barions/src/G4SigmaPlus.cc | 2 +- .../hadrons/barions/src/G4SigmaZero.cc | 2 +- .../hadrons/barions/src/G4SigmacPlus.cc | 2 +- .../hadrons/barions/src/G4SigmacPlusPlus.cc | 2 +- .../hadrons/barions/src/G4SigmacZero.cc | 2 +- .../hadrons/barions/src/G4VBaryon.cc | 2 +- .../hadrons/barions/src/G4XiMinus.cc | 2 +- .../particles/hadrons/barions/src/G4XiZero.cc | 2 +- .../hadrons/barions/src/G4XicPlus.cc | 2 +- .../hadrons/barions/src/G4XicZero.cc | 2 +- .../particles/hadrons/ions/include/G4Alpha.hh | 2 +- .../hadrons/ions/include/G4Deuteron.hh | 2 +- .../hadrons/ions/include/G4GenericIon.hh | 2 +- .../particles/hadrons/ions/include/G4He3.hh | 2 +- .../hadrons/ions/include/G4IonConstructor.hh | 2 +- .../hadrons/ions/include/G4Triton.hh | 2 +- .../particles/hadrons/ions/include/G4VIon.hh | 2 +- source/particles/hadrons/ions/src/G4Alpha.cc | 2 +- .../particles/hadrons/ions/src/G4Deuteron.cc | 2 +- .../hadrons/ions/src/G4GenericIon.cc | 2 +- source/particles/hadrons/ions/src/G4He3.cc | 2 +- .../hadrons/ions/src/G4IonConstructor.cc | 2 +- source/particles/hadrons/ions/src/G4Triton.cc | 2 +- source/particles/hadrons/ions/src/G4VIon.cc | 2 +- .../mesons/include/G4AntiBMesonZero.hh | 2 +- .../mesons/include/G4AntiBsMesonZero.hh | 2 +- .../mesons/include/G4AntiDMesonZero.hh | 2 +- .../hadrons/mesons/include/G4AntiKaonZero.hh | 2 +- .../hadrons/mesons/include/G4BMesonMinus.hh | 2 +- .../hadrons/mesons/include/G4BMesonPlus.hh | 2 +- .../hadrons/mesons/include/G4BMesonZero.hh | 2 +- .../hadrons/mesons/include/G4BsMesonZero.hh | 2 +- .../hadrons/mesons/include/G4DMesonMinus.hh | 2 +- .../hadrons/mesons/include/G4DMesonPlus.hh | 2 +- .../hadrons/mesons/include/G4DMesonZero.hh | 2 +- .../hadrons/mesons/include/G4DsMesonMinus.hh | 2 +- .../hadrons/mesons/include/G4DsMesonPlus.hh | 2 +- .../particles/hadrons/mesons/include/G4Eta.hh | 2 +- .../hadrons/mesons/include/G4EtaPrime.hh | 2 +- .../hadrons/mesons/include/G4JPsi.hh | 2 +- .../hadrons/mesons/include/G4KaonMinus.hh | 2 +- .../hadrons/mesons/include/G4KaonPlus.hh | 2 +- .../hadrons/mesons/include/G4KaonZero.hh | 2 +- .../hadrons/mesons/include/G4KaonZeroLong.hh | 2 +- .../hadrons/mesons/include/G4KaonZeroShort.hh | 2 +- .../mesons/include/G4MesonConstructor.hh | 2 +- .../hadrons/mesons/include/G4PionMinus.hh | 2 +- .../hadrons/mesons/include/G4PionPlus.hh | 2 +- .../hadrons/mesons/include/G4PionZero.hh | 2 +- .../hadrons/mesons/include/G4VMeson.hh | 2 +- .../hadrons/mesons/src/G4AntiBMesonZero.cc | 2 +- .../hadrons/mesons/src/G4AntiBsMesonZero.cc | 2 +- .../hadrons/mesons/src/G4AntiDMesonZero.cc | 2 +- .../hadrons/mesons/src/G4AntiKaonZero.cc | 2 +- .../hadrons/mesons/src/G4BMesonMinus.cc | 2 +- .../hadrons/mesons/src/G4BMesonPlus.cc | 2 +- .../hadrons/mesons/src/G4BMesonZero.cc | 2 +- .../hadrons/mesons/src/G4BsMesonZero.cc | 2 +- .../hadrons/mesons/src/G4DMesonMinus.cc | 2 +- .../hadrons/mesons/src/G4DMesonPlus.cc | 2 +- .../hadrons/mesons/src/G4DMesonZero.cc | 2 +- .../hadrons/mesons/src/G4DsMesonMinus.cc | 2 +- .../hadrons/mesons/src/G4DsMesonPlus.cc | 2 +- source/particles/hadrons/mesons/src/G4Eta.cc | 2 +- .../hadrons/mesons/src/G4EtaPrime.cc | 2 +- source/particles/hadrons/mesons/src/G4JPsi.cc | 2 +- .../hadrons/mesons/src/G4KaonMinus.cc | 2 +- .../hadrons/mesons/src/G4KaonPlus.cc | 2 +- .../hadrons/mesons/src/G4KaonZero.cc | 2 +- .../hadrons/mesons/src/G4KaonZeroLong.cc | 2 +- .../hadrons/mesons/src/G4KaonZeroShort.cc | 2 +- .../hadrons/mesons/src/G4MesonConstructor.cc | 2 +- .../hadrons/mesons/src/G4PionMinus.cc | 2 +- .../hadrons/mesons/src/G4PionPlus.cc | 2 +- .../hadrons/mesons/src/G4PionZero.cc | 2 +- .../particles/hadrons/mesons/src/G4VMeson.cc | 2 +- .../leptons/include/G4AntiNeutrinoE.hh | 2 +- .../leptons/include/G4AntiNeutrinoMu.hh | 2 +- .../leptons/include/G4AntiNeutrinoTau.hh | 2 +- .../particles/leptons/include/G4Electron.hh | 2 +- .../leptons/include/G4LeptonConstructor.hh | 2 +- .../particles/leptons/include/G4MuonMinus.hh | 2 +- .../particles/leptons/include/G4MuonPlus.hh | 2 +- .../particles/leptons/include/G4NeutrinoE.hh | 2 +- .../particles/leptons/include/G4NeutrinoMu.hh | 2 +- .../leptons/include/G4NeutrinoTau.hh | 2 +- .../particles/leptons/include/G4Positron.hh | 2 +- .../particles/leptons/include/G4TauMinus.hh | 2 +- source/particles/leptons/include/G4TauPlus.hh | 2 +- source/particles/leptons/include/G4VLepton.hh | 2 +- .../particles/leptons/src/G4AntiNeutrinoE.cc | 2 +- .../particles/leptons/src/G4AntiNeutrinoMu.cc | 2 +- .../leptons/src/G4AntiNeutrinoTau.cc | 2 +- source/particles/leptons/src/G4Electron.cc | 2 +- .../leptons/src/G4LeptonConstructor.cc | 2 +- source/particles/leptons/src/G4MuonMinus.cc | 2 +- source/particles/leptons/src/G4MuonPlus.cc | 2 +- source/particles/leptons/src/G4NeutrinoE.cc | 2 +- source/particles/leptons/src/G4NeutrinoMu.cc | 2 +- source/particles/leptons/src/G4NeutrinoTau.cc | 2 +- source/particles/leptons/src/G4Positron.cc | 2 +- source/particles/leptons/src/G4TauMinus.cc | 2 +- source/particles/leptons/src/G4TauPlus.cc | 2 +- source/particles/leptons/src/G4VLepton.cc | 2 +- .../include/G4DalitzDecayChannel.hh | 2 +- .../management/include/G4DecayProducts.hh | 2 +- .../management/include/G4DecayTable.hh | 2 +- .../include/G4DecayTableMessenger.hh | 2 +- .../management/include/G4DynamicParticle.hh | 26 +- .../management/include/G4DynamicParticle.icc | 32 +- .../include/G4DynamicParticleFastVector.hh | 2 +- .../management/include/G4ElectronOccupancy.hh | 2 +- .../management/include/G4IonTable.hh | 2 +- source/particles/management/include/G4Ions.hh | 2 +- .../management/include/G4IsotopeProperty.hh | 2 +- .../management/include/G4KL3DecayChannel.hh | 2 +- .../management/include/G4MuonDecayChannel.hh | 2 +- .../include/G4NeutronBetaDecayChannel.hh | 2 +- .../management/include/G4NucleiProperties.hh | 2 +- .../include/G4NucleiPropertiesTable.hh | 2 +- .../G4NucleiPropertiesTheoreticalTable.hh | 2 +- .../management/include/G4PDGCodeChecker.hh | 2 +- .../include/G4ParticleDefinition.hh | 24 +- .../include/G4ParticleDefinition.icc | 28 +- .../management/include/G4ParticleMessenger.hh | 2 +- .../management/include/G4ParticleMomentum.hh | 2 +- .../include/G4ParticlePropertyData.hh | 2 +- .../include/G4ParticlePropertyMessenger.hh | 2 +- .../include/G4ParticlePropertyTable.hh | 2 +- .../management/include/G4ParticleTable.hh | 2 +- .../management/include/G4ParticleTable.icc | 2 +- .../include/G4ParticleTableIterator.hh | 2 +- .../management/include/G4ParticleWithCuts.hh | 2 +- .../include/G4PhaseSpaceDecayChannel.hh | 2 +- .../management}/include/G4PrimaryParticle.hh | 26 +- .../management}/include/G4PrimaryVertex.hh | 6 +- .../management/include/G4ShortLivedTable.hh | 2 +- .../include/G4TauLeptonicDecayChannel.hh | 2 +- .../management/include/G4VDecayChannel.hh | 2 +- .../management/include/G4VIsotopeTable.hh | 2 +- .../G4VUserPrimaryParticleInformation.hh | 8 +- .../G4VUserPrimaryVertexInformation.hh | 8 +- .../management/src/G4DalitzDecayChannel.cc | 2 +- .../management/src/G4DecayProducts.cc | 2 +- .../particles/management/src/G4DecayTable.cc | 2 +- .../management/src/G4DecayTableMessenger.cc | 2 +- .../management/src/G4DynamicParticle.cc | 20 +- .../management/src/G4ElectronOccupancy.cc | 2 +- source/particles/management/src/G4IonTable.cc | 2 +- source/particles/management/src/G4Ions.cc | 2 +- .../management/src/G4IsotopeProperty.cc | 2 +- .../management/src/G4KL3DecayChannel.cc | 2 +- .../management/src/G4MuonDecayChannel.cc | 385 +- .../src/G4NeutronBetaDecayChannel.cc | 2 +- .../management/src/G4NucleiProperties.cc | 2 +- .../src/G4NucleiPropertiesTableA.cc | 2 +- .../src/G4NucleiPropertiesTableB.cc | 2 +- .../G4NucleiPropertiesTheoreticalTableA.cc | 2 +- .../management/src/G4PDGCodeChecker.cc | 2 +- .../management/src/G4ParticleDefinition.cc | 19 +- .../management/src/G4ParticleMessenger.cc | 2 +- .../src/G4ParticlePropertyMessenger.cc | 2 +- .../management/src/G4ParticleTable.cc | 2 +- .../src/G4PhaseSpaceDecayChannel.cc | 2 +- .../management}/src/G4PrimaryParticle.cc | 48 +- .../management}/src/G4PrimaryVertex.cc | 4 +- .../management/src/G4ShortLivedTable.cc | 2 +- .../src/G4TauLeptonicDecayChannel.cc | 2 +- .../management/src/G4VDecayChannel.cc | 2 +- .../src/G4VUserPrimaryParticleInformation.cc | 28 +- .../src/G4VUserPrimaryVertexInformation.cc | 32 +- .../shortlived/include/G4DiQuarks.hh | 2 +- .../include/G4ExcitedBaryonConstructor.hh | 2 +- .../shortlived/include/G4ExcitedBaryons.hh | 2 +- .../include/G4ExcitedDeltaConstructor.hh | 2 +- .../include/G4ExcitedLambdaConstructor.hh | 2 +- .../include/G4ExcitedMesonConstructor.hh | 2 +- .../shortlived/include/G4ExcitedMesons.hh | 2 +- .../include/G4ExcitedNucleonConstructor.hh | 2 +- .../include/G4ExcitedSigmaConstructor.hh | 2 +- .../include/G4ExcitedXiConstructor.hh | 2 +- .../particles/shortlived/include/G4Gluons.hh | 2 +- .../particles/shortlived/include/G4Quarks.hh | 2 +- .../include/G4ShortLivedConstructor.hh | 2 +- .../include/G4VShortLivedParticle.hh | 2 +- source/particles/shortlived/src/G4DiQuarks.cc | 2 +- .../src/G4ExcitedBaryonConstructor.cc | 2 +- .../shortlived/src/G4ExcitedBaryons.cc | 2 +- .../src/G4ExcitedDeltaConstructor.cc | 2 +- .../src/G4ExcitedLambdaConstructor.cc | 2 +- .../src/G4ExcitedMesonConstructor.cc | 2 +- .../shortlived/src/G4ExcitedMesons.cc | 2 +- .../src/G4ExcitedNucleonConstructor.cc | 2 +- .../src/G4ExcitedSigmaConstructor.cc | 2 +- .../shortlived/src/G4ExcitedXiConstructor.cc | 2 +- source/particles/shortlived/src/G4Gluons.cc | 2 +- source/particles/shortlived/src/G4Quarks.cc | 2 +- .../shortlived/src/G4ShortLivedConstructor.cc | 2 +- .../shortlived/src/G4VShortLivedParticle.cc | 2 +- .../utils/include/G4HtmlPPReporter.hh | 2 +- .../utils/include/G4SimplePPReporter.hh | 2 +- .../utils/include/G4TextPPReporter.hh | 2 +- .../utils/include/G4TextPPRetriever.hh | 2 +- .../include/G4VParticlePropertyReporter.hh | 2 +- .../include/G4VParticlePropertyRetriever.hh | 2 +- .../particles/utils/src/G4HtmlPPReporter.cc | 2 +- .../particles/utils/src/G4SimplePPReporter.cc | 2 +- .../particles/utils/src/G4TextPPReporter.cc | 2 +- .../particles/utils/src/G4TextPPRetriever.cc | 2 +- .../utils/src/G4VParticlePropertyReporter.cc | 2 +- .../cuts/include/G4MCCIndexConversionTable.hh | 2 +- .../cuts/include/G4MaterialCutsCouple.hh | 2 +- .../cuts/include/G4PhysicsTableHelper.hh | 2 +- .../cuts/include/G4ProductionCuts.hh | 2 +- .../cuts/include/G4ProductionCutsTable.hh | 2 +- .../cuts/include/G4RToEConvForAntiNeutron.hh | 2 +- .../cuts/include/G4RToEConvForAntiProton.hh | 2 +- .../cuts/include/G4RToEConvForElectron.hh | 2 +- .../cuts/include/G4RToEConvForGamma.hh | 2 +- .../cuts/include/G4RToEConvForNeutron.hh | 2 +- .../cuts/include/G4RToEConvForPositron.hh | 2 +- .../cuts/include/G4RToEConvForProton.hh | 2 +- .../cuts/include/G4VRangeToEnergyConverter.hh | 2 +- .../cuts/src/G4MCCIndexConversionTable.cc | 2 +- .../cuts/src/G4MaterialCutsCouple.cc | 2 +- .../cuts/src/G4PhysicsTableHelper.cc | 2 +- source/processes/cuts/src/G4ProductionCuts.cc | 2 +- .../cuts/src/G4ProductionCutsTable.cc | 2 +- .../cuts/src/G4RToEConvForAntiNeutron.cc | 2 +- .../cuts/src/G4RToEConvForAntiProton.cc | 2 +- .../cuts/src/G4RToEConvForElectron.cc | 2 +- .../processes/cuts/src/G4RToEConvForGamma.cc | 2 +- .../cuts/src/G4RToEConvForNeutron.cc | 2 +- .../cuts/src/G4RToEConvForPositron.cc | 2 +- .../processes/cuts/src/G4RToEConvForProton.cc | 2 +- .../cuts/src/G4VRangeToEnergyConverter.cc | 2 +- source/processes/decay/History | 4 +- source/processes/decay/include/G4Decay.hh | 2 +- .../processes/decay/include/G4UnknownDecay.hh | 2 +- .../processes/decay/include/G4VExtDecayer.hh | 2 +- source/processes/decay/src/G4Decay.cc | 7 +- source/processes/decay/src/G4UnknownDecay.cc | 2 +- .../electromagnetic/highenergy/GNUmakefile | 3 +- .../electromagnetic/highenergy/History | 10 +- .../highenergy/include/G4AnnihiToMuPair.hh | 2 +- .../include/G4BetheBlochNoDeltaModel.hh | 116 + .../highenergy/include/G4BraggNoDeltaModel.hh | 115 + .../include/G4GammaConversionToMuons.hh | 2 +- .../highenergy/include/G4Vee2hadrons.hh | 2 +- .../highenergy/include/G4eeCrossSections.hh | 2 +- .../highenergy/include/G4eeToHadrons.hh | 139 +- .../highenergy/include/G4eeToHadronsModel.hh | 81 +- .../include/G4eeToHadronsMultiModel.hh | 151 + .../highenergy/include/G4eeToTwoPiModel.hh | 2 +- .../highenergy/src/G4AnnihiToMuPair.cc | 2 +- .../src/G4GammaConversionToMuons.cc | 10 +- .../highenergy/src/G4eeCrossSections.cc | 2 +- .../highenergy/src/G4eeToHadrons.cc | 129 +- .../highenergy/src/G4eeToHadronsModel.cc | 101 +- .../highenergy/src/G4eeToHadronsMultiModel.cc | 122 + .../highenergy/src/G4eeToTwoPiModel.cc | 2 +- .../electromagnetic/lowenergy/History | 47 +- .../lowenergy/include/G4AtomicDeexcitation.hh | 4 +- .../lowenergy/include/G4AtomicShell.hh | 2 +- .../include/G4AtomicTransitionManager.hh | 2 +- .../lowenergy/include/G4AugerData.hh | 2 +- .../include/G4BremsstrahlungParameters.hh | 2 +- .../lowenergy/include/G4CompositeEMDataSet.hh | 2 +- .../include/G4CrossSectionHandler.hh | 2 +- .../lowenergy/include/G4EMDataSet.hh | 2 +- .../lowenergy/include/G4FluoTransition.hh | 2 +- .../lowenergy/include/G4LinInterpolation.hh | 2 +- .../include/G4LogLogInterpolation.hh | 2 +- .../include/G4LowEnergyBremsstrahlung.hh | 2 +- .../lowenergy/include/G4LowEnergyCompton.hh | 2 +- .../include/G4LowEnergyGammaConversion.hh | 2 +- .../include/G4LowEnergyIonisation.hh | 2 +- .../include/G4LowEnergyPhotoElectric.hh | 2 +- .../include/G4LowEnergyPolarizedCompton.hh | 2 +- .../include/G4LowEnergyPolarizedRayleigh.hh | 108 + .../lowenergy/include/G4LowEnergyRayleigh.hh | 2 +- .../include/G4PenelopeBremsstrahlung.hh | 2 +- .../G4PenelopeBremsstrahlungAngular.hh | 2 +- .../G4PenelopeBremsstrahlungContinuous.hh | 2 +- .../lowenergy/include/G4PenelopeCompton.hh | 2 +- .../include/G4PenelopeGammaConversion.hh | 2 +- .../lowenergy/include/G4PenelopeIntegrator.hh | 2 +- .../lowenergy/include/G4PenelopeIonisation.hh | 2 +- .../include/G4PenelopePhotoElectric.hh | 8 +- .../lowenergy/include/G4PenelopeRayleigh.hh | 2 +- .../lowenergy/include/G4RangeNoTest.hh | 2 +- .../lowenergy/include/G4RangeTest.hh | 2 +- .../include/G4SemiLogInterpolation.hh | 2 +- .../lowenergy/include/G4ShellData.hh | 2 +- .../lowenergy/include/G4ShellEMDataSet.hh | 2 +- .../include/G4VCrossSectionHandler.hh | 2 +- .../lowenergy/include/G4VDataSetAlgorithm.hh | 2 +- .../lowenergy/include/G4VEMDataSet.hh | 2 +- .../G4VLowEnergyDiscretePhotonProcess.hh | 190 + .../lowenergy/include/G4VRangeTest.hh | 2 +- .../lowenergy/include/G4VeLowEnergyLoss.hh | 2 +- .../include/G4eBremsstrahlungSpectrum.hh | 2 +- .../G4eIonisationCrossSectionHandler.hh | 2 +- .../include/G4eIonisationParameters.hh | 2 +- .../include/G4eIonisationSpectrum.hh | 2 +- .../lowenergy/include/G4eLowEnergyLoss.hh | 2 +- .../lowenergy/include/G4eLowEnergyLoss.icc | 2 +- .../lowenergy/include/G4hLowEnergyLoss.hh | 2 +- .../lowenergy/include/G4hLowEnergyLoss.icc | 2 +- .../include/G4hShellCrossSectionDoubleExp.hh | 2 +- .../G4hShellCrossSectionDoubleExpData.hh | 2 +- .../include/G4hShellCrossSectionExp.hh | 2 +- .../include/G4hShellCrossSectionExpData.hh | 2 +- .../lowenergy/src/G4AtomicDeexcitation.cc | 34 +- .../lowenergy/src/G4AtomicShell.cc | 2 +- .../src/G4AtomicTransitionManager.cc | 2 +- .../G4BremsstrahlungCrossSectionHandler.cc | 2 +- .../src/G4BremsstrahlungParameters.cc | 2 +- .../lowenergy/src/G4CompositeEMDataSet.cc | 2 +- .../lowenergy/src/G4CrossSectionHandler.cc | 2 +- .../lowenergy/src/G4EMDataSet.cc | 2 +- .../lowenergy/src/G4FluoTransition.cc | 2 +- .../lowenergy/src/G4LinInterpolation.cc | 2 +- .../lowenergy/src/G4LogLogInterpolation.cc | 2 +- .../src/G4LowEnergyBremsstrahlung.cc | 2 +- .../lowenergy/src/G4LowEnergyCompton.cc | 2 +- .../src/G4LowEnergyGammaConversion.cc | 2 +- .../lowenergy/src/G4LowEnergyIonisation.cc | 2 +- .../lowenergy/src/G4LowEnergyPhotoElectric.cc | 2 +- .../src/G4LowEnergyPolarizedCompton.cc | 8 +- .../src/G4LowEnergyPolarizedRayleigh.cc | 222 + .../lowenergy/src/G4LowEnergyRayleigh.cc | 2 +- .../lowenergy/src/G4PenelopeBremsstrahlung.cc | 2 +- .../src/G4PenelopeBremsstrahlungAngular.cc | 2 +- .../src/G4PenelopeBremsstrahlungContinuous.cc | 2 +- .../lowenergy/src/G4PenelopeCompton.cc | 2 +- .../lowenergy/src/G4PenelopeIonisation.cc | 53 +- .../lowenergy/src/G4PenelopePhotoElectric.cc | 53 +- .../lowenergy/src/G4PenelopeRayleigh.cc | 2 +- .../lowenergy/src/G4RangeTest.cc | 2 +- .../lowenergy/src/G4SemiLogInterpolation.cc | 2 +- .../lowenergy/src/G4ShellData.cc | 2 +- .../lowenergy/src/G4ShellEMDataSet.cc | 2 +- .../lowenergy/src/G4VCrossSectionHandler.cc | 2 +- .../src/G4VLowEnergyDiscretePhotonProcess.cc | 168 + .../lowenergy/src/G4VeLowEnergyLoss.cc | 2 +- .../src/G4eBremsstrahlungSpectrum.cc | 2 +- .../src/G4eIonisationCrossSectionHandler.cc | 2 +- .../lowenergy/src/G4eIonisationParameters.cc | 2 +- .../lowenergy/src/G4eIonisationSpectrum.cc | 2 +- .../lowenergy/src/G4eLowEnergyLoss.cc | 2 +- .../lowenergy/src/G4hICRU49Nuclear.cc | 6 +- .../lowenergy/src/G4hLowEnergyLoss.cc | 2 +- .../src/G4hShellCrossSectionDoubleExp.cc | 2 +- .../src/G4hShellCrossSectionDoubleExpData.cc | 2 +- .../lowenergy/src/G4hShellCrossSectionExp.cc | 2 +- .../src/G4hShellCrossSectionExpData.cc | 2 +- .../lowenergy/src/G4hZiegler1985Nuclear.cc | 12 +- .../processes/electromagnetic/muons/History | 21 +- .../include/G4EnergyLossForExtrapolator.hh | 180 + .../muons/include/G4MuBetheBlochModel.hh | 55 +- .../muons/include/G4MuBremsstrahlung.hh | 66 +- .../muons/include/G4MuBremsstrahlung52.hh | 2 +- .../muons/include/G4MuBremsstrahlung52.icc | 2 +- .../muons/include/G4MuBremsstrahlungModel.hh | 56 +- .../muons/include/G4MuIonisation.hh | 91 +- .../muons/include/G4MuIonisation52.hh | 2 +- .../muons/include/G4MuIonisation52.icc | 2 +- .../muons/include/G4MuPairProduction.hh | 87 +- .../muons/include/G4MuPairProduction52.hh | 2 +- .../muons/include/G4MuPairProduction52.icc | 2 +- .../muons/include/G4MuPairProductionModel.hh | 73 +- .../muons/include/G4VMuEnergyLoss.hh | 2 +- .../muons/include/G4VMuEnergyLoss.icc | 2 +- .../muons/src/G4EnergyLossForExtrapolator.cc | 402 + .../muons/src/G4MuBetheBlochModel.cc | 121 +- .../muons/src/G4MuBremsstrahlung.cc | 12 +- .../muons/src/G4MuBremsstrahlung52.cc | 2 +- .../muons/src/G4MuBremsstrahlungModel.cc | 77 +- .../muons/src/G4MuIonisation.cc | 17 +- .../muons/src/G4MuIonisation52.cc | 2 +- .../muons/src/G4MuPairProduction.cc | 17 +- .../muons/src/G4MuPairProduction52.cc | 2 +- .../muons/src/G4MuPairProductionModel.cc | 76 +- .../muons/src/G4VMuEnergyLoss.cc | 2 +- .../electromagnetic/standard/History | 53 +- .../standard/include/G4BetheBlochModel.hh | 80 +- .../standard/include/G4BetheHeitlerModel.hh | 157 + .../standard/include/G4BohrFluctuations.hh | 2 +- .../standard/include/G4BraggIonModel.hh | 80 +- .../standard/include/G4BraggModel.hh | 81 +- .../standard/include/G4ComptonScattering.hh | 131 +- .../standard/include/G4ComptonScattering52.hh | 159 + .../standard/include/G4GammaConversion.hh | 184 +- .../standard/include/G4GammaConversion52.hh | 210 + .../standard/include/G4InitXscPAI.hh | 2 +- .../standard/include/G4IonFluctuations.hh | 2 +- .../standard/include/G4KleinNishinaCompton.hh | 96 + .../standard/include/G4MollerBhabhaModel.hh | 67 +- .../standard/include/G4MscModel.hh | 78 +- .../standard/include/G4MultipleScattering.hh | 104 +- .../include/G4MultipleScattering52.hh | 2 +- .../include/G4MultipleScattering52.icc | 2 +- .../standard/include/G4PAIModel.hh | 94 +- .../standard/include/G4PAIPhotonModel.hh | 85 +- .../standard/include/G4PAIwithPhotons.hh | 237 - .../standard/include/G4PAIxSection.hh | 2 +- .../standard/include/G4PEEffectModel.hh | 113 + .../standard/include/G4PhotoElectricEffect.hh | 145 +- .../include/G4PhotoElectricEffect52.hh | 146 + .../include/G4PolarizedComptonScattering.hh | 12 +- .../standard/include/G4SCProcessorStand.hh | 2 +- .../include/G4SynchrotronRadiation.hh | 2 +- .../include/G4UniversalFluctuation.hh | 8 +- .../standard/include/G4VeEnergyLoss.hh | 2 +- .../standard/include/G4VeEnergyLoss.icc | 2 +- .../standard/include/G4VhEnergyLoss.hh | 2 +- .../standard/include/G4VhEnergyLoss.icc | 2 +- .../standard/include/G4eBremsstrahlung.hh | 88 +- .../standard/include/G4eBremsstrahlung52.hh | 2 +- .../standard/include/G4eBremsstrahlung52.icc | 2 +- .../include/G4eBremsstrahlungModel.hh | 69 +- .../standard/include/G4eIonisation.hh | 93 +- .../standard/include/G4eIonisation52.hh | 2 +- .../standard/include/G4eIonisation52.icc | 2 +- .../standard/include/G4eeToTwoGammaModel.hh | 69 +- .../standard/include/G4eplusAnnihilation.hh | 203 +- .../standard/include/G4eplusAnnihilation52.hh | 169 + .../standard/include/G4eplusAnnihilation70.hh | 141 - .../standard/include/G4hIonisation.hh | 101 +- .../standard/include/G4hIonisation52.hh | 2 +- .../standard/include/G4hIonisation52.icc | 2 +- .../standard/include/G4ionIonisation.hh | 136 +- .../standard/src/G4BetheBlochModel.cc | 141 +- .../standard/src/G4BetheHeitlerModel.cc | 324 + .../standard/src/G4BohrFluctuations.cc | 9 +- .../standard/src/G4BraggIonModel.cc | 173 +- .../standard/src/G4BraggModel.cc | 123 +- .../standard/src/G4ComptonScattering.cc | 455 +- .../standard/src/G4ComptonScattering52.cc | 479 + .../standard/src/G4GammaConversion.cc | 547 +- .../standard/src/G4GammaConversion52.cc | 584 + .../standard/src/G4InitXscPAI.cc | 10 +- .../standard/src/G4IonFluctuations.cc | 2 +- .../standard/src/G4KleinNishinaCompton.cc | 220 + .../standard/src/G4MollerBhabhaModel.cc | 76 +- .../standard/src/G4MscModel.cc | 102 +- .../standard/src/G4MultipleScattering.cc | 42 +- .../standard/src/G4MultipleScattering52.cc | 8 +- .../standard/src/G4PAIModel.cc | 113 +- .../standard/src/G4PAIPhotonModel.cc | 99 +- .../standard/src/G4PAIwithPhotons.cc | 848 - .../standard/src/G4PAIxSection.cc | 2 +- .../standard/src/G4PEEffectModel.cc | 165 + .../standard/src/G4PhotoElectricEffect.cc | 244 +- .../standard/src/G4PhotoElectricEffect52.cc | 284 + .../src/G4PolarizedComptonScattering.cc | 31 +- .../standard/src/G4SCProcessorStand.cc | 2 +- .../standard/src/G4SynchrotronRadiation.cc | 2 +- .../standard/src/G4UniversalFluctuation.cc | 304 +- .../standard/src/G4VeEnergyLoss.cc | 2 +- .../standard/src/G4VhEnergyLoss.cc | 2 +- .../standard/src/G4eBremsstrahlung.cc | 12 +- .../standard/src/G4eBremsstrahlung52.cc | 10 +- .../standard/src/G4eBremsstrahlungModel.cc | 69 +- .../standard/src/G4eIonisation.cc | 19 +- .../standard/src/G4eIonisation52.cc | 2 +- .../standard/src/G4eeToTwoGammaModel.cc | 69 +- .../standard/src/G4eplusAnnihilation.cc | 523 +- .../standard/src/G4eplusAnnihilation52.cc | 495 + .../standard/src/G4eplusAnnihilation70.cc | 141 - .../standard/src/G4hIonisation.cc | 30 +- .../standard/src/G4hIonisation52.cc | 2 +- .../standard/src/G4ionIonisation.cc | 34 +- .../processes/electromagnetic/utils/History | 55 +- .../utils/include/G4EmCalculator.hh | 9 +- .../utils/include/G4EmCorrections.hh | 205 + .../utils/include/G4EmModelManager.hh | 56 +- .../utils/include/G4EmMultiModel.hh | 43 +- .../utils/include/G4EmProcessOptions.hh | 12 +- .../utils/include/G4EnergyLossMessenger.hh | 2 +- .../utils/include/G4EnergyLossTables.hh | 2 +- .../utils/include/G4LossTableBuilder.hh | 2 +- .../utils/include/G4LossTableManager.hh | 8 +- .../utils/include/G4VEmFluctuationModel.hh | 54 +- .../utils/include/G4VEmModel.hh | 322 +- .../utils/include/G4VEmProcess.hh | 147 +- .../utils/include/G4VEnergyLoss.hh | 2 +- .../utils/include/G4VEnergyLossProcess.hh | 191 +- .../utils/include/G4VMultipleScattering.hh | 125 +- .../utils/include/G4VSubCutoffProcessor.hh | 2 +- .../utils/include/G4ionEffectiveCharge.hh | 9 +- .../utils/src/G4EmCalculator.cc | 161 +- .../utils/src/G4EmCorrections.cc | 1339 ++ .../utils/src/G4EmModelManager.cc | 78 +- .../utils/src/G4EmMultiModel.cc | 52 +- .../utils/src/G4EmProcessOptions.cc | 63 +- .../utils/src/G4EnergyLossMessenger.cc | 2 +- .../utils/src/G4EnergyLossTables.cc | 2 +- .../utils/src/G4LossTableBuilder.cc | 22 +- .../utils/src/G4LossTableManager.cc | 37 +- .../electromagnetic/utils/src/G4VEmProcess.cc | 240 +- .../utils/src/G4VEnergyLoss.cc | 2 +- .../utils/src/G4VEnergyLossProcess.cc | 193 +- .../utils/src/G4VMultipleScattering.cc | 157 +- .../utils/src/G4ionEffectiveCharge.cc | 22 +- .../processes/electromagnetic/xrays/History | 16 +- .../xrays/include/G4Cerenkov.hh | 2 +- .../xrays/include/G4ForwardXrayTR.hh | 2 +- .../xrays/include/G4GammaXTRadiator.hh | 5 +- .../xrays/include/G4RegularXTRadiator.hh | 2 +- .../xrays/include/G4Scintillation.hh | 2 +- .../xrays/include/G4StrawTubeXTRadiator.hh | 83 + .../xrays/include/G4TransitionRadiation.hh | 2 +- .../include/G4TransparentRegXTRadiator.hh | 55 +- .../xrays/include/G4VTRModel.hh | 2 +- .../xrays/include/G4VTransitionRadiation.hh | 2 +- .../xrays/include/G4VXTRenergyLoss.hh | 21 +- .../electromagnetic/xrays/src/G4Cerenkov.cc | 2 +- .../xrays/src/G4ForwardXrayTR.cc | 2 +- .../xrays/src/G4GammaXTRadiator.cc | 2 +- .../xrays/src/G4RegularXTRadiator.cc | 82 +- .../xrays/src/G4Scintillation.cc | 2 +- .../xrays/src/G4StrawTubeXTRadiator.cc | 273 + .../xrays/src/G4TransitionRadiation.cc | 6 +- .../xrays/src/G4TransparentRegXTRadiator.cc | 212 + .../xrays/src/G4VTransitionRadiation.cc | 2 +- .../xrays/src/G4VXTRenergyLoss.cc | 6 +- .../include/G4ElectroNuclearCrossSection.hh | 2 +- .../include/G4HadronCrossSections.hh | 2 +- .../include/G4PhotoNuclearCrossSection.hh | 2 +- .../src/G4EMDissociationCrossSection.cc | 4 +- .../src/G4ElectroNuclearCrossSection.cc | 4 +- .../src/G4HadronCaptureDataSet.cc | 4 +- .../src/G4HadronCrossSections.cc | 2 +- .../src/G4HadronElasticDataSet.cc | 4 +- .../src/G4HadronFissionDataSet.cc | 4 +- .../src/G4HadronInelasticDataSet.cc | 4 +- .../src/G4PhotoNuclearCrossSection.cc | 2 +- .../hadronic/cross_sections/src/G4PiData.cc | 2 +- .../include/G4EnergyRangeManager.hh | 4 +- .../management/include/G4HadLeadBias.hh | 2 +- .../include/G4VLeadingParticleBiasing.hh | 4 +- .../management/src/G4EnergyRangeManager.cc | 4 +- .../management/src/G4HadronicProcess.cc | 1133 +- .../abrasion/src/G4WilsonAbrasionModel.cc | 22 +- .../binary_cascade/src/G4BinaryCascade.cc | 0 .../cascade/include/G4BertiniRegionModel.hh | 2 +- .../include/G4CascadSpecialFunctions.hh | 2 +- .../cascade/include/G4CascadeChannel.hh} | 30 +- .../include/G4CascadeElasticInterface.hh | 78 +- .../include/G4CascadeKminusNChannel.hh | 56 + .../include/G4CascadeKminusPChannel.hh | 59 + .../cascade/include/G4CascadeKplusNChannel.hh | 65 + .../cascade/include/G4CascadeKplusPChannel.hh | 56 + .../include/G4CascadeKzeroBarNChannel.hh | 56 + .../include/G4CascadeKzeroBarPChannel.hh | 56 + .../cascade/include/G4CascadeKzeroNChannel.hh | 56 + .../cascade/include/G4CascadeKzeroPChannel.hh | 65 + .../include/G4CascadeLambdaNChannel.hh | 43 +- .../include/G4CascadeLambdaPChannel.hh | 42 +- .../include/G4CascadeSigmaMinusNChannel.hh | 56 + .../include/G4CascadeSigmaMinusPChannel.hh | 56 + .../include/G4CascadeSigmaPlusNChannel.hh | 56 + .../include/G4CascadeSigmaPlusPChannel.hh | 56 + .../include/G4CascadeSigmaZeroNChannel.hh | 56 + .../include/G4CascadeSigmaZeroPChannel.hh | 56 + .../include/G4CascadeXiMinusNChannel.hh | 56 + .../include/G4CascadeXiMinusPChannel.hh | 56 + .../include/G4CascadeXiZeroNChannel.hh | 56 + .../include/G4CascadeXiZeroPChannel.hh | 56 + .../include/G4ElementaryParticleCollider.hh | 75 +- .../include/G4InuclElementaryParticle.hh | 211 +- .../include/G4InuclSpecialFunctions.hh | 2 +- .../cascade/cascade/include/G4NuclWatcher.hh | 2 +- .../cascade/cascade/include/G4NucleiModel.hh | 52 +- .../cascade/cascade/include/G4RegionModel.hh | 2 +- .../models/cascade/cascade/src/G4Analyser.cc | 2 +- .../cascade/src/G4CascadSpecialFunctions.cc | 8 +- .../cascade/cascade/src/G4CascadeChannel.cc | 172 + .../cascade/src/G4CascadeElasticInterface.cc | 395 + .../cascade/cascade/src/G4CascadeInterface.cc | 146 +- .../cascade/src/G4CascadeKminusNChannel.cc | 817 + .../cascade/src/G4CascadeKminusPChannel.cc | 963 ++ .../cascade/src/G4CascadeKplusNChannel.cc | 787 + .../cascade/src/G4CascadeKplusPChannel.cc | 711 + .../cascade/src/G4CascadeKzeroBarNChannel.cc | 960 ++ .../cascade/src/G4CascadeKzeroBarPChannel.cc | 817 + .../cascade/src/G4CascadeKzeroNChannel.cc | 710 + .../cascade/src/G4CascadeKzeroPChannel.cc | 786 + .../cascade/src/G4CascadeLambdaNChannel.cc | 1020 ++ .../cascade/src/G4CascadeLambdaPChannel.cc | 1123 ++ .../src/G4CascadeSigmaMinusNChannel.cc | 775 + .../src/G4CascadeSigmaMinusPChannel.cc | 1012 ++ .../cascade/src/G4CascadeSigmaPlusNChannel.cc | 1010 ++ .../cascade/src/G4CascadeSigmaPlusPChannel.cc | 768 + .../cascade/src/G4CascadeSigmaZeroNChannel.cc | 1010 ++ .../cascade/src/G4CascadeSigmaZeroPChannel.cc | 1010 ++ .../cascade/src/G4CascadeXiMinusNChannel.cc | 600 + .../cascade/src/G4CascadeXiMinusPChannel.cc | 545 + .../cascade/src/G4CascadeXiZeroNChannel.cc | 422 + .../cascade/src/G4CascadeXiZeroPChannel.cc | 600 + .../src/G4ElementaryParticleCollider.cc | 181 +- .../cascade/cascade/src/G4FissionStore.cc | 2 +- .../cascade/src/G4IntraNucleiCascader.cc | 11 + .../cascade/src/G4NonEquilibriumEvaporator.cc | 2 +- .../cascade/cascade/src/G4NucleiModel.cc | 89 +- .../models/cascade/cascade/src/paraMaker.cc | 4 +- .../body/include/G4Chips.hh | 4 +- .../body/include/G4QCHIPSWorld.hh | 4 +- .../body/include/G4QCandidate.hh | 4 +- .../body/include/G4QCandidateVector.hh | 4 +- .../body/include/G4QCaptureAtRest.hh | 42 +- .../body/include/G4QChipolino.hh | 4 +- .../body/include/G4QCollision.hh | 176 + .../body/include/G4QContent.hh | 4 +- .../body/include/G4QDecayChan.hh | 4 +- .../body/include/G4QDecayChanVector.hh | 4 +- .../include/G4QElectronNuclearCrossSection.hh | 156 + .../body/include/G4QEnvironment.hh | 25 +- .../body/include/G4QException.hh | 4 +- .../body/include/G4QHadron.hh | 6 +- .../body/include/G4QHadronVector.hh | 6 +- .../body/include/G4QIsotope.hh | 10 +- .../include/G4QMuonNuclearCrossSection.hh | 160 + .../body/include/G4QNucleus.hh | 16 +- .../body/include/G4QPDGCode.hh | 24 +- .../body/include/G4QPDGCodeVector.hh | 4 +- .../body/include/G4QPDGToG4Particle.hh | 57 +- .../body/include/G4QParentCluster.hh | 4 +- .../body/include/G4QParentClusterVector.hh | 4 +- .../body/include/G4QParticle.hh | 4 +- .../body/include/G4QParticleVector.hh | 4 +- .../include/G4QPhotonNuclearCrossSection.hh | 67 +- .../include/G4QProtonNuclearCrossSection.hh | 73 + .../body/include/G4QTauNuclearCrossSection.hh | 160 + .../body/include/G4Quasmon.hh | 51 +- .../body/include/G4QuasmonString.hh | 106 + .../body/include/G4QuasmonVector.hh | 4 +- .../body/include/G4VQCrossSection.hh | 170 + .../body/src/G4QCHIPSWorld.cc | 4 +- .../body/src/G4QCandidate.cc | 17 +- .../body/src/G4QCaptureAtRest.cc | 307 +- .../body/src/G4QChipolino.cc | 4 +- .../body/src/G4QCollision.cc | 609 + .../body/src/G4QContent.cc | 190 +- .../body/src/G4QDecayChan.cc | 4 +- .../src/G4QElectronNuclearCrossSection.cc | 2573 +++ .../body/src/G4QEnvironment.cc | 2927 +++- .../body/src/G4QException.cc | 4 +- .../body/src/G4QHadron.cc | 49 +- .../body/src/G4QIsotope.cc | 1695 +- .../body/src/G4QMuonNuclearCrossSection.cc | 2587 +++ .../body/src/G4QNucleus.cc | 409 +- .../body/src/G4QPDGCode.cc | 1419 +- .../body/src/G4QPDGToG4Particle.cc | 428 + .../body/src/G4QParentCluster.cc | 4 +- .../body/src/G4QParticle.cc | 356 +- .../body/src/G4QPhotonNuclearCrossSection.cc | 1538 ++ .../body/src/G4QProtonNuclearCrossSection.cc | 295 + .../body/src/G4QTauNuclearCrossSection.cc | 2587 +++ .../body/src/G4Quasmon.cc | 3827 +++-- .../body/src/G4QuasmonString.cc | 938 ++ .../body/src/G4VQCrossSection.cc | 165 + .../include/G4ElectroNuclearReaction.hh | 4 +- .../include/G4GammaNuclearReaction.hh | 4 +- .../interface/src/G4StringChipsInterface.cc | 50 +- .../G4StringChipsParticleLevelInterface.cc | 61 +- .../include/G4DiffElasticHadrNucleus.hh | 99 +- .../include/G4ElasticHadrNucleusHE.hh | 15 +- .../src/G4DiffElasticHadrNucleus.cc | 252 +- .../src/G4ElasticHadrNucleusHE.cc | 128 +- .../coherent_elastic/src/G4HadronValues.cc | 3 +- .../src/G4IntegrHadrNucleus.cc | 40 +- .../include/G4AlphaEvaporationChannel.hh | 4 +- .../include/G4AlphaEvaporationProbability.hh | 4 +- .../include/G4DeuteronEvaporationChannel.hh | 4 +- .../G4DeuteronEvaporationProbability.hh | 4 +- .../evaporation/include/G4Evaporation.hh | 4 +- .../include/G4EvaporationChannel.hh | 4 +- .../include/G4EvaporationFactory.hh | 4 +- .../include/G4EvaporationProbability.hh | 4 +- .../include/G4He3EvaporationChannel.hh | 4 +- .../include/G4He3EvaporationProbability.hh | 4 +- .../include/G4NeutronEvaporationChannel.hh | 4 +- .../G4NeutronEvaporationProbability.hh | 4 +- .../include/G4ProtonEvaporationChannel.hh | 4 +- .../include/G4ProtonEvaporationProbability.hh | 4 +- .../include/G4TritonEvaporationChannel.hh | 4 +- .../include/G4TritonEvaporationProbability.hh | 4 +- .../evaporation/include/G4VEvaporation.hh | 4 +- .../src/G4AlphaEvaporationChannel.cc | 4 +- .../src/G4AlphaEvaporationProbability.cc | 4 +- .../src/G4DeuteronEvaporationChannel.cc | 4 +- .../src/G4DeuteronEvaporationProbability.cc | 4 +- .../evaporation/src/G4Evaporation.cc | 4 +- .../evaporation/src/G4EvaporationChannel.cc | 4 +- .../evaporation/src/G4EvaporationFactory.cc | 4 +- .../src/G4EvaporationProbability.cc | 4 +- .../src/G4He3EvaporationChannel.cc | 4 +- .../src/G4He3EvaporationProbability.cc | 4 +- .../src/G4NeutronEvaporationChannel.cc | 4 +- .../src/G4NeutronEvaporationProbability.cc | 4 +- .../src/G4ProtonEvaporationChannel.cc | 4 +- .../src/G4ProtonEvaporationProbability.cc | 4 +- .../src/G4TritonEvaporationChannel.cc | 4 +- .../src/G4TritonEvaporationProbability.cc | 4 +- .../evaporation/src/G4VEvaporation.cc | 4 +- .../include/G4B9FermiFragment.hh | 4 +- .../include/G4Be8FermiFragment.hh | 4 +- .../fermi_breakup/include/G4FermiBreakUp.hh | 4 +- .../include/G4FermiConfiguration.hh | 4 +- .../include/G4FermiConfigurationList.hh | 4 +- .../include/G4He5FermiFragment.hh | 4 +- .../include/G4Li5FermiFragment.hh | 4 +- .../include/G4StableFermiFragment.hh | 4 +- .../include/G4UnstableFermiFragment.hh | 4 +- .../fermi_breakup/include/G4VFermiBreakUp.hh | 4 +- .../fermi_breakup/include/G4VFermiFragment.hh | 4 +- .../fermi_breakup/src/G4B9FermiFragment.cc | 4 +- .../fermi_breakup/src/G4Be8FermiFragment.cc | 4 +- .../fermi_breakup/src/G4FermiConfiguration.cc | 4 +- .../fermi_breakup/src/G4FermiFragmentsPool.cc | 314 +- .../fermi_breakup/src/G4He5FermiFragment.cc | 4 +- .../fermi_breakup/src/G4Li5FermiFragment.cc | 4 +- .../src/G4StableFermiFragment.cc | 4 +- .../src/G4UnstableFermiFragment.cc | 4 +- .../fermi_breakup/src/G4VFermiBreakUp.cc | 4 +- .../fermi_breakup/src/G4VFermiFragment.cc | 4 +- .../fission/include/G4CompetitiveFission.hh | 4 +- .../fission/include/G4FissionBarrier.hh | 4 +- .../include/G4FissionLevelDensityParameter.hh | 4 +- .../fission/include/G4FissionParameters.hh | 4 +- .../fission/include/G4FissionProbability.hh | 4 +- .../fission/include/G4VFissionBarrier.hh | 4 +- .../fission/src/G4CompetitiveFission.cc | 4 +- .../fission/src/G4FissionBarrier.cc | 4 +- .../src/G4FissionLevelDensityParameter.cc | 4 +- .../fission/src/G4FissionParameters.cc | 4 +- .../fission/src/G4FissionProbability.cc | 4 +- .../fission/src/G4VFissionBarrier.cc | 4 +- .../include/G4AlphaGEMChannel.hh | 4 +- .../include/G4AlphaGEMProbability.hh | 4 +- .../include/G4B10GEMChannel.hh | 4 +- .../include/G4B10GEMCoulombBarrier.hh | 4 +- .../include/G4B10GEMProbability.hh | 4 +- .../include/G4B11GEMChannel.hh | 4 +- .../include/G4B11GEMCoulombBarrier.hh | 4 +- .../include/G4B11GEMProbability.hh | 4 +- .../include/G4B12GEMChannel.hh | 4 +- .../include/G4B12GEMCoulombBarrier.hh | 4 +- .../include/G4B12GEMProbability.hh | 4 +- .../include/G4B13GEMChannel.hh | 4 +- .../include/G4B13GEMCoulombBarrier.hh | 4 +- .../include/G4B13GEMProbability.hh | 4 +- .../gem_evaporation/include/G4B8GEMChannel.hh | 4 +- .../include/G4B8GEMCoulombBarrier.hh | 4 +- .../include/G4B8GEMProbability.hh | 4 +- .../include/G4Be10GEMChannel.hh | 4 +- .../include/G4Be10GEMCoulombBarrier.hh | 4 +- .../include/G4Be10GEMProbability.hh | 4 +- .../include/G4Be11GEMChannel.hh | 4 +- .../include/G4Be11GEMCoulombBarrier.hh | 4 +- .../include/G4Be11GEMProbability.hh | 4 +- .../include/G4Be12GEMChannel.hh | 4 +- .../include/G4Be12GEMCoulombBarrier.hh | 4 +- .../include/G4Be12GEMProbability.hh | 4 +- .../include/G4Be7GEMChannel.hh | 4 +- .../include/G4Be7GEMCoulombBarrier.hh | 4 +- .../include/G4Be7GEMProbability.hh | 4 +- .../include/G4Be9GEMChannel.hh | 4 +- .../include/G4Be9GEMCoulombBarrier.hh | 4 +- .../include/G4Be9GEMProbability.hh | 4 +- .../include/G4C10GEMChannel.hh | 4 +- .../include/G4C10GEMCoulombBarrier.hh | 4 +- .../include/G4C10GEMProbability.hh | 4 +- .../include/G4C11GEMChannel.hh | 4 +- .../include/G4C11GEMCoulombBarrier.hh | 4 +- .../include/G4C11GEMProbability.hh | 4 +- .../include/G4C12GEMChannel.hh | 4 +- .../include/G4C12GEMCoulombBarrier.hh | 4 +- .../include/G4C12GEMProbability.hh | 4 +- .../include/G4C13GEMChannel.hh | 4 +- .../include/G4C13GEMCoulombBarrier.hh | 4 +- .../include/G4C13GEMProbability.hh | 4 +- .../include/G4C14GEMChannel.hh | 4 +- .../include/G4C14GEMCoulombBarrier.hh | 4 +- .../include/G4C14GEMProbability.hh | 4 +- .../include/G4C15GEMChannel.hh | 4 +- .../include/G4C15GEMCoulombBarrier.hh | 4 +- .../include/G4C15GEMProbability.hh | 4 +- .../include/G4C16GEMChannel.hh | 4 +- .../include/G4C16GEMCoulombBarrier.hh | 4 +- .../include/G4C16GEMProbability.hh | 4 +- .../include/G4DeuteronGEMChannel.hh | 4 +- .../include/G4DeuteronGEMProbability.hh | 4 +- .../include/G4EvaporationGEMFactory.hh | 12 +- .../include/G4F17GEMChannel.hh | 4 +- .../include/G4F17GEMCoulombBarrier.hh | 4 +- .../include/G4F17GEMProbability.hh | 4 +- .../include/G4F18GEMChannel.hh | 4 +- .../include/G4F18GEMCoulombBarrier.hh | 4 +- .../include/G4F18GEMProbability.hh | 4 +- .../include/G4F19GEMChannel.hh | 4 +- .../include/G4F19GEMCoulombBarrier.hh | 4 +- .../include/G4F19GEMProbability.hh | 4 +- .../include/G4F20GEMChannel.hh | 4 +- .../include/G4F20GEMCoulombBarrier.hh | 4 +- .../include/G4F20GEMProbability.hh | 4 +- .../include/G4F21GEMChannel.hh | 4 +- .../include/G4F21GEMCoulombBarrier.hh | 4 +- .../include/G4F21GEMProbability.hh | 4 +- .../gem_evaporation/include/G4GEMChannel.hh | 4 +- .../include/G4GEMCoulombBarrierHE.hh | 4 +- .../include/G4He3GEMChannel.hh | 4 +- .../include/G4He3GEMProbability.hh | 4 +- .../include/G4He6GEMChannel.hh | 4 +- .../include/G4He6GEMCoulombBarrier.hh | 4 +- .../include/G4He6GEMProbability.hh | 4 +- .../include/G4He8GEMChannel.hh | 4 +- .../include/G4He8GEMCoulombBarrier.hh | 4 +- .../include/G4He8GEMProbability.hh | 4 +- .../include/G4Li6GEMChannel.hh | 4 +- .../include/G4Li6GEMCoulombBarrier.hh | 4 +- .../include/G4Li6GEMProbability.hh | 4 +- .../include/G4Li7GEMChannel.hh | 4 +- .../include/G4Li7GEMCoulombBarrier.hh | 4 +- .../include/G4Li7GEMProbability.hh | 4 +- .../include/G4Li8GEMChannel.hh | 4 +- .../include/G4Li8GEMCoulombBarrier.hh | 4 +- .../include/G4Li8GEMProbability.hh | 4 +- .../include/G4Li9GEMChannel.hh | 4 +- .../include/G4Li9GEMCoulombBarrier.hh | 4 +- .../include/G4Li9GEMProbability.hh | 4 +- .../include/G4Mg22GEMChannel.hh | 4 +- .../include/G4Mg22GEMCoulombBarrier.hh | 4 +- .../include/G4Mg22GEMProbability.hh | 4 +- .../include/G4Mg23GEMChannel.hh | 4 +- .../include/G4Mg23GEMCoulombBarrier.hh | 4 +- .../include/G4Mg23GEMProbability.hh | 4 +- .../include/G4Mg24GEMChannel.hh | 4 +- .../include/G4Mg24GEMCoulombBarrier.hh | 4 +- .../include/G4Mg24GEMProbability.hh | 4 +- .../include/G4Mg25GEMChannel.hh | 4 +- .../include/G4Mg25GEMCoulombBarrier.hh | 4 +- .../include/G4Mg25GEMProbability.hh | 4 +- .../include/G4Mg26GEMChannel.hh | 4 +- .../include/G4Mg26GEMCoulombBarrier.hh | 4 +- .../include/G4Mg26GEMProbability.hh | 4 +- .../include/G4Mg27GEMChannel.hh | 4 +- .../include/G4Mg27GEMCoulombBarrier.hh | 4 +- .../include/G4Mg27GEMProbability.hh | 4 +- .../include/G4Mg28GEMChannel.hh | 4 +- .../include/G4Mg28GEMCoulombBarrier.hh | 4 +- .../include/G4Mg28GEMProbability.hh | 4 +- .../include/G4N12GEMChannel.hh | 4 +- .../include/G4N12GEMCoulombBarrier.hh | 4 +- .../include/G4N12GEMProbability.hh | 4 +- .../include/G4N13GEMChannel.hh | 4 +- .../include/G4N13GEMCoulombBarrier.hh | 4 +- .../include/G4N13GEMProbability.hh | 4 +- .../include/G4N14GEMChannel.hh | 4 +- .../include/G4N14GEMCoulombBarrier.hh | 4 +- .../include/G4N14GEMProbability.hh | 4 +- .../include/G4N15GEMChannel.hh | 4 +- .../include/G4N15GEMCoulombBarrier.hh | 4 +- .../include/G4N15GEMProbability.hh | 4 +- .../include/G4N16GEMChannel.hh | 4 +- .../include/G4N16GEMCoulombBarrier.hh | 4 +- .../include/G4N16GEMProbability.hh | 4 +- .../include/G4N17GEMChannel.hh | 4 +- .../include/G4N17GEMCoulombBarrier.hh | 4 +- .../include/G4N17GEMProbability.hh | 4 +- .../include/G4Na21GEMChannel.hh | 4 +- .../include/G4Na21GEMCoulombBarrier.hh | 4 +- .../include/G4Na21GEMProbability.hh | 4 +- .../include/G4Na22GEMChannel.hh | 4 +- .../include/G4Na22GEMCoulombBarrier.hh | 4 +- .../include/G4Na22GEMProbability.hh | 4 +- .../include/G4Na23GEMChannel.hh | 4 +- .../include/G4Na23GEMCoulombBarrier.hh | 4 +- .../include/G4Na23GEMProbability.hh | 4 +- .../include/G4Na24GEMChannel.hh | 4 +- .../include/G4Na24GEMCoulombBarrier.hh | 4 +- .../include/G4Na24GEMProbability.hh | 4 +- .../include/G4Na25GEMChannel.hh | 4 +- .../include/G4Na25GEMCoulombBarrier.hh | 4 +- .../include/G4Na25GEMProbability.hh | 4 +- .../include/G4Ne18GEMChannel.hh | 4 +- .../include/G4Ne18GEMCoulombBarrier.hh | 4 +- .../include/G4Ne18GEMProbability.hh | 4 +- .../include/G4Ne19GEMChannel.hh | 4 +- .../include/G4Ne19GEMCoulombBarrier.hh | 4 +- .../include/G4Ne19GEMProbability.hh | 4 +- .../include/G4Ne20GEMChannel.hh | 4 +- .../include/G4Ne20GEMCoulombBarrier.hh | 4 +- .../include/G4Ne20GEMProbability.hh | 4 +- .../include/G4Ne21GEMChannel.hh | 4 +- .../include/G4Ne21GEMCoulombBarrier.hh | 4 +- .../include/G4Ne21GEMProbability.hh | 4 +- .../include/G4Ne22GEMChannel.hh | 4 +- .../include/G4Ne22GEMCoulombBarrier.hh | 4 +- .../include/G4Ne22GEMProbability.hh | 4 +- .../include/G4Ne23GEMChannel.hh | 4 +- .../include/G4Ne23GEMCoulombBarrier.hh | 4 +- .../include/G4Ne23GEMProbability.hh | 4 +- .../include/G4Ne24GEMChannel.hh | 4 +- .../include/G4Ne24GEMCoulombBarrier.hh | 4 +- .../include/G4Ne24GEMProbability.hh | 4 +- .../include/G4NeutronGEMChannel.hh | 4 +- .../include/G4NeutronGEMProbability.hh | 4 +- .../include/G4O14GEMChannel.hh | 4 +- .../include/G4O14GEMCoulombBarrier.hh | 4 +- .../include/G4O14GEMProbability.hh | 4 +- .../include/G4O15GEMChannel.hh | 4 +- .../include/G4O15GEMCoulombBarrier.hh | 4 +- .../include/G4O15GEMProbability.hh | 4 +- .../include/G4O16GEMChannel.hh | 4 +- .../include/G4O16GEMCoulombBarrier.hh | 4 +- .../include/G4O16GEMProbability.hh | 4 +- .../include/G4O17GEMChannel.hh | 4 +- .../include/G4O17GEMCoulombBarrier.hh | 4 +- .../include/G4O17GEMProbability.hh | 4 +- .../include/G4O18GEMChannel.hh | 4 +- .../include/G4O18GEMCoulombBarrier.hh | 4 +- .../include/G4O18GEMProbability.hh | 4 +- .../include/G4O19GEMChannel.hh | 4 +- .../include/G4O19GEMCoulombBarrier.hh | 4 +- .../include/G4O19GEMProbability.hh | 4 +- .../include/G4O20GEMChannel.hh | 4 +- .../include/G4O20GEMCoulombBarrier.hh | 4 +- .../include/G4O20GEMProbability.hh | 4 +- .../include/G4ProtonGEMChannel.hh | 4 +- .../include/G4ProtonGEMProbability.hh | 4 +- .../include/G4TritonGEMChannel.hh | 4 +- .../include/G4TritonGEMProbability.hh | 4 +- .../gem_evaporation/src/G4AlphaGEMChannel.cc | 4 +- .../src/G4AlphaGEMProbability.cc | 4 +- .../src/G4B10GEMProbability.cc | 4 +- .../src/G4B11GEMProbability.cc | 4 +- .../src/G4B12GEMProbability.cc | 4 +- .../src/G4B13GEMProbability.cc | 4 +- .../gem_evaporation/src/G4B8GEMProbability.cc | 4 +- .../src/G4Be10GEMProbability.cc | 4 +- .../src/G4Be11GEMProbability.cc | 4 +- .../src/G4Be12GEMProbability.cc | 4 +- .../src/G4Be7GEMProbability.cc | 4 +- .../src/G4Be9GEMProbability.cc | 4 +- .../src/G4C10GEMProbability.cc | 4 +- .../src/G4C11GEMProbability.cc | 4 +- .../src/G4C12GEMProbability.cc | 4 +- .../src/G4C13GEMProbability.cc | 4 +- .../src/G4C14GEMProbability.cc | 4 +- .../src/G4C15GEMProbability.cc | 4 +- .../src/G4C16GEMProbability.cc | 4 +- .../src/G4DeuteronGEMChannel.cc | 4 +- .../src/G4DeuteronGEMProbability.cc | 4 +- .../src/G4EvaporationGEMFactory.cc | 26 +- .../src/G4F17GEMProbability.cc | 4 +- .../src/G4F18GEMProbability.cc | 4 +- .../src/G4F19GEMProbability.cc | 4 +- .../src/G4F20GEMProbability.cc | 4 +- .../src/G4F21GEMProbability.cc | 4 +- .../gem_evaporation/src/G4GEMChannel.cc | 4 +- .../src/G4GEMCoulombBarrierHE.cc | 4 +- .../gem_evaporation/src/G4He3GEMChannel.cc | 4 +- .../src/G4He3GEMProbability.cc | 4 +- .../src/G4He6GEMProbability.cc | 4 +- .../src/G4He8GEMProbability.cc | 4 +- .../src/G4Li6GEMProbability.cc | 4 +- .../src/G4Li7GEMProbability.cc | 4 +- .../src/G4Li8GEMProbability.cc | 4 +- .../src/G4Li9GEMProbability.cc | 4 +- .../src/G4Mg22GEMProbability.cc | 4 +- .../src/G4Mg23GEMProbability.cc | 4 +- .../src/G4Mg24GEMProbability.cc | 4 +- .../src/G4Mg25GEMProbability.cc | 4 +- .../src/G4Mg26GEMProbability.cc | 4 +- .../src/G4Mg27GEMProbability.cc | 4 +- .../src/G4Mg28GEMProbability.cc | 4 +- .../src/G4N12GEMProbability.cc | 4 +- .../src/G4N13GEMProbability.cc | 4 +- .../src/G4N14GEMProbability.cc | 4 +- .../src/G4N15GEMProbability.cc | 4 +- .../src/G4N16GEMProbability.cc | 4 +- .../src/G4N17GEMProbability.cc | 4 +- .../src/G4Na21GEMProbability.cc | 4 +- .../src/G4Na22GEMProbability.cc | 4 +- .../src/G4Na23GEMProbability.cc | 4 +- .../src/G4Na24GEMProbability.cc | 4 +- .../src/G4Na25GEMProbability.cc | 4 +- .../src/G4Ne18GEMProbability.cc | 4 +- .../src/G4Ne19GEMProbability.cc | 4 +- .../src/G4Ne20GEMProbability.cc | 4 +- .../src/G4Ne21GEMProbability.cc | 4 +- .../src/G4Ne22GEMProbability.cc | 4 +- .../src/G4Ne23GEMProbability.cc | 4 +- .../src/G4Ne24GEMProbability.cc | 4 +- .../src/G4NeutronGEMChannel.cc | 4 +- .../src/G4NeutronGEMProbability.cc | 4 +- .../src/G4O14GEMProbability.cc | 4 +- .../src/G4O15GEMProbability.cc | 4 +- .../src/G4O16GEMProbability.cc | 4 +- .../src/G4O17GEMProbability.cc | 4 +- .../src/G4O18GEMProbability.cc | 4 +- .../src/G4O19GEMProbability.cc | 4 +- .../src/G4O20GEMProbability.cc | 4 +- .../gem_evaporation/src/G4ProtonGEMChannel.cc | 4 +- .../src/G4ProtonGEMProbability.cc | 4 +- .../gem_evaporation/src/G4TritonGEMChannel.cc | 4 +- .../src/G4TritonGEMProbability.cc | 4 +- .../handler/include/G4ExcitationHandler.hh | 4 +- .../handler/src/G4ExcitationHandler.cc | 16 +- .../include/G4VEvaporationChannel.hh | 4 +- .../include/G4VEvaporationFactory.hh | 4 +- .../management/src/G4VEvaporationChannel.cc | 4 +- .../management/src/G4VEvaporationFactory.cc | 4 +- .../multifragmentation/include/G4Solver.hh | 4 +- .../multifragmentation/include/G4StatMF.hh | 4 +- .../include/G4StatMFChannel.hh | 4 +- .../include/G4StatMFFragment.hh | 4 +- .../include/G4StatMFMacroBiNucleon.hh | 4 +- .../include/G4StatMFMacroChemicalPotential.hh | 4 +- .../include/G4StatMFMacroMultiNucleon.hh | 4 +- .../include/G4StatMFMacroMultiplicity.hh | 4 +- .../include/G4StatMFMacroNucleon.hh | 4 +- .../include/G4StatMFMacroTemperature.hh | 4 +- .../include/G4StatMFMacroTetraNucleon.hh | 4 +- .../include/G4StatMFMacroTriNucleon.hh | 4 +- .../include/G4StatMFMicroCanonical.hh | 4 +- .../include/G4StatMFMicroManager.hh | 4 +- .../include/G4StatMFMicroPartition.hh | 4 +- .../include/G4StatMFParameters.hh | 4 +- .../include/G4VMultiFragmentation.hh | 4 +- .../include/G4VStatMFEnsemble.hh | 4 +- .../include/G4VStatMFMacroCluster.hh | 4 +- .../multifragmentation/src/G4Solver.cc | 4 +- .../multifragmentation/src/G4StatMF.cc | 4 +- .../multifragmentation/src/G4StatMFChannel.cc | 4 +- .../src/G4StatMFFragment.cc | 4 +- .../src/G4StatMFMacroBiNucleon.cc | 4 +- .../src/G4StatMFMacroCanonical.cc | 4 +- .../src/G4StatMFMacroChemicalPotential.cc | 4 +- .../src/G4StatMFMacroMultiNucleon.cc | 4 +- .../src/G4StatMFMacroMultiplicity.cc | 4 +- .../src/G4StatMFMacroNucleon.cc | 4 +- .../src/G4StatMFMacroTemperature.cc | 4 +- .../src/G4StatMFMacroTetraNucleon.cc | 4 +- .../src/G4StatMFMacroTriNucleon.cc | 4 +- .../src/G4StatMFMicroCanonical.cc | 4 +- .../src/G4StatMFMicroManager.cc | 4 +- .../src/G4StatMFMicroPartition.cc | 4 +- .../src/G4StatMFParameters.cc | 4 +- .../src/G4VMultiFragmentation.cc | 4 +- .../src/G4VStatMFEnsemble.cc | 4 +- .../src/G4VStatMFMacroCluster.cc | 4 +- .../util/include/G4AlphaCoulombBarrier.hh | 4 +- .../G4CameronGilbertPairingCorrections.hh | 4 +- .../G4CameronGilbertShellCorrections.hh | 4 +- .../G4CameronShellPlusPairingCorrections.hh | 4 +- .../G4CameronTruranHilfPairingCorrections.hh | 4 +- .../G4CameronTruranHilfShellCorrections.hh | 4 +- .../G4ConstantLevelDensityParameter.hh | 4 +- .../util/include/G4CookPairingCorrections.hh | 4 +- .../util/include/G4CookShellCorrections.hh | 4 +- .../util/include/G4CoulombBarrier.hh | 4 +- .../util/include/G4DeuteronCoulombBarrier.hh | 4 +- .../G4EvaporationLevelDensityParameter.hh | 4 +- .../util/include/G4He3CoulombBarrier.hh | 4 +- .../util/include/G4NeutronCoulombBarrier.hh | 4 +- .../util/include/G4PairingCorrection.hh | 4 +- .../util/include/G4ProtonCoulombBarrier.hh | 4 +- .../util/include/G4ShellCorrection.hh | 4 +- .../util/include/G4TritonCoulombBarrier.hh | 4 +- .../util/include/G4VCoulombBarrier.hh | 4 +- .../util/include/G4VEmissionProbability.hh | 4 +- .../util/include/G4VLevelDensityParameter.hh | 4 +- .../util/src/G4AlphaCoulombBarrier.cc | 4 +- .../src/G4CameronGilbertPairingCorrections.cc | 4 +- .../src/G4CameronGilbertShellCorrections.cc | 4 +- .../G4CameronShellPlusPairingCorrections.cc | 4 +- .../G4CameronTruranHilfPairingCorrections.cc | 4 +- .../G4CameronTruranHilfShellCorrections.cc | 4 +- .../util/src/G4CookPairingCorrections.cc | 4 +- .../util/src/G4CookShellCorrections.cc | 4 +- .../util/src/G4CoulombBarrier.cc | 4 +- .../util/src/G4DeuteronCoulombBarrier.cc | 4 +- .../src/G4EvaporationLevelDensityParameter.cc | 4 +- .../util/src/G4He3CoulombBarrier.cc | 4 +- .../util/src/G4NeutronCoulombBarrier.cc | 4 +- .../util/src/G4PairingCorrection.cc | 4 +- .../util/src/G4ProtonCoulombBarrier.cc | 4 +- .../util/src/G4ShellCorrection.cc | 4 +- .../util/src/G4TritonCoulombBarrier.cc | 4 +- .../util/src/G4VCoulombBarrier.cc | 4 +- .../util/src/G4VEmissionProbability.cc | 4 +- .../util/src/G4VLevelDensityParameter.cc | 4 +- .../include/G4HEAntiKaonZeroInelastic.hh | 4 +- .../include/G4HEAntiLambdaInelastic.hh | 4 +- .../include/G4HEAntiNeutronInelastic.hh | 4 +- .../include/G4HEAntiOmegaMinusInelastic.hh | 4 +- .../include/G4HEAntiProtonInelastic.hh | 4 +- .../include/G4HEAntiSigmaMinusInelastic.hh | 4 +- .../include/G4HEAntiSigmaPlusInelastic.hh | 4 +- .../include/G4HEAntiSigmaZeroInelastic.hh | 4 +- .../include/G4HEAntiXiMinusInelastic.hh | 4 +- .../include/G4HEAntiXiZeroInelastic.hh | 4 +- .../high_energy/include/G4HEInelastic.hh | 4 +- .../include/G4HEKaonMinusInelastic.hh | 4 +- .../include/G4HEKaonPlusInelastic.hh | 4 +- .../include/G4HEKaonZeroInelastic.hh | 4 +- .../include/G4HEKaonZeroLongInelastic.hh | 4 +- .../include/G4HEKaonZeroShortInelastic.hh | 4 +- .../include/G4HELambdaInelastic.hh | 4 +- .../include/G4HENeutronInelastic.hh | 4 +- .../include/G4HEOmegaMinusInelastic.hh | 4 +- .../include/G4HEPionMinusInelastic.hh | 4 +- .../include/G4HEPionPlusInelastic.hh | 4 +- .../models/high_energy/include/G4HEPlot.hh | 4 +- .../include/G4HEProtonInelastic.hh | 4 +- .../include/G4HESigmaMinusInelastic.hh | 4 +- .../include/G4HESigmaPlusInelastic.hh | 4 +- .../include/G4HESigmaZeroInelastic.hh | 4 +- .../models/high_energy/include/G4HEVector.hh | 4 +- .../include/G4HEXiMinusInelastic.hh | 4 +- .../include/G4HEXiZeroInelastic.hh | 4 +- .../src/G4HEAntiKaonZeroInelastic.cc | 4 +- .../src/G4HEAntiLambdaInelastic.cc | 4 +- .../src/G4HEAntiNeutronInelastic.cc | 4 +- .../src/G4HEAntiOmegaMinusInelastic.cc | 4 +- .../src/G4HEAntiProtonInelastic.cc | 4 +- .../src/G4HEAntiSigmaMinusInelastic.cc | 4 +- .../src/G4HEAntiSigmaPlusInelastic.cc | 4 +- .../src/G4HEAntiSigmaZeroInelastic.cc | 4 +- .../src/G4HEAntiXiMinusInelastic.cc | 4 +- .../src/G4HEAntiXiZeroInelastic.cc | 4 +- .../high_energy/src/G4HEKaonMinusInelastic.cc | 4 +- .../high_energy/src/G4HEKaonPlusInelastic.cc | 4 +- .../high_energy/src/G4HEKaonZeroInelastic.cc | 4 +- .../src/G4HEKaonZeroLongInelastic.cc | 4 +- .../src/G4HEKaonZeroShortInelastic.cc | 4 +- .../high_energy/src/G4HELambdaInelastic.cc | 4 +- .../high_energy/src/G4HENeutronInelastic.cc | 4 +- .../src/G4HEOmegaMinusInelastic.cc | 4 +- .../high_energy/src/G4HEPionMinusInelastic.cc | 4 +- .../high_energy/src/G4HEPionPlusInelastic.cc | 4 +- .../models/high_energy/src/G4HEPlot.cc | 4 +- .../high_energy/src/G4HEProtonInelastic.cc | 4 +- .../src/G4HESigmaMinusInelastic.cc | 4 +- .../high_energy/src/G4HESigmaPlusInelastic.cc | 4 +- .../high_energy/src/G4HESigmaZeroInelastic.cc | 4 +- .../models/high_energy/src/G4HEVector.cc | 4 +- .../high_energy/src/G4HEXiMinusInelastic.cc | 4 +- .../high_energy/src/G4HEXiZeroInelastic.cc | 4 +- .../models/im_r_matrix/elastic.logbook | 31 - .../include/G4CollisionInitialState.hh | 2 +- .../im_r_matrix/include/G4ListOfCollisions.hh | 2 +- .../models/im_r_matrix/src/G4LowEXsection.cc | 2 +- .../models/im_r_matrix/src/G4XpimNTotal.cc | 2 +- .../models/im_r_matrix/src/G4XpipNTotal.cc | 2 +- .../leading_particle/include/G4Mars5GeV.hh | 4 +- .../models/leading_particle/src/G4Mars5GeV.cc | 4 +- .../models/low_energy/include/G4LCapture.hh | 4 +- .../low_energy/include/G4LEAlphaInelastic.hh | 4 +- .../include/G4LEAntiKaonZeroInelastic.hh | 4 +- .../include/G4LEAntiLambdaInelastic.hh | 4 +- .../include/G4LEAntiNeutronInelastic.hh | 4 +- .../include/G4LEAntiOmegaMinusInelastic.hh | 4 +- .../include/G4LEAntiProtonInelastic.hh | 4 +- .../include/G4LEAntiSigmaMinusInelastic.hh | 4 +- .../include/G4LEAntiSigmaPlusInelastic.hh | 4 +- .../include/G4LEAntiXiMinusInelastic.hh | 4 +- .../include/G4LEAntiXiZeroInelastic.hh | 4 +- .../include/G4LEDeuteronInelastic.hh | 4 +- .../include/G4LEKaonMinusInelastic.hh | 4 +- .../include/G4LEKaonPlusInelastic.hh | 4 +- .../include/G4LEKaonZeroInelastic.hh | 4 +- .../include/G4LEKaonZeroLInelastic.hh | 4 +- .../include/G4LEKaonZeroSInelastic.hh | 4 +- .../low_energy/include/G4LELambdaInelastic.hh | 4 +- .../include/G4LEOmegaMinusInelastic.hh | 4 +- .../include/G4LEPionMinusInelastic.hh | 4 +- .../include/G4LEPionPlusInelastic.hh | 4 +- .../low_energy/include/G4LEProtonInelastic.hh | 4 +- .../include/G4LESigmaMinusInelastic.hh | 4 +- .../include/G4LESigmaPlusInelastic.hh | 4 +- .../low_energy/include/G4LETritonInelastic.hh | 4 +- .../include/G4LEXiMinusInelastic.hh | 4 +- .../low_energy/include/G4LEXiZeroInelastic.hh | 4 +- .../models/low_energy/include/G4LElastic.hh | 4 +- .../models/low_energy/include/G4LFission.hh | 4 +- .../models/low_energy/src/G4LCapture.cc | 4 +- .../low_energy/src/G4LEAlphaInelastic.cc | 9 +- .../src/G4LEAntiKaonZeroInelastic.cc | 4 +- .../low_energy/src/G4LEAntiLambdaInelastic.cc | 4 +- .../src/G4LEAntiNeutronInelastic.cc | 4 +- .../src/G4LEAntiOmegaMinusInelastic.cc | 12 +- .../low_energy/src/G4LEAntiProtonInelastic.cc | 4 +- .../src/G4LEAntiSigmaMinusInelastic.cc | 12 +- .../src/G4LEAntiSigmaPlusInelastic.cc | 12 +- .../src/G4LEAntiXiMinusInelastic.cc | 12 +- .../low_energy/src/G4LEAntiXiZeroInelastic.cc | 4 +- .../low_energy/src/G4LEDeuteronInelastic.cc | 8 +- .../low_energy/src/G4LEKaonMinusInelastic.cc | 12 +- .../low_energy/src/G4LEKaonPlusInelastic.cc | 12 +- .../low_energy/src/G4LEKaonZeroInelastic.cc | 4 +- .../low_energy/src/G4LELambdaInelastic.cc | 4 +- .../low_energy/src/G4LEOmegaMinusInelastic.cc | 12 +- .../low_energy/src/G4LEPionMinusInelastic.cc | 8 +- .../low_energy/src/G4LEPionPlusInelastic.cc | 12 +- .../low_energy/src/G4LEProtonInelastic.cc | 8 +- .../low_energy/src/G4LESigmaMinusInelastic.cc | 12 +- .../low_energy/src/G4LESigmaPlusInelastic.cc | 12 +- .../low_energy/src/G4LETritonInelastic.cc | 24 +- .../low_energy/src/G4LEXiMinusInelastic.cc | 12 +- .../low_energy/src/G4LEXiZeroInelastic.cc | 12 +- .../models/low_energy/src/G4LFission.cc | 4 +- .../include/G4HadronicInteraction.hh | 4 +- .../include/G4InelasticInteraction.hh | 4 +- .../models/management/include/G4V3DNucleus.hh | 4 +- .../management/include/G4VElasticScatterer.hh | 40 - .../include/G4VHighEnergyGenerator.hh | 4 +- .../include/G4VInElasticScatterer.hh | 43 - .../include/G4VIntraNuclearTransportModel.hh | 4 +- .../management/include/G4VKineticNucleon.hh | 4 +- .../management/include/G4VNuclearDensity.hh | 4 +- .../management/include/G4VPreCompoundModel.hh | 4 +- .../models/management/src/G4V3DNucleus.cc | 4 +- .../models/management/src/G4VAnnihilator.cc | 38 - .../management/src/G4VElasticScatterer.cc | 40 - .../management/src/G4VHighEnergyGenerator.cc | 4 +- .../management/src/G4VInElasticScatterer.cc | 42 - .../src/G4VIntraNuclearTransportModel.cc | 4 +- .../management/src/G4VKineticNucleon.cc | 4 +- .../management/src/G4VNuclearDensity.cc | 4 +- .../management/src/G4VPreCompoundModel.cc | 4 +- .../include/G4InterpolationIterator.hh | 4 +- .../include/G4InterpolationManager.hh | 4 +- .../include/G4InterpolationScheme.hh | 4 +- .../include/G4NeutronHP2AInelasticFS.hh | 4 +- .../include/G4NeutronHP2N2AInelasticFS.hh | 4 +- .../include/G4NeutronHP2NAInelasticFS.hh | 4 +- .../include/G4NeutronHP2NDInelasticFS.hh | 4 +- .../include/G4NeutronHP2NInelasticFS.hh | 4 +- .../include/G4NeutronHP2NPInelasticFS.hh | 4 +- .../include/G4NeutronHP2PInelasticFS.hh | 4 +- .../include/G4NeutronHP3AInelasticFS.hh | 4 +- .../include/G4NeutronHP3NAInelasticFS.hh | 4 +- .../include/G4NeutronHP3NInelasticFS.hh | 4 +- .../include/G4NeutronHP3NPInelasticFS.hh | 4 +- .../include/G4NeutronHP4NInelasticFS.hh | 4 +- .../include/G4NeutronHPAInelasticFS.hh | 4 +- .../neutron_hp/include/G4NeutronHPAngular.hh | 4 +- .../neutron_hp/include/G4NeutronHPAngularP.hh | 4 +- .../include/G4NeutronHPArbitaryTab.hh | 4 +- .../neutron_hp/include/G4NeutronHPCapture.hh | 4 +- .../include/G4NeutronHPCaptureData.hh | 4 +- .../include/G4NeutronHPCaptureFS.hh | 4 +- .../neutron_hp/include/G4NeutronHPChannel.hh | 4 +- .../include/G4NeutronHPChannelList.hh | 4 +- .../include/G4NeutronHPContAngularPar.hh | 4 +- .../include/G4NeutronHPContEnergyAngular.hh | 4 +- .../include/G4NeutronHPD2AInelasticFS.hh | 4 +- .../include/G4NeutronHPDAInelasticFS.hh | 4 +- .../include/G4NeutronHPDInelasticFS.hh | 4 +- .../neutron_hp/include/G4NeutronHPData.hh | 4 +- .../include/G4NeutronHPDataPoint.hh | 4 +- .../include/G4NeutronHPDeExGammas.hh | 4 +- .../include/G4NeutronHPDiscreteTwoBody.hh | 4 +- .../neutron_hp/include/G4NeutronHPElastic.hh | 4 +- .../include/G4NeutronHPElasticData.hh | 4 +- .../include/G4NeutronHPElasticFS.hh | 4 +- .../include/G4NeutronHPElementData.hh | 4 +- .../include/G4NeutronHPEnAngCorrelation.hh | 4 +- .../include/G4NeutronHPEnergyDistribution.hh | 4 +- .../include/G4NeutronHPEvapSpectrum.hh | 4 +- .../include/G4NeutronHPFCFissionFS.hh | 4 +- .../include/G4NeutronHPFSFissionFS.hh | 4 +- .../include/G4NeutronHPFastLegendre.hh | 4 +- .../neutron_hp/include/G4NeutronHPField.hh | 4 +- .../include/G4NeutronHPFieldPoint.hh | 4 +- .../include/G4NeutronHPFinalState.hh | 4 +- .../neutron_hp/include/G4NeutronHPFission.hh | 4 +- .../include/G4NeutronHPFissionBaseFS.hh | 4 +- .../include/G4NeutronHPFissionData.hh | 4 +- .../include/G4NeutronHPFissionERelease.hh | 4 +- .../include/G4NeutronHPFissionFS.hh | 4 +- .../include/G4NeutronHPFissionSpectrum.hh | 4 +- .../neutron_hp/include/G4NeutronHPGamma.hh | 4 +- .../include/G4NeutronHPHe3InelasticFS.hh | 4 +- .../include/G4NeutronHPInelastic.hh | 4 +- .../include/G4NeutronHPInelasticBaseFS.hh | 4 +- .../include/G4NeutronHPInelasticCompFS.hh | 4 +- .../include/G4NeutronHPInelasticData.hh | 4 +- .../include/G4NeutronHPInterpolator.hh | 4 +- .../neutron_hp/include/G4NeutronHPIsoData.hh | 4 +- .../include/G4NeutronHPIsotropic.hh | 4 +- .../include/G4NeutronHPKallbachMannSyst.hh | 4 +- .../include/G4NeutronHPLCFissionFS.hh | 4 +- .../include/G4NeutronHPLabAngularEnergy.hh | 4 +- .../include/G4NeutronHPLegendreStore.hh | 4 +- .../include/G4NeutronHPLegendreTable.hh | 4 +- .../neutron_hp/include/G4NeutronHPLevel.hh | 4 +- .../include/G4NeutronHPMadlandNixSpectrum.hh | 6 +- .../include/G4NeutronHPN2AInelasticFS.hh | 4 +- .../include/G4NeutronHPN2PInelasticFS.hh | 4 +- .../include/G4NeutronHPN3AInelasticFS.hh | 4 +- .../include/G4NeutronHPNAInelasticFS.hh | 4 +- .../include/G4NeutronHPNBodyPhaseSpace.hh | 4 +- .../include/G4NeutronHPND2AInelasticFS.hh | 4 +- .../include/G4NeutronHPNDInelasticFS.hh | 4 +- .../include/G4NeutronHPNHe3InelasticFS.hh | 4 +- .../include/G4NeutronHPNInelasticFS.hh | 4 +- .../include/G4NeutronHPNPAInelasticFS.hh | 4 +- .../include/G4NeutronHPNPInelasticFS.hh | 4 +- .../include/G4NeutronHPNT2AInelasticFS.hh | 4 +- .../include/G4NeutronHPNTInelasticFS.hh | 4 +- .../include/G4NeutronHPNXInelasticFS.hh | 4 +- .../neutron_hp/include/G4NeutronHPNames.hh | 4 +- .../include/G4NeutronHPNeutronYield.hh | 4 +- .../include/G4NeutronHPPAInelasticFS.hh | 4 +- .../include/G4NeutronHPPDInelasticFS.hh | 4 +- .../include/G4NeutronHPPInelasticFS.hh | 4 +- .../include/G4NeutronHPPTInelasticFS.hh | 4 +- .../neutron_hp/include/G4NeutronHPPartial.hh | 4 +- .../include/G4NeutronHPPhotonDist.hh | 4 +- .../include/G4NeutronHPPhotonXSection.hh | 4 +- .../include/G4NeutronHPPolynomExpansion.hh | 4 +- .../neutron_hp/include/G4NeutronHPProduct.hh | 4 +- .../include/G4NeutronHPSCFissionFS.hh | 4 +- .../include/G4NeutronHPSimpleEvapSpectrum.hh | 4 +- .../include/G4NeutronHPT2AInelasticFS.hh | 4 +- .../include/G4NeutronHPTCFissionFS.hh | 4 +- .../include/G4NeutronHPTInelasticFS.hh | 4 +- .../neutron_hp/include/G4NeutronHPVector.hh | 2 +- .../include/G4NeutronHPWattSpectrum.hh | 4 +- .../neutron_hp/include/G4VNeutronHPEDis.hh | 4 +- .../include/G4VNeutronHPEnergyAngular.hh | 4 +- .../neutron_hp/src/G4NeutronHPInelastic.cc | 4 +- .../src/G4NeutronHPNBodyPhaseSpace.cc | 4 +- .../include/G4DiffractiveSplitableHadron.hh | 4 +- .../diffraction/include/G4FTFModel.hh | 4 +- .../diffraction/include/G4FTFParticipants.hh | 4 +- .../src/G4DiffractiveSplitableHadron.cc | 4 +- .../diffraction/src/G4FTFModel.cc | 4 +- .../diffraction/src/G4FTFParticipants.cc | 4 +- .../include/G4ExcitedStringDecay.hh | 4 +- .../include/G4FragmentingString.hh | 4 +- .../hadronization/include/G4HadronBuilder.hh | 4 +- .../include/G4LundStringFragmentation.hh | 4 +- .../include/G4QGSMFragmentation.hh | 4 +- .../include/G4VKinkyStringDecay.hh | 4 +- .../include/G4VLongitudinalStringDecay.hh | 4 +- .../hadronization/src/G4HadronBuilder.cc | 4 +- .../src/G4LundStringFragmentation.cc | 4 +- .../hadronization/src/G4QGSMFragmentation.cc | 4 +- .../hadronization/src/G4VKinkyStringDecay.cc | 4 +- .../src/G4VLongitudinalStringDecay.cc | 4 +- .../management/include/G4EventGenerator.hh | 4 +- .../management/include/G4InteractionCode.hh | 4 +- .../include/G4InteractionContent.hh | 4 +- .../include/G4PomeronCrossSection.hh | 4 +- .../management/include/G4StringModel.hh | 4 +- .../management/include/G4VParticipants.hh | 4 +- .../include/G4VPartonStringModel.hh | 4 +- .../management/include/G4VSplitableHadron.hh | 4 +- .../include/G4VStringFragmentation.hh | 4 +- .../management/include/G4VertexCode.hh | 4 +- .../management/src/G4EventGenerator.cc | 4 +- .../management/src/G4InteractionContent.cc | 4 +- .../management/src/G4PomeronCrossSection.cc | 4 +- .../management/src/G4StringModel.cc | 4 +- .../management/src/G4VParticipants.cc | 4 +- .../management/src/G4VPartonStringModel.cc | 4 +- .../management/src/G4VSplitableHadron.cc | 4 +- .../management/src/G4VStringFragmentation.cc | 4 +- .../qgsm/include/G4HeavyIonParticipants.hh | 124 - .../include/G4InelasticSplitableHadron.hh | 69 - .../parton_string/qgsm/include/G4QGSModel.icc | 16 +- .../qgsm/src/G4BaryonSplitter.cc | 9 +- .../qgsm/src/G4HeavyIonParticipants.cc | 291 - .../qgsm/src/G4InelasticSplitableHadron.cc | 166 - .../include/G4MuNuclearInteraction.hh | 4 +- .../include/G4MuNuclearInteraction.icc | 4 +- .../src/G4MuNuclearInteraction.cc | 4 +- .../src/G4MuonNucleusInteractionModel.cc | 4 +- .../src/G4ParametrizedHadronicVertex.cc | 4 +- .../include/G4LowEIonFragmentation.hh | 4 +- .../include/G4PreCompoundAlpha.hh | 4 +- .../include/G4PreCompoundDeuteron.hh | 4 +- .../include/G4PreCompoundEmission.hh | 4 +- .../include/G4PreCompoundFragmentVector.hh | 4 +- .../include/G4PreCompoundFragmentVector.icc | 4 +- .../exciton_model/include/G4PreCompoundHe3.hh | 4 +- .../include/G4PreCompoundModel.hh | 4 +- .../include/G4PreCompoundNeutron.hh | 4 +- .../include/G4PreCompoundParameters.hh | 4 +- .../include/G4PreCompoundProton.hh | 4 +- .../include/G4PreCompoundTransitions.hh | 4 +- .../include/G4PreCompoundTriton.hh | 4 +- .../include/G4VPreCompoundFragment.hh | 4 +- .../include/G4VPreCompoundFragment.icc | 4 +- .../include/G4VPreCompoundIon.hh | 4 +- .../include/G4VPreCompoundNucleon.hh | 4 +- .../src/G4HETCEmissionFactory.cc | 4 +- .../src/G4PreCompoundEmissionFactory.cc | 4 +- .../src/G4PreCompoundFragmentVector.cc | 4 +- .../exciton_model/src/G4PreCompoundModel.cc | 4 +- .../src/G4PreCompoundParameters.cc | 4 +- .../src/G4PreCompoundTransitions.cc | 4 +- .../src/G4VPreCompoundFragment.cc | 4 +- .../exciton_model/src/G4VPreCompoundIon.cc | 4 +- .../src/G4VPreCompoundNucleon.cc | 4 +- .../hadronic/models/radioactive_decay/History | 8 + .../include/G4NuclearDecayChannel.hh | 3 +- .../src/G4NuclearDecayChannel.cc | 6 + .../include/G4TheoFSGenerator.hh | 4 +- .../theo_high_energy/src/G4TheoFSGenerator.cc | 4 +- .../util/include/G4NuclearFermiDensity.hh | 2 +- .../include/G4NuclearShellModelDensity.hh | 2 +- .../models/util/src/G4Fancy3DNucleus.cc | 35 +- .../models/util/src/G4KineticTrack.cc | 2 +- .../src/G4AntiNeutronAnnihilationAtRest.cc | 2 +- .../src/G4AntiProtonAnnihilationAtRest.cc | 2 +- .../stopping/src/G4KaonMinusAbsorption.cc | 2 +- .../stopping/src/G4MuonMinusCaptureAtRest.cc | 2 +- .../stopping/src/G4NeutronCaptureAtRest.cc | 2 +- .../src/G4PionMinusAbsorptionAtRest.cc | 2 +- source/processes/management/History | 5 +- .../include/G4IVContinuousDiscreteProcess.hh | 2 +- .../include/G4IVRestDiscreteProcess.hh | 2 +- .../management/include/G4ParticleTypes.hh | 2 +- .../management/include/G4ProcTblElement.hh | 2 +- .../management/include/G4ProcTblElement.icc | 2 +- .../management/include/G4ProcessAttribute.hh | 2 +- .../management/include/G4ProcessManager.hh | 9 +- .../management/include/G4ProcessManager.icc | 2 +- .../include/G4ProcessManagerMessenger.hh | 2 +- .../management/include/G4ProcessTable.hh | 2 +- .../management/include/G4ProcessTable.icc | 2 +- .../include/G4ProcessTableMessenger.hh | 2 +- .../management/include/G4ProcessType.hh | 2 +- .../management/include/G4ProcessVector.hh | 2 +- .../management/include/G4ProcessVector.icc | 2 +- .../include/G4VContinuousDiscreteProcess.hh | 2 +- .../include/G4VContinuousProcess.hh | 2 +- .../management/include/G4VDiscreteProcess.hh | 2 +- .../management/include/G4VProcess.hh | 2 +- .../G4VRestContinuousDiscreteProcess.hh | 2 +- .../include/G4VRestContinuousProcess.hh | 2 +- .../include/G4VRestDiscreteProcess.hh | 2 +- .../management/include/G4VRestProcess.hh | 2 +- .../management/include/G4WrapperProcess.hh | 2 +- .../src/G4IVContinuousDiscreteProcess.cc | 2 +- .../management/src/G4IVRestDiscreteProcess.cc | 2 +- .../management/src/G4ProcTblElement.cc | 2 +- .../management/src/G4ProcessAttribute.cc | 2 +- .../management/src/G4ProcessManager.cc | 6 +- .../src/G4ProcessManagerMessenger.cc | 2 +- .../management/src/G4ProcessTable.cc | 2 +- .../management/src/G4ProcessTableMessenger.cc | 2 +- .../management/src/G4ProcessVector.cc | 2 +- .../src/G4VContinuousDiscreteProcess.cc | 2 +- .../management/src/G4VContinuousProcess.cc | 2 +- .../management/src/G4VDiscreteProcess.cc | 2 +- source/processes/management/src/G4VProcess.cc | 2 +- .../src/G4VRestContinuousDiscreteProcess.cc | 2 +- .../src/G4VRestContinuousProcess.cc | 2 +- .../management/src/G4VRestDiscreteProcess.cc | 2 +- .../management/src/G4VRestProcess.cc | 2 +- .../optical/include/G4OpAbsorption.hh | 2 +- .../optical/include/G4OpBoundaryProcess.hh | 2 +- .../processes/optical/include/G4OpRayleigh.hh | 2 +- source/processes/optical/include/G4OpWLS.hh | 2 +- .../processes/optical/src/G4OpAbsorption.cc | 2 +- source/processes/optical/src/G4OpRayleigh.cc | 2 +- source/processes/optical/src/G4OpWLS.cc | 2 +- .../include/G4FastSimulationManager.hh | 2 +- .../include/G4FastSimulationManagerProcess.hh | 2 +- .../include/G4FastSimulationMessenger.hh | 2 +- .../parameterisation/include/G4FastStep.hh | 2 +- .../parameterisation/include/G4FastStep.icc | 2 +- .../parameterisation/include/G4FastTrack.hh | 2 +- .../include/G4FlavoredParallelWorld.hh | 2 +- .../include/G4GlobalFastSimulationManager.hh | 2 +- .../include/G4VFastSimulationModel.hh | 2 +- .../src/G4FastSimulationManager.cc | 2 +- .../src/G4FastSimulationManagerProcess.cc | 2 +- .../src/G4FastSimulationMessenger.cc | 2 +- .../parameterisation/src/G4FastStep.cc | 2 +- .../parameterisation/src/G4FastTrack.cc | 2 +- .../src/G4GlobalFastSimulationManager.cc | 2 +- .../src/G4VFastSimulationModel.cc | 2 +- source/processes/transportation/History | 10 +- .../include/G4MImportanceConfigurator.hh | 2 +- .../include/G4MScoreConfigurator.hh | 2 +- .../transportation/include/G4MScoreProcess.hh | 2 +- .../include/G4MWeightWindowConfigurator.hh | 2 +- .../include/G4MassGCellFinder.hh | 2 +- .../include/G4MassGeometrySampler.hh | 2 +- .../include/G4MassImportanceProcess.hh | 2 +- .../include/G4MassWeightWindowProcess.hh | 2 +- .../include/G4PImportanceConfigurator.hh | 2 +- .../include/G4PScoreConfigurator.hh | 2 +- .../transportation/include/G4PScoreProcess.hh | 2 +- .../include/G4PWeightWindowConfigurator.hh | 2 +- .../include/G4ParallelGCellFinder.hh | 2 +- .../include/G4ParallelGeometrySampler.hh | 2 +- .../include/G4ParallelImportanceProcess.hh | 2 +- .../include/G4ParallelTransport.hh | 2 +- .../G4ParallelTransportConfigurator.hh | 2 +- .../include/G4ParallelWWnTransportProcess.hh | 2 +- .../include/G4ParallelWeightWindowProcess.hh | 2 +- .../transportation/include/G4PlaceOfAction.hh | 2 +- .../transportation/include/G4ProcessPlacer.hh | 2 +- .../include/G4SamplingPostStepAction.hh | 2 +- .../transportation/include/G4StepLimiter.hh | 6 +- .../include/G4TrackTerminator.hh | 2 +- .../include/G4Transportation.hh | 2 +- .../include/G4Transportation.icc | 2 +- .../include/G4UserSpecialCuts.hh | 6 +- .../include/G4VProcessPlacer.hh | 2 +- .../transportation/include/G4VSampler.hh | 2 +- .../include/G4VSamplerConfigurator.hh | 2 +- .../include/G4VTrackTerminator.hh | 2 +- .../include/G4WeightCutOffConfigurator.hh | 2 +- .../include/G4WeightCutOffProcess.hh | 2 +- .../src/G4MImportanceConfigurator.cc | 2 +- .../src/G4MScoreConfigurator.cc | 2 +- .../transportation/src/G4MScoreProcess.cc | 2 +- .../src/G4MWeightWindowConfigurator.cc | 2 +- .../transportation/src/G4MassGCellFinder.cc | 2 +- .../src/G4MassGeometrySampler.cc | 2 +- .../src/G4MassImportanceProcess.cc | 2 +- .../src/G4MassWeightWindowProcess.cc | 2 +- .../src/G4PImportanceConfigurator.cc | 2 +- .../src/G4PScoreConfigurator.cc | 2 +- .../transportation/src/G4PScoreProcess.cc | 2 +- .../src/G4PWeightWindowConfigurator.cc | 2 +- .../src/G4ParallelGCellFinder.cc | 2 +- .../src/G4ParallelGeometrySampler.cc | 2 +- .../src/G4ParallelImportanceProcess.cc | 2 +- .../transportation/src/G4ParallelTransport.cc | 2 +- .../src/G4ParallelTransportConfigurator.cc | 2 +- .../src/G4ParallelWWnTransportProcess.cc | 2 +- .../src/G4ParallelWeightWindowProcess.cc | 2 +- .../transportation/src/G4ProcessPlacer.cc | 2 +- .../src/G4SamplingPostStepAction.cc | 2 +- .../transportation/src/G4StepLimiter.cc | 2 +- .../transportation/src/G4Transportation.cc | 6 +- .../transportation/src/G4UserSpecialCuts.cc | 2 +- .../transportation/src/G4VProcessPlacer.cc | 2 +- .../transportation/src/G4VSampler.cc | 2 +- .../src/G4VSamplerConfigurator.cc | 2 +- .../transportation/src/G4VTrackTerminator.cc | 2 +- .../src/G4WeightCutOffConfigurator.cc | 2 +- .../src/G4WeightCutOffProcess.cc | 2 +- source/readout/include/G4DCtable.hh | 2 +- source/readout/include/G4DMmessenger.hh | 2 +- source/readout/include/G4DigiManager.hh | 2 +- source/readout/include/G4VDigitizerModule.hh | 2 +- source/readout/src/G4DCtable.cc | 2 +- source/readout/src/G4DMmessenger.cc | 2 +- source/readout/src/G4DigiManager.cc | 2 +- source/readout/src/G4VDigitizerModule.cc | 2 +- source/run/History | 25 +- source/run/include/G4ExceptionHandler.hh | 2 +- source/run/include/G4Run.hh | 2 +- source/run/include/G4RunManager.hh | 8 +- source/run/include/G4RunManagerKernel.hh | 6 +- source/run/include/G4RunMessenger.hh | 2 +- .../run/include/G4UserPhysicsListMessenger.hh | 2 +- source/run/include/G4UserRunAction.hh | 2 +- source/run/include/G4VModularPhysicsList.hh | 2 +- source/run/include/G4VPersistencyManager.hh | 2 +- source/run/include/G4VPhysicsConstructor.hh | 2 +- .../include/G4VUserDetectorConstruction.hh | 2 +- source/run/include/G4VUserPhysicsList.hh | 2 +- .../include/G4VUserPrimaryGeneratorAction.hh | 2 +- source/run/src/G4ExceptionHandler.cc | 2 +- source/run/src/G4Run.cc | 2 +- source/run/src/G4RunManager.cc | 5 +- source/run/src/G4RunManagerKernel.cc | 31 +- source/run/src/G4RunMessenger.cc | 2 +- source/run/src/G4UserPhysicsListMessenger.cc | 2 +- source/run/src/G4UserRunAction.cc | 2 +- source/run/src/G4VModularPhysicsList.cc | 2 +- source/run/src/G4VPersistencyManager.cc | 2 +- source/run/src/G4VUserDetectorConstruction.cc | 2 +- source/run/src/G4VUserPhysicsList.cc | 10 +- .../run/src/G4VUserPrimaryGeneratorAction.cc | 2 +- source/track/History | 13 +- source/track/include/G4ForceCondition.hh | 2 +- source/track/include/G4GPILSelection.hh | 2 +- source/track/include/G4ParticleChange.hh | 2 +- source/track/include/G4ParticleChange.icc | 2 +- .../track/include/G4ParticleChangeForDecay.hh | 2 +- .../track/include/G4ParticleChangeForGamma.hh | 219 + .../track/include/G4ParticleChangeForLoss.hh | 55 +- .../track/include/G4ParticleChangeForMSC.icc | 2 +- .../include/G4ParticleChangeForRadDecay.hh | 2 +- .../include/G4ParticleChangeForTransport.hh | 2 +- .../include/G4ParticleChangeForTransport.icc | 2 +- source/track/include/G4Step.hh | 5 +- source/track/include/G4Step.icc | 2 +- source/track/include/G4StepPoint.hh | 2 +- source/track/include/G4StepPoint.icc | 2 +- source/track/include/G4StepStatus.hh | 2 +- source/track/include/G4SteppingControl.hh | 2 +- source/track/include/G4Track.hh | 2 +- source/track/include/G4Track.icc | 2 +- source/track/include/G4TrackFastVector.hh | 2 +- source/track/include/G4TrackStatus.hh | 2 +- source/track/include/G4VParticleChange.hh | 2 +- source/track/include/G4VParticleChange.icc | 2 +- .../track/include/G4VUserTrackInformation.hh | 2 +- source/track/src/G4ParticleChange.cc | 2 +- source/track/src/G4ParticleChangeForDecay.cc | 2 +- source/track/src/G4ParticleChangeForGamma.cc | 166 + source/track/src/G4ParticleChangeForLoss.cc | 126 +- source/track/src/G4ParticleChangeForMSC.cc | 2 +- .../track/src/G4ParticleChangeForTransport.cc | 2 +- source/track/src/G4Step.cc | 2 +- source/track/src/G4StepPoint.cc | 2 +- source/track/src/G4Track.cc | 39 +- source/track/src/G4VParticleChange.cc | 2 +- source/track/src/G4VUserTrackInformation.cc | 2 +- source/tracking/History | 13 +- source/tracking/include/G4SmoothTrajectory.hh | 2 +- .../include/G4SmoothTrajectoryPoint.hh | 2 +- source/tracking/include/G4SteppingManager.hh | 2 +- source/tracking/include/G4SteppingVerbose.hh | 2 +- source/tracking/include/G4TrackVector.hh | 2 +- source/tracking/include/G4TrackingManager.hh | 2 +- .../tracking/include/G4TrackingMessenger.hh | 2 +- source/tracking/include/G4Trajectory.hh | 2 +- source/tracking/include/G4TrajectoryPoint.hh | 2 +- .../tracking/include/G4UserSteppingAction.hh | 2 +- .../tracking/include/G4UserTrackingAction.hh | 2 +- source/tracking/include/G4VSteppingVerbose.hh | 2 +- source/tracking/include/G4VTrajectory.hh | 2 +- source/tracking/include/G4VTrajectoryPoint.hh | 2 +- source/tracking/src/G4SmoothTrajectory.cc | 68 +- .../tracking/src/G4SmoothTrajectoryPoint.cc | 29 +- source/tracking/src/G4SteppingManager.cc | 2 +- source/tracking/src/G4SteppingManager2.cc | 2 +- source/tracking/src/G4SteppingVerbose.cc | 2 +- source/tracking/src/G4TrackingManager.cc | 2 +- source/tracking/src/G4TrackingMessenger.cc | 2 +- source/tracking/src/G4Trajectory.cc | 68 +- source/tracking/src/G4TrajectoryPoint.cc | 24 +- source/tracking/src/G4UserSteppingAction.cc | 2 +- source/tracking/src/G4UserTrackingAction.cc | 2 +- source/tracking/src/G4VSteppingVerbose.cc | 2 +- source/tracking/src/G4VTrajectory.cc | 78 +- source/tracking/src/G4VTrajectoryPoint.cc | 2 +- source/visualization/FukuiRenderer/History | 5 +- .../FukuiRenderer/include/G4DAWNFILE.hh | 2 +- .../include/G4DAWNFILESceneHandler.hh | 40 +- .../FukuiRenderer/include/G4DAWNFILEViewer.hh | 2 +- .../FukuiRenderer/include/G4FRClientServer.hh | 2 +- .../FukuiRenderer/include/G4FRConst.hh | 2 +- .../FukuiRenderer/include/G4FRFeatures.hh | 2 +- .../FukuiRenderer/include/G4FRSceneFunc.icc | 76 +- .../FukuiRenderer/include/G4FRofstream.hh | 2 +- .../FukuiRenderer/include/G4FukuiRenderer.hh | 2 +- .../include/G4FukuiRendererSceneHandler.hh | 40 +- .../include/G4FukuiRendererViewer.hh | 2 +- .../FukuiRenderer/src/G4DAWNFILE.cc | 8 +- .../src/G4DAWNFILESceneHandler.cc | 11 +- .../FukuiRenderer/src/G4DAWNFILEViewer.cc | 11 +- .../FukuiRenderer/src/G4FRClientServer.cc | 2 +- .../FukuiRenderer/src/G4FukuiRenderer.cc | 7 +- .../src/G4FukuiRendererSceneHandler.cc | 11 +- .../src/G4FukuiRendererViewer.cc | 11 +- source/visualization/GNUmakefile | 7 +- source/visualization/HepRep/GNUmakefile | 17 +- source/visualization/HepRep/History | 74 +- source/visualization/HepRep/README | 70 +- source/visualization/HepRep/copyfreehep | 31 - source/visualization/HepRep/copyfreehep.bat | 14 - .../visualization/HepRep/include/G4HepRep.hh | 2 +- .../HepRep/include/G4HepRepFile.hh | 2 +- .../include/G4HepRepFileSceneHandler.hh | 44 +- .../HepRep/include/G4HepRepFileViewer.hh | 2 +- .../HepRep/include/G4HepRepMessenger.hh | 15 +- .../HepRep/include/G4HepRepSceneHandler.hh | 76 +- .../HepRep/include/G4HepRepViewer.hh | 2 +- .../HepRep/include/HEPREP/HasHepRep.h | 68 +- .../HepRep/include/HEPREP/HepRep.h | 420 +- .../HepRep/include/HEPREP/HepRepAction.h | 98 +- .../HepRep/include/HEPREP/HepRepAttDef.h | 140 +- .../HepRep/include/HEPREP/HepRepAttValue.h | 256 +- .../HepRep/include/HEPREP/HepRepAttribute.h | 295 +- .../include/HEPREP/HepRepAttributeListener.h | 206 +- .../HepRep/include/HEPREP/HepRepConstants.h | 72 +- .../HepRep/include/HEPREP/HepRepDefinition.h | 148 +- .../HepRep/include/HEPREP/HepRepFactory.h | 296 +- .../include/HEPREP/HepRepFrameListener.h | 68 +- .../HepRep/include/HEPREP/HepRepInstance.h | 276 +- .../include/HEPREP/HepRepInstanceTree.h | 184 +- .../HepRep/include/HEPREP/HepRepIterator.h | 174 +- .../HepRep/include/HEPREP/HepRepPoint.h | 336 +- .../HepRep/include/HEPREP/HepRepReader.h | 248 +- .../include/HEPREP/HepRepSelectFilter.h | 72 +- .../HepRep/include/HEPREP/HepRepTreeID.h | 128 +- .../HepRep/include/HEPREP/HepRepType.h | 218 +- .../HepRep/include/HEPREP/HepRepTypeTree.h | 132 +- .../HepRep/include/HEPREP/HepRepViewer.h | 68 +- .../HepRep/include/HEPREP/HepRepWriter.h | 326 +- .../HepRep/include/HEPREP/Types.h | 36 + .../include/HEPREP/freehep-heprep.version | 1 + source/visualization/HepRep/include/README | 8 +- .../include/cheprep/AbstractXMLWriter.h | 48 + .../HepRep/include/cheprep/BHepRepWriter.h | 131 + .../include/{ref => cheprep}/DefaultHepRep.h | 121 +- .../{ref => cheprep}/DefaultHepRepAction.h | 64 +- .../{ref => cheprep}/DefaultHepRepAttDef.h | 69 +- .../{ref => cheprep}/DefaultHepRepAttValue.h | 140 +- .../{ref => cheprep}/DefaultHepRepAttribute.h | 95 +- .../DefaultHepRepDefinition.h | 80 +- .../{ref => cheprep}/DefaultHepRepFactory.h | 104 +- .../{ref => cheprep}/DefaultHepRepInstance.h | 112 +- .../DefaultHepRepInstanceTree.h | 94 +- .../{ref => cheprep}/DefaultHepRepPoint.h | 118 +- .../{ref => cheprep}/DefaultHepRepTreeID.h | 69 +- .../{ref => cheprep}/DefaultHepRepType.h | 106 +- .../{ref => cheprep}/DefaultHepRepTypeTree.h | 80 +- .../cheprep/DeflateOutputStreamBuffer.h | 98 + .../HepRep/include/cheprep/GZIPOutputStream.h | 34 + .../include/cheprep/GZIPOutputStreamBuffer.h | 42 + .../{ref => cheprep}/IndentPrintWriter.h | 103 +- .../{ref => cheprep}/XMLHepRepFactory.h | 60 +- .../{ref => cheprep}/XMLHepRepWriter.h | 139 +- .../include/{ref => cheprep}/XMLWriter.h | 140 +- .../HepRep/include/cheprep/ZipEntry.h | 37 + .../HepRep/include/cheprep/ZipOutputStream.h | 40 + .../include/cheprep/ZipOutputStreamBuffer.h | 58 + .../HepRep/include/cheprep/config.h | 63 + .../include/cheprep/freehep-cheprep.version | 1 + .../HepRep/include/ref/FreeHepTypes.h | 26 - .../HepRep/include/zipios++/ZIPIOS-AUTHORS | 21 - .../HepRep/include/zipios++/ZIPIOS-COPYING | 515 - .../HepRep/include/zipios++/backbuffer.h | 117 - .../HepRep/include/zipios++/basicentry.h | 87 - .../HepRep/include/zipios++/collcoll.h | 174 - .../include/zipios++/deflateoutputstreambuf.h | 109 - .../HepRep/include/zipios++/dircoll.h | 93 - .../HepRep/include/zipios++/fcoll.h | 307 - .../HepRep/include/zipios++/fcollexceptions.h | 100 - .../HepRep/include/zipios++/fileentry.h | 240 - .../HepRep/include/zipios++/filepath.h | 202 - .../include/zipios++/filterinputstreambuf.h | 66 - .../include/zipios++/filteroutputstreambuf.h | 58 - .../include/zipios++/gzipoutputstream.h | 71 - .../include/zipios++/gzipoutputstreambuf.h | 79 - .../include/zipios++/inflateinputstreambuf.h | 89 - .../HepRep/include/zipios++/meta-iostreams.h | 17 - .../include/zipios++/outputstringstream.h | 71 - .../HepRep/include/zipios++/simplesmartptr.h | 173 - .../HepRep/include/zipios++/virtualseeker.h | 105 - .../HepRep/include/zipios++/zipfile.h | 105 - .../HepRep/include/zipios++/ziphead.h | 271 - .../HepRep/include/zipios++/zipheadio.h | 192 - .../HepRep/include/zipios++/zipinputstream.h | 91 - .../include/zipios++/zipinputstreambuf.h | 89 - .../HepRep/include/zipios++/zipios-config.h | 62 - .../HepRep/include/zipios++/zipios_common.h | 52 - .../HepRep/include/zipios++/zipios_defs.h | 34 - .../HepRep/include/zipios++/zipoutputstream.h | 101 - .../include/zipios++/zipoutputstreambuf.h | 116 - .../HepRep/include/zlib/inffast.h | 11 - .../HepRep/include/zlib/inffixed.h | 94 - .../HepRep/include/zlib/inflate.h | 118 - .../HepRep/include/zlib/inftrees.h | 55 - .../visualization/HepRep/src/BHepRepWriter.cc | 545 + .../visualization/HepRep/src/DefaultHepRep.cc | 197 +- .../HepRep/src/DefaultHepRepAction.cc | 63 +- .../HepRep/src/DefaultHepRepAttDef.cc | 96 +- .../HepRep/src/DefaultHepRepAttValue.cc | 421 +- .../HepRep/src/DefaultHepRepAttribute.cc | 177 +- .../HepRep/src/DefaultHepRepDefinition.cc | 98 +- .../HepRep/src/DefaultHepRepFactory.cc | 171 +- .../HepRep/src/DefaultHepRepInstance.cc | 167 +- .../HepRep/src/DefaultHepRepInstanceTree.cc | 109 +- .../HepRep/src/DefaultHepRepPoint.cc | 239 +- .../HepRep/src/DefaultHepRepTreeID.cc | 69 +- .../HepRep/src/DefaultHepRepType.cc | 217 +- .../HepRep/src/DefaultHepRepTypeTree.cc | 83 +- .../HepRep/src/DeflateOutputStreamBuffer.cc | 243 + source/visualization/HepRep/src/G4HepRep.cc | 2 +- .../visualization/HepRep/src/G4HepRepFile.cc | 6 +- .../HepRep/src/G4HepRepFileSceneHandler.cc | 731 +- .../HepRep/src/G4HepRepFileViewer.cc | 2 +- .../HepRep/src/G4HepRepFileXMLWriter.cc | 4 +- .../HepRep/src/G4HepRepMessenger.cc | 52 +- .../HepRep/src/G4HepRepSceneHandler.cc | 538 +- .../HepRep/src/G4HepRepViewer.cc | 2 +- .../HepRep/src/GZIPOutputStreamBuffer.cc | 78 + .../HepRep/src/IndentPrintWriter.cc | 174 +- source/visualization/HepRep/src/README | 4 +- .../HepRep/src/XMLHepRepFactory.cc | 70 +- .../HepRep/src/XMLHepRepWriter.cc | 541 +- source/visualization/HepRep/src/XMLWriter.cc | 556 +- .../HepRep/src/ZipOutputStreamBuffer.cc | 144 + source/visualization/HepRep/src/basicentry.cc | 163 - source/visualization/HepRep/src/collcoll.cc | 162 - .../HepRep/src/deflateoutputstreambuf.cc | 223 - source/visualization/HepRep/src/fcoll.cc | 90 - .../HepRep/src/fcollexceptions.cc | 144 - source/visualization/HepRep/src/fileentry.cc | 39 - source/visualization/HepRep/src/filepath.cc | 77 - .../HepRep/src/filterinputstreambuf.cc | 47 - .../HepRep/src/filteroutputstreambuf.cc | 47 - source/visualization/HepRep/src/gzio.cc | 963 -- .../HepRep/src/gzipoutputstream.cc | 119 +- .../HepRep/src/gzipoutputstreambuf.cc | 127 - source/visualization/HepRep/src/infback.cc | 609 - source/visualization/HepRep/src/inffast.cc | 304 - source/visualization/HepRep/src/inflate.cc | 1250 -- .../HepRep/src/inflateinputstreambuf.cc | 179 - source/visualization/HepRep/src/inftrees.cc | 316 - source/visualization/HepRep/src/uncompr.cc | 57 - source/visualization/HepRep/src/zipfile.cc | 208 - source/visualization/HepRep/src/ziphead.cc | 294 - source/visualization/HepRep/src/zipheadio.cc | 196 - .../HepRep/src/zipinputstream.cc | 82 - .../HepRep/src/zipinputstreambuf.cc | 140 - .../HepRep/src/zipoutputstream.cc | 147 +- .../HepRep/src/zipoutputstreambuf.cc | 204 - source/visualization/History | 213 +- source/visualization/OpenGL/History | 31 +- .../visualization/OpenGL/include/G4OpenGL.hh | 5 + .../OpenGL/include/G4OpenGLFontBaseStore.hh | 56 +- .../include/G4OpenGLImmediateSceneHandler.hh | 6 +- .../OpenGL/include/G4OpenGLImmediateViewer.hh | 2 +- .../OpenGL/include/G4OpenGLImmediateWin32.hh | 2 +- .../include/G4OpenGLImmediateWin32Viewer.hh | 2 +- .../OpenGL/include/G4OpenGLImmediateX.hh | 2 +- .../include/G4OpenGLImmediateXViewer.hh | 2 +- .../OpenGL/include/G4OpenGLImmediateXm.hh | 2 +- .../include/G4OpenGLImmediateXmViewer.hh | 2 +- .../OpenGL/include/G4OpenGLSceneHandler.hh | 30 +- .../OpenGL/include/G4OpenGLSceneHandler.icc | 48 +- .../include/G4OpenGLStoredSceneHandler.hh | 10 +- .../OpenGL/include/G4OpenGLStoredViewer.hh | 2 +- .../OpenGL/include/G4OpenGLStoredWin32.hh | 2 +- .../include/G4OpenGLStoredWin32Viewer.hh | 2 +- .../OpenGL/include/G4OpenGLStoredX.hh | 2 +- .../OpenGL/include/G4OpenGLStoredXViewer.hh | 2 +- .../OpenGL/include/G4OpenGLStoredXm.hh | 2 +- .../OpenGL/include/G4OpenGLStoredXmViewer.hh | 2 +- .../OpenGL/include/G4OpenGLTransform3D.hh | 2 +- .../OpenGL/include/G4OpenGLViewer.hh | 5 +- .../OpenGL/include/G4OpenGLWin32Viewer.hh | 2 +- .../OpenGL/include/G4OpenGLXViewer.hh | 5 +- .../OpenGL/include/G4OpenGLXmBox.hh | 2 +- .../include/G4OpenGLXmFourArrowButtons.hh | 2 +- .../OpenGL/include/G4OpenGLXmFramedBox.hh | 2 +- .../OpenGL/include/G4OpenGLXmPushButton.hh | 2 +- .../OpenGL/include/G4OpenGLXmRadioButton.hh | 2 +- .../OpenGL/include/G4OpenGLXmResources.hh | 2 +- .../OpenGL/include/G4OpenGLXmSeparator.hh | 2 +- .../OpenGL/include/G4OpenGLXmSliderBar.hh | 2 +- .../OpenGL/include/G4OpenGLXmTextField.hh | 2 +- .../OpenGL/include/G4OpenGLXmTopLevelShell.hh | 2 +- .../include/G4OpenGLXmVWidgetComponent.hh | 2 +- .../include/G4OpenGLXmVWidgetContainer.hh | 2 +- .../OpenGL/include/G4OpenGLXmVWidgetObject.hh | 2 +- .../OpenGL/include/G4OpenGLXmVWidgetShell.hh | 2 +- .../OpenGL/include/G4OpenGLXmViewer.hh | 2 +- .../OpenGL/src/G4OpenGLFontBaseStore.cc | 56 + .../src/G4OpenGLImmediateSceneHandler.cc | 20 +- .../OpenGL/src/G4OpenGLImmediateViewer.cc | 2 +- .../OpenGL/src/G4OpenGLImmediateWin32.cc | 6 +- .../src/G4OpenGLImmediateWin32Viewer.cc | 15 +- .../OpenGL/src/G4OpenGLImmediateX.cc | 6 +- .../OpenGL/src/G4OpenGLImmediateXViewer.cc | 16 +- .../OpenGL/src/G4OpenGLImmediateXm.cc | 6 +- .../OpenGL/src/G4OpenGLImmediateXmViewer.cc | 16 +- .../OpenGL/src/G4OpenGLSceneHandler.cc | 70 +- .../OpenGL/src/G4OpenGLStoredSceneHandler.cc | 16 +- .../OpenGL/src/G4OpenGLStoredViewer.cc | 2 +- .../OpenGL/src/G4OpenGLStoredWin32.cc | 6 +- .../OpenGL/src/G4OpenGLStoredWin32Viewer.cc | 15 +- .../OpenGL/src/G4OpenGLStoredX.cc | 6 +- .../OpenGL/src/G4OpenGLStoredXViewer.cc | 16 +- .../OpenGL/src/G4OpenGLStoredXm.cc | 6 +- .../OpenGL/src/G4OpenGLStoredXmViewer.cc | 16 +- .../OpenGL/src/G4OpenGLTransform3D.cc | 2 +- .../OpenGL/src/G4OpenGLViewer.cc | 2 +- .../OpenGL/src/G4OpenGLWin32Viewer.cc | 2 +- .../OpenGL/src/G4OpenGLXViewer.cc | 46 +- .../visualization/OpenGL/src/G4OpenGLXmBox.cc | 2 +- .../src/G4OpenGLXmConvenienceRoutines.cc | 2 +- .../OpenGL/src/G4OpenGLXmFourArrowButtons.cc | 2 +- .../OpenGL/src/G4OpenGLXmFramedBox.cc | 2 +- .../src/G4OpenGLXmMainMenubarCallbacks.cc | 2 +- .../OpenGL/src/G4OpenGLXmPanningCallbacks.cc | 2 +- .../OpenGL/src/G4OpenGLXmPushButton.cc | 2 +- .../OpenGL/src/G4OpenGLXmRadioButton.cc | 2 +- .../OpenGL/src/G4OpenGLXmRotationCallbacks.cc | 2 +- .../OpenGL/src/G4OpenGLXmSeparator.cc | 2 +- .../OpenGL/src/G4OpenGLXmSliderBar.cc | 2 +- .../OpenGL/src/G4OpenGLXmStyleCallbacks.cc | 10 +- .../OpenGL/src/G4OpenGLXmTextField.cc | 2 +- .../OpenGL/src/G4OpenGLXmTopLevelShell.cc | 2 +- .../OpenGL/src/G4OpenGLXmVWidgetComponent.cc | 2 +- .../OpenGL/src/G4OpenGLXmVWidgetContainer.cc | 2 +- .../OpenGL/src/G4OpenGLXmVWidgetObject.cc | 2 +- .../OpenGL/src/G4OpenGLXmVWidgetShell.cc | 2 +- .../OpenGL/src/G4OpenGLXmViewer.cc | 4 +- .../src/G4OpenGLXmWindowHandlingCallbacks.cc | 2 +- source/visualization/OpenInventor/History | 17 +- .../OpenInventor/include/G4OpenInventor.hh | 2 +- .../include/G4OpenInventorSceneHandler.hh | 21 +- .../include/G4OpenInventorTransform3D.hh | 2 +- .../OpenInventor/include/G4OpenInventorWin.hh | 2 +- .../include/G4OpenInventorWin32.hh | 2 +- .../include/G4OpenInventorWinViewer.hh | 2 +- .../OpenInventor/include/G4OpenInventorX.hh | 2 +- .../OpenInventor/include/G4OpenInventorXt.hh | 2 +- .../include/G4OpenInventorXtViewer.hh | 2 +- .../OpenInventor/include/HEPVis/SbMath.h | 2 +- .../HEPVis/nodekits/SoDetectorTreeKit.h | 2 +- .../OpenInventor/include/HEPVis/nodes/SoBox.h | 2 +- .../include/HEPVis/nodes/SoCons.h | 2 +- .../include/HEPVis/nodes/SoTrap.h | 2 +- .../OpenInventor/include/HEPVis/nodes/SoTrd.h | 2 +- .../include/HEPVis/nodes/SoTubs.h | 2 +- .../OpenInventor/src/G4OpenInventor.cc | 6 +- .../src/G4OpenInventorSceneHandler.cc | 315 +- .../src/G4OpenInventorTransform3D.cc | 30 +- .../OpenInventor/src/G4OpenInventorViewer.cc | 6 +- .../OpenInventor/src/G4OpenInventorWin.cc | 2 +- .../src/G4OpenInventorWinViewer.cc | 2 +- .../OpenInventor/src/G4OpenInventorXt.cc | 2 +- .../src/G4OpenInventorXtViewer.cc | 2 +- .../OpenInventor/src/SbPainter.cc | 0 .../OpenInventor/src/SbPainterPS.cc | 0 .../visualization/OpenInventor/src/SoBox.cc | 2 +- .../visualization/OpenInventor/src/SoCons.cc | 2 +- .../OpenInventor/src/SoCounterAction.cc | 2 +- .../OpenInventor/src/SoDetectorTreeKit.cc | 2 +- .../OpenInventor/src/SoImageWriter.cc | 0 .../OpenInventor/src/SoMarkerSet.cc | 0 .../OpenInventor/src/SoPolyhedron.cc | 0 .../visualization/OpenInventor/src/SoTrap.cc | 2 +- .../visualization/OpenInventor/src/SoTrd.cc | 2 +- .../visualization/OpenInventor/src/SoTubs.cc | 2 +- .../visualization/OpenInventor/src/gl2ps.cc | 4 +- source/visualization/README | 357 +- .../README.adding_graphics_system | 2 +- source/visualization/README.built_in_commands | 2 +- .../RayTracer/include/G4RTJpeg.hh | 2 +- .../RayTracer/include/G4RTJpegCoder.hh | 2 +- .../RayTracer/include/G4RTJpegCoderTables.hh | 2 +- .../RayTracer/include/G4RTJpegMaker.hh | 2 +- .../RayTracer/include/G4RTMessenger.hh | 2 +- .../RayTracer/include/G4RTOutBitStream.hh | 2 +- .../RayTracer/include/G4RTSimpleScanner.hh | 2 +- .../RayTracer/include/G4RTSteppingAction.hh | 2 +- .../RayTracer/include/G4RTTrackingAction.hh | 2 +- .../RayTracer/include/G4RayShooter.hh | 2 +- .../RayTracer/include/G4RayTracer.hh | 2 +- .../RayTracer/include/G4RayTracerFeatures.hh | 2 +- .../include/G4RayTracerSceneHandler.hh | 33 +- .../RayTracer/include/G4RayTracerViewer.hh | 2 +- .../RayTracer/include/G4RayTrajectory.hh | 2 +- .../RayTracer/include/G4RayTrajectoryPoint.hh | 2 +- .../RayTracer/include/G4VFigureFileMaker.hh | 2 +- .../RayTracer/include/G4VRTScanner.hh | 2 +- .../RayTracer/src/G4RTJpegCoder.cc | 2 +- .../RayTracer/src/G4RTJpegMaker.cc | 2 +- .../RayTracer/src/G4RTMessenger.cc | 2 +- .../RayTracer/src/G4RTOutBitStream.cc | 2 +- .../RayTracer/src/G4RTSimpleScanner.cc | 2 +- .../RayTracer/src/G4RTSteppingAction.cc | 2 +- .../RayTracer/src/G4RTTrackingAction.cc | 2 +- .../RayTracer/src/G4RayShooter.cc | 2 +- .../RayTracer/src/G4RayTracer.cc | 6 +- .../RayTracer/src/G4RayTracerSceneHandler.cc | 18 +- .../RayTracer/src/G4RayTracerViewer.cc | 2 +- .../RayTracer/src/G4RayTrajectory.cc | 2 +- .../RayTracer/src/G4RayTrajectoryPoint.cc | 2 +- source/visualization/Tree/GNUmakefile | 7 +- .../visualization/Tree/include/G4ASCIITree.hh | 2 +- .../Tree/include/G4ASCIITreeMessenger.hh | 7 +- .../Tree/include/G4ASCIITreeSceneHandler.hh | 2 +- .../Tree/include/G4ASCIITreeViewer.hh | 2 +- source/visualization/Tree/include/G4VTree.hh | 2 +- .../Tree/include/G4VTreeSceneHandler.hh | 11 +- .../Tree/include/G4VTreeSceneHandler.icc | 12 +- .../Tree/include/G4VTreeViewer.hh | 2 +- source/visualization/Tree/src/G4ASCIITree.cc | 6 +- .../Tree/src/G4ASCIITreeMessenger.cc | 65 +- .../Tree/src/G4ASCIITreeSceneHandler.cc | 163 +- .../Tree/src/G4ASCIITreeViewer.cc | 2 +- source/visualization/Tree/src/G4GAGTree.cc | 2 - .../Tree/src/G4GAGTreeSceneHandler.cc | 3 + source/visualization/Tree/src/G4VTree.cc | 2 +- .../Tree/src/G4VTreeSceneHandler.cc | 11 +- .../visualization/Tree/src/G4VTreeViewer.cc | 2 +- source/visualization/VRML/History | 5 +- .../visualization/VRML/g4vrmlview/g4mini.java | 2 +- .../VRML/g4vrmlview/g4vrmlview.java | 2 +- source/visualization/VRML/include/FRClient.h | 2 +- .../visualization/VRML/include/G4FRClient.hh | 2 +- source/visualization/VRML/include/G4VRML1.hh | 2 +- .../visualization/VRML/include/G4VRML1File.hh | 2 +- .../VRML/include/G4VRML1FileSceneHandler.hh | 41 +- .../VRML/include/G4VRML1FileViewer.hh | 2 +- .../VRML/include/G4VRML1SceneHandler.hh | 41 +- .../VRML/include/G4VRML1Viewer.hh | 2 +- source/visualization/VRML/include/G4VRML2.hh | 2 +- .../visualization/VRML/include/G4VRML2File.hh | 2 +- .../VRML/include/G4VRML2FileSceneHandler.hh | 41 +- .../VRML/include/G4VRML2FileViewer.hh | 2 +- .../VRML/include/G4VRML2SceneHandler.hh | 41 +- .../VRML/include/G4VRML2Viewer.hh | 2 +- .../VRML/include/G4VRMLNetConfig.hh | 2 +- source/visualization/VRML/src/FRClient.cc | 2 +- source/visualization/VRML/src/G4FRClient.cc | 2 +- source/visualization/VRML/src/G4VRML1.cc | 7 +- source/visualization/VRML/src/G4VRML1File.cc | 7 +- .../VRML/src/G4VRML1FileSceneHandler.cc | 7 +- .../VRML/src/G4VRML1FileViewer.cc | 11 +- .../VRML/src/G4VRML1SceneHandler.cc | 7 +- .../VRML/src/G4VRML1SceneHandlerFunc.icc | 40 +- .../visualization/VRML/src/G4VRML1Viewer.cc | 2 +- source/visualization/VRML/src/G4VRML2.cc | 7 +- source/visualization/VRML/src/G4VRML2File.cc | 7 +- .../VRML/src/G4VRML2FileSceneHandler.cc | 8 +- .../VRML/src/G4VRML2FileViewer.cc | 14 +- .../VRML/src/G4VRML2SceneHandler.cc | 8 +- .../VRML/src/G4VRML2SceneHandlerFunc.icc | 58 +- .../visualization/VRML/src/G4VRML2Viewer.cc | 14 +- source/visualization/XXX/History | 10 +- source/visualization/XXX/include/G4XXX.hh | 2 +- .../XXX/include/G4XXXSceneHandler.hh | 42 +- .../visualization/XXX/include/G4XXXViewer.hh | 2 +- source/visualization/XXX/src/G4XXX.cc | 6 +- .../XXX/src/G4XXXSceneHandler.cc | 181 +- source/visualization/XXX/src/G4XXXViewer.cc | 2 +- .../visualization/externals/zlib/GNUmakefile | 12 + source/visualization/externals/zlib/History | 24 + .../ZLIB-README => externals/zlib/README} | 19 +- .../zlib => externals/zlib/include}/crc32.h | 0 .../zlib => externals/zlib/include}/deflate.h | 4 +- .../zlib => externals/zlib/include}/trees.h | 0 .../zlib/include/zconf.h} | 89 +- .../zlib/include/zlib.h} | 17 +- .../zlib/include/zutil.h} | 10 +- .../{HepRep => externals/zlib}/src/adler32.cc | 4 +- .../zlib}/src/compress.cc | 4 +- .../{HepRep => externals/zlib}/src/crc32.cc | 4 +- .../{HepRep => externals/zlib}/src/deflate.cc | 2 +- .../{HepRep => externals/zlib}/src/trees.cc | 2 +- .../{HepRep => externals/zlib}/src/zutil.cc | 4 +- source/visualization/management/GNUmakefile | 3 +- source/visualization/management/History | 35 + .../include/G4GraphicsSystemList.hh | 2 +- .../management/include/G4Scene.hh | 2 +- .../management/include/G4Scene.icc | 2 +- .../management/include/G4SceneHandlerList.hh | 2 +- .../management/include/G4SceneList.hh | 2 +- .../management/include/G4VGraphicsSystem.hh | 2 +- .../management/include/G4VGraphicsSystem.icc | 2 +- .../management/include/G4VSceneHandler.hh | 111 +- .../management/include/G4VSceneHandler.icc | 2 +- .../management/include/G4VUserVisAction.hh | 59 + .../management/include/G4VViewer.hh | 10 +- .../management/include/G4VViewer.icc | 8 +- .../management/include/G4VVisCommand.hh | 11 +- .../management/include/G4VVisCommand.icc | 2 +- .../management/include/G4ViewParameters.hh | 8 +- .../management/include/G4ViewParameters.icc | 6 +- .../management/include/G4ViewerList.hh | 2 +- .../management/include/G4VisCommands.hh | 2 +- .../include/G4VisCommandsCompound.hh | 6 +- .../management/include/G4VisCommandsScene.hh | 29 +- .../include/G4VisCommandsSceneAdd.hh | 43 +- .../include/G4VisCommandsSceneHandler.hh | 32 +- .../management/include/G4VisCommandsViewer.hh | 17 +- .../include/G4VisCommandsViewerSet.hh | 2 +- .../management/include/G4VisExecutive.hh | 104 + .../management/include/G4VisExecutive.icc | 24 +- .../include/G4VisFeaturesOfDAWNFILE.hh | 2 +- .../include/G4VisFeaturesOfFukuiRenderer.hh | 2 +- .../include/G4VisFeaturesOfOpenGL.hh | 2 +- .../include/G4VisFeaturesOfOpenInventor.hh | 2 +- .../management/include/G4VisManager.hh | 52 +- .../management/include/G4VisManager.icc | 16 +- .../management/include/G4VisStateDependent.hh | 2 +- .../management/include/MyVisManager.cc | 12 +- .../management/include/MyVisManager.hh | 2 +- .../management/src/G4GraphicsSystemList.cc | 2 +- .../visualization/management/src/G4Scene.cc | 2 +- .../management/src/G4SceneHandlerList.cc | 2 +- .../management/src/G4SceneList.cc | 2 +- .../management/src/G4VGraphicsSystem.cc | 2 +- .../management/src/G4VSceneHandler.cc | 120 +- .../visualization/management/src/G4VViewer.cc | 10 +- .../management/src/G4VVisCommand.cc | 13 +- .../management/src/G4ViewParameters.cc | 42 +- .../management/src/G4ViewerList.cc | 2 +- .../management/src/G4VisCommands.cc | 10 +- .../management/src/G4VisCommandsCompound.cc | 70 +- .../management/src/G4VisCommandsScene.cc | 311 +- .../management/src/G4VisCommandsSceneAdd.cc | 711 +- .../src/G4VisCommandsSceneHandler.cc | 189 +- .../management/src/G4VisCommandsViewer.cc | 286 +- .../management/src/G4VisCommandsViewerSet.cc | 218 +- .../management/src/G4VisFeaturesOfDAWNFILE.cc | 2 +- .../src/G4VisFeaturesOfFukuiRenderer.cc | 2 +- .../management/src/G4VisFeaturesOfOpenGL.cc | 2 +- .../src/G4VisFeaturesOfOpenInventor.cc | 2 +- .../management/src/G4VisManager.cc | 183 +- .../management/src/G4VisStateDependent.cc | 2 +- source/visualization/modeling/GNUmakefile | 3 +- source/visualization/modeling/History | 18 +- .../modeling/include/G4AxesModel.hh | 2 +- .../modeling/include/G4AxesModel.icc | 2 +- .../modeling/include/G4BoundingSphereScene.hh | 40 +- .../modeling/include/G4CallbackModel.hh | 74 + .../include/G4FlavoredParallelWorldModel.hh | 2 +- .../modeling/include/G4HitsModel.hh | 2 +- .../modeling/include/G4HitsModel.icc | 2 +- .../modeling/include/G4LogicalVolumeModel.hh | 10 +- .../modeling/include/G4ModelingParameters.hh | 6 +- .../modeling/include/G4ModelingParameters.icc | 2 +- .../modeling/include/G4NullModel.hh | 2 +- .../include/G4PhysicalVolumeMassScene.hh | 36 +- .../modeling/include/G4PhysicalVolumeModel.hh | 23 +- .../include/G4PhysicalVolumeSearchScene.hh | 37 +- .../include/G4PhysicalVolumeSearchScene.icc | 8 +- .../modeling/include/G4ScaleModel.hh | 2 +- .../modeling/include/G4ScaleModel.icc | 2 +- .../modeling/include/G4TextModel.hh | 6 +- .../modeling/include/G4TextModel.icc | 2 +- .../modeling/include/G4TrajectoriesModel.hh | 2 +- .../modeling/include/G4TrajectoriesModel.icc | 2 +- .../modeling/include/G4VModel.hh | 16 +- .../modeling/include/G4VModel.icc | 16 +- .../visualization/modeling/src/G4AxesModel.cc | 2 +- .../modeling/src/G4BoundingSphereScene.cc | 6 +- .../src/G4FlavoredParallelWorldModel.cc | 2 +- .../visualization/modeling/src/G4HitsModel.cc | 9 +- .../modeling/src/G4LogicalVolumeModel.cc | 92 +- .../modeling/src/G4ModelingParameters.cc | 9 +- .../visualization/modeling/src/G4NullModel.cc | 2 +- .../modeling/src/G4PhysicalVolumeMassScene.cc | 19 +- .../modeling/src/G4PhysicalVolumeModel.cc | 75 +- .../src/G4PhysicalVolumeSearchScene.cc | 8 +- .../modeling/src/G4ScaleModel.cc | 2 +- .../visualization/modeling/src/G4TextModel.cc | 18 +- .../modeling/src/G4TrajectoriesModel.cc | 9 +- source/visualization/modeling/src/G4VModel.cc | 2 +- 5384 files changed, 125662 insertions(+), 82444 deletions(-) create mode 100644 ReleaseNotes/Patch4.7.0-1.txt create mode 100644 ReleaseNotes/ReleaseNotes4.7.1.html mode change 100755 => 100644 environments/MOMO/docs/MOMOHelp.html delete mode 100644 examples/advanced/Rich/src/RichTbVisManager.cc delete mode 100755 examples/advanced/Tiara/source/tiara/src/TiaraVisManager.cc mode change 100755 => 100644 examples/advanced/air_shower/UltraMacro.mac delete mode 100644 examples/advanced/air_shower/src/UltraVisManager.cc delete mode 100644 examples/advanced/brachytherapy/src/BrachyVisManager.cc delete mode 100644 examples/advanced/composite_calorimeter/src/CCalVisManager.cc delete mode 100644 examples/advanced/cosmicray_charging/src/LISAVisManager.cc delete mode 100755 examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc create mode 100644 examples/advanced/hadrontherapy/G4History.macro mode change 100755 => 100644 examples/advanced/hadrontherapy/GNUmakefile mode change 100755 => 100644 examples/advanced/hadrontherapy/Hadrontherapy.cc mode change 100755 => 100644 examples/advanced/hadrontherapy/README create mode 100644 examples/advanced/hadrontherapy/currentEvent.rndm create mode 100644 examples/advanced/hadrontherapy/currentRun.rndm mode change 100755 => 100644 examples/advanced/hadrontherapy/defaultMacro.mac mode change 100755 => 100644 examples/advanced/hadrontherapy/include/HadrontherapyAnalysisManager.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyBeamLine.hh delete mode 100755 examples/advanced/hadrontherapy/include/HadrontherapyCalorHit.hh rename examples/advanced/hadrontherapy/include/{HadrontherapyVisManager.hh => HadrontherapyDecay.hh} (70%) mode change 100755 => 100644 mode change 100755 => 100644 examples/advanced/hadrontherapy/include/HadrontherapyDetectorConstruction.hh mode change 100755 => 100644 examples/advanced/hadrontherapy/include/HadrontherapyDetectorMessenger.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyDummySD.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyElectronEEDL.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyElectronPenelope.hh rename examples/advanced/hadrontherapy/{src/HadrontherapyCalorHit.cc => include/HadrontherapyElectronStandard.hh} (62%) mode change 100755 => 100644 mode change 100755 => 100644 examples/advanced/hadrontherapy/include/HadrontherapyEventAction.hh rename source/geometry/solids/specific/include/G4ApproxPolySolver.hh => examples/advanced/hadrontherapy/include/HadrontherapyIonLowE.hh (63%) create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyIonStandard.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyMaterial.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyMatrix.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyModulator.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyMuonStandard.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyParticles.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyPhantomHit.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyPhantomROGeometry.hh rename examples/advanced/hadrontherapy/include/{HadrontherapyCalorimeterSD.hh => HadrontherapyPhantomSD.hh} (61%) mode change 100755 => 100644 create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyPhotonEPDL.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyPhotonPenelope.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyPhotonStandard.hh mode change 100755 => 100644 examples/advanced/hadrontherapy/include/HadrontherapyPhysicsList.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyPhysicsListMessenger.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyPositronPenelope.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyPositronStandard.hh mode change 100755 => 100644 examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorAction.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorMessenger.hh create mode 100644 examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompound.hh mode change 100755 => 100644 examples/advanced/hadrontherapy/include/HadrontherapyRunAction.hh mode change 100755 => 100644 examples/advanced/hadrontherapy/include/HadrontherapySteppingAction.hh create mode 100644 examples/advanced/hadrontherapy/modulatorMacro.mac mode change 100755 => 100644 examples/advanced/hadrontherapy/src/HadrontherapyAnalysisManager.cc create mode 100755 examples/advanced/hadrontherapy/src/HadrontherapyBeamLine.cc delete mode 100755 examples/advanced/hadrontherapy/src/HadrontherapyCalorimeterSD.cc rename examples/advanced/hadrontherapy/src/{HadrontherapyHit.cc => HadrontherapyDecay.cc} (55%) mode change 100755 => 100644 mode change 100755 => 100644 examples/advanced/hadrontherapy/src/HadrontherapyDetectorConstruction.cc mode change 100755 => 100644 examples/advanced/hadrontherapy/src/HadrontherapyDetectorMessenger.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyElectronEEDL.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyElectronPenelope.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyElectronStandard.cc mode change 100755 => 100644 examples/advanced/hadrontherapy/src/HadrontherapyEventAction.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyIonLowE.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyIonStandard.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyMaterial.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyMatrix.cc create mode 100755 examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyMuonStandard.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyParticles.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyPhantomHit.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyPhantomROGeometry.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyPhantomSD.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyPhotonEPDL.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyPhotonPenelope.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyPhotonStandard.cc mode change 100755 => 100644 examples/advanced/hadrontherapy/src/HadrontherapyPhysicsList.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyPhysicsListMessenger.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyPositronPenelope.cc rename examples/advanced/hadrontherapy/{include/HadrontherapyHit.hh => src/HadrontherapyPositronStandard.cc} (52%) mode change 100755 => 100644 rename examples/advanced/hadrontherapy/src/{HadrontherapyPrimaryGenerationAction.cc => HadrontherapyPrimaryGeneratorAction.cc} (56%) mode change 100755 => 100644 create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyPrimaryGeneratorMessenger.cc create mode 100644 examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompound.cc mode change 100755 => 100644 examples/advanced/hadrontherapy/src/HadrontherapyRunAction.cc mode change 100755 => 100644 examples/advanced/hadrontherapy/src/HadrontherapySteppingAction.cc delete mode 100755 examples/advanced/hadrontherapy/src/HadrontherapyVisManager.cc delete mode 100755 examples/advanced/hadrontherapy/visualisation.mac create mode 100644 examples/advanced/hadrontherapy/visualisationMacro.mac delete mode 100644 examples/advanced/lAr_calorimeter/include/FCALVisManager.hh delete mode 100644 examples/advanced/lAr_calorimeter/src/FCALVisManager.cc delete mode 100644 examples/advanced/medical_linac/src/MedLinacVisManager.cc delete mode 100644 examples/advanced/purging_magnet/include/PurgMagVisManager.hh delete mode 100644 examples/advanced/purging_magnet/src/PurgMagVisManager.cc delete mode 100644 examples/advanced/radioprotection/include/RemSimVisManager.hh delete mode 100755 examples/advanced/radioprotection/src/RemSimVisManager.cc delete mode 100644 examples/advanced/underground_physics/include/DMXVisManager.hh delete mode 100755 examples/advanced/underground_physics/src/DMXVisManager.cc create mode 100755 examples/advanced/xray_fluorescence/FlatSpectrum.dat mode change 100755 => 100644 examples/advanced/xray_fluorescence/SILIefficiency.dat mode change 100755 => 100644 examples/advanced/xray_fluorescence/SILIresponse.dat mode change 100755 => 100644 examples/advanced/xray_fluorescence/include/XrayFluoSimulation.hh delete mode 100644 examples/advanced/xray_fluorescence/readHbkAida3.py create mode 100644 examples/advanced/xray_fluorescence/readPY.py delete mode 100755 examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc delete mode 100644 examples/advanced/xray_fluorescence/testhbk.xml delete mode 100644 examples/advanced/xray_telescope/analysis/Lab/cloud.tcl delete mode 100644 examples/advanced/xray_telescope/analysis/Lab/g4Xt.xrm delete mode 100644 examples/advanced/xray_telescope/analysis/Lab/gui.mac delete mode 100755 examples/advanced/xray_telescope/analysis/Lab/jas.sh delete mode 100755 examples/advanced/xray_telescope/analysis/Lab/main.xml delete mode 100644 examples/advanced/xray_telescope/analysis/Lab/run.mac delete mode 100644 examples/advanced/xray_telescope/analysis/Lab/session.tcl delete mode 100755 examples/advanced/xray_telescope/src/XrayTelVisManager.cc create mode 100755 examples/extended/analysis/A01/bheprep2-000-gz.mac create mode 100755 examples/extended/analysis/A01/bheprep2-000-zip.mac create mode 100755 examples/extended/analysis/A01/bheprep2.mac create mode 100755 examples/extended/analysis/A01/bheprep2gz.mac create mode 100755 examples/extended/analysis/A01/bheprep2zip.mac delete mode 100644 examples/extended/analysis/A01/src/A01VisManager.cc delete mode 100644 examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh delete mode 100755 examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc delete mode 100755 examples/extended/electromagnetic/MuonProcesses/src/VisManager.cc rename examples/extended/{medical/GammaTherapy/include/G4EmQEDBuilder70.hh => electromagnetic/PhotonProcesses/include/PhysListEmG4v52.hh} (71%) mode change 100755 => 100644 rename examples/extended/electromagnetic/{TestEm5/src/IonC12.cc => PhotonProcesses/src/PhysListEmG4v52.cc} (50%) delete mode 100755 examples/extended/electromagnetic/PhotonProcesses/src/VisManager.cc delete mode 100644 examples/extended/electromagnetic/TestEm1/src/G4eBremsstrahlungCMS.cc delete mode 100755 examples/extended/electromagnetic/TestEm1/src/VisManager.cc delete mode 100755 examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc create mode 100644 examples/extended/electromagnetic/TestEm11/GNUmakefile create mode 100644 examples/extended/electromagnetic/TestEm11/History create mode 100644 examples/extended/electromagnetic/TestEm11/README create mode 100644 examples/extended/electromagnetic/TestEm11/TestEm11.cc create mode 100644 examples/extended/electromagnetic/TestEm11/TestEm11.in create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/README create mode 100755 examples/extended/electromagnetic/TestEm11/geant3/gmakeB create mode 100755 examples/extended/electromagnetic/TestEm11/geant3/gmakeT create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/include/calor.inc create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/include/celoss.inc create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/include/histo.inc create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/run01.dat create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/run02.dat create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/ffuser.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/gtgama.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/gukine.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/guout.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/gustep.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/gutrak.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/gutrev.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/main.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/ugeom.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/uginit.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/uglast.F create mode 100644 examples/extended/electromagnetic/TestEm11/geant3/src/uhinit.F create mode 100644 examples/extended/electromagnetic/TestEm11/include/DetectorConstruction.hh rename examples/extended/electromagnetic/{TestEm1/include/VisManager.hh => TestEm11/include/DetectorMessenger.hh} (64%) rename examples/extended/electromagnetic/{TestEm3/include/VisManager.hh => TestEm11/include/EventAction.hh} (64%) create mode 100644 examples/extended/electromagnetic/TestEm11/include/EventActionMessenger.hh rename examples/extended/{eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh => electromagnetic/TestEm11/include/HistoManager.hh} (52%) rename examples/extended/electromagnetic/{MuonProcesses/include/VisManager.hh => TestEm11/include/HistoMessenger.hh} (67%) rename examples/{advanced/gammaray_telescope/include/GammaRayTelVisManager.hh => extended/electromagnetic/TestEm11/include/PhysListEmG4v52.hh} (65%) create mode 100644 examples/extended/electromagnetic/TestEm11/include/PhysListEmStandard.hh rename examples/extended/electromagnetic/{TestEm4/include/VisManager.hh => TestEm11/include/PhysicsList.hh} (63%) create mode 100644 examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh create mode 100644 examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh create mode 100644 examples/extended/electromagnetic/TestEm11/include/RunAction.hh rename examples/extended/electromagnetic/{TestEm2/include/VisManager.hh => TestEm11/include/StepMax.hh} (65%) rename examples/extended/{gdml/include/g4rwVisManager.hh => electromagnetic/TestEm11/include/StepMaxMessenger.hh} (74%) create mode 100644 examples/extended/electromagnetic/TestEm11/include/SteppingAction.hh rename examples/extended/electromagnetic/{TestEm9 => TestEm11}/include/SteppingVerbose.hh (82%) mode change 100755 => 100644 rename examples/{advanced/air_shower/include/UltraVisManager.hh => extended/electromagnetic/TestEm11/include/TrackingAction.hh} (67%) create mode 100644 examples/extended/electromagnetic/TestEm11/run01.mac create mode 100644 examples/extended/electromagnetic/TestEm11/run02.mac create mode 100644 examples/extended/electromagnetic/TestEm11/src/DetectorConstruction.cc create mode 100644 examples/extended/electromagnetic/TestEm11/src/DetectorMessenger.cc rename examples/extended/electromagnetic/{TestEm8/src/IonC12.cc => TestEm11/src/EventAction.cc} (54%) mode change 100755 => 100644 create mode 100644 examples/extended/electromagnetic/TestEm11/src/EventActionMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm11/src/HistoManager.cc create mode 100644 examples/extended/electromagnetic/TestEm11/src/HistoMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v52.cc create mode 100644 examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc create mode 100644 examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc create mode 100644 examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc rename examples/{advanced/Tiara/source/tiara/include/TiaraVisManager.hh => extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc} (60%) create mode 100644 examples/extended/electromagnetic/TestEm11/src/RunAction.cc rename examples/extended/{eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh => electromagnetic/TestEm11/src/StepMax.cc} (58%) rename examples/extended/electromagnetic/{PhotonProcesses/include/VisManager.hh => TestEm11/src/StepMaxMessenger.cc} (67%) create mode 100644 examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc rename examples/extended/electromagnetic/{TestEm9 => TestEm11}/src/SteppingVerbose.cc (54%) mode change 100755 => 100644 create mode 100644 examples/extended/electromagnetic/TestEm11/src/TrackingAction.cc create mode 100644 examples/extended/electromagnetic/TestEm11/vis.mac mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/DecaysBuilder.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder52.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4EmHighEnergyBuilder.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder52.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder52.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder70.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4StepLimiterBuilder.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4StepLimiterMessenger.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/G4StepLimiterPerRegion.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/include/ParticlesBuilder.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/DecaysBuilder.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder52.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/G4EmHighEnergyBuilder.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder52.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder52.cc delete mode 100755 examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder70.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/G4StepLimiterBuilder.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/G4StepLimiterMessenger.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/G4StepLimiterPerRegion.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm2/src/ParticlesBuilder.cc delete mode 100755 examples/extended/electromagnetic/TestEm2/src/VisManager.cc create mode 100644 examples/extended/electromagnetic/TestEm3/geant3/g4mat/lead.dat create mode 100644 examples/extended/electromagnetic/TestEm3/geant3/linac.dat create mode 100644 examples/extended/electromagnetic/TestEm3/geant3/src/gutrak.F create mode 100644 examples/extended/electromagnetic/TestEm3/linac.mac delete mode 100755 examples/extended/electromagnetic/TestEm3/src/VisManager.cc delete mode 100755 examples/extended/electromagnetic/TestEm4/src/VisManager.cc delete mode 100644 examples/extended/electromagnetic/TestEm5/include/IonC12.hh create mode 100644 examples/extended/electromagnetic/TestEm5/include/PhysListEmPenelope.hh delete mode 100644 examples/extended/electromagnetic/TestEm5/include/VisManager.hh create mode 100644 examples/extended/electromagnetic/TestEm5/neutron.mac create mode 100644 examples/extended/electromagnetic/TestEm5/references.txt rename examples/extended/electromagnetic/{TestEm9/src/IonC12.cc => TestEm5/src/PhysListEmPenelope.cc} (51%) mode change 100755 => 100644 delete mode 100755 examples/extended/electromagnetic/TestEm5/src/VisManager.cc delete mode 100644 examples/extended/electromagnetic/TestEm6/include/VisManager.hh delete mode 100755 examples/extended/electromagnetic/TestEm6/src/VisManager.cc delete mode 100644 examples/extended/electromagnetic/TestEm7/include/VisManager.hh delete mode 100755 examples/extended/electromagnetic/TestEm7/src/VisManager.cc delete mode 100644 examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh delete mode 100755 examples/extended/electromagnetic/TestEm8/include/IonC12.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/PhysListEmModelPai.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/PhysListEmPAI.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/PhysListEmPaiPhoton.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/StepMax.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh delete mode 100755 examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/src/PhysListEmModelPai.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/src/PhysListEmPAI.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/src/PhysListEmPaiPhoton.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/src/StepMax.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc create mode 100644 examples/extended/electromagnetic/TestEm9/cms10gev.mac mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/EventAction.hh delete mode 100755 examples/extended/electromagnetic/TestEm9/include/IonC12.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/PhysListHadronElastic.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/RunAction.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/StepMax.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/include/TrackingAction.hh delete mode 100755 examples/extended/electromagnetic/TestEm9/include/VisManager.hh mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/EventAction.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/PhysListHadronElastic.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/PhysicsList.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/RunAction.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/StepMax.cc mode change 100755 => 100644 examples/extended/electromagnetic/TestEm9/src/StepMaxMessenger.cc delete mode 100755 examples/extended/electromagnetic/TestEm9/src/VisManager.cc delete mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc delete mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc delete mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh delete mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc delete mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh delete mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02VisManager.cc delete mode 100644 examples/extended/eventgenerator/exgps/include/exGPSVisManager.hh delete mode 100644 examples/extended/eventgenerator/exgps/src/exGPSVisManager.cc delete mode 100644 examples/extended/field/field01/include/F01VisManager.hh delete mode 100644 examples/extended/field/field01/src/F01VisManager.cc delete mode 100644 examples/extended/field/field02/include/F02VisManager.hh delete mode 100644 examples/extended/field/field02/src/F02VisManager.cc delete mode 100644 examples/extended/field/field03/include/F03VisManager.hh delete mode 100644 examples/extended/field/field03/src/F03VisManager.cc delete mode 100644 examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh delete mode 100644 examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc delete mode 100644 examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh delete mode 100644 examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc delete mode 100644 examples/extended/gdml/src/g4rwVisManager.cc delete mode 100644 examples/extended/geometry/olap/src/OlapVisManager.cc create mode 100644 examples/extended/medical/DICOM/Colormap.dat delete mode 100644 examples/extended/medical/DICOM/include/DicomVisManager.hh delete mode 100644 examples/extended/medical/DICOM/src/DicomVisManager.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/GammaTherapy.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/GammaTherapy.in mode change 100755 => 100644 examples/extended/medical/GammaTherapy/README mode change 100755 => 100644 examples/extended/medical/GammaTherapy/be.in mode change 100755 => 100644 examples/extended/medical/GammaTherapy/be_w.in mode change 100755 => 100644 examples/extended/medical/GammaTherapy/cu_w.in mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/CheckVolumeSD.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/DecaysBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/DetectorConstruction.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/DetectorMessenger.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/EmBinaryCascadeBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/EmGammaNucleusBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/EmHadronElasticBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/EmIonBinaryCascadeBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/EventAction.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder52.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder52.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder52.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4LowEnergyQEDBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4PenelopeQEDBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4StepLimiterBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4StepLimiterMessenger.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/G4StepLimiterPerRegion.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/Histo.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/ParticlesBuilder.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/PhantomSD.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/PhysicsList.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/PhysicsListMessenger.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/PrimaryGeneratorAction.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/PrimaryGeneratorMessenger.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/RunAction.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/TargetSD.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/include/TrackingAction.hh delete mode 100755 examples/extended/medical/GammaTherapy/include/VisManager.hh mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/CheckVolumeSD.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/DecaysBuilder.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/DetectorConstruction.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/DetectorMessenger.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/EmBinaryCascadeBuilder.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/EmHadronElasticBuilder.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/EventAction.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder52.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder52.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder52.cc delete mode 100755 examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder70.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4LowEnergyQEDBuilder.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4PenelopeQEDBuilder.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4StepLimiterBuilder.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4StepLimiterMessenger.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/G4StepLimiterPerRegion.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/Histo.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/ParticlesBuilder.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/PhantomSD.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/PhysicsList.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/PhysicsListMessenger.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/PrimaryGeneratorAction.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/PrimaryGeneratorMessenger.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/RunAction.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/TargetSD.cc mode change 100755 => 100644 examples/extended/medical/GammaTherapy/src/TrackingAction.cc delete mode 100755 examples/extended/medical/GammaTherapy/src/VisManager.cc delete mode 100755 examples/extended/optical/LXe/src/LXeVisManager.cc delete mode 100644 examples/extended/parallel/ExDiane/include/BrachyVisManager.hh delete mode 100644 examples/extended/parallel/ExDiane/src/BrachyVisManager.cc create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.hh create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.msh rename examples/{advanced/brachytherapy/include/BrachyVisManager.hh => extended/parallel/ParN02/AnnotatedFiles/G4String.hh} (64%) create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/G4String.msh create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.hh create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.msh create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.hh create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.msh create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4HCofThisEvent.h create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4String.h create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4THitsCollection.h create mode 100644 examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4VHitsCollection.h delete mode 100644 examples/extended/parallel/ParN02/include/ExN02VisManager.hh delete mode 100644 examples/extended/parallel/ParN02/src/ExN02VisManager.cc create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.hh create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.msh create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/G4String.hh create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/G4String.msh create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.hh create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.msh create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.hh create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.msh create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4HCofThisEvent.h create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4String.h create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4THitsCollection.h create mode 100644 examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4VHitsCollection.h delete mode 100644 examples/extended/parallel/ParN04/include/ExN04VisManager.hh delete mode 100755 examples/extended/parallel/ParN04/src/ExN04VisManager.cc create mode 100644 examples/extended/parallel/info/ParGeant4.txt delete mode 100644 examples/extended/persistency/PersEx01/include/Pers01VisManager.hh delete mode 100644 examples/extended/persistency/PersEx01/src/Pers01VisManager.cc delete mode 100644 examples/extended/radioactivedecay/exrdm/include/exrdmVisManager.hh create mode 100644 examples/extended/radioactivedecay/exrdm/macros/test.aida create mode 100644 examples/extended/radioactivedecay/exrdm/macros/test.mac delete mode 100644 examples/extended/radioactivedecay/exrdm/src/exrdmPhysicsListMessenger.cc~ delete mode 100644 examples/extended/radioactivedecay/exrdm/src/exrdmVisManager.cc delete mode 100644 examples/novice/N02/include/ExN02VisManager.hh delete mode 100755 examples/novice/N02/src/ExN02VisManager.cc delete mode 100644 examples/novice/N03/include/ExN03VisManager.hh delete mode 100755 examples/novice/N03/src/ExN03VisManager.cc delete mode 100644 examples/novice/N04/include/ExN04VisManager.hh delete mode 100755 examples/novice/N04/src/ExN04VisManager.cc delete mode 100644 examples/novice/N05/include/ExN05VisManager.hh delete mode 100644 examples/novice/N05/src/ExN05VisManager.cc delete mode 100644 examples/novice/N06/include/ExN06VisManager.hh delete mode 100755 examples/novice/N06/src/ExN06VisManager.cc delete mode 100644 physics_lists/hadronic/FTFC/index.html delete mode 100644 physics_lists/hadronic/FTFP/index.html delete mode 100644 physics_lists/hadronic/LBE/index.html delete mode 100644 physics_lists/hadronic/LHEP/index.html delete mode 100644 physics_lists/hadronic/LHEP_BERT/index.html delete mode 100644 physics_lists/hadronic/LHEP_BIC/index.html delete mode 100644 physics_lists/hadronic/LHEP_GN/index.html delete mode 100644 physics_lists/hadronic/LHEP_HP/index.html delete mode 100644 physics_lists/hadronic/LHEP_LEAD/index.html delete mode 100644 physics_lists/hadronic/LHEP_LEAD_HP/index.html delete mode 100644 physics_lists/hadronic/LHEP_PRECO/index.html delete mode 100644 physics_lists/hadronic/LHEP_PRECO_HP/index.html delete mode 100644 physics_lists/hadronic/QGSC/index.html delete mode 100644 physics_lists/hadronic/QGSC_LEAD/index.html delete mode 100644 physics_lists/hadronic/QGSC_LEAD_HP/index.html delete mode 100644 physics_lists/hadronic/QGSP/index.html delete mode 100644 physics_lists/hadronic/QGSP_BERT/index.html delete mode 100644 physics_lists/hadronic/QGSP_BIC/index.html delete mode 100644 physics_lists/hadronic/QGSP_GN/index.html delete mode 100644 physics_lists/hadronic/QGSP_HP/index.html delete mode 100644 source/geometry/solids/specific/include/G4FlatBoxSide.hh delete mode 100644 source/geometry/solids/specific/include/G4TwistedBoxSide.hh create mode 100644 source/geometry/solids/specific/include/G4TwistedTrapAlphaSide.hh rename source/geometry/solids/specific/include/{G4TwistedTrapSide.hh => G4TwistedTrapBoxSide.hh} (60%) create mode 100644 source/geometry/solids/specific/include/G4TwistedTrapParallelSide.hh create mode 100644 source/geometry/solids/specific/include/G4TwistedTrd.hh create mode 100644 source/geometry/solids/specific/include/G4VTwistedFaceted.hh delete mode 100644 source/geometry/solids/specific/src/G4ApproxPolySolver.cc delete mode 100644 source/geometry/solids/specific/src/G4FlatBoxSide.cc rename source/geometry/solids/specific/src/{G4TwistedBoxSide.cc => G4TwistedTrapAlphaSide.cc} (56%) rename source/geometry/solids/specific/src/{G4TwistedTrapSide.cc => G4TwistedTrapBoxSide.cc} (60%) create mode 100644 source/geometry/solids/specific/src/G4TwistedTrapParallelSide.cc create mode 100644 source/geometry/solids/specific/src/G4TwistedTrd.cc create mode 100644 source/geometry/solids/specific/src/G4VTwistedFaceted.cc create mode 100644 source/geometry/volumes/src/G4NavigationLevel.cc create mode 100644 source/geometry/volumes/src/G4NavigationLevelRep.cc create mode 100644 source/global/HEPNumerics/include/G4AnalyticalPolSolver.hh create mode 100644 source/global/HEPNumerics/include/G4JTPolynomialSolver.hh create mode 100644 source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc create mode 100644 source/global/HEPNumerics/src/G4JTPolynomialSolver.cc rename examples/advanced/radioprotection/src/RemSimRunMessenger.cc => source/global/management/include/G4DataVector.icc (55%) rename examples/extended/geometry/olap/include/OlapVisManager.hh => source/global/management/include/G4StateManager.icc (66%) rename source/{visualization/OpenInventor/include/G4OpenInventorSceneHandler.icc => global/management/include/G4Timer.icc} (74%) rename examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh => source/global/management/include/G4UnitsTable.icc (51%) rename examples/extended/analysis/A01/include/A01VisManager.hh => source/global/management/src/G4coutDestination.cc (79%) create mode 100644 source/graphics_reps/include/G4AttCheck.hh mode change 100755 => 100644 source/graphics_reps/src/BooleanProcessor.src create mode 100644 source/graphics_reps/src/G4AttCheck.cc create mode 100644 source/materials/include/G4NistElementBuilder.hh create mode 100644 source/materials/include/G4NistManager.hh create mode 100644 source/materials/include/G4NistMaterialBuilder.hh rename examples/extended/electromagnetic/TestEm1/include/G4eBremsstrahlungCMS.hh => source/materials/include/G4NistMessenger.hh (51%) create mode 100644 source/materials/src/G4NistElementBuilder.cc create mode 100644 source/materials/src/G4NistManager.cc create mode 100644 source/materials/src/G4NistMaterialBuilder.cc create mode 100644 source/materials/src/G4NistMessenger.cc create mode 100644 source/parameterisations/gflash/README rename source/{event => particles/management}/include/G4PrimaryParticle.hh (91%) rename source/{event => particles/management}/include/G4PrimaryVertex.hh (97%) rename source/{event => particles/management}/include/G4VUserPrimaryParticleInformation.hh (90%) rename source/{event => particles/management}/include/G4VUserPrimaryVertexInformation.hh (90%) rename source/{event => particles/management}/src/G4PrimaryParticle.cc (75%) rename source/{event => particles/management}/src/G4PrimaryVertex.cc (96%) rename examples/extended/optical/LXe/include/LXeVisManager.hh => source/particles/management/src/G4VUserPrimaryParticleInformation.cc (81%) rename examples/novice/N07/include/ExN07VisManager.hh => source/particles/management/src/G4VUserPrimaryVertexInformation.cc (80%) create mode 100644 source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh create mode 100644 source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh create mode 100644 source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh create mode 100644 source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc create mode 100644 source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedRayleigh.hh create mode 100644 source/processes/electromagnetic/lowenergy/include/G4VLowEnergyDiscretePhotonProcess.hh create mode 100644 source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedRayleigh.cc create mode 100644 source/processes/electromagnetic/lowenergy/src/G4VLowEnergyDiscretePhotonProcess.cc create mode 100644 source/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh create mode 100644 source/processes/electromagnetic/muons/src/G4EnergyLossForExtrapolator.cc create mode 100644 source/processes/electromagnetic/standard/include/G4BetheHeitlerModel.hh create mode 100644 source/processes/electromagnetic/standard/include/G4ComptonScattering52.hh create mode 100644 source/processes/electromagnetic/standard/include/G4GammaConversion52.hh create mode 100644 source/processes/electromagnetic/standard/include/G4KleinNishinaCompton.hh delete mode 100644 source/processes/electromagnetic/standard/include/G4PAIwithPhotons.hh create mode 100644 source/processes/electromagnetic/standard/include/G4PEEffectModel.hh create mode 100644 source/processes/electromagnetic/standard/include/G4PhotoElectricEffect52.hh create mode 100644 source/processes/electromagnetic/standard/include/G4eplusAnnihilation52.hh delete mode 100644 source/processes/electromagnetic/standard/include/G4eplusAnnihilation70.hh create mode 100644 source/processes/electromagnetic/standard/src/G4BetheHeitlerModel.cc create mode 100644 source/processes/electromagnetic/standard/src/G4ComptonScattering52.cc create mode 100644 source/processes/electromagnetic/standard/src/G4GammaConversion52.cc create mode 100644 source/processes/electromagnetic/standard/src/G4KleinNishinaCompton.cc delete mode 100644 source/processes/electromagnetic/standard/src/G4PAIwithPhotons.cc create mode 100644 source/processes/electromagnetic/standard/src/G4PEEffectModel.cc create mode 100644 source/processes/electromagnetic/standard/src/G4PhotoElectricEffect52.cc create mode 100644 source/processes/electromagnetic/standard/src/G4eplusAnnihilation52.cc delete mode 100644 source/processes/electromagnetic/standard/src/G4eplusAnnihilation70.cc create mode 100644 source/processes/electromagnetic/utils/include/G4EmCorrections.hh create mode 100644 source/processes/electromagnetic/utils/src/G4EmCorrections.cc create mode 100644 source/processes/electromagnetic/xrays/include/G4StrawTubeXTRadiator.hh rename examples/advanced/composite_calorimeter/include/CCalVisManager.hh => source/processes/electromagnetic/xrays/include/G4TransparentRegXTRadiator.hh (56%) create mode 100644 source/processes/electromagnetic/xrays/src/G4StrawTubeXTRadiator.cc create mode 100644 source/processes/electromagnetic/xrays/src/G4TransparentRegXTRadiator.cc mode change 100755 => 100644 source/processes/hadronic/models/binary_cascade/src/G4BinaryCascade.cc rename source/processes/hadronic/models/{management/include/G4VAnnihilator.hh => cascade/cascade/include/G4CascadeChannel.hh} (77%) rename examples/advanced/xray_fluorescence/include/XrayFluoVisManager.hh => source/processes/hadronic/models/cascade/cascade/include/G4CascadeElasticInterface.hh (55%) create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeKminusNChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeKminusPChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeKplusNChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeKplusPChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeKzeroBarNChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeKzeroBarPChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeKzeroNChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeKzeroPChannel.hh rename examples/advanced/Rich/include/RichTbVisManager.hh => source/processes/hadronic/models/cascade/cascade/include/G4CascadeLambdaNChannel.hh (65%) rename examples/advanced/medical_linac/include/MedLinacVisManager.hh => source/processes/hadronic/models/cascade/cascade/include/G4CascadeLambdaPChannel.hh (65%) create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeSigmaMinusNChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeSigmaMinusPChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeSigmaPlusNChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeSigmaPlusPChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeSigmaZeroNChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeSigmaZeroPChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeXiMinusNChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeXiMinusPChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeXiZeroNChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeXiZeroPChannel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeElasticInterface.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeKminusNChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeKminusPChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeKplusNChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeKplusPChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeKzeroBarNChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeKzeroBarPChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeKzeroNChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeKzeroPChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeLambdaNChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeLambdaPChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeSigmaMinusNChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeSigmaMinusPChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeSigmaPlusNChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeSigmaPlusPChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeSigmaZeroNChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeSigmaZeroPChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeXiMinusNChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeXiMinusPChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeXiZeroNChannel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeXiZeroPChannel.cc mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCollision.hh mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QElectronNuclearCrossSection.hh create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QMuonNuclearCrossSection.hh mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh rename examples/advanced/cosmicray_charging/include/LISAVisManager.hh => source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGToG4Particle.hh (56%) mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh rename examples/advanced/xray_telescope/include/XrayTelVisManager.hh => source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPhotonNuclearCrossSection.hh (51%) create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QProtonNuclearCrossSection.hh create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QTauNuclearCrossSection.hh create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonString.hh create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4VQCrossSection.hh mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCHIPSWorld.cc mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QChipolino.cc create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCollision.cc mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QDecayChan.cc create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QElectronNuclearCrossSection.cc create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QMuonNuclearCrossSection.cc mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QNucleus.cc mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGCode.cc create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGToG4Particle.cc mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParentCluster.cc mode change 100755 => 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParticle.cc create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPhotonNuclearCrossSection.cc create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QProtonNuclearCrossSection.cc create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QTauNuclearCrossSection.cc create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QuasmonString.cc create mode 100644 source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4VQCrossSection.cc delete mode 100644 source/processes/hadronic/models/im_r_matrix/elastic.logbook delete mode 100644 source/processes/hadronic/models/management/include/G4VElasticScatterer.hh delete mode 100644 source/processes/hadronic/models/management/include/G4VInElasticScatterer.hh delete mode 100644 source/processes/hadronic/models/management/src/G4VAnnihilator.cc delete mode 100644 source/processes/hadronic/models/management/src/G4VElasticScatterer.cc delete mode 100644 source/processes/hadronic/models/management/src/G4VInElasticScatterer.cc delete mode 100644 source/processes/hadronic/models/parton_string/qgsm/include/G4HeavyIonParticipants.hh delete mode 100644 source/processes/hadronic/models/parton_string/qgsm/include/G4InelasticSplitableHadron.hh delete mode 100644 source/processes/hadronic/models/parton_string/qgsm/src/G4HeavyIonParticipants.cc delete mode 100644 source/processes/hadronic/models/parton_string/qgsm/src/G4InelasticSplitableHadron.cc create mode 100644 source/track/include/G4ParticleChangeForGamma.hh create mode 100644 source/track/src/G4ParticleChangeForGamma.cc delete mode 100644 source/visualization/HepRep/copyfreehep delete mode 100644 source/visualization/HepRep/copyfreehep.bat create mode 100755 source/visualization/HepRep/include/HEPREP/Types.h create mode 100755 source/visualization/HepRep/include/HEPREP/freehep-heprep.version create mode 100755 source/visualization/HepRep/include/cheprep/AbstractXMLWriter.h create mode 100755 source/visualization/HepRep/include/cheprep/BHepRepWriter.h rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRep.h (87%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepAction.h (58%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepAttDef.h (64%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepAttValue.h (63%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepAttribute.h (77%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepDefinition.h (72%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepFactory.h (85%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepInstance.h (83%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepInstanceTree.h (78%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepPoint.h (82%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepTreeID.h (63%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepType.h (80%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/DefaultHepRepTypeTree.h (69%) mode change 100644 => 100755 create mode 100755 source/visualization/HepRep/include/cheprep/DeflateOutputStreamBuffer.h create mode 100755 source/visualization/HepRep/include/cheprep/GZIPOutputStream.h create mode 100755 source/visualization/HepRep/include/cheprep/GZIPOutputStreamBuffer.h rename source/visualization/HepRep/include/{ref => cheprep}/IndentPrintWriter.h (79%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/XMLHepRepFactory.h (74%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/XMLHepRepWriter.h (70%) mode change 100644 => 100755 rename source/visualization/HepRep/include/{ref => cheprep}/XMLWriter.h (53%) mode change 100644 => 100755 create mode 100755 source/visualization/HepRep/include/cheprep/ZipEntry.h create mode 100755 source/visualization/HepRep/include/cheprep/ZipOutputStream.h create mode 100755 source/visualization/HepRep/include/cheprep/ZipOutputStreamBuffer.h create mode 100755 source/visualization/HepRep/include/cheprep/config.h create mode 100755 source/visualization/HepRep/include/cheprep/freehep-cheprep.version delete mode 100644 source/visualization/HepRep/include/ref/FreeHepTypes.h delete mode 100644 source/visualization/HepRep/include/zipios++/ZIPIOS-AUTHORS delete mode 100644 source/visualization/HepRep/include/zipios++/ZIPIOS-COPYING delete mode 100644 source/visualization/HepRep/include/zipios++/backbuffer.h delete mode 100644 source/visualization/HepRep/include/zipios++/basicentry.h delete mode 100644 source/visualization/HepRep/include/zipios++/collcoll.h delete mode 100644 source/visualization/HepRep/include/zipios++/deflateoutputstreambuf.h delete mode 100644 source/visualization/HepRep/include/zipios++/dircoll.h delete mode 100644 source/visualization/HepRep/include/zipios++/fcoll.h delete mode 100644 source/visualization/HepRep/include/zipios++/fcollexceptions.h delete mode 100644 source/visualization/HepRep/include/zipios++/fileentry.h delete mode 100644 source/visualization/HepRep/include/zipios++/filepath.h delete mode 100644 source/visualization/HepRep/include/zipios++/filterinputstreambuf.h delete mode 100644 source/visualization/HepRep/include/zipios++/filteroutputstreambuf.h delete mode 100644 source/visualization/HepRep/include/zipios++/gzipoutputstream.h delete mode 100644 source/visualization/HepRep/include/zipios++/gzipoutputstreambuf.h delete mode 100644 source/visualization/HepRep/include/zipios++/inflateinputstreambuf.h delete mode 100644 source/visualization/HepRep/include/zipios++/meta-iostreams.h delete mode 100644 source/visualization/HepRep/include/zipios++/outputstringstream.h delete mode 100644 source/visualization/HepRep/include/zipios++/simplesmartptr.h delete mode 100644 source/visualization/HepRep/include/zipios++/virtualseeker.h delete mode 100644 source/visualization/HepRep/include/zipios++/zipfile.h delete mode 100644 source/visualization/HepRep/include/zipios++/ziphead.h delete mode 100644 source/visualization/HepRep/include/zipios++/zipheadio.h delete mode 100644 source/visualization/HepRep/include/zipios++/zipinputstream.h delete mode 100644 source/visualization/HepRep/include/zipios++/zipinputstreambuf.h delete mode 100644 source/visualization/HepRep/include/zipios++/zipios-config.h delete mode 100644 source/visualization/HepRep/include/zipios++/zipios_common.h delete mode 100644 source/visualization/HepRep/include/zipios++/zipios_defs.h delete mode 100644 source/visualization/HepRep/include/zipios++/zipoutputstream.h delete mode 100644 source/visualization/HepRep/include/zipios++/zipoutputstreambuf.h delete mode 100644 source/visualization/HepRep/include/zlib/inffast.h delete mode 100644 source/visualization/HepRep/include/zlib/inffixed.h delete mode 100644 source/visualization/HepRep/include/zlib/inflate.h delete mode 100644 source/visualization/HepRep/include/zlib/inftrees.h create mode 100755 source/visualization/HepRep/src/BHepRepWriter.cc create mode 100755 source/visualization/HepRep/src/DeflateOutputStreamBuffer.cc create mode 100755 source/visualization/HepRep/src/GZIPOutputStreamBuffer.cc create mode 100755 source/visualization/HepRep/src/ZipOutputStreamBuffer.cc delete mode 100644 source/visualization/HepRep/src/basicentry.cc delete mode 100644 source/visualization/HepRep/src/collcoll.cc delete mode 100644 source/visualization/HepRep/src/deflateoutputstreambuf.cc delete mode 100644 source/visualization/HepRep/src/fcoll.cc delete mode 100644 source/visualization/HepRep/src/fcollexceptions.cc delete mode 100644 source/visualization/HepRep/src/fileentry.cc delete mode 100644 source/visualization/HepRep/src/filepath.cc delete mode 100644 source/visualization/HepRep/src/filterinputstreambuf.cc delete mode 100644 source/visualization/HepRep/src/filteroutputstreambuf.cc delete mode 100644 source/visualization/HepRep/src/gzio.cc mode change 100644 => 100755 source/visualization/HepRep/src/gzipoutputstream.cc delete mode 100644 source/visualization/HepRep/src/gzipoutputstreambuf.cc delete mode 100644 source/visualization/HepRep/src/infback.cc delete mode 100644 source/visualization/HepRep/src/inffast.cc delete mode 100644 source/visualization/HepRep/src/inflate.cc delete mode 100644 source/visualization/HepRep/src/inflateinputstreambuf.cc delete mode 100644 source/visualization/HepRep/src/inftrees.cc delete mode 100644 source/visualization/HepRep/src/uncompr.cc delete mode 100644 source/visualization/HepRep/src/zipfile.cc delete mode 100644 source/visualization/HepRep/src/ziphead.cc delete mode 100644 source/visualization/HepRep/src/zipheadio.cc delete mode 100644 source/visualization/HepRep/src/zipinputstream.cc delete mode 100644 source/visualization/HepRep/src/zipinputstreambuf.cc mode change 100644 => 100755 source/visualization/HepRep/src/zipoutputstream.cc delete mode 100644 source/visualization/HepRep/src/zipoutputstreambuf.cc rename examples/advanced/radioprotection/include/RemSimRunMessenger.hh => source/visualization/OpenGL/include/G4OpenGLFontBaseStore.hh (61%) create mode 100644 source/visualization/OpenGL/src/G4OpenGLFontBaseStore.cc mode change 100755 => 100644 source/visualization/OpenInventor/src/SbPainter.cc mode change 100755 => 100644 source/visualization/OpenInventor/src/SbPainterPS.cc mode change 100755 => 100644 source/visualization/OpenInventor/src/SoImageWriter.cc mode change 100755 => 100644 source/visualization/OpenInventor/src/SoMarkerSet.cc mode change 100755 => 100644 source/visualization/OpenInventor/src/SoPolyhedron.cc create mode 100644 source/visualization/externals/zlib/GNUmakefile create mode 100755 source/visualization/externals/zlib/History rename source/visualization/{HepRep/include/zlib/ZLIB-README => externals/zlib/README} (90%) rename source/visualization/{HepRep/include/zlib => externals/zlib/include}/crc32.h (100%) rename source/visualization/{HepRep/include/zlib => externals/zlib/include}/deflate.h (99%) rename source/visualization/{HepRep/include/zlib => externals/zlib/include}/trees.h (100%) rename source/visualization/{HepRep/include/zlib/HepRep-zconf.h => externals/zlib/include/zconf.h} (76%) rename source/visualization/{HepRep/include/zlib/HepRep-zlib.h => externals/zlib/include/zlib.h} (99%) rename source/visualization/{HepRep/include/zlib/HepRep-zutil.h => externals/zlib/include/zutil.h} (97%) rename source/visualization/{HepRep => externals/zlib}/src/adler32.cc (96%) rename source/visualization/{HepRep => externals/zlib}/src/compress.cc (96%) rename source/visualization/{HepRep => externals/zlib}/src/crc32.cc (98%) rename source/visualization/{HepRep => externals/zlib}/src/deflate.cc (99%) rename source/visualization/{HepRep => externals/zlib}/src/trees.cc (99%) rename source/visualization/{HepRep => externals/zlib}/src/zutil.cc (98%) create mode 100644 source/visualization/management/History create mode 100644 source/visualization/management/include/G4VUserVisAction.hh create mode 100644 source/visualization/management/include/G4VisExecutive.hh rename examples/novice/N07/src/ExN07VisManager.cc => source/visualization/management/include/G4VisExecutive.icc (93%) mode change 100755 => 100644 create mode 100644 source/visualization/modeling/include/G4CallbackModel.hh diff --git a/Configure b/Configure index a147cc8661..1404cfd4ad 100755 --- a/Configure +++ b/Configure @@ -18,9 +18,9 @@ # you may fetch it yourself from your nearest archive site.) # -# $Id: Configure,v 1.68 2004/12/17 15:36:11 stesting Exp $ +# $Id: Configure,v 1.72 2005/06/20 17:34:18 stesting Exp $ # -# Generated on Fri Dec 17 16:33:20 CET 2004 [metaconfig 3.0 PL70] +# Generated on Mon Jun 20 19:30:06 CEST 2005 [metaconfig 3.0 PL70] cat >/tmp/c1$$ </dev/null |xargs echo` #echo clhep_dirs=$clhep_dirs fi @@ -2956,17 +3001,17 @@ gans=$ans esac done -if test "X$g4clhep_base_dir" = "X/usr" -o "X$g4clhep_base_dir" = "X/usr/local"; then -g4clhep_base_dir="" -fi - -if test "X$g4clhep_include_dir" = "X/usr/include" -o "X$g4clhep_include_dir" = "X/usr/local/include"; then -g4clhep_include_dir="" -fi - -if test "X$g4clhep_lib_dir" = "X/usr/lib" -o "X$g4clhep_lib_dir" = "X/usr/local/lib"; then -g4clhep_lib_dir="" -fi +#if test "X$g4clhep_base_dir" = "X/usr" -o "X$g4clhep_base_dir" = "X/usr/local"; then +#g4clhep_base_dir="" +#fi +# +#if test "X$g4clhep_include_dir" = "X/usr/include" -o "X$g4clhep_include_dir" = "X/usr/local/include"; then +#g4clhep_include_dir="" +#fi +# +#if test "X$g4clhep_lib_dir" = "X/usr/lib" -o "X$g4clhep_lib_dir" = "X/usr/local/lib"; then +#g4clhep_lib_dir="" +#fi echo " " @@ -4133,7 +4178,7 @@ g4message=`cat << EOM G4VIS_USE_OIX The OpenInventor driver is based on OpenInventor technology -for scientific visualizarion. +for scientific visualization. The X11 version of OpenInventor is required. EOM` @@ -4461,9 +4506,12 @@ g4message=`cat << EOM G4LIB_BUILD_G3TOG4 -If this variable is set, it will be built G3TOG4 module. -Do you want to set this variable ? - +The utility module 'g3tog4' will be built by setting this +variable. NOTE: it requires a valid FORTRAN compiler to be +installed on your system and the 'cernlib' command in the +path, in order to build the ancillary tools! +Do you want to build 'g3tog4' ? + EOM` dflt=$g4wlib_build_g3tog4 @@ -4484,6 +4532,48 @@ gans=$ans esac +echo " " +case "$g4wlib_build_zlib" in +'') + g4wlib_build_zlib=n + ;; +esac + +case "$g4w_use_zlib" in +'') + g4w_use_zlib=n + ;; +esac + +echo "" + +g4message=`cat << EOM + + G4LIB_BUILD_ZLIB + +Do you wish to activate compression for output files generated +through the HepRep visualization driver ? + +EOM` + +dflt=$g4wlib_build_zlib +rp=$g4message +. ./myread +gans=$ans + + case $gans in + + n*|N*) + g4wlib_build_zlib=n + g4w_use_zlib=n + ;; + y*|Y*) + g4wlib_build_zlib=y + g4w_use_zlib=y + ;; + esac + + echo " " case "$g4wanalysis_use" in @@ -4658,6 +4748,7 @@ g4vis_use_raytracer='$g4vis_use_raytracer' g4vis_use_vrml='$g4vis_use_vrml' g4vis_use_vrmlfile='$g4vis_use_vrmlfile' g4w_use_g3tog4='$g4w_use_g3tog4' +g4w_use_zlib='$g4w_use_zlib' g4wanalysis_build='$g4wanalysis_build' g4wanalysis_build_jas='$g4wanalysis_build_jas' g4wanalysis_build_lab='$g4wanalysis_build_lab' @@ -4667,6 +4758,7 @@ g4wanalysis_use_jas='$g4wanalysis_use_jas' g4wanalysis_use_lab='$g4wanalysis_use_lab' g4wanalysis_use_lizard='$g4wanalysis_use_lizard' g4wlib_build_g3tog4='$g4wlib_build_g3tog4' +g4wlib_build_zlib='$g4wlib_build_zlib' g4workdir='$g4workdir' hint='$hint' lns='$lns' diff --git a/ReleaseNotes/Patch4.7.0-1.txt b/ReleaseNotes/Patch4.7.0-1.txt new file mode 100644 index 0000000000..b96db6e8bb --- /dev/null +++ b/ReleaseNotes/Patch4.7.0-1.txt @@ -0,0 +1,129 @@ + + Geant4 7.0 - patch-01 Release Notes + ----------------------------------- + + 23 February 2005 + +List of fixes included in this public patch since the public release 7.0: + + o Configuration: + ------------- + + Fix in Configure script for unnecessary check on setting of + CLHEP_BASE_DIR to /usr, /usr/local on Linux platforms. + + o Event: + ----- + + Fixed bug on binning in G4SPSRandomGenerator. + + Fixed reset of histogram energy limits in G4SPSEneDistribution. + + Restored the inheritance to G4VPrimaryGenerator for the + G4GeneralParticleSource class. + + o Geometry: + -------- + + solids/specific: + o Use new polynom approximations based on new solver based on + Jenkins-Traub algorithm, for twisted-box and twisted-trap. + o Fixed bug in the usage of 'fmod' and adopt special treatment for + 'parallel' events in G4TwistedBoxSide and G4TwistedTrapSide. + + o Global: + ------ + + Added polynom-solver class G4JTPolynomialSolver implementing the + Jenkins-Traub algorithm for real polynomial root finding. To be used + by the twisted-trap shape for precise computation of intersections. + + o Interfaces: + ---------- + + Minor fix in GNUmakefiles to remove unnecessary definition of G4TMPDIR. + + o Parameterisations: + ----------------- + + Fix in GFlashHitMaker for treatment of detector sensitivity in the + 'gflash' module. + + o Particles: + --------- + + Fix in G4UnknownParticle to make it non-static, in order to avoid + unnecessary linking without its definition in the physics list. + + o Electromagnetic processes: + ------------------------- + + standard: + o Fix in UniversalFluctuation: setting proper constants for probLim + and minimum energy-loss, to improve simulation of energy loss in + thin absorbers. + o Fix in MultipleScattering for function SetSamplez(). + o Add extra protection to G4PAIModel to fix cases of NaN observed + in production for ALICE. + + utils: + o Bug fix to avoid crash in the inactivation of e- ionisation. + o Added protection on the value of effective charge to ensure energy + loss for low energy ions. + o Fixing initialisation problem for ion beam observed in CMS. + + o Hadronic Processes: + ------------------ + + models/chiral_inv_phase_space/body: + o Fixed problem of inconsistency between masses of hadrons and nuclear + fragments and masses defined in Geant4. Conversion of the CHIPS hadrons + to Geant4 secondaries uses now a kinetic energy of the particle, so + Geant4 automatically puts particles on the mass shell. + o Complete usage of the existing nuclear mass approximation of Geant4 + [including M(Z,N)_G4>m_p*Z+m_n*N]. + o Improvement in G4QEnvironmemt in the usage of FinalStateInteraction + A few cases of the secondary particles below mass shell have been + corrected. + + o Management of processes: + ----------------------- + + Fix in G4ProcessManager to correct ordering of processes. + + o Run: + --- + + Fix in G4RunManager and G4RunManagerKernel to correctly reset static + pointers in the case when RunManager is deleted. + + Updated date to run-manager. + + o Visualization: + ------------- + + HepRep: minor fix for compilation problem on the obsolete gcc-2.95.2. + + o Physics lists: + ------------- + + hadronic: + o Fixed compilation problems on gcc-3.4.X compiler series: + Added explicit 'typename' keywords to template class declarations. + Use 'this' pointer to access data-members of base class for + unqualified names in physics-lists inline definitions. + + o Examples: + -------- + + Updated reference outputs. + + electromagnetic/TestEm1 + o HistoManager: added protection for the creation of the analysis + factory. File extension is fileType. + o HistoMessenger: new command 'setFileOption'. + + electromagnetic/TestEm3 + o Fix in SteppingAction to correct the energy flow. + o Added new macros linac.mac and geant3/linac.dat. + + novice/N02 + o PhysicsList: added usage of G4StepLimiter (as commented line). + + novice/N03 + o Fix in SteppingAction: sum stepLength of charged particle even + if edep=0. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 7.0. + o Technical notes distributed for release 7.0 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 7.0 are available through +our "Source Code" Web page: http://cern.ch/geant4 + +Please refer to the Geant4 User Documentation: + http://cern.ch/geant4/G4UsersDocuments/Overview/html +for further information about using Geant4. diff --git a/ReleaseNotes/ReleaseNotes4.7.1.html b/ReleaseNotes/ReleaseNotes4.7.1.html new file mode 100644 index 0000000000..75acae3586 --- /dev/null +++ b/ReleaseNotes/ReleaseNotes4.7.1.html @@ -0,0 +1,967 @@ + + +Geant4 7.1 Release Notes + + + +

+
+

+ +

+ +Geant4 7.1 Release Notes + + + + +
+ +June 30th, 2005 + +
+ +

+


+

+The code and binary libraries for the supported systems are available +through our Source Code Web page. +

+

+Please refer to the +Geant4 +User Documentation for further information about using Geant4. +

+ +

Contents

+
    +
  1. Supported and Tested Platforms
  2. +
  3. AIDA and CLHEP
  4. +
  5. Known Run-Time Problems
  6. +
  7. Compilation Warnings
  8. +
  9. Known Run-Time Warnings
  10. +
  11. Items for migration of the user code
  12. +
  13. Detailed list of changes and fixes
  14. +
+ +

+ +
+ + + +

1. Supported and Tested Platforms

+ +Official platforms: + + +More verified configurations: + + +Platforms configured but not tested and not supported: + + +

+ +
+ + + +

2. AIDA and CLHEP

+ +Geant4 7.1 requires the installation of +CLHEP.
+Tests have been performed with CLHEP-1.9.2.1
+The software has been verified to be still compatible with CLHEP-1.8.1.0.
+

+Geant4 7.1 examples with histogramming cowork with AIDA 3.2.1 +implementations. These include: + + +AIDA headers can be downloaded from: +http://aida.freehep.org + + +

+ +
+ + + +

3. Known Run-Time Problems and Limitations

+ +For a complete list of outstanding run-time problems and to submit any +problem you may find running this version of Geant4, please refer to the +Geant4 Problem Reporting +System. + + +

+ +
+ + + +

4. Compilation Warnings

+ +There may be compilation warnings on some platforms. We do not believe +that any will lead to incorrect run-time behaviour. + + +

+ +
+ + + +

5. Known Run-Time Warnings

+ +The following message can be written to error output while tracking. +We believe it does not give rise to incorrect behaviour. +
+    G4PropagateInField: Warning: Particle is looping 
+    -  tracking in field will be stopped. 
+       It has performed 1000 steps in Field while a maximum of 1000
+       are allowed. 
+
+ + +

+ +
+ + + +

6. Items for migration of the user code

+ +Some minor migrations may be necessary for advanced uses of features in Geant4 in +order to upgrade from release 7.0 to release 7.1, a full recompilation and/or +reinstallation of libraries and user applications is anyhow required. + +

+New Installation flags +

+Some installation flags have been introduced or slightly modified: + + +

+New Data libraries +

+New data libraries for "low-energy" processes (G4LOWEN-3.0) and "elastic scattering" +at high-energy (G4ELASTIC-1.1) should be used in this release. + +

+User defined solids +

+User codes which include implementations of customised solids are required to slightly +modify their implementation of the helper method for visualization +DescribeYourselfTo() to replace the call to AddThis() with +AddSolid(). + +

+ +
+ + + +

7. Detailed list of changes and fixes

+ +These are the main new features/fixes included in this release since the +last patched public release (for the detailed list of fixes/additions, +please refer to the related History files provided in most packages): + +

+ + +

Configuration

+ + + +

Digitization & Hits

+ + + +

Electromagnetic Processes (Low-energy)

+ + + +

Electromagnetic Processes (Standard)

+ + + +

Event

+ + + +

General Processes: Decay, Transportation

+ + + +

Geometry

+ + + +

Global

+ + + + + +

Graphical Representations

+ + + +

Materials

+ + + +

Hadronic Processes

+ + + +

Parameterisations

+ + + +

Particles

+ + + +

Run, Itercoms and Interfaces

+ + + +

Track and Tracking

+ + + +

Visualization

+ + + +

Physics lists

+ + + +

G3toG4 Tool

+ + + +

Data

+ + + +

Examples

+ + +
+ + + diff --git a/config/G4VIS_BUILD.gmk b/config/G4VIS_BUILD.gmk index ccb856178d..1d93e6e9eb 100644 --- a/config/G4VIS_BUILD.gmk +++ b/config/G4VIS_BUILD.gmk @@ -1,4 +1,4 @@ -# $Id: G4VIS_BUILD.gmk,v 1.16 2003/11/13 09:54:41 gcosmo Exp $ +# $Id: G4VIS_BUILD.gmk,v 1.17 2005/05/10 08:46:32 allison Exp $ # ------------------------------------------------------------- # Visualization-specific CPPFLAGS for BUILD phase. # John Allison, 24th January 1998. @@ -22,6 +22,13 @@ ifdef G4VIS_BUILD_DAWN_DRIVER CPPFLAGS += -DG4VIS_BUILD_DAWN_DRIVER endif +ifdef G4VIS_BUILD_OPENGLXM_DRIVER + # OPENGLXM requires OPENGLX... + G4VIS_BUILD_OPENGLX_DRIVER = 1 + G4INTY_BUILD_XT = 1 + INC_XM = 1 + CPPFLAGS += -DG4VIS_BUILD_OPENGLXM_DRIVER +endif ifdef G4VIS_BUILD_OPENGLX_DRIVER G4VIS_BUILD_OPENGL_DRIVER = 1 INC_X11 = 1 @@ -32,12 +39,6 @@ ifdef G4VIS_BUILD_OPENGLWIN32_DRIVER G4INTY_BUILD_WIN32 = 1 CPPFLAGS += -DG4VIS_BUILD_OPENGLWIN32_DRIVER endif -ifdef G4VIS_BUILD_OPENGLXM_DRIVER - G4VIS_BUILD_OPENGL_DRIVER = 1 - G4INTY_BUILD_XT = 1 - INC_XM = 1 - CPPFLAGS += -DG4VIS_BUILD_OPENGLXM_DRIVER -endif ifdef G4VIS_BUILD_OPENGL_DRIVER INC_GL = 1 CPPFLAGS += -DG4VIS_BUILD_OPENGL_DRIVER diff --git a/config/History b/config/History index 12e1029d4d..87c4e6ebb7 100644 --- a/config/History +++ b/config/History @@ -1,4 +1,4 @@ -$Id: History,v 1.260 2004/12/08 12:46:06 gcosmo Exp $ +$Id: History,v 1.267 2005/06/17 06:59:37 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,42 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +16th June 2005 Sergey Sadilov (config-V07-00-05) +- Updated Configure script and support files: + o Added new data sets for low-energy-EM and elastic data. + o Set unique entry point for path to data. + o Updated variable settings for g3tog4 and zlib. + +15th June 2005 Gunter Folger (config-V07-00-04) +- Changed clean(_..) targets to be :: rules, to allow multiple clean targets. + +10th June 2005 Gabriele Cosmo (config-V07-00-03) +- Updated configuration script SUN-CC.gmk: + o Removed obsolete compilation option -ptr$(G4TREP) for redirection to + template repository, no longer necessary. + o Added -lsunmath to LOADLIBS now required with CLHEP-1.9.X for static + libraries. + +17th May 2005 Gabriele Cosmo (config-V07-00-02) +- Corrected settings of G4LIB_BUILD/USE_ZLIB: + o G4LIB_BUILD_ZLIB is mandatory for Windows, if zlib is required; + o if G4LIB_BUILD_ZLIB is set, the G4-zlib module is used (all platforms); + o if only G4LIB_USE_ZLIB is set, the system zlib is used (UNIX only); + o if none is set, zlib is not used (all platforms). +- Updated compilation options on Darwin-g++, now similar to Linux-g++ setup. +- Still requiring tag "source-gmk-V07-00-01" for source/GNUmakefile to build + the g3tog4 module. + +13th May 2005 Gabriele Cosmo (config-V07-00-01) +- Added G4LIB_BUILD_ZLIB/G4LIB_USE_ZLIB. Modified architecture.gmk + and binmake.gmk scripts. +- Changed G4USE_G4TOG4 to G4LIB_USE_G3TOG4 to conform to standard flag names. + Requires tag "source-gmk-V07-00-01" for source/GNUmakefile to build the + g3tog4 module. + +10th May 2005 John Allison (config-V07-00-00) +- Made OPENGLXM require OPENGLX. + 8th December 2004 John Allison (config-V06-02-03) - Darwin-g++.gmk: fixes on setup for dynamic libraries. diff --git a/config/architecture.gmk b/config/architecture.gmk index a0e7784959..b99755a15b 100644 --- a/config/architecture.gmk +++ b/config/architecture.gmk @@ -1,4 +1,4 @@ -# $Id: architecture.gmk,v 1.100 2004/10/29 17:27:45 gcosmo Exp $ +# $Id: architecture.gmk,v 1.103 2005/05/17 08:08:13 gcosmo Exp $ # ------------------------------------------------------------------------ # GEANT 4 - Architecture configuration script for GNU Make # @@ -100,7 +100,14 @@ endif # ifneq ($(G4LIB_BUILD_G3TOG4),) G4LIB_BUILD_G3TOG4 = 1 - G4USE_G3TOG4 = 1 + G4LIB_USE_G3TOG4 = 1 +endif + +# Specify if to build the ZLIB module or not. Default is NO. +# +ifneq ($(G4LIB_BUILD_ZLIB),) + G4LIB_BUILD_ZLIB = 1 + G4LIB_USE_ZLIB = 1 endif # If not specified, the default path for G4 binaries G4BIN is @@ -137,9 +144,13 @@ ifndef CLHEP_LIB_DIR endif ifndef CLHEP_LIB ifneq (,$(findstring WIN32-VC,$(G4SYSTEM))) - CLHEP_LIB := CLHEP.lib + CLHEP_LIB := CLHEP.lib else - CLHEP_LIB := CLHEP + CLHEP_LIB := CLHEP +# +# If using the "granular" libraries of CLHEP, uncomment below +# +# CLHEP_LIB := CLHEP-HepMC -l CLHEP-Geometry -l CLHEP-Random -l CLHEP-Vector endif endif @@ -202,6 +213,11 @@ else LDFLAGS += -L$(CLHEP_LIB_DIR) LOADLIBS := -l$(CLHEP_LIB) LOADLIBS += -lm + ifdef G4LIB_USE_ZLIB + ifndef G4LIB_BUILD_ZLIB + LOADLIBS += -lz + endif + endif endif # Graphic variables... diff --git a/config/binmake.gmk b/config/binmake.gmk index e21f600c68..c5d5fadb9b 100644 --- a/config/binmake.gmk +++ b/config/binmake.gmk @@ -1,4 +1,4 @@ -# $Id: binmake.gmk,v 1.104 2004/11/30 08:33:42 gcosmo Exp $ +# $Id: binmake.gmk,v 1.107 2005/06/15 13:59:59 gunter Exp $ # ---------------------------------------------------------- # Script defining rules and paths for making binaries. # First implementation: Gabriele Cosmo, 25/06/1998. @@ -138,7 +138,7 @@ ifndef INCFLAGS -I$(G4BASE)/event/include \ -I$(G4BASE)/graphics_reps/include \ -I$(G4BASE)/intercoms/include - ifdef G4USE_G3TOG4 + ifdef G4LIB_USE_G3TOG4 INCFLAGS += -I$(G4BASE)/g3tog4/include endif endif @@ -194,7 +194,7 @@ LDLIBS1 := $(EXTRALIBS) ifdef GLOBALLIBS LDLIBS2 := $(VISLIBS) -lG4interfaces -lG4persistency - ifdef G4USE_G3TOG4 + ifdef G4LIB_USE_G3TOG4 LDLIBS2 += -lG3toG4 endif @@ -238,6 +238,10 @@ else endif endif +ifdef G4LIB_BUILD_ZLIB + LDLIBS2 += -lG4zlib +endif + # LDLIBS3 contains the first set of low level libraries... # LDLIBS3 += $(INTYLIBS) @@ -375,7 +379,7 @@ ifneq ($(dependencies),) -include $(dependencies) endif -clean: +clean:: @echo Cleaning up ... @rm -f ./core @rm -rf $(G4TMPDIR) @@ -385,7 +389,7 @@ ifdef CFRONT @rm -rf $(G4TREP)/exec endif -clean_bin: +clean_bin:: @echo Removing application $(G4TARGET) ... @rm -f ./core @rm -f $(G4BINDIR)/$(G4TARGET) diff --git a/config/common.gmk b/config/common.gmk index 3544348a12..0af3ba6408 100644 --- a/config/common.gmk +++ b/config/common.gmk @@ -1,4 +1,4 @@ -# $Id: common.gmk,v 1.38 2004/06/08 10:04:47 gcosmo Exp $ +# $Id: common.gmk,v 1.39 2005/06/15 13:59:59 gunter Exp $ # ---------------------------------------------------------------- # Common part of GNUmakefile for libraries. John Allison, 5/7/95. # ---------------------------------------------------------------- @@ -127,7 +127,7 @@ $(installed_includes): $(G4INCLUDE)/% : include/% # Clean up libraries # ifndef G4EXLIB -clean: +clean:: @echo Cleaning up ... @rm -f $(G4LIBDIR)/lib$(name).a @rm -f $(G4LIBDIR)/*$(name).lib @@ -136,7 +136,7 @@ clean: @rm -rf $(G4TMPDIR) endif -clean_libs: +clean_libs:: @echo Removing library lib$(name).a ... @rm -f $(G4LIBDIR)/*$(name).a @echo Removing library lib$(name).$(SHEXT) ... diff --git a/config/globlib.gmk b/config/globlib.gmk index addfb26b59..d2beac1870 100644 --- a/config/globlib.gmk +++ b/config/globlib.gmk @@ -1,4 +1,4 @@ -# $Id: globlib.gmk,v 1.25 2004/10/29 17:30:43 gcosmo Exp $ +# $Id: globlib.gmk,v 1.26 2005/06/15 13:59:59 gunter Exp $ # -------------------------------------------------------------- # Script for compound libraries. Gabriele Cosmo, 25/6/98. # -------------------------------------------------------------- @@ -101,7 +101,7 @@ wipe_libs: @for lib in $(SUBLIBS); do (rm -f $(G4LIBDIR)/lib$$lib.a); done @for lib in $(SUBLIBS); do (rm -f $(G4LIBDIR)/lib$$lib.$(SHEXT)); done -clean: +clean:: @echo Cleaning up ... @for lib in $(SUBLIBS); do ( \ rm -rf $(G4TMP)/$(G4SYSTEM)/$$lib;\ @@ -115,7 +115,7 @@ clean: @rm -f $(G4LIBDIR)/*$(name).exp @rm -f $(G4LIBDIR)/*$(name).$(SHEXT) -clean_libs: +clean_libs:: @echo Removing lib$(name).a/.$(SHEXT) and sub-libraries ... @for lib in $(SUBLIBS); do ( \ rm -f $(G4LIBDIR)/*$$lib.a;\ diff --git a/config/scripts/env.csh.SH b/config/scripts/env.csh.SH index ff88bbe375..844588ce6b 100755 --- a/config/scripts/env.csh.SH +++ b/config/scripts/env.csh.SH @@ -281,8 +281,23 @@ echo "On this machine the G4LIB_BUILD_G3TOG4=\$G4LIB_BUILD_G3TOG4" endif if ( X$g4w_use_g3tog4 == Xy ) then -setenv G4USE_G3TOG4 1 -echo "On this machine the G4USE_G3TOG4=\$G4USE_G3TOG4" +setenv G4LIB_USE_G3TOG4 1 +echo "On this machine the G4LIB_USE_G3TOG4=\$G4LIB_USE_G3TOG4" +endif + + +# +# Use ZLIB module +# +#+ +if ( X$g4wlib_build_zlib == Xy ) then +setenv G4LIB_BUILD_ZLIB 1 +echo "On this machine the G4LIB_BUILD_ZLIB=\$G4LIB_BUILD_ZLIB" +endif + +if ( X$g4w_use_ZLIB == Xy ) then +setenv G4LIB_USE_ZLIB 1 +echo "On this machine the G4LIB_USE_ZLIB=\$G4LIB_USE_ZLIB" endif #+ diff --git a/config/scripts/env.sh.SH b/config/scripts/env.sh.SH index 274e9f6331..570bf9158b 100755 --- a/config/scripts/env.sh.SH +++ b/config/scripts/env.sh.SH @@ -394,13 +394,30 @@ fi fi if [ X$g4w_use_g3tog4 = Xy ] ; then -G4USE_G3TOG4=1 -export G4USE_G3TOG4 +G4LIB_USE_G3TOG4=1 +export G4LIB_USE_G3TOG4 if [ X\$g4non_display = X ] ; then -echo "On this machine the G4USE_G3TOG4=\$G4USE_G3TOG4" +echo "On this machine the G4LIB_USE_G3TOG4=\$G4LIB_USE_G3TOG4" fi fi +# +# Use ZLIB module +# +#+ +if [ X$g4wlib_build_zlib = Xy ] ; then +G4LIB_BUILD_ZLIB=1 +export G4LIB_BUILD_ZLIB +echo "On this machine the G4LIB_BUILD_ZLIB=\$G4LIB_BUILD_ZLIB" +fi + +if [ X$g4w_use_zlib = Xy ] ; then +G4LIB_USE_ZLIB=1 +export G4LIB_USE_ZLIB +echo "On this machine the G4LIB_USE_ZLIB=\$G4LIB_USE_ZLIB" +fi + + #+ # # g4shared diff --git a/config/scripts/install.sh.SH b/config/scripts/install.sh.SH index 30227ca140..de91881734 100755 --- a/config/scripts/install.sh.SH +++ b/config/scripts/install.sh.SH @@ -110,11 +110,11 @@ export CLHEP_BASE_DIR echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR" fi -if [ X$g4clhep_base_dir != X/usr -o X$g4clhep_base_dir != X/usr/local ] ; then -CLHEP_BASE_DIR="$g4clhep_base_dir" -export CLHEP_BASE_DIR -echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR" -fi +#if [ X$g4clhep_base_dir != X/usr -o X$g4clhep_base_dir != X/usr/local ] ; then +#CLHEP_BASE_DIR="$g4clhep_base_dir" +#export CLHEP_BASE_DIR +#echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR" +#fi #+ if [ X$g4clhep_include_dir != X ] ; then @@ -321,9 +321,25 @@ echo "On this machine the G4LIB_BUILD_G3TOG4=\$G4LIB_BUILD_G3TOG4" fi if [ X$g4w_use_g3tog4 = Xy ] ; then -G4USE_G3TOG4=1 -export G4USE_G3TOG4 -echo "On this machine the G4USE_G3TOG4=\$G4USE_G3TOG4" +G4LIB_USE_G3TOG4=1 +export G4LIB_USE_G3TOG4 +echo "On this machine the G4LIB_USE_G3TOG4=\$G4LIB_USE_G3TOG4" +fi + +# +# Use ZLIB module +# +#+ +if [ X$g4wlib_build_zlib = Xy ] ; then +G4LIB_BUILD_ZLIB=1 +export G4LIB_BUILD_ZLIB +echo "On this machine the G4LIB_BUILD_ZLIB=\$G4LIB_BUILD_ZLIB" +fi + +if [ X$g4w_use_zlib = Xy ] ; then +G4LIB_USE_ZLIB=1 +export G4LIB_USE_ZLIB +echo "On this machine the G4LIB_USE_ZLIB=\$G4LIB_USE_ZLIB" fi #+ diff --git a/config/scripts/move.sh.SH b/config/scripts/move.sh.SH index c9f68ff220..ee33fb0d67 100644 --- a/config/scripts/move.sh.SH +++ b/config/scripts/move.sh.SH @@ -315,11 +315,28 @@ echo "On this machine the G4LIB_BUILD_G3TOG4=\$G4LIB_BUILD_G3TOG4" fi if [ X$g4w_use_g3tog4 = Xy ] ; then -G4USE_G3TOG4=1 -export G4USE_G3TOG4 -echo "On this machine the G4USE_G3TOG4=\$G4USE_G3TOG4" +G4LIB_USE_G3TOG4=1 +export G4LIB_USE_G3TOG4 +echo "On this machine the G4LIB_USE_G3TOG4=\$G4LIB_USE_G3TOG4" fi +# +# Use ZLIB module +# +#+ +if [ X$g4wlib_build_zlib = Xy ] ; then +G4LIB_BUILD_ZLIB=1 +export G4LIB_BUILD_ZLIB +echo "On this machine the G4LIB_BUILD_ZLIB=\$G4LIB_BUILD_ZLIB" +fi + +if [ X$g4w_use_zlib = Xy ] ; then +G4LIB_USE_ZLIB=1 +export G4LIB_USE_ZLIB +echo "On this machine the G4LIB_USE_ZLIB=\$G4LIB_USE_ZLIB" +fi + + #+ # # g4shared diff --git a/config/sys/Darwin-g++.gmk b/config/sys/Darwin-g++.gmk index 28b968ff15..e124a6b4ae 100644 --- a/config/sys/Darwin-g++.gmk +++ b/config/sys/Darwin-g++.gmk @@ -1,24 +1,18 @@ # # ------ MacOS-X ------ !!! not generally supported !!! -# -# MacOS 10.1 GNU-gcc 2.92.2 -# MacOS 10.2 there is g++2 and g++3, choose consistently one, -# like g++2 which is 2.95.2, g++3 for 3.X. -# MacOS 10.3 use default MacOS-X compiler (g++) as the default. -# Have commands to build the .dylib (MacOS-X shared libs) +# MacOS 10.3 gcc-3.3 +# MacOS 10.4 gcc-4.0 +# Uses default MacOS-X compiler (g++). +# Includes commands to build the .dylib (MacOS-X shared libs) # # Use echo -n (there is not the 'echo -e' option of Linux) # # Author: Helmut Burkhardt - CERN # ifeq ($(G4SYSTEM),Darwin-g++) -# choice of compiler (take, as default, the MacOS default) : -# CXX := g++2 -# CXX := g++3 CXX := g++ - CXXFLAGS := -Wall -ansi -pedantic -pipe -# optionally add verbose flag -# CXXFLAGS += -v + CXXFLAGS := -Wall -ansi -pedantic -Wno-non-virtual-dtor -Wno-long-long + CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -pipe ifdef G4OPTIMISE CXXFLAGS += -O FCFLAGS := -O diff --git a/config/sys/SUN-CC.gmk b/config/sys/SUN-CC.gmk index 7875b70f2b..60225a7f6a 100644 --- a/config/sys/SUN-CC.gmk +++ b/config/sys/SUN-CC.gmk @@ -18,10 +18,9 @@ ifeq ($(G4SYSTEM),SUN-CC) CCFLAGS += -KPIC endif G4RUNPATHOPTION := -R - CFRONT_G4TEMPLATE_REPOSITORY := true FC := f77 SHEXT := so - AR := $(CXX) -xar -ptr$(G4TREP) -o + AR := $(CXX) -xar -o ECHO := /bin/echo GREP := /usr/xpg4/bin/grep FCLIBS := -lM77 -lF77 -lsunmath @@ -41,7 +40,7 @@ ifeq ($(G4SYSTEM),SUN-CC) OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif CPPFLAGS += -DSOCKET_IRIX_SOLARIS - LOADLIBS += -lsocket -lnsl + LOADLIBS += -lsunmath -lsocket -lnsl CPPFLAGS += -DG4NOT_ISO_DELETES -DG4NO_ISO_VECDIST define build-granular-shared-lib diff --git a/environments/MOMO/MomoHome/include/MomoEventAction.hh b/environments/MOMO/MomoHome/include/MomoEventAction.hh index bbfe2dce7e..bf77c3b3b7 100644 --- a/environments/MOMO/MomoHome/include/MomoEventAction.hh +++ b/environments/MOMO/MomoHome/include/MomoEventAction.hh @@ -22,7 +22,7 @@ // // Taken from // $Id: MomoEventAction.hh,v 1.1 2003/11/04 09:02:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef MomoEventAction_h diff --git a/environments/MOMO/MomoHome/include/MomoRunAction.hh b/environments/MOMO/MomoHome/include/MomoRunAction.hh index 726b661d5f..b173162a67 100644 --- a/environments/MOMO/MomoHome/include/MomoRunAction.hh +++ b/environments/MOMO/MomoHome/include/MomoRunAction.hh @@ -22,7 +22,7 @@ // // Taken after // $Id: MomoRunAction.hh,v 1.1 2003/11/04 09:02:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef MomoRunAction_h diff --git a/environments/MOMO/MomoHome/src/MomoEventAction.cc b/environments/MOMO/MomoHome/src/MomoEventAction.cc index 0779facfa3..2690a91ee1 100644 --- a/environments/MOMO/MomoHome/src/MomoEventAction.cc +++ b/environments/MOMO/MomoHome/src/MomoEventAction.cc @@ -22,7 +22,7 @@ // // Taken from // $Id: MomoEventAction.cc,v 1.1 2003/11/04 09:02:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/environments/MOMO/MomoHome/src/MomoRunAction.cc b/environments/MOMO/MomoHome/src/MomoRunAction.cc index 8a68909113..b85f539fb3 100644 --- a/environments/MOMO/MomoHome/src/MomoRunAction.cc +++ b/environments/MOMO/MomoHome/src/MomoRunAction.cc @@ -22,7 +22,7 @@ // // Taken from // $Id: MomoRunAction.cc,v 1.1 2003/11/04 09:02:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/environments/MOMO/docs/MOMOHelp.html b/environments/MOMO/docs/MOMOHelp.html old mode 100755 new mode 100644 diff --git a/examples/History b/examples/History index df1e2b8974..40c0075e0b 100644 --- a/examples/History +++ b/examples/History @@ -1,4 +1,4 @@ -$Id: History,v 1.91 2004/12/16 19:01:04 gcosmo Exp $ +$Id: History,v 1.99 2005/06/30 06:48:07 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,48 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +30th June 2005 Gabriele Cosmo (examples-V07-01-00) +- Updated reference outputs according to reference tag geant4-07-01-ref-00. +- Includes tags: air_shower-V07-00-01, brachy-V07-00-01, gammaraytel-V07-00-01, + cosmicray_charging-V07-00-00, hadrontherapy-V07-00-08, + medical_linac-V07-00-03, radioprotection-V07-00-05, + Rich-V07-00-01, XrayFluo-V07-00-02, exampleA01-V07-00-06, + muonprocesses-V07-00-01, photonprocesses-V07-00-02, + testem1-V07-00-02, testem2-V07-00-02, testem3-V07-00-08, + testem4-V07-00-01, testem5-V07-00-02, testem6-V07-00-01, + testem7-V07-00-03, testem8-V07-00-02, testem9-V07-00-02, + testem11-V07-00-01, DICOM-V07-00-01, gtherapy-V07-00-04, + LXe-V07-00-00, exrdm-V07-00-00, exampleRE01-V07-00-02, + exampleN02-V07-00-03, exampleN03-V07-00-03, + exampleN05-V07-00-00. + +27th May 2005 Gabriele Cosmo (examples-V07-00-04) +- Updated reference outputs according to reference tag geant4-07-00-ref-04. +- Includes tags: examples-V07-00-03. + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +28th April 2005 Gabriele Cosmo (examples-V07-00-02) +- Updated reference outputs according to reference tag geant4-07-00-ref-03. +- Includes tags: Tiara-V07-00-00, exampleA01-V07-00-00, B02-V07-00-00, + B03-V07-00-00, testem1-V07-00-01, testem3-V07-00-05, + testem5-V07-00-01, testem7-V07-00-01, testem8-V07-00-01, + testem9-V07-00-00, gtherapy-V07-00-00, exparallel-V07-00-00, + persistencyEx-V07-00-01. + +18th March 2005 Gabriele Cosmo (examples-V07-00-01) +- Updated reference outputs according to reference tag geant4-07-00-ref-02. +- Includes tags: testem2-V07-00-00, testem3-V07-00-04, testem4-V07-00-00, + testem5-V07-00-00, testem6-V07-00-00, testem7-V07-00-00, + photonprocesses-V07-00-00, muonprocesses-V07-00-00. + +23rd February 2005 Gabriele Cosmo (examples-V07-00-00) +- Updated reference outputs according to reference tag geant4-07-00-ref-01 + and patch-01 to release 7.0. +- Includes tags: exampleN02-V07-00-00, exampleN03-V07-00-00, + testem1-V07-00-00, testem3-V07-00-03. + 16th December 2004 Gabriele Cosmo (examples-V06-02-06) - Updated reference outputs according to reference tag geant4-07-00-ref-00 - Includes tags: air_shower-V06-02-02, brachy-V06-02-01, ccal-V06-02-02, diff --git a/examples/README b/examples/README index acbd453a06..aa115b4980 100644 --- a/examples/README +++ b/examples/README @@ -1,4 +1,4 @@ -$Id: README,v 1.6 2004/09/29 10:00:30 gcosmo Exp $ +$Id: README,v 1.7 2005/05/17 10:37:31 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -24,8 +24,8 @@ Most of the examples can be run both in interactive and batch mode, and input macro files (*.in) and reference output files (*.out) are provided. Novice and most of the extended examples are considered part of the system testing suite for validation of the official releases of the -GEANT4 toolkit. Novice examples are used as "acceptance"-tests for the -release process. +GEANT4 toolkit. Novice examples and some of the extended and advanced +examples are also used as "acceptance"-tests for the release process. Novice level examples ExampleN01 @@ -66,22 +66,31 @@ Extended level examples g3tog3 - Examples of usage of the g3tog4 converter tool gdml - - Example of detector persistency through the Geometry + - Example of import/export detector persistency through the Geometry Description Markup Language (GDML) geometry - - Specific geometry examples and tools: binding to CAD systems, - OLAP tool for detection of overlapping geometries + - Specific geometry examples and tools: OLAP tool for detection + of overlapping geometries medical - Specific examples for medical physics applications optical - Examples of generic optical processes simulation setups parallel - Examples of event-level parallelism in Geant4 using the - TOP-C distribution + TOP-C distribution, and distributed runs through DIANE persistency - - Persistency through generic interface + - Persistency of simulation outputs through generic interface + radioactivedecay + - Examples to simulate the decays of radioactive isotopes and + induced radioactivity resulted from nuclear interactions + runAndEvent + - Examples to demonstrate how to connect the information between + primary particles and hits and utilize user-information classes Advanced level examples + air_shower + - Simulation of the ULTRA detector for UV and charged particles + detection in cosmic rays brachytherapy - Setup for brachytherapy Ir-192 HDR source composite_calorimeter diff --git a/examples/advanced/Rich/History b/examples/advanced/Rich/History index b9f59a44e4..dc437fb7bc 100644 --- a/examples/advanced/Rich/History +++ b/examples/advanced/Rich/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.6 2004/12/02 10:58:10 ribon Exp $ +$Id: History,v 1.8 2005/05/30 09:01:05 ribon Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,13 @@ $Id: History,v 1.6 2004/12/02 10:58:10 ribon Exp $ Category History file --------------------- +30.03.2005 - A.Ribon (Rich-V07-00-01) + Replaced with and + cout with G4cout . + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 02.12.2004 - A.Ribon (Rich-V06-02-02) Interface change to the class G4VParticleChange. diff --git a/examples/advanced/Rich/RichTbSim.cc b/examples/advanced/Rich/RichTbSim.cc index 2821abc3a3..864c4cbf66 100644 --- a/examples/advanced/Rich/RichTbSim.cc +++ b/examples/advanced/Rich/RichTbSim.cc @@ -25,7 +25,7 @@ // Created: Sajan Easo (Sajan.Easo@cern.ch) // Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) // ---------------------------------------------------------------- -#include +#include #include "RichTbRunAction.hh" #include "RichTbEventAction.hh" #include "RichTbDetectorConstruction.hh" @@ -45,7 +45,7 @@ #endif #include "Randomize.hh" #ifdef G4VIS_USE -#include "RichTbVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "G4ios.hh" @@ -82,13 +82,13 @@ int main(int argc,char** argv) { // UserAction classes - optional - RichTbVisManager* visManager = new RichTbVisManager(); + G4VisManager* visManager = new G4VisExecutive(); visManager->SetVerboseLevel(0); visManager->Initialize(); G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - cout<<" PVVisManager "<SetUserAction(new RichTbRunAction); diff --git a/examples/advanced/Rich/include/RichTbEventAction.hh b/examples/advanced/Rich/include/RichTbEventAction.hh index 59b1406e9b..1a44962891 100644 --- a/examples/advanced/Rich/include/RichTbEventAction.hh +++ b/examples/advanced/Rich/include/RichTbEventAction.hh @@ -34,7 +34,7 @@ #include "RichTbAnalysisManager.hh" class G4Event; -class RichTbVisManager; +class G4VVisManager; class RichTbAnalysisManager; class RichTbIOData; @@ -44,7 +44,7 @@ class RichTbEventAction : public G4UserEventAction { RichTbEventAction(); RichTbEventAction(RichTbRunConfig* , - RichTbVisManager* , RichTbIOData* ); + G4VVisManager* , RichTbIOData* ); virtual ~RichTbEventAction(); public: void BeginOfEventAction(const G4Event* ); @@ -52,13 +52,13 @@ public: G4int GetRichCollID() {return RichTbCollID;}; RichTbAnalysisManager* getAnalysisM() {return ranalysisManager; } - RichTbVisManager* getVisM() + G4VVisManager* getVisM() {return pVisManager; } private: RichTbRunConfig* runConfiguration; G4int RichTbCollID; RichTbAnalysisManager* ranalysisManager; - RichTbVisManager* pVisManager; + G4VVisManager* pVisManager; RichTbIOData* rTbIOData; }; diff --git a/examples/advanced/Rich/include/RichTbGeometryParameters.hh b/examples/advanced/Rich/include/RichTbGeometryParameters.hh index 7c6fcd140a..26ea3878a3 100644 --- a/examples/advanced/Rich/include/RichTbGeometryParameters.hh +++ b/examples/advanced/Rich/include/RichTbGeometryParameters.hh @@ -31,7 +31,7 @@ #include "globals.hh" #include "AerogelTypeSpec.hh" -#include +#include extern void InitializeRichTbGeometry(); extern G4double GetCurAerogelLength(G4int); // diff --git a/examples/advanced/Rich/include/RichTbHit.hh b/examples/advanced/Rich/include/RichTbHit.hh index 110f0c7b99..010a773b85 100644 --- a/examples/advanced/Rich/include/RichTbHit.hh +++ b/examples/advanced/Rich/include/RichTbHit.hh @@ -34,7 +34,7 @@ #include "G4ThreeVector.hh" #include "G4Transform3D.hh" -class RichTbVisManager; +class G4VVisManager; class RichTbHit : public G4VHit { public: @@ -50,7 +50,7 @@ class RichTbHit : public G4VHit inline void operator delete(void *aHit); void Draw(); - void DrawWithVisM(RichTbVisManager*); + void DrawWithVisM(G4VVisManager*); void Print(); private: diff --git a/examples/advanced/Rich/include/RichTbRunConfig.hh b/examples/advanced/Rich/include/RichTbRunConfig.hh index 0fe77a8acc..4b65fd487d 100644 --- a/examples/advanced/Rich/include/RichTbRunConfig.hh +++ b/examples/advanced/Rich/include/RichTbRunConfig.hh @@ -35,7 +35,7 @@ #include "FilterTypeSpec.hh" #include "AerogelRefData.hh" #include "FilterTrData.hh" -#include +#include #include class RichTbRunConfig{ public: diff --git a/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc b/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc index d107106c87..5697843506 100644 --- a/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc +++ b/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc @@ -27,7 +27,7 @@ // Revision: Patricia Mendez (Patricia.Mendez@cern.ch) ///////////////////////////////////////////////////////////////////////////// #include "globals.hh" -#include +#include #include "PadHpdPhotoElectricEffect.hh" #include "RichTbGeometryParameters.hh" diff --git a/examples/advanced/Rich/src/RichTbEventAction.cc b/examples/advanced/Rich/src/RichTbEventAction.cc index d79eb68f6c..796980b8ff 100644 --- a/examples/advanced/Rich/src/RichTbEventAction.cc +++ b/examples/advanced/Rich/src/RichTbEventAction.cc @@ -35,7 +35,6 @@ #include "G4VHitsCollection.hh" #include "G4SDManager.hh" #include "G4VVisManager.hh" -#include "RichTbVisManager.hh" #include "G4UImanager.hh" #include "G4ios.hh" #include "RichTbSD.hh" @@ -50,7 +49,7 @@ RichTbEventAction::RichTbEventAction() } RichTbEventAction::RichTbEventAction(RichTbRunConfig* RConfig, - RichTbVisManager* RVisManager, RichTbIOData* RIOData) + G4VVisManager* RVisManager, RichTbIOData* RIOData) { RichTbCollID = -1; runConfiguration=RConfig; diff --git a/examples/advanced/Rich/src/RichTbHit.cc b/examples/advanced/Rich/src/RichTbHit.cc index bb4949535a..f0cbc388e3 100644 --- a/examples/advanced/Rich/src/RichTbHit.cc +++ b/examples/advanced/Rich/src/RichTbHit.cc @@ -33,7 +33,6 @@ #include "G4VisAttributes.hh" #include "G4Transform3D.hh" #include "G4LogicalVolume.hh" -#include "RichTbVisManager.hh" #include "G4Transform3D.hh" G4Allocator RichTbHitAllocator; @@ -76,6 +75,7 @@ void RichTbHit::Draw() { // The folowing does not work anymore .. SE 26-04-01 + // Do not understand ................... John Allison 3/5/05 G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); if(pVVisManager) { @@ -91,10 +91,10 @@ void RichTbHit::Draw() pVVisManager->Draw(circle,dummy); } } -void RichTbHit::DrawWithVisM(RichTbVisManager* pVisManager) +void RichTbHit::DrawWithVisM(G4VVisManager* pVisManager) { - G4VisManager* pVVisManager = pVisManager; + G4VVisManager* pVVisManager = pVisManager; if(pVVisManager) { G4Transform3D dummy2; diff --git a/examples/advanced/Rich/src/RichTbMaterial.cc b/examples/advanced/Rich/src/RichTbMaterial.cc index 3574a5edf3..fa5ef4024d 100644 --- a/examples/advanced/Rich/src/RichTbMaterial.cc +++ b/examples/advanced/Rich/src/RichTbMaterial.cc @@ -27,7 +27,7 @@ // Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) ///////////////////////////////////////////////////////////////////////////// #include -#include +#include #include "globals.hh" #include "RichTbMaterial.hh" #include "G4Isotope.hh" diff --git a/examples/advanced/Rich/src/RichTbVisManager.cc b/examples/advanced/Rich/src/RichTbVisManager.cc deleted file mode 100644 index 0bf4b4c30d..0000000000 --- a/examples/advanced/Rich/src/RichTbVisManager.cc +++ /dev/null @@ -1,142 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// Rich advanced example for Geant4 -// RichTbVisManager.cc for Rich of LHCb -// History: -// Created: Sajan Easo (Sajan.Easo@cern.ch) -// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch) -///////////////////////////////////////////////////////////////////////////// -#ifdef G4VIS_USE - -#include "RichTbVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -RichTbVisManager::RichTbVisManager () { ; } -RichTbVisManager::~RichTbVisManager () {;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void RichTbVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/Tiara/GNUmakefile b/examples/advanced/Tiara/GNUmakefile index 078678c71f..0cb833ef98 100644 --- a/examples/advanced/Tiara/GNUmakefile +++ b/examples/advanced/Tiara/GNUmakefile @@ -1,6 +1,6 @@ # $Id: GNUmakefile,v 1.7 2004/12/08 15:37:13 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-03 $ +# GEANT4 tag $Name: geant4-07-01 $ # -------------------------------------------------------------- diff --git a/examples/advanced/Tiara/History b/examples/advanced/Tiara/History index befc5b55ac..b79a648a3f 100644 --- a/examples/advanced/Tiara/History +++ b/examples/advanced/Tiara/History @@ -1,6 +1,6 @@ -# $Id: History,v 1.24 2004/12/14 13:12:55 daquinog Exp $ +# $Id: History,v 1.27 2005/05/03 10:05:48 allison Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-05 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- ========================================================= @@ -19,6 +19,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +March 17th, 2005 G.Daquino - Tiara-V07-00-00 +- migration of Tiara (working with PI) from rh73 to slc3 + Dec 14th, 2004 G.Daquino - Tiara-V06-02-02 - update of GNUmakefiles to the new phys_lists structure diff --git a/examples/advanced/Tiara/README b/examples/advanced/Tiara/README index b66673c9ba..0930302737 100644 --- a/examples/advanced/Tiara/README +++ b/examples/advanced/Tiara/README @@ -1,6 +1,6 @@ -# $Id: README,v 1.20 2004/12/08 15:37:13 daquinog Exp $ +# $Id: README,v 1.21 2005/03/17 19:48:27 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-03 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- Simulation of the TIARA experiment using importance sampling @@ -79,10 +79,10 @@ in the three cases: Note 1: python must be built against a "libc". You may do this by creating a shared library by a command similar to this - "ld -shared -o libpython2.2.so --whole-archive libpython2.2.a /usr/lib/libc.so" + "ld -shared -o libpython2.3.so --whole-archive libpython2.3.a /usr/lib/libc.so" Set the following environment variables: - "PYTHONVERSION" (2.2 or higher) + "PYTHONVERSION" (2.3 or higher) "PYTHON_BASE_DIR" (e.g. to /usr) "SWIG_VERSION" (e.g. 1.3 or higher) "SWIG_BASE_DIR" (e.g. /usr) @@ -142,7 +142,7 @@ This file can be used to access results of the simulation. In case the example was build using analysis results may be viewed e.g. using python or ROOT: -1) Start python2.2 +1) Start python 2) type: import dataAcess 3) type: p = dataAcess.ExpMcPlot (shelveFileName,detectorposition) where "shelveFileName" is the name (enclosed in quotes) of the diff --git a/examples/advanced/Tiara/envCommon.csh b/examples/advanced/Tiara/envCommon.csh index 9e04854a35..051ac6605d 100644 --- a/examples/advanced/Tiara/envCommon.csh +++ b/examples/advanced/Tiara/envCommon.csh @@ -1,6 +1,6 @@ -# $Id: envCommon.csh,v 1.12 2004/12/08 17:25:34 daquinog Exp $ +# $Id: envCommon.csh,v 1.13 2005/03/17 19:48:27 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-03 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # Before sourcing this script make sure you have set the # environment variables according to the description in README. @@ -10,25 +10,26 @@ if (${?PI_BASE_DIR} == 1 && ${?SWIG_BASE_DIR} == 1) then - setenv PI_VERSION 1_2_1 - setenv PI_VER 1.2.1 - setenv PI_ARCH rh73_gcc32 - setenv PATH ${PATH}:${PI_BASE_DIR}/${PI_VER}/app/releases/PI/PI_${PI_VER}/${PI_ARCH}/bin - setenv PATH ${PI_BASE_DIR}/Linux-g++/bin:$PATH + setenv PI_VERSION 1_3_0 + setenv PI_VER 1.3.0 + setenv PI_ARCH slc3_ia32_gcc323 + setenv PYTHONVERSION 2.3 + setenv PI_DIR ${PI_BASE_DIR}/${PI_VER}/app/releases/PI/PI_${PI_VERSION}/${PI_ARCH} + setenv PATH ${PATH}:${PI_DIR}/bin + setenv PATH ${PI_BASE_DIR}/${PI_VER}/external/Python/${PYTHONVERSION}.4/${PI_ARCH}/bin:$PATH eval `aida-config -r csh` # # python from PI # - setenv PYTHONVERSION 2.2 - setenv PYTHON_INCLUDE_DIR ${PI_BASE_DIR}/${PI_VER}/external/Python/2.2.2/${PI_ARCH}/include/python${PYTHONVERSION} - setenv PYTHON_LIB_DIR ${PI_BASE_DIR}/${PI_VER}/external/Python/2.2.2/${PI_ARCH}/lib/python${PYTHONVERSION}/config + setenv PYTHON_INCLUDE_DIR ${PI_BASE_DIR}/${PI_VER}/external/Python/${PYTHONVERSION}.4/${PI_ARCH}/include/python${PYTHONVERSION} + setenv PYTHON_LIB_DIR ${PI_BASE_DIR}/${PI_VER}/external/Python/${PYTHONVERSION}.4/${PI_ARCH}/lib/python${PYTHONVERSION}/config # # python for PI if (${?PYTHONPATH} == 0) then setenv PYTHONPATH endif - setenv PYTHONPATH ${PI_BASE_DIR}/Linux-g++/python:$PYTHONPATH - setenv PYTHONPATH ${PI_BASE_DIR}/${PI_VER}/app/releases/SEAL/SEAL_1_3_4/rh73_gcc32/lib:$PYTHONPATH + setenv PYTHONPATH ${PI_DIR}/python:$PYTHONPATH + setenv PYTHONPATH ${PI_BASE_DIR}/${PI_VER}/app/releases/SEAL/SEAL_1_6_0/${PI_ARCH}/python:$PYTHONPATH # # setup the swig command # @@ -84,9 +85,9 @@ setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/CLHEPWrap setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/tiara setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM} setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${PYTHON_LIB_DIR} -setenv LD_LIBRARY_PATH ${PI_BASE_DIR}/${PI_VER}/app/releases/SEAL/SEAL_1_3_4/rh73_gcc32/lib:$LD_LIBRARY_PATH -setenv LD_LIBRARY_PATH /afs/cern.ch/sw/lcg/external/Python/2.2.2/rh73_gcc32/lib:$LD_LIBRARY_PATH -setenv LD_LIBRARY_PATH ${PI_BASE_DIR}/${PI_VER}/external/Boost/1.30.2/rh73_gcc32/lib:$LD_LIBRARY_PATH +#setenv LD_LIBRARY_PATH ${PI_BASE_DIR}/${PI_VER}/app/releases/SEAL/SEAL_1_3_4/rh73_gcc32/lib:$LD_LIBRARY_PATH +setenv LD_LIBRARY_PATH ${PI_BASE_DIR}/${PI_VER}/external/Python/${PYTHONVERSION}.4/${PI_ARCH}/lib:${LD_LIBRARY_PATH} +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${PI_BASE_DIR}/${PI_VER}/external/Boost/1.31.0/${PI_ARCH}/lib setenv TIARA_BASE `pwd` setenv TIARASCRIPTS ${TIARA_BASE}/source/py_modules if (${?PYTHONPATH} == 0) then diff --git a/examples/advanced/Tiara/run/runSim.py b/examples/advanced/Tiara/run/runSim.py index ce53947272..0b6b8c41f7 100755 --- a/examples/advanced/Tiara/run/runSim.py +++ b/examples/advanced/Tiara/run/runSim.py @@ -1,8 +1,8 @@ -#!/usr/bin/env python2.2 +#!/usr/bin/env python # -# $Id: runSim.py,v 1.10 2004/12/08 17:25:34 daquinog Exp $ +# $Id: runSim.py,v 1.11 2005/03/17 19:48:27 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-03 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # importing python libraries diff --git a/examples/advanced/Tiara/run/runSimNoAnalysis.py b/examples/advanced/Tiara/run/runSimNoAnalysis.py index b78e61d426..bc35f01657 100755 --- a/examples/advanced/Tiara/run/runSimNoAnalysis.py +++ b/examples/advanced/Tiara/run/runSimNoAnalysis.py @@ -1,8 +1,8 @@ -#!/usr/bin/env python2.2 +#!/usr/bin/env python # -# $Id: runSimNoAnalysis.py,v 1.5 2004/12/08 15:37:14 daquinog Exp $ +# $Id: runSimNoAnalysis.py,v 1.6 2005/03/17 19:48:27 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-03 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- diff --git a/examples/advanced/Tiara/run/runVisMode.py b/examples/advanced/Tiara/run/runVisMode.py index 99d823d092..912545ca1f 100644 --- a/examples/advanced/Tiara/run/runVisMode.py +++ b/examples/advanced/Tiara/run/runVisMode.py @@ -1,8 +1,8 @@ -#!/usr/bin/env python2.2 +#!/usr/bin/env python # -# $Id: runVisMode.py,v 1.4 2004/06/09 15:04:35 daquinog Exp $ +# $Id: runVisMode.py,v 1.5 2005/03/17 19:48:27 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- diff --git a/examples/advanced/Tiara/run/vis.mac b/examples/advanced/Tiara/run/vis.mac index 3d3f170bfc..af2605419e 100644 --- a/examples/advanced/Tiara/run/vis.mac +++ b/examples/advanced/Tiara/run/vis.mac @@ -1,6 +1,6 @@ # $Id: vis.mac,v 1.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- diff --git a/examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i b/examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i index 8eb0fa4ae8..09456e507d 100644 --- a/examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i +++ b/examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i @@ -1,6 +1,6 @@ # $Id: CLHEP.i,v 1.4 2004/12/08 15:37:14 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-03 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- diff --git a/examples/advanced/Tiara/source/G4KernelWrapper/G4String.i b/examples/advanced/Tiara/source/G4KernelWrapper/G4String.i index 3fc8bb36c5..52d25842cf 100644 --- a/examples/advanced/Tiara/source/G4KernelWrapper/G4String.i +++ b/examples/advanced/Tiara/source/G4KernelWrapper/G4String.i @@ -1,6 +1,6 @@ # $Id: G4String.i,v 1.1 2003/06/17 15:25:01 mdressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- // coppied from std_string.i diff --git a/examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i b/examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i index 730fbf0e3b..a0343ed499 100644 --- a/examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i +++ b/examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i @@ -1,6 +1,6 @@ # $Id: G4Kernel.i,v 1.5 2003/06/20 12:41:06 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- %module G4Kernel diff --git a/examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i b/examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i index 39ec31c00c..6a161dae26 100644 --- a/examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i +++ b/examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i @@ -1,6 +1,6 @@ # $Id: Tiara.i,v 1.8 2004/12/08 15:37:14 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-03 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- %module Tiara diff --git a/examples/advanced/Tiara/source/py_modules/dataAcess.py b/examples/advanced/Tiara/source/py_modules/dataAcess.py index cbbc894e6d..b84fbb74da 100644 --- a/examples/advanced/Tiara/source/py_modules/dataAcess.py +++ b/examples/advanced/Tiara/source/py_modules/dataAcess.py @@ -1,6 +1,6 @@ # $Id: dataAcess.py,v 1.3 2003/06/26 11:54:13 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import os diff --git a/examples/advanced/Tiara/source/py_modules/detector.py b/examples/advanced/Tiara/source/py_modules/detector.py index d5b2fc3004..858fbe397d 100644 --- a/examples/advanced/Tiara/source/py_modules/detector.py +++ b/examples/advanced/Tiara/source/py_modules/detector.py @@ -1,6 +1,6 @@ # $Id: detector.py,v 1.3 2003/06/26 11:54:13 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # diff --git a/examples/advanced/Tiara/source/py_modules/dpsManip.py b/examples/advanced/Tiara/source/py_modules/dpsManip.py index e96f118621..fd48d71d66 100644 --- a/examples/advanced/Tiara/source/py_modules/dpsManip.py +++ b/examples/advanced/Tiara/source/py_modules/dpsManip.py @@ -1,6 +1,6 @@ # $Id: dpsManip.py,v 1.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import math diff --git a/examples/advanced/Tiara/source/py_modules/extractShelve.py b/examples/advanced/Tiara/source/py_modules/extractShelve.py index 16b8c3ee3a..95739cda2a 100644 --- a/examples/advanced/Tiara/source/py_modules/extractShelve.py +++ b/examples/advanced/Tiara/source/py_modules/extractShelve.py @@ -1,6 +1,6 @@ # $Id: extractShelve.py,v 1.3 2003/07/04 13:26:31 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import string diff --git a/examples/advanced/Tiara/source/py_modules/myPI.py b/examples/advanced/Tiara/source/py_modules/myPI.py index 44d3c38d44..83452f5363 100644 --- a/examples/advanced/Tiara/source/py_modules/myPI.py +++ b/examples/advanced/Tiara/source/py_modules/myPI.py @@ -1,6 +1,6 @@ # $Id: myPI.py,v 1.1 2004/06/09 15:04:36 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import sys diff --git a/examples/advanced/Tiara/source/py_modules/myUtils.py b/examples/advanced/Tiara/source/py_modules/myUtils.py index d8df529ce8..3303a01694 100644 --- a/examples/advanced/Tiara/source/py_modules/myUtils.py +++ b/examples/advanced/Tiara/source/py_modules/myUtils.py @@ -1,6 +1,6 @@ # $Id: myUtils.py,v 1.6 2004/12/08 15:37:14 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-03 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import CLHEP diff --git a/examples/advanced/Tiara/source/py_modules/parallelHall.py b/examples/advanced/Tiara/source/py_modules/parallelHall.py index db5e86b36c..c47d47657e 100644 --- a/examples/advanced/Tiara/source/py_modules/parallelHall.py +++ b/examples/advanced/Tiara/source/py_modules/parallelHall.py @@ -1,6 +1,6 @@ # $Id: parallelHall.py,v 1.4 2003/06/20 12:41:06 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import G4Kernel diff --git a/examples/advanced/Tiara/source/py_modules/posLog.py b/examples/advanced/Tiara/source/py_modules/posLog.py index f06a19ddb7..47963339a1 100644 --- a/examples/advanced/Tiara/source/py_modules/posLog.py +++ b/examples/advanced/Tiara/source/py_modules/posLog.py @@ -1,6 +1,6 @@ # $Id: posLog.py,v 1.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # diff --git a/examples/advanced/Tiara/source/py_modules/runSequence.py b/examples/advanced/Tiara/source/py_modules/runSequence.py index bdcc6d76d0..0a31552dc6 100644 --- a/examples/advanced/Tiara/source/py_modules/runSequence.py +++ b/examples/advanced/Tiara/source/py_modules/runSequence.py @@ -1,6 +1,6 @@ # $Id: runSequence.py,v 1.4 2004/06/09 15:04:36 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import Tiara diff --git a/examples/advanced/Tiara/source/py_modules/slabGeometry.py b/examples/advanced/Tiara/source/py_modules/slabGeometry.py index c61ba4c867..0ee60b19b4 100644 --- a/examples/advanced/Tiara/source/py_modules/slabGeometry.py +++ b/examples/advanced/Tiara/source/py_modules/slabGeometry.py @@ -1,6 +1,6 @@ # $Id: slabGeometry.py,v 1.3 2003/06/20 12:41:07 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import math diff --git a/examples/advanced/Tiara/source/py_modules/tallyData.py b/examples/advanced/Tiara/source/py_modules/tallyData.py index e681aca009..d462079d26 100644 --- a/examples/advanced/Tiara/source/py_modules/tallyData.py +++ b/examples/advanced/Tiara/source/py_modules/tallyData.py @@ -1,6 +1,6 @@ # $Id: tallyData.py,v 1.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # diff --git a/examples/advanced/Tiara/source/py_modules/tiaraApplication.py b/examples/advanced/Tiara/source/py_modules/tiaraApplication.py index 272a9c174b..c5d7fc0388 100644 --- a/examples/advanced/Tiara/source/py_modules/tiaraApplication.py +++ b/examples/advanced/Tiara/source/py_modules/tiaraApplication.py @@ -1,6 +1,6 @@ # $Id: tiaraApplication.py,v 1.5 2004/12/08 15:37:14 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-03 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import string diff --git a/examples/advanced/Tiara/source/py_modules/tiaraDetectors.py b/examples/advanced/Tiara/source/py_modules/tiaraDetectors.py index c6b9150276..111caaa4a4 100644 --- a/examples/advanced/Tiara/source/py_modules/tiaraDetectors.py +++ b/examples/advanced/Tiara/source/py_modules/tiaraDetectors.py @@ -1,6 +1,6 @@ # $Id: tiaraDetectors.py,v 1.4 2004/06/09 15:04:36 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import CLHEP diff --git a/examples/advanced/Tiara/source/py_modules/tiaraGenerators.py b/examples/advanced/Tiara/source/py_modules/tiaraGenerators.py index c49adcd572..35d8a666cf 100644 --- a/examples/advanced/Tiara/source/py_modules/tiaraGenerators.py +++ b/examples/advanced/Tiara/source/py_modules/tiaraGenerators.py @@ -1,6 +1,6 @@ # $Id: tiaraGenerators.py,v 1.3 2004/06/09 15:04:36 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import string diff --git a/examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py b/examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py index aed0e3f240..8a44b26602 100644 --- a/examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py +++ b/examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py @@ -1,6 +1,6 @@ # $Id: tiaraSpecifications.py,v 1.3 2003/06/20 12:41:07 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import CLHEP diff --git a/examples/advanced/Tiara/source/py_modules/variableGeometry.py b/examples/advanced/Tiara/source/py_modules/variableGeometry.py index 6a29ca7f48..b1a7d2df16 100644 --- a/examples/advanced/Tiara/source/py_modules/variableGeometry.py +++ b/examples/advanced/Tiara/source/py_modules/variableGeometry.py @@ -1,6 +1,6 @@ # $Id: variableGeometry.py,v 1.2 2003/06/16 17:06:45 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # import G4Kernel diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh b/examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh index 1644de1800..6f16a17ae3 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraCellScorer.hh,v 1.3 2003/06/18 16:40:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class TiaraCellScorer diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh b/examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh index 28f2170189..87ffc79f99 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraCellScorerStore.hh,v 1.2 2003/06/18 16:40:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class TiaraCellScorerStore diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh b/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh index f5627d255d..39fe661b18 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraConcreteShieldA.hh,v 1.3 2003/06/25 09:12:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh b/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh index e5b6e2b75e..7355879f90 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraConcreteShieldB.hh,v 1.3 2003/06/25 09:12:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh b/examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh index 001158c0ff..1422aa29ad 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraDPSSampledEnergy.hh,v 1.6 2004/06/09 15:04:37 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh b/examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh index c359fe6c50..286cf08d1d 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraDimensions.hh,v 1.3 2003/06/25 09:12:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh b/examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh index aeb221f03d..fa12490642 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraEnergyCutProcess.hh,v 1.3 2003/06/25 09:12:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh b/examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh index b04bd3142c..a21eba1c6e 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraFileAcess.hh,v 1.3 2003/06/25 09:12:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh b/examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh index 6e432c111d..efa512de88 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraFixedEnergyGenerator.hh,v 1.3 2003/06/25 09:12:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh b/examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh index e34873b84e..98cb340b3a 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraGeometry.hh,v 1.4 2003/06/25 09:12:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh b/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh index a338533c51..80026bba97 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIronShieldA.hh,v 1.3 2003/06/25 09:12:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh b/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh index 18ad40ac2c..ebf15f6bc5 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIronShieldB.hh,v 1.3 2003/06/25 09:12:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh b/examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh index 242b3ef86f..e906cb9ae1 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIsotropicDirections.hh,v 1.3 2003/06/25 09:12:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh b/examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh index f31fc35ed0..bd3c5aa838 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraMaterials.hh,v 1.4 2003/06/25 09:12:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh b/examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh index c7671b1357..c0a3455acf 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraMeasure.hh,v 1.3 2003/06/25 09:12:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraPart.hh b/examples/advanced/Tiara/source/tiara/include/TiaraPart.hh index ee5d2a2a3d..173a5e8df7 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraPart.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraPart.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraPart.hh,v 1.3 2003/06/25 09:12:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh b/examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh index 531f1448c1..e8c585ac64 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraPhysicsList.hh,v 1.1.1.1 2003/06/12 13:08:24 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class TiaraPhysicsList diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh index a42c7466e6..890e0b63ac 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraPrimaryGeneratorAction.hh,v 1.1.1.1 2003/06/12 13:08:24 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef TiaraPrimaryGeneratorAction_hh diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraRandom.hh b/examples/advanced/Tiara/source/tiara/include/TiaraRandom.hh index 50bcb01320..c7b81d93c0 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraRandom.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraRandom.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraRandom.hh,v 1.3 2003/06/25 09:12:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh b/examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh index aa6bd3f8f1..2bf8414b04 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraSampledEnergy.hh,v 1.4 2003/06/25 09:12:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraSim.hh b/examples/advanced/Tiara/source/tiara/include/TiaraSim.hh index 1d189a23c8..4eb64fc4ca 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraSim.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraSim.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraSim.hh,v 1.4 2003/06/25 09:12:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraTally.hh b/examples/advanced/Tiara/source/tiara/include/TiaraTally.hh index a44824dfc4..2e6d7142a9 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraTally.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraTally.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraTally.hh,v 1.4 2003/06/25 09:12:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh index 2ab6924057..c2451485f0 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraTimedEventAction.hh,v 1.1.1.1 2003/06/12 13:08:24 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class TiaraTimedEventAction diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh index d3d1a694df..d3e27f8877 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVComponent.hh,v 1.4 2003/06/25 09:12:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh index 4a51181f5e..cfe3c7af69 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVDirectionGenerator.hh,v 1.3 2003/06/25 09:12:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh index c939cc7fcd..ff8bfe08e2 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVSourceEnergyGenerator.hh,v 1.3 2003/06/25 09:12:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh index 8e2c902622..0eae7996a4 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraVisEventAction.hh,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class TiaraVisEventAction diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh index e7782daae3..eb7572c30e 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraVisRunAction.hh,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class TiaraVisRunAction diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc index 6585bc2ce2..aaa1173f94 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraCellScorer.cc,v 1.4 2004/06/09 15:04:37 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorerStore.cc b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorerStore.cc index 3713474f00..aefb362536 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorerStore.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorerStore.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraCellScorerStore.cc,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldA.cc b/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldA.cc index 36b4eb8a62..5c4e0f716d 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldA.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldA.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraConcreteShieldA.cc,v 1.3 2003/06/25 09:12:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraConcreteShieldA.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldB.cc b/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldB.cc index 1444a9691e..780cebc2ac 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldB.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldB.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraConcreteShieldB.cc,v 1.3 2003/06/25 09:12:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraConcreteShieldB.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc b/examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc index f7877d4502..437335ae3b 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraDPSSampledEnergy.cc,v 1.8 2004/06/09 15:04:37 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraDPSSampledEnergy.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc b/examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc index 6477a57a83..d5f2b22bfd 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraDimensions.cc,v 1.3 2003/06/25 09:12:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraDimensions.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc b/examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc index bfe8318a0d..8cca7e2a6f 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraEnergyCutProcess.cc,v 1.5 2004/12/08 15:37:15 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraEnergyCutProcess.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc b/examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc index 391180bbc5..f54f7315cb 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraFileAcess.cc,v 1.3 2003/06/25 09:13:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraFileAcess.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraFixedEnergyGenerator.cc b/examples/advanced/Tiara/source/tiara/src/TiaraFixedEnergyGenerator.cc index ed7c13e90a..0bfc53f503 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraFixedEnergyGenerator.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraFixedEnergyGenerator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraFixedEnergyGenerator.cc,v 1.3 2003/06/25 09:13:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraFixedEnergyGenerator.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraGeometry.cc b/examples/advanced/Tiara/source/tiara/src/TiaraGeometry.cc index 33f54ef833..f79b635f39 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraGeometry.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraGeometry.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraGeometry.cc,v 1.4 2004/12/08 17:25:34 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraGeometry.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldA.cc b/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldA.cc index fb72bc756f..623329be27 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldA.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldA.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIronShieldA.cc,v 1.3 2003/06/25 09:13:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraIronShieldA.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldB.cc b/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldB.cc index 8b888c04af..cd6e7aebda 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldB.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldB.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIronShieldB.cc,v 1.3 2003/06/25 09:13:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraIronShieldB.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc b/examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc index 3188a40d91..b66de2caf3 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIsotropicDirections.cc,v 1.4 2003/12/04 11:08:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraIsotropicDirections.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc b/examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc index 626629a363..97ff14dbdc 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraMaterials.cc,v 1.4 2003/06/25 09:13:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraMaterials.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraMeasure.cc b/examples/advanced/Tiara/source/tiara/src/TiaraMeasure.cc index b45a648994..e12e2bfd3e 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraMeasure.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraMeasure.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraMeasure.cc,v 1.3 2003/06/25 09:13:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraMeasure.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc b/examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc index d552d02bb4..83995bb4af 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraPhysicsList.cc,v 1.5 2004/12/08 15:37:15 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc index 20a93b465a..01eaed4cc4 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraPrimaryGeneratorAction.cc,v 1.3 2003/12/09 08:48:05 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc b/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc index 48c909bb1e..06e4a5a65a 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraRandom.cc,v 1.3 2003/06/25 09:13:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraRandom.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc b/examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc index dba2fe6028..890ebf9aa9 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraSampledEnergy.cc,v 1.4 2003/06/25 09:13:11 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraSampledEnergy.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraSim.cc b/examples/advanced/Tiara/source/tiara/src/TiaraSim.cc index 40f930a9fd..37d27222c9 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraSim.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraSim.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TiaraSim.cc,v 1.6 2004/12/08 15:37:15 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: TiaraSim.cc,v 1.7 2005/05/03 10:21:17 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraSim.hh" @@ -37,7 +37,7 @@ #include "G4VUserDetectorConstruction.hh" #include "TiaraPrimaryGeneratorAction.hh" -#include "TiaraVisManager.hh" +#include "G4VisExecutive.hh" #include "G4UItcsh.hh" #include "TiaraVisEventAction.hh" #include "TiaraVisRunAction.hh" @@ -108,7 +108,7 @@ void TiaraSim::AddParticleCut(const std::string &particle, } void TiaraSim::AddVisRunAction() { - fVisManager = new TiaraVisManager; + fVisManager = new G4VisExecutive; frunMgr->SetUserAction(new TiaraVisRunAction); } void TiaraSim::initializeVisManager() { diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc index e21350a823..a7d34904fc 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraStackingAction.cc,v 1.4 2003/06/25 09:13:13 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraStackingAction.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraTally.cc b/examples/advanced/Tiara/source/tiara/src/TiaraTally.cc index 83ebb6069a..0505fe2fe6 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraTally.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraTally.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraTally.cc,v 1.4 2003/11/07 12:39:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraTally.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc index 9828da3b47..dd3f089e0b 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraTimedEventAction.cc,v 1.2 2003/06/13 16:05:33 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc index 254cd1d75a..c26dbdf37c 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVComponent.cc,v 1.3 2003/06/25 09:13:15 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraVComponent.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVDirectionGenerator.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVDirectionGenerator.cc index 44c242425a..272a8a9fa7 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVDirectionGenerator.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVDirectionGenerator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVDirectionGenerator.cc,v 1.3 2003/06/25 09:13:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraVDirectionGenerator.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVSourceEnergyGenerator.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVSourceEnergyGenerator.cc index c84a1b030f..09b236d579 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVSourceEnergyGenerator.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVSourceEnergyGenerator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVSourceEnergyGenerator.cc,v 1.3 2003/06/25 09:13:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "TiaraVSourceEnergyGenerator.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVisEventAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVisEventAction.cc index f2c1ae9ed0..544c67a7e8 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVisEventAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVisEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraVisEventAction.cc,v 1.3 2003/06/18 16:40:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVisManager.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVisManager.cc deleted file mode 100755 index d6ae7951b5..0000000000 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: TiaraVisManager.cc,v 1.2 2003/11/13 15:10:04 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "TiaraVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -TiaraVisManager::TiaraVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void TiaraVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc index 95f653db5f..975ddbeb52 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraVisRunAction.cc,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/air_shower/History b/examples/advanced/air_shower/History index 1b3b425987..32da03186e 100644 --- a/examples/advanced/air_shower/History +++ b/examples/advanced/air_shower/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2004/12/10 22:47:46 gcosmo Exp $ +$Id: History,v 1.8 2005/06/06 14:51:04 tomezb Exp $ ------------------------------------------------------------------- ========================================================= @@ -8,6 +8,17 @@ $Id: History,v 1.5 2004/12/10 22:47:46 gcosmo Exp $ History file ------------ +06.06.2005 -- B.Tome - air_shower-V07-00-01 + -- README updated; analysis with AIDA 3.2.1 and PI 1.3.3. + +06.06.2005 -- G.Cosmo - air_shower-V07-00-00 + -- Corrected usage of in RunActionMessenger. + -- Corrected call to Visualisation.mac from Ultra.cc. + - Changed viewer to OGLSX in Visualisation.mac. + +03.05.2005 -- J.Allison + -- Replaced vis manager with G4VisExecutive. + 10.12.2004 -- air_shower-V06-02-02 -- Replaced usage of M_PI with CLHEP's pi. diff --git a/examples/advanced/air_shower/README b/examples/advanced/air_shower/README index c3ec9d2da0..4e80fc5da6 100644 --- a/examples/advanced/air_shower/README +++ b/examples/advanced/air_shower/README @@ -64,22 +64,32 @@ setenv ULTRA_VERBOSE setenv ULTRA_MIRROR_USE 1 : A specular reflecting surface is used. setenv ULTRA_GROUND_USE 1 : A diffusive reflecting surface is used. -setup for analysis with PI 1.2.1 for user with account on lxplus: -setenv PI_VERSION 1_2_1 -setenv PATH ${PATH}:"/afs/cern.ch/sw/geant4/dev/PI/Linux-g++/bin" -eval `aida-config -r csh` | +Setup for analysis with AIDA 3.2.1, PI 1.3.3. +The download instructions for the PI UltraLite+Hbook version +can be found at: + http://cern.ch/pi/pi-ultraLite-133.html -the following keywords can be used in order to produce HBOOK, AIDA or ROOT histograms +Definition of environment variables (assuming you used the directory +"PiUltraLite-1.3.3" in your home directory): + +setenv PI_VERSION 1_3_3 +setenv PI_DIR ${HOME}/PiUltraLite-1.3.3 +setenv PATH ${PATH}:"${HOME}/PiUltraLite-1.3.3/bin" +eval `aida-config -r csh` | +------------------------------------------------------------ +The following keywords can be used in order to produce HBOOK, AIDA or ROOT +histograms "hbook" for HBOOK histograms "xml" for AIDA histograms "root" for ROOT histograms -for more information on PI -http://wenaus.home.cern.ch/wenaus/peb-app/ -http://lcgapp.cern.ch/project/pi/ +For more information on the analysis tools: +http://aida.freehep.org +http://www.cern.ch/PI +- ------------------------------------------------------------------------- +----------------------------------------------------------------------- ----> How to run the example. | - batch mode: diff --git a/examples/advanced/air_shower/Ultra.cc b/examples/advanced/air_shower/Ultra.cc index 55cd2b8631..0e3410a2e7 100644 --- a/examples/advanced/air_shower/Ultra.cc +++ b/examples/advanced/air_shower/Ultra.cc @@ -44,7 +44,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "UltraVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "UltraRunAction.hh" @@ -75,7 +75,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // Visualization, if you choose to have it! - G4VisManager* visManager = new UltraVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif @@ -95,7 +95,7 @@ int main(int argc,char** argv) { #else G4UIsession* session = new G4UIterminal(); #endif - UImanager->ApplyCommand("/control/execute vis.mac"); + UImanager->ApplyCommand("/control/execute Visualisation.mac"); session->SessionStart(); delete session; } diff --git a/examples/advanced/air_shower/UltraMacro.mac b/examples/advanced/air_shower/UltraMacro.mac old mode 100755 new mode 100644 diff --git a/examples/advanced/air_shower/Visualisation.mac b/examples/advanced/air_shower/Visualisation.mac index e8ea3f9320..37b1ac6ead 100644 --- a/examples/advanced/air_shower/Visualisation.mac +++ b/examples/advanced/air_shower/Visualisation.mac @@ -11,8 +11,8 @@ # (Edit the next line(s) to choose another graphic system) # #/vis/open RayTracer -#/vis/open/OGLSX -/vis/open DAWNFILE +/vis/open OGLSX +#/vis/open DAWNFILE #/vis/open HepRepFile #/vis/open VRML2FILE # @@ -25,7 +25,7 @@ # (if too many tracks cause core dump => storeTrajectory 0) /tracking/storeTrajectory 1 /tracking/verbose 0 -/vis/drawView +#/vis/drawView /vis/scene/add/trajectories /vis/scene/endOfEventAction accumulate diff --git a/examples/advanced/air_shower/src/UltraRunActionMessenger.cc b/examples/advanced/air_shower/src/UltraRunActionMessenger.cc index c1fd475973..afba2b8097 100644 --- a/examples/advanced/air_shower/src/UltraRunActionMessenger.cc +++ b/examples/advanced/air_shower/src/UltraRunActionMessenger.cc @@ -42,7 +42,7 @@ #include "G4UIparameter.hh" #include "G4UImanager.hh" #include "G4ios.hh" -#include "strstream.h" +#include UltraRunActionMessenger::UltraRunActionMessenger(UltraRunAction* aRunAction) :theRunAction(aRunAction) @@ -70,7 +70,7 @@ void UltraRunActionMessenger::SetNewValue(G4UIcommand * command,G4String newValu if( command==runIDCmd ) { G4int id; - istrstream is((char*)nv); + std::istrstream is((char*)nv); is >> id; theRunAction->MySetRunID(id); diff --git a/examples/advanced/air_shower/src/UltraVisManager.cc b/examples/advanced/air_shower/src/UltraVisManager.cc deleted file mode 100644 index c51c519f56..0000000000 --- a/examples/advanced/air_shower/src/UltraVisManager.cc +++ /dev/null @@ -1,158 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// -------------------------------------------------------------- -// GEANT 4 - ULTRA experiment example -// -------------------------------------------------------------- -// -// Code developed by: -// B. Tome, M.C. Espirito-Santo, A. Trindade, P. Rodrigues -// -// **************************************************** -// * UltraVisManager.cc -// **************************************************** -// -// Ultra VisManager class. Visualisation attributes are defined in the -// UltraDetectorConstruction and UltraEventAction classes. -// -#ifdef G4VIS_USE - -#include "UltraVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -UltraVisManager::UltraVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void UltraVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/brachytherapy/Brachy.cc b/examples/advanced/brachytherapy/Brachy.cc index 3dca4bbc0b..6b51efcbf1 100644 --- a/examples/advanced/brachytherapy/Brachy.cc +++ b/examples/advanced/brachytherapy/Brachy.cc @@ -22,7 +22,7 @@ // // // $Id: Brachy.cc -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -58,7 +58,7 @@ #endif #ifdef G4VIS_USE -#include "BrachyVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "BrachyEventAction.hh" @@ -92,7 +92,7 @@ int main(int argc ,char ** argv) #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new BrachyVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/advanced/brachytherapy/History b/examples/advanced/brachytherapy/History index bc4c19472b..bd5d95c539 100644 --- a/examples/advanced/brachytherapy/History +++ b/examples/advanced/brachytherapy/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.10 2004/12/03 11:25:33 guatelli Exp $ +$Id: History,v 1.14 2005/05/30 09:21:09 guatelli Exp $ ------------------------------------------------------------------- ========================================================= @@ -8,6 +8,13 @@ $Id: History,v 1.10 2004/12/03 11:25:33 guatelli Exp $ Category History file --------------------- + +30th May 2005 Susanna Guatelli (brachy-V07-00-01) +- README updated; analysis with AIDA 3.2.1 and PI 1.3.3. + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 3.12.2004 - Susanna Guatelli Simulation seed changed diff --git a/examples/advanced/brachytherapy/README b/examples/advanced/brachytherapy/README index ddfd0a45c8..57d0134f50 100644 --- a/examples/advanced/brachytherapy/README +++ b/examples/advanced/brachytherapy/README @@ -32,9 +32,9 @@ G4SYSTEM = linux-g++ | The following environment variables need to be set: | -G4LEDATA: points to low energy data base - G4EMLOW2.3 | +G4LEDATA: points to low energy data base - G4EMLOW3.0 | -setup for analysis: AIDA 3.2.1, PI 1.2.1 | +setup for analysis: AIDA 3.2.1, PI 1.3.3 | Users can download the analysis tools from: | @@ -103,4 +103,4 @@ a macro is provided ad example of visualisation: VisualisationMacro.mac| for comments, advices, doubts and questions: guatelli@ge.infn.it for more info http://www.ge.infn.it/geant4/examples/index.html -last modified: Susanna Guatelli 24/11/2004 +last modified: Susanna Guatelli 30/5/2005 diff --git a/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh b/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh index 4068f7711e..bfa5df21f3 100644 --- a/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh +++ b/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh @@ -26,7 +26,7 @@ // // // $Id: BrachyAnalysisManager.hh,v 1.9 2004/03/11 15:38:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh index af488789b8..db9dadf7f7 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstruction.hh,v 1.15 2003/05/22 17:20:40 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // **************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh index 60f60fbb1f..467de74907 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionI.hh,v 1.3 2003/05/22 17:20:40 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // **************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh index c78a7047c2..bda02c1de7 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionIr.hh,v 1.3 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // **************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh index d896bdfd17..942db49ed5 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionLeipzig.hh,v 1.3 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ************************************************ diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh b/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh index 340794040d..561037baab 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh @@ -28,7 +28,7 @@ // ***************************************** // // $Id: BrachyDetectorMessenger.hh,v 1.5 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // #ifndef BrachyDetectorMessenger_h diff --git a/examples/advanced/brachytherapy/include/BrachyEventAction.hh b/examples/advanced/brachytherapy/include/BrachyEventAction.hh index 0712be467a..0622cfc086 100644 --- a/examples/advanced/brachytherapy/include/BrachyEventAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyEventAction.hh,v 1.14 2004/03/11 16:05:02 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: // S.Guatelli diff --git a/examples/advanced/brachytherapy/include/BrachyFactory.hh b/examples/advanced/brachytherapy/include/BrachyFactory.hh index 5433c7920b..5e21018eac 100644 --- a/examples/advanced/brachytherapy/include/BrachyFactory.hh +++ b/examples/advanced/brachytherapy/include/BrachyFactory.hh @@ -23,7 +23,7 @@ // Code developed by: Susanna Guatelli // // $Id: BrachyFactory.hh,v 1.4 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryI.hh b/examples/advanced/brachytherapy/include/BrachyFactoryI.hh index 2438410e3d..95ba9f3d1b 100644 --- a/examples/advanced/brachytherapy/include/BrachyFactoryI.hh +++ b/examples/advanced/brachytherapy/include/BrachyFactoryI.hh @@ -32,7 +32,7 @@ // // // $Id: BrachyFactoryI.hh,v 1.5 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh b/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh index b005f76253..d5a815e75e 100644 --- a/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh +++ b/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyFactoryIr.hh,v 1.4 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh b/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh index 06860561be..a5c1e73915 100644 --- a/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh +++ b/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyFactoryLeipzig.hh,v 1.4 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyMaterial.hh b/examples/advanced/brachytherapy/include/BrachyMaterial.hh index 4dbb13868d..3dde53009e 100644 --- a/examples/advanced/brachytherapy/include/BrachyMaterial.hh +++ b/examples/advanced/brachytherapy/include/BrachyMaterial.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyMaterial.hh,v 1.5 2003/05/27 08:37:54 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh b/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh index 10ddd7ac48..a966d087e6 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomHit.hh,v 1.5 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ******************************** diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh b/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh index b7bd7c6d3e..1c07cb2ec2 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomROGeometry.hh,v 1.5 2003/05/27 08:37:54 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ************************************ // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh b/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh index acaecffb62..e1524e3318 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomSD.hh,v 1.6 2004/03/11 16:05:02 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ******************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh b/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh index 8f90d1a243..38321757ad 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhysicsList.hh,v 1.6 2002/11/18 15:18:36 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh index 19dcb0bee8..5b02b0886b 100644 --- a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPrimaryGeneratorAction.hh,v 1.10 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ******************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh index 9136d1df6e..9151ab5930 100644 --- a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh +++ b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPrimaryGeneratorActionI.hh,v 1.5 2003/06/16 16:45:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh index 64d5ef1f3e..4cc8f0b6c8 100644 --- a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh +++ b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPrimaryGeneratorActionIr.hh,v 1.5 2003/06/16 16:45:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ************************************************* // * * diff --git a/examples/advanced/brachytherapy/include/BrachyRunAction.hh b/examples/advanced/brachytherapy/include/BrachyRunAction.hh index 7a02c688b9..4c3cc31a65 100644 --- a/examples/advanced/brachytherapy/include/BrachyRunAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyRunAction.hh,v 1.7 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh b/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh index 620cb6b8ae..7fc2a76c3f 100644 --- a/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh +++ b/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyRunMessenger.hh,v 1.3 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc index c4a1253097..d3113f4d85 100644 --- a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc +++ b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyAnalysisManager.cc,v 1.15 2004/11/24 09:53:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifdef G4ANALYSIS_USE #include diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc index 2794f4f893..aa90e516c7 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc @@ -35,7 +35,7 @@ // **************************************** // // $Id: BrachyDetectorConstruction.cc,v 1.26 2004/11/24 09:53:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPhantomROGeometry.hh" #include "BrachyPhantomSD.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc index 8e2bbb165c..7100f80c2f 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc @@ -34,7 +34,7 @@ // **************************************** // // $Id: BrachyDetectorConstructionI.cc,v 1.6 2003/12/09 15:29:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" #include "BrachyDetectorConstructionI.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc index ae8255d540..b33b644093 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc @@ -35,7 +35,7 @@ // **************************************** // // $Id: BrachyDetectorConstructionIr.cc,v 1.8 2004/03/11 15:38:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" #include "BrachyDetectorConstructionIr.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc index 5c1eed3ccb..ac5fde4447 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc @@ -36,7 +36,7 @@ // // // $Id: BrachyDetectorConstructionLeipzig.cc,v 1.7 2003/12/09 15:29:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc b/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc index 74d4faf41d..c071776e7a 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc @@ -32,7 +32,7 @@ // // // $Id: BrachyDetectorMessenger.cc,v 1.9 2004/11/24 09:53:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/brachytherapy/src/BrachyEventAction.cc b/examples/advanced/brachytherapy/src/BrachyEventAction.cc index c9485e98c3..29bb135e1b 100644 --- a/examples/advanced/brachytherapy/src/BrachyEventAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyEventAction.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyEventAction.cc,v 1.19 2004/03/11 16:05:03 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyEventAction.hh" #include "BrachyPhantomHit.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactory.cc b/examples/advanced/brachytherapy/src/BrachyFactory.cc index febd2bdd7c..2cbc31f136 100644 --- a/examples/advanced/brachytherapy/src/BrachyFactory.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactory.cc @@ -32,7 +32,7 @@ // ******************************* // // $Id: BrachyFactory.cc,v 1.5 2003/12/09 15:29:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include"BrachyFactory.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryI.cc b/examples/advanced/brachytherapy/src/BrachyFactoryI.cc index ef2f431cd1..ecc86333f9 100644 --- a/examples/advanced/brachytherapy/src/BrachyFactoryI.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactoryI.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryI.cc,v 1.4 2003/05/22 17:20:43 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyFactoryI.hh" #include "BrachyPrimaryGeneratorActionI.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc b/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc index 446cd1b37c..9cf0afbfc3 100644 --- a/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryIr.cc,v 1.4 2003/05/22 17:20:43 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" #include "BrachyFactoryIr.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc b/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc index acb391956e..e243193be6 100644 --- a/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryLeipzig.cc,v 1.4 2003/05/22 17:20:43 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyMaterial.cc b/examples/advanced/brachytherapy/src/BrachyMaterial.cc index a655e6c4e6..0efdedda0f 100644 --- a/examples/advanced/brachytherapy/src/BrachyMaterial.cc +++ b/examples/advanced/brachytherapy/src/BrachyMaterial.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyMaterial.cc,v 1.5 2004/03/11 15:38:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4MaterialPropertiesTable.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc b/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc index 0f4d63b2b1..b025f3b015 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc @@ -31,7 +31,7 @@ // ******************************** // // $Id: BrachyPhantomHit.cc,v 1.5 2003/05/27 08:37:55 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPhantomHit.hh" #include "G4ios.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc b/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc index 4f0cc32ac6..e8ea08da95 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc @@ -31,7 +31,7 @@ // ************************************ // // $Id: BrachyPhantomROGeometry.cc,v 1.9 2004/05/13 14:47:46 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPhantomROGeometry.hh" #include "BrachyDummySD.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc index 268a3d536d..17748de703 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc @@ -31,7 +31,7 @@ // ******************************** // // $Id: BrachyPhantomSD.cc,v 1.8 2004/05/13 14:47:46 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPhantomSD.hh" #include "BrachyPhantomHit.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc b/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc index 68b171dd3e..6063f80fe1 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc @@ -31,7 +31,7 @@ // ********************************** // // $Id: BrachyPhysicsList.cc,v 1.10 2004/01/08 17:25:13 silvarod Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPhysicsList.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc index 3676d8a4d8..bbb48ddb3e 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc @@ -35,7 +35,7 @@ // ******************************************** // // $Id: BrachyPrimaryGeneratorAction.cc,v 1.16 2003/12/09 15:30:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" #include "BrachyPrimaryGeneratorAction.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc index 549df816a0..ef1fa87e9b 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc @@ -34,8 +34,8 @@ // * * // ******************************************** // -// $Id: BrachyPrimaryGeneratorActionI.cc,v 1.7 2003/12/09 15:30:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: BrachyPrimaryGeneratorActionI.cc,v 1.8 2005/06/27 15:27:18 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPrimaryGeneratorActionI.hh" @@ -106,7 +106,7 @@ void BrachyPrimaryGeneratorActionI::GeneratePrimaries(G4Event* anEvent) c = (G4UniformRand()-0.5)/0.5; n = a*a+b*b+c*c; }while(n > 1 || n == 0.0); - n = sqrt(n); + n = std::sqrt(n); a /= n; b /= n; c /= n; diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc index bc6c0adb80..61f0e68d5b 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc @@ -34,8 +34,8 @@ // * * // ******************************************** // -// $Id: BrachyPrimaryGeneratorActionIr.cc,v 1.8 2004/03/11 15:38:43 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: BrachyPrimaryGeneratorActionIr.cc,v 1.9 2005/06/27 15:27:21 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPrimaryGeneratorActionIr.hh" @@ -96,7 +96,7 @@ void BrachyPrimaryGeneratorActionIr::GeneratePrimaries(G4Event* anEvent) c = (G4UniformRand()-0.5)/0.5; n = a*a+b*b+c*c; }while(n > 1 || n == 0.0); - n = sqrt(n); + n = std::sqrt(n); a /= n; b /= n; c /= n; diff --git a/examples/advanced/brachytherapy/src/BrachyRunAction.cc b/examples/advanced/brachytherapy/src/BrachyRunAction.cc index a6375b67bc..c4e4debb66 100644 --- a/examples/advanced/brachytherapy/src/BrachyRunAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyRunAction.cc @@ -36,7 +36,7 @@ // ******************************* // // $Id: BrachyRunAction.cc,v 1.14 2004/11/24 09:53:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyRunAction.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc b/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc index 28cf06fb6e..f6d34e7fe6 100644 --- a/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc +++ b/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc @@ -24,7 +24,7 @@ // S.Guatelli // // $Id: BrachyRunMessenger.cc,v 1.4 2003/05/22 17:20:44 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/examples/advanced/brachytherapy/src/BrachyVisManager.cc b/examples/advanced/brachytherapy/src/BrachyVisManager.cc deleted file mode 100644 index c8a70467cc..0000000000 --- a/examples/advanced/brachytherapy/src/BrachyVisManager.cc +++ /dev/null @@ -1,151 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// -// ******************************* -// * * -// * BrachyVisManager.cc * -// * * -// ******************************* -// -// $Id: BrachyVisManager.cc,v 1.7 2003/11/12 16:44:13 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// - -#ifdef G4VIS_USE - -#include "BrachyVisManager.hh" - -// Supported drivers... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_DAWNFILE -#include "G4DAWNFILE.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - -#ifdef G4VIS_USE_RAYTRACER -#include "G4RayTracer.hh" -#endif - -BrachyVisManager::BrachyVisManager () -{} - -void BrachyVisManager::RegisterGraphicsSystems () -{ -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_DAWNFILE - RegisterGraphicsSystem (new G4DAWNFILE); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); -#endif - -#ifdef G4VIS_USE_RAYTRACER - RegisterGraphicsSystem (new G4RayTracer); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } - -} -#endif - - - - - - - diff --git a/examples/advanced/composite_calorimeter/CompositeCalorimeter.cc b/examples/advanced/composite_calorimeter/CompositeCalorimeter.cc index 445159a610..22ed14ada6 100644 --- a/examples/advanced/composite_calorimeter/CompositeCalorimeter.cc +++ b/examples/advanced/composite_calorimeter/CompositeCalorimeter.cc @@ -42,14 +42,14 @@ #endif #ifdef G4VIS_USE - #include "CCalVisManager.hh" + #include "G4VisExecutive.hh" #endif int main(int argc,char** argv) { #ifdef G4VIS_USE - CCalVisManager *visManager = new CCalVisManager; + G4VisManager *visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/advanced/composite_calorimeter/History b/examples/advanced/composite_calorimeter/History index b022d0f699..4b06cbc3f1 100644 --- a/examples/advanced/composite_calorimeter/History +++ b/examples/advanced/composite_calorimeter/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.26 2004/12/13 15:48:11 gcosmo Exp $ +$Id: History,v 1.27 2005/05/03 10:05:48 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,9 @@ $Id: History,v 1.26 2004/12/13 15:48:11 gcosmo Exp $ Example History file --------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 13.12.04 - G.Cosmo (ccal-V06-02-02) - Use new phys-lists structure. diff --git a/examples/advanced/composite_calorimeter/src/CCalG4Ecal.cc b/examples/advanced/composite_calorimeter/src/CCalG4Ecal.cc index efc71b1ba4..22f1755b82 100644 --- a/examples/advanced/composite_calorimeter/src/CCalG4Ecal.cc +++ b/examples/advanced/composite_calorimeter/src/CCalG4Ecal.cc @@ -33,7 +33,7 @@ #include "CCalSensitiveDetectors.hh" #include "CCalutils.hh" -#include +#include #include "G4ThreeVector.hh" #include "G4Box.hh" diff --git a/examples/advanced/composite_calorimeter/src/CCalG4Hcal.cc b/examples/advanced/composite_calorimeter/src/CCalG4Hcal.cc index 4469eadfea..cfab314062 100644 --- a/examples/advanced/composite_calorimeter/src/CCalG4Hcal.cc +++ b/examples/advanced/composite_calorimeter/src/CCalG4Hcal.cc @@ -32,7 +32,7 @@ #include "CCalSensitiveDetectors.hh" #include "CCalutils.hh" -#include +#include #include "G4ThreeVector.hh" #include "G4Box.hh" diff --git a/examples/advanced/composite_calorimeter/src/CCalSteppingAction.cc b/examples/advanced/composite_calorimeter/src/CCalSteppingAction.cc index b4cad32c24..58a2212c0c 100644 --- a/examples/advanced/composite_calorimeter/src/CCalSteppingAction.cc +++ b/examples/advanced/composite_calorimeter/src/CCalSteppingAction.cc @@ -30,7 +30,7 @@ #include "G4StepPoint.hh" #include #include "G4ThreeVector.hh" -#include +#include #ifdef G4ANALYSIS_USE #include "CCalAnalysis.hh" diff --git a/examples/advanced/composite_calorimeter/src/CCalVisManager.cc b/examples/advanced/composite_calorimeter/src/CCalVisManager.cc deleted file mode 100644 index c680a28716..0000000000 --- a/examples/advanced/composite_calorimeter/src/CCalVisManager.cc +++ /dev/null @@ -1,137 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -/////////////////////////////////////////////////////////////////////////////// -// File: CCalVisManager.cc -// Description: CCalVisManager visualisation manager for the example -/////////////////////////////////////////////////////////////////////////////// - -#include - -#ifdef G4VIS_USE -#include "CCalVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -CCalVisManager::CCalVisManager (G4int verboseLevel) { - SetVerboseLevel( verboseLevel ); -} - -void CCalVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif diff --git a/examples/advanced/cosmicray_charging/CRCharging.cc b/examples/advanced/cosmicray_charging/CRCharging.cc index 94ad43204f..d36e7e1b91 100644 --- a/examples/advanced/cosmicray_charging/CRCharging.cc +++ b/examples/advanced/cosmicray_charging/CRCharging.cc @@ -49,7 +49,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "LISAVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "LISADetectorConstruction.hh" @@ -104,7 +104,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new LISAVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/advanced/cosmicray_charging/History b/examples/advanced/cosmicray_charging/History index 39ad31a967..4dbebb7e8d 100644 --- a/examples/advanced/cosmicray_charging/History +++ b/examples/advanced/cosmicray_charging/History @@ -16,6 +16,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +06.06.2005 - Gabriele Cosmo, tag cosmicray_charging-V07-00-00 + Fixed trivial compilation error on gcc-3.4.X (double semicolon). + +03.05.2005 - John Allison + Replaced vis manager with G4VisExecutive. + 10.12.2004 - Gabriele Cosmo, tag cosmicray_charging-V06-02-03 Replaced usage of M_PI with CLHEP's pi. diff --git a/examples/advanced/cosmicray_charging/include/LISAPhysicsList.hh b/examples/advanced/cosmicray_charging/include/LISAPhysicsList.hh index 80f9ba20e8..6279834439 100644 --- a/examples/advanced/cosmicray_charging/include/LISAPhysicsList.hh +++ b/examples/advanced/cosmicray_charging/include/LISAPhysicsList.hh @@ -316,7 +316,7 @@ class LISAPhysicsList: public G4VUserPhysicsList { // triton G4TritonInelasticProcess* theTritonInelasticProcess; - G4LETritonInelastic* theLETritonInelasticModel;; + G4LETritonInelastic* theLETritonInelasticModel; // alpha G4AlphaInelasticProcess* theAlphaInelasticProcess; diff --git a/examples/advanced/cosmicray_charging/src/LISARunAction.cc b/examples/advanced/cosmicray_charging/src/LISARunAction.cc index 48a39b49bc..46ff59a962 100644 --- a/examples/advanced/cosmicray_charging/src/LISARunAction.cc +++ b/examples/advanced/cosmicray_charging/src/LISARunAction.cc @@ -150,7 +150,7 @@ void LISARunAction::BeginOfRunAction(const G4Run* aRun) { //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void LISARunAction::EndOfRunAction(const G4Run* aRun) { +void LISARunAction::EndOfRunAction(const G4Run*) { #ifdef G4ANALYSIS_USE LISAAnalysisManager* analysis = LISAAnalysisManager::getInstance(); diff --git a/examples/advanced/cosmicray_charging/src/LISAVisManager.cc b/examples/advanced/cosmicray_charging/src/LISAVisManager.cc deleted file mode 100644 index a29f919215..0000000000 --- a/examples/advanced/cosmicray_charging/src/LISAVisManager.cc +++ /dev/null @@ -1,160 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// ******************************************************************** -// * * -// * cosmicray_charging advanced example for Geant4 * -// * (adapted simulation of test-mass charging in the LISA mission) * -// * * -// * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass * -// * Imperial College London * -// * * -// * LISAVisManager class * -// * * -// ******************************************************************** -// -// HISTORY -// 22/02/2004: migrated from LISA-V04 -// -// ******************************************************************** - -#ifdef G4VIS_USE - -#include "LISAVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -LISAVisManager::LISAVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void LISAVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/gammaray_telescope/GammaRayTel.cc b/examples/advanced/gammaray_telescope/GammaRayTel.cc index 4b7fec2644..fb6369ebba 100644 --- a/examples/advanced/gammaray_telescope/GammaRayTel.cc +++ b/examples/advanced/gammaray_telescope/GammaRayTel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTel.cc,v 1.11 2003/06/16 16:46:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: GammaRayTel.cc,v 1.13 2005/06/03 13:26:15 flongo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ @@ -47,7 +47,7 @@ #endif #ifdef G4VIS_USE -#include "GammaRayTelVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "GammaRayTelDetectorConstruction.hh" @@ -109,7 +109,7 @@ int main(int argc, char** argv) #ifdef G4VIS_USE // Visualization manager - G4VisManager* visManager = new GammaRayTelVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/advanced/gammaray_telescope/History b/examples/advanced/gammaray_telescope/History index eeb76ed5b9..eadfae113e 100644 --- a/examples/advanced/gammaray_telescope/History +++ b/examples/advanced/gammaray_telescope/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.2 2004/12/10 22:55:11 gcosmo Exp $ +$Id: History,v 1.3 2005/05/03 10:05:48 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,9 @@ $Id: History,v 1.2 2004/12/10 22:55:11 gcosmo Exp $ History file ------------ +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 10.12.2004 - Gabriele Cosmo (gammaraytel-V06-02-01) Replaced usage of M_PI with CLHEP's pi. diff --git a/examples/advanced/gammaray_telescope/README b/examples/advanced/gammaray_telescope/README index 15db5850d6..64ea1e06b9 100644 --- a/examples/advanced/gammaray_telescope/README +++ b/examples/advanced/gammaray_telescope/README @@ -1,4 +1,4 @@ -$Id: README,v 1.20 2004/06/01 06:59:38 guatelli Exp $ +$Id: README,v 1.21 2005/06/03 13:22:25 flongo Exp $ ------------------------------------------------------------------- ========================================================= @@ -77,7 +77,7 @@ The main features of this example are setenv G4UI_USE_XM 1 - - Set up for analysis using AIDA3.2.1 and PI1.2.1 + - Set up for analysis using AIDA3.2.1 and PI1.3.3 To compile the GammaRayTel example with the analysis tools activated, set the following variables @@ -170,7 +170,7 @@ The main features of this example are The tracker is made of Silicon Microstrips detectors. The ReadOut geometry provides the description of the strips. -7. Hit +7. Hit ------ In this version the hits from the TKR the CAL and the ACD are generated. diff --git a/examples/advanced/gammaray_telescope/emlowe.mac b/examples/advanced/gammaray_telescope/emlowe.mac index db59623d86..bff96cbe2b 100644 --- a/examples/advanced/gammaray_telescope/emlowe.mac +++ b/examples/advanced/gammaray_telescope/emlowe.mac @@ -7,10 +7,10 @@ /process/inactivate compt gamma /process/inactivate conv gamma -/process/activate LowEnergyIoni e- -/process/activate LowEnBrem e- +/process/activate LowEnergyIoni +/process/activate LowEnBrem -/process/inactivate eIoni e- -/process/inactivate eBrem e- +/process/inactivate eIoni +/process/inactivate eBrem /process/list diff --git a/examples/advanced/gammaray_telescope/emstd.mac b/examples/advanced/gammaray_telescope/emstd.mac index 5c353e0946..c60c1e4b85 100644 --- a/examples/advanced/gammaray_telescope/emstd.mac +++ b/examples/advanced/gammaray_telescope/emstd.mac @@ -7,10 +7,10 @@ /process/activate compt gamma /process/activate conv gamma -/process/inactivate LowEnergyIoni e- -/process/inactivate LowEnBrem e- +/process/inactivate LowEnergyIoni +/process/inactivate LowEnBrem -/process/activate eIoni e- -/process/activate eBrem e- +/process/activate eIoni +/process/activate eBrem /process/list diff --git a/examples/advanced/gammaray_telescope/gammaraytel.out b/examples/advanced/gammaray_telescope/gammaraytel.out index 620eb66ba0..3b0264435c 100644 --- a/examples/advanced/gammaray_telescope/gammaraytel.out +++ b/examples/advanced/gammaray_telescope/gammaraytel.out @@ -1,17 +1,11 @@ -********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ - (19-May-2003) - Copyright : Geant4 Collaboration -********************************************** -phot: Total cross sections from Sandia parametrisation. +************************************************************* + Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* - -Bremsstrahlung Angular Generator is Modified Tsai -Universal distribution suggested by L. Urban (Geant3 manual (1993) Phys211) -Derived from Tsai distribution (Rev Mod Phys 49,421(1977)) - -MuonMinusCaptureAtRest is created Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... @@ -21,8 +15,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -33,38 +27,38 @@ Current available graphics systems are: ***** Table : Nb of materials = 10 ***** Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm - ---> Element: Tungsten Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Tungsten ( ) Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.549 cm - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.55 % Abundance 52.63 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.55 % Abundance 52.63 % Material: CesiumIodide density: 4.530 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.852 cm - ---> Element: Cesium Cs Z = 55.0 N = 132.9 A = 132.91 g/mole fractionMass: 51.15 % Abundance 50.00 % - ---> Element: Iodine I Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 48.85 % Abundance 50.00 % + ---> Element: Cesium (Cs) Z = 55.0 N = 132.9 A = 132.91 g/mole fractionMass: 51.15 % Abundance 50.00 % + ---> Element: Iodine (I) Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 48.85 % Abundance 50.00 % Material: Air density: 1.290 kg/m3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.049 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 15.99 g/mole fractionMass: 30.00 % Abundance 27.29 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 15.99 g/mole fractionMass: 30.00 % Abundance 27.29 % Material: Aluminum density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm - ---> Element: Aluminum Al Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Aluminum (Al) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Silicon density: 2.333 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.356 cm - ---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Silicon (Si) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Iron density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.758 cm - ---> Element: Iron Fe Z = 26.0 N = 55.8 A = 55.84 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Iron (Fe) Z = 26.0 N = 55.8 A = 55.84 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm - ---> Element: Lead Pb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Lead (Pb) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Galactic density: 0.000 kg/m3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204727576.737 pc - ---> Element: Galactic Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Beam density: 0.010 mg/cm3 temperature: 273.15 K pressure: 0.02 atm RadLength: 36.771 km - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 15.99 g/mole fractionMass: 30.00 % Abundance 27.29 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 15.99 g/mole fractionMass: 30.00 % Abundance 27.29 % 2 LAT @@ -84,16 +78,16 @@ GammaRayTelPhysicsList::SetCuts: default cut length : 1 mm /process/activate phot gamma /process/activate compt gamma /process/activate conv gamma -/process/inactivate LowEnergyIoni e- -/process/inactivate LowEnBrem e- -/process/activate eIoni e- -/process/activate eBrem e- +/process/inactivate LowEnergyIoni +/process/inactivate LowEnBrem +/process/activate eIoni +/process/activate eBrem /process/list Transportation, Decay, phot, compt conv, LowEnPhotoElec, LowEnCompton, LowEnConversion LowEnRayleigh, eBrem, eIoni, LowEnBrem - LowEnergyIoni, msc, annihil, MuIoni - MuBrems, MuPairProd,MuonMinusCaptureAtRest, hIoni + LowEnergyIoni, msc, annihil, muIoni + muBrems, muPairProd,MuonMinusCaptureAtRest, hIoni LElastic, PionPlusInelastic, PionMinusInelastic,PiMinusAbsorptionAtRest KaonPlusInelastic, KaonMinusInelastic, KaonZeroLInelastic, KaonZeroSInelastic ProtonInelastic,AntiProtonInelastic,AntiProtonAnnihilationAtRest, NeutronInelastic @@ -107,24 +101,29 @@ GammaRayTelPhysicsList::SetCuts: default cut length : 1 mm /gun/sourceType 2 /run/beamOn 100 -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eBrem: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 LowEnBrem: Total cross sections from EEDL database. Gamma energy sampled from a parameterised formula. @@ -149,1360 +148,1482 @@ LowEnergyIoni: Total cross sections from EEDL database. At present it can be used for electrons in the energy range [250eV,100GeV]. The process must work with G4LowEnergyBremsstrahlung. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +eBrem: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +eIoni: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +hIoni: tables are built for proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +msc: Model variant of multiple scattering for GenericIon + +muIoni: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +muIoni: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +msc: Model variant of multiple scattering for pi- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Scintillator + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.36895 keV e- 355.791 keV e+ 347.138 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Calorimeter + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : CesiumIodide + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 38.4052 keV e- 691.669 keV e+ 658.435 keV + Region(s) which use this couple : + Calorimeter + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Tracker + +Index : 5 used in the geometry : Yes recalculation needed : No + Material : Silicon + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 2.30334 keV e- 120.425 keV e+ 118.951 keV + Region(s) which use this couple : + Tracker + +Index : 6 used in the geometry : Yes recalculation needed : No + Material : Tungsten + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 36.0479 keV e- 351.438 keV e+ 334.551 keV + Region(s) which use this couple : + Tracker + +==================================================================== -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. Start Run processing. Event: 0 -Number of tracker hits in this event = 12 - 0 120.318 896 5 1 0.069911 0.0947579 -54.45 - 0 135.81 896 5 0 0.076479 0.0953037 -55.85 - 0 159.151 896 4 1 0.202453 0.104113 -84.45 - 0 154.004 896 4 0 0.209662 0.101831 -85.85 - 0 178.266 897 3 1 0.368347 0.0657257 -114.45 - 0 164.67 896 3 0 0.377737 0.0651183 -115.85 - 0 109.971 898 2 1 0.587016 0.0726717 -144.45 - 0 146.699 896 2 0 0.597656 0.0737935 -145.85 - 0 131.818 899 1 1 0.805974 0.116399 -174.45 - 0 192.966 896 1 0 0.810588 0.117136 -175.85 - 0 118.213 900 0 1 0.900296 0.107285 -204.45 - 0 132.632 896 0 0 0.9069 0.106126 -205.85 -Number of tracker digits in this event = 10 +Number of tracker hits in this event = 21 + 0 149.24681 896 5 1 0.078540081 0.12013476 -54.45 + 0 113.57295 896 5 0 0.078836029 0.10916553 -55.85 + 0 140.44327 896 4 1 0.057153834 -0.10933717 -84.45 + 0 121.09433 906 1 1 2.0862753 0.16121945 -174.45 + 0 114.3499 896 1 0 2.1940623 0.19315276 -175.85 + 0 197.15061 917 0 1 4.4265141 0.81807986 -204.45 + 0 153.05166 899 0 0 4.5264533 0.84326938 -205.85 + 0 325.65777 1366 3 1 94.62827 -52.648353 -114.81002 + 0 131.15994 813 3 0 69.985474 -16.98464 -116.25 + 0 136.22121 1243 3 1 69.63538 -16.703422 -114.85 + 0 662.96066 923 7 0 156.38931 5.4589466 3.75 + 0 234.14605 924 7 0 156.23754 5.7978457 4.0550678 + 0 169.84399 925 7 0 156.03855 6.0159289 4.1394464 + 0 124.86988 813 7 0 163.79016 -16.916204 3.75 + 0 36.593659 814 7 0 163.83955 -16.836525 4.0365548 + 0 119.95762 1713 7 1 164.1047 -16.492244 5.15 + 0 162.92602 1714 7 1 164.18798 -16.388487 5.55 + 0 161.95962 817 7 0 164.07879 -16.147417 4.15 + 0 52.335572 1108 7 0 164.45514 42.52259 3.75 + 0 149.21735 1109 7 0 164.37423 42.676402 3.8057504 + 0 20.459323 1715 7 1 164.41909 -16.111608 5.4845049 +Number of tracker digits in this event = 15 Event: 1 -Number of tracker hits in this event = 10 - 1 112.132 896 3 1 0.168491 0.52827 -114.45 - 1 116.521 898 3 0 0.173104 0.532802 -115.85 - 1 137.383 897 2 1 0.259825 0.618309 -144.45 - 1 368.112 898 2 0 0.270129 0.622535 -145.85 - 1 118.487 898 1 1 0.478408 0.711276 -174.45 - 1 164.248 899 1 0 0.4933 0.71732 -175.85 - 1 121.476 899 0 1 0.81495 0.828769 -204.45 - 1 128.609 899 0 0 0.830859 0.832103 -205.85 - 1 11.0124 890 6 0 1.40043 -1.46792 -25.85 - 1 22.6968 900 6 1 1.04822 0.180149 -24.85 -Number of tracker digits in this event = 5 +Number of tracker hits in this event = 11 + 1 173.35809 897 5 0 -0.30182357 0.33433142 -55.85 + 1 120.20501 895 4 1 -0.49638987 0.78161842 -84.45 + 1 153.77513 899 4 0 -0.5025162 0.80379875 -85.85 + 1 140.4001 895 3 1 -0.60787173 1.2378571 -114.45 + 1 188.94116 902 3 0 -0.61529838 1.2621009 -115.85 + 1 124.53159 894 2 1 -0.75517092 1.7543272 -144.45 + 1 137.38939 904 2 0 -0.76377477 1.784722 -145.85 + 1 122.24517 893 1 1 -0.95059967 2.4301609 -174.45 + 1 121.13511 908 1 0 -0.95346684 2.4625909 -175.85 + 1 107.38418 893 0 1 -1.0203246 3.1328342 -204.45 + 1 134.36926 911 0 0 -1.0264992 3.1627855 -205.85 +Number of tracker digits in this event = 10 Event: 2 Number of tracker hits in this event = 6 - 2 191.371 896 4 0 -0.128767 0.0825068 -85.85 - 2 285.262 896 3 0 -0.192417 0.132634 -115.85 - 2 136.071 897 2 0 -0.171361 0.280527 -145.85 - 2 159.956 897 1 0 -0.0696259 0.40019 -175.85 - 2 133.693 896 0 1 0.0769126 0.486783 -204.45 - 2 202.694 898 0 0 0.0902302 0.486776 -205.85 + 2 120.23956 897 4 1 0.29718764 -0.06459026 -84.45 + 2 137.24953 898 3 1 0.53044849 -0.18300119 -114.45 + 2 129.14463 899 2 1 0.80892137 -0.18731566 -144.45 + 2 121.38147 901 1 1 1.1680161 -0.20276575 -174.45 + 2 127.558 903 0 1 1.4849321 -0.3176739 -204.45 + 2 172.03882 896 5 1 0.099580185 -0.05 -54.503268 Number of tracker digits in this event = 6 Event: 3 -Number of tracker hits in this event = 5 - 3 237.189 895 3 0 -0.224236 -0.520626 -115.85 - 3 131.496 895 2 0 -0.281334 -0.609613 -145.85 - 3 114.539 894 1 0 -0.428885 -0.688555 -175.85 - 3 236.341 895 0 1 -0.608853 -0.772457 -204.45 - 3 106.046 894 0 0 -0.615591 -0.778767 -205.85 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 14 + 3 145.24549 896 5 1 0.10518758 0.14170321 -54.45 + 3 240.79331 896 5 0 0.11145474 0.14572403 -55.85 + 3 149.22527 896 4 1 0.23586991 0.22155218 -84.45 + 3 144.95029 896 4 0 0.2431029 0.22917994 -85.85 + 3 109.61528 897 3 1 0.40156599 0.38629844 -114.45 + 3 124.63159 897 3 0 0.40237044 0.39700441 -115.85 + 3 205.06131 897 2 1 0.42566244 0.61251414 -144.45 + 3 143.93417 898 2 0 0.4253372 0.62136205 -145.85 + 3 208.7854 897 1 1 0.42153249 0.78692278 -174.45 + 3 154.59167 899 1 0 0.42201375 0.79079989 -175.85 + 3 174.03842 897 0 1 0.42957315 0.88099559 -204.45 + 3 146.80132 900 0 0 0.43042361 0.88715503 -205.85 + 3 187.97349 914 0 0 -21.067434 3.7583412 -206.25 + 3 319.47299 915 0 0 -21.110388 3.8860892 -206.13797 +Number of tracker digits in this event = 13 Event: 4 -Number of tracker hits in this event = 9 - 4 169.186 901 3 1 1.06588 -0.526679 -114.45 - 4 184.446 895 3 0 1.10649 -0.546827 -115.85 - 4 126.921 905 2 1 1.94484 -0.961629 -144.45 - 4 116.929 893 2 0 1.98397 -0.979405 -145.85 - 4 122.082 909 1 1 2.76287 -1.3349 -174.45 - 4 156.029 891 1 0 2.79705 -1.35249 -175.85 - 4 176.712 913 0 1 3.50174 -1.71394 -204.45 - 4 112.935 889 0 0 3.53459 -1.72909 -205.85 - 4 259.836 918 0 1 4.47326 0.432433 -204.85 -Number of tracker digits in this event = 7 -Event: 5 -G4NuclarLevelStore: please set the G4LEVELGAMMADATA environment variable -Number of tracker hits in this event = 21 - 5 146.204 897 4 1 0.330398 -0.14545 -84.45 - 5 240.544 898 3 1 0.601492 -0.409657 -114.45 - 5 180.894 899 2 1 0.768037 -0.579837 -144.45 - 5 259.812 895 2 0 0.770733 -0.584571 -145.85 - 5 145.559 899 1 1 0.787199 -0.700575 -174.45 - 5 199.577 894 1 0 0.789217 -0.710637 -175.85 - 5 130.537 899 0 1 0.839265 -0.918015 -204.45 - 5 123.118 893 0 0 0.844707 -0.935227 -205.85 - 5 1859.01 885 0 0 -7.1164 -2.58134 -206.25 - 5 1749.49 858 0 1 -7.85382 -2.70698 -204.85 - 5 2417.46 853 1 0 -23.0549 -8.85262 -176.25 - 5 2627.12 779 1 1 -23.8112 -9.15895 -174.85 - 5 3620.11 816 2 0 -37.1688 -16.2848 -146.25 - 5 3854.45 709 2 1 -37.8256 -16.6692 -144.85 - 5 578.575 708 2 1 -37.9882 -16.7584 -144.501 - 5 2646.23 1101 0 0 -2.95273 41.192 -206.25 - 5 2518.37 881 0 1 -3.34652 45.0333 -204.85 - 5 2562.86 1429 1 0 0.404565 107.227 -176.25 - 5 2437.11 898 1 1 0.636822 110.178 -174.85 - 5 2904.95 1660 2 0 8.22875 153.407 -146.25 - 5 3231.8 938 2 1 8.49607 155.435 -144.85 -Number of tracker digits in this event = 21 -Event: 6 -Number of tracker hits in this event = 10 - 6 244.482 896 4 1 0.215532 0.110323 -84.45 - 6 128.922 896 4 0 0.227164 0.113677 -85.85 - 6 114.354 898 3 1 0.476678 0.188994 -114.45 - 6 112.487 896 3 0 0.488371 0.19344 -115.85 - 6 130.568 899 2 1 0.747226 0.297163 -144.45 - 6 119.523 897 2 0 0.75554 0.296941 -145.85 - 6 147.167 900 1 1 0.93745 0.269868 -174.45 - 6 114.568 897 1 0 0.947511 0.270988 -175.85 - 6 250.525 901 0 1 1.15672 0.295734 -204.45 - 6 235.2 897 0 0 1.16226 0.298269 -205.85 -Number of tracker digits in this event = 6 -Event: 7 -Number of tracker hits in this event = 8 - 7 174.384 896 5 0 -0.147266 0.130585 -55.85 - 7 114.712 897 4 0 -0.216237 0.28821 -85.85 - 7 193.187 898 3 0 -0.288467 0.46298 -115.85 - 7 174.405 898 2 0 -0.424754 0.550808 -145.85 - 7 104.564 895 1 1 -0.618612 0.638895 -174.45 - 7 128.067 898 1 0 -0.630203 0.639416 -175.85 - 7 134.504 893 0 1 -0.887241 0.661227 -204.45 - 7 125.1 899 0 0 -0.901857 0.66155 -205.85 -Number of tracker digits in this event = 6 -Event: 8 -Number of tracker hits in this event = 3 - 8 131.055 895 3 0 -0.14835 -0.616835 -115.85 - 8 109.216 893 2 0 -0.129684 -0.953383 -145.85 - 8 131.508 891 1 0 -0.0911623 -1.31977 -175.85 -Number of tracker digits in this event = 2 -Event: 9 -Number of tracker hits in this event = 13 - 9 122.035 896 5 1 0.227868 0.126297 -54.45 - 9 165.508 896 5 0 0.238797 0.132073 -55.85 - 9 157.614 898 4 1 0.491136 0.240431 -84.45 - 9 146.305 896 4 0 0.5108 0.248067 -85.85 - 9 163.026 900 3 1 0.918293 0.425194 -114.45 - 9 142.064 897 3 0 0.944337 0.4269 -115.85 - 9 110.966 903 2 1 1.45433 0.475395 -144.45 - 9 150.462 898 2 0 1.47841 0.48302 -145.85 - 9 127.155 905 1 1 1.96635 0.624636 -174.45 - 9 254.817 898 1 0 1.99074 0.634187 -175.85 - 9 109.449 908 0 1 2.4552 0.832774 -204.45 - 9 227.516 899 0 0 2.47807 0.8448 -205.85 - 9 80.0583 899 1 0 2.07884 0.667917 -176.064 +Number of tracker hits in this event = 12 + 4 133.9022 896 5 1 0.1403248 0.18657721 -54.45 + 4 130.81131 896 5 0 0.14999364 0.20684668 -55.85 + 4 127.37317 897 4 1 0.33497174 0.6376745 -84.45 + 4 140.33714 899 4 0 0.35279552 0.66090523 -85.85 + 4 174.8244 899 3 1 0.7365267 1.1324591 -114.45 + 4 280.85105 901 3 0 0.75555606 1.1515971 -115.85 + 4 142.7208 901 2 1 1.1024394 1.5435521 -144.45 + 4 134.31253 903 2 0 1.1231148 1.5646389 -145.85 + 4 145.37839 903 1 1 1.5216046 2.0030904 -174.45 + 4 310.31788 905 1 0 1.5349597 2.0397212 -175.85 + 4 111.89125 904 0 1 1.7840386 2.754572 -204.45 + 4 115.78038 909 0 0 1.8021197 2.7901041 -205.85 Number of tracker digits in this event = 10 +Event: 5 +Number of tracker hits in this event = 5 + 5 114.12267 895 1 0 -0.24193186 -0.48443623 -175.85 + 5 172.5448 894 0 0 -0.14744667 -0.70223588 -205.85 + 5 111.55692 1697 1 0 24.662433 160.87004 -176.25 + 5 124.62296 1698 1 0 24.621418 161.02886 -176.06512 + 5 366.10787 1014 1 1 23.750661 161.87991 -174.85 +Number of tracker digits in this event = 3 +Event: 6 +Number of tracker hits in this event = 5 + 6 135.6484 896 2 1 0.10642245 -0.1558957 -144.45 + 6 231.29484 897 1 1 0.31806001 -0.094164557 -174.45 + 6 139.45093 897 0 1 0.3655966 -0.078688027 -204.45 + 6 211.08385 903 1 0 -0.83048804 1.6263236 -175.85 + 6 90.081117 905 1 0 -0.87811818 1.9058011 -176.0422 +Number of tracker digits in this event = 4 +Event: 7 +Number of tracker hits in this event = 18 + 7 120.81269 897 3 1 0.35148376 0.14062589 -114.45 + 7 127.95508 896 3 0 0.35745714 0.14121853 -115.85 + 7 204.09983 898 2 1 0.49260696 0.13796683 -144.45 + 7 126.11138 896 2 0 0.48991678 0.13137322 -145.85 + 7 266.36014 1443 2 0 47.116073 110.03432 -146.13034 + 7 203.44782 1132 2 1 47.308512 111.65673 -144.85 + 7 59.640478 1466 2 0 49.525715 114.67495 -145.85 + 7 82.048053 1467 2 0 49.620267 114.75235 -145.86455 + 7 35.43781 1139 2 1 48.652926 114.50015 -144.85 + 7 85.112251 1138 2 1 48.647334 114.48806 -144.83915 + 7 11.348893 591 6 1 -61.30957 54.728716 -24.499519 + 7 146.14055 1176 7 0 -63.621076 56.2086 3.75 + 7 100.40449 579 7 1 -63.710844 56.127847 5.15 + 7 23.789217 1614 13 0 -63.023046 144.16268 184.08026 + 7 137.61932 1099 2 0 13.264378 40.670705 -146.25 + 7 150.67001 967 2 1 14.265027 41.711267 -144.85 + 7 12.379981 1176 3 1 56.093372 -39.21367 -114.50837 + 7 20.019803 712 3 0 55.450189 -37.203321 -115.99366 +Number of tracker digits in this event = 9 +Event: 8 +Number of tracker hits in this event = 4 + 8 118.91931 896 1 1 0.067446124 -0.4634141 -174.45 + 8 136.77962 895 1 0 0.069482521 -0.46809967 -175.85 + 8 139.02882 896 0 1 0.11616788 -0.55662735 -204.45 + 8 157.7772 895 0 0 0.11784364 -0.56464686 -205.85 +Number of tracker digits in this event = 3 +Event: 9 +Number of tracker hits in this event = 3 + 9 142.35015 896 3 1 0.050603865 -0.33806889 -114.45 + 9 131.44973 896 1 1 0.12298767 -0.39063513 -174.45 + 9 191.89611 896 0 1 0.16611098 -0.41442538 -204.45 +Number of tracker digits in this event = 3 Event: 10 -Number of tracker hits in this event = 6 - 10 137.714 898 2 1 0.487139 -0.0812151 -144.45 - 10 145.602 898 1 1 0.559092 -0.212298 -174.45 - 10 279.965 899 0 1 0.744813 -0.276429 -204.45 - 10 24.1831 896 4 1 0.203123 -0.05 -84.8208 - 10 192.035 895 4 0 0.91417 -0.56333 -85.85 - 10 107.762 896 5 1 0.05 -0.075232 -54.6872 -Number of tracker digits in this event = 4 -Event: 11 -Number of tracker hits in this event = 6 - 11 124.271 896 4 1 0.0739057 -0.0918305 -84.45 - 11 119.007 897 3 1 0.335404 -0.129368 -114.45 - 11 164.978 898 2 1 0.594312 -0.233609 -144.45 - 11 130.479 899 1 1 0.710638 -0.35342 -174.45 - 11 119.89 899 0 1 0.699909 -0.53172 -204.45 - 11 125.133 895 0 0 0.704524 -0.538424 -205.85 -Number of tracker digits in this event = 4 -Event: 12 -Number of tracker hits in this event = 4 - 12 141.234 895 3 0 -0.116477 -0.538541 -115.85 - 12 159.235 893 2 0 -0.240289 -0.913314 -145.85 - 12 114.103 891 1 0 -0.332867 -1.31425 -175.85 - 12 150.49 889 0 0 -0.202784 -1.6637 -205.85 -Number of tracker digits in this event = 3 -Event: 13 Number of tracker hits in this event = 3 - 13 124.977 897 4 0 -0.0628735 0.289155 -85.85 - 13 124.652 900 0 0 -0.0955812 0.999034 -205.85 - 13 32.1541 896 3 1 0.05 0.428366 -114.71 + 10 110.10601 903 2 1 1.5141828 -0.12331166 -144.45 + 10 163.65473 906 1 1 2.2461171 -0.25081797 -174.45 + 10 158.12573 910 0 1 2.9703533 -0.33962833 -204.45 Number of tracker digits in this event = 2 -Event: 14 -Number of tracker hits in this event = 6 - 14 122.126 896 4 1 0.124956 -0.0522105 -84.45 - 14 157.161 896 3 1 0.114495 -0.0548302 -114.45 - 14 174.946 896 2 1 0.13724 -0.126579 -144.45 - 14 391.351 896 1 1 0.10004 -0.104374 -174.45 - 14 133.402 896 0 1 0.0840556 -0.0784287 -204.45 - 14 119.095 897 1 1 0.269638 0.05 -174.68 -Number of tracker digits in this event = 5 -Event: 15 -Number of tracker hits in this event = 7 - 15 109.793 896 4 1 0.0695825 -0.228152 -84.45 - 15 145.066 896 3 1 0.22721 -0.210216 -114.45 - 15 171.13 897 2 1 0.411962 -0.287953 -144.45 - 15 112.82 898 1 1 0.530655 -0.453781 -174.45 - 15 130.021 895 1 0 0.538553 -0.458562 -175.85 - 15 145.565 899 0 1 0.671449 -0.562276 -204.45 - 15 125.551 895 0 0 0.673924 -0.571417 -205.85 -Number of tracker digits in this event = 5 -Event: 16 -Number of tracker hits in this event = 4 - 16 223.889 896 1 1 0.176837 0.055631 -174.45 - 16 123.959 896 1 0 0.174326 0.0574705 -175.85 - 16 149.213 896 0 1 0.114214 0.0652219 -204.45 - 16 134.722 896 0 0 0.107949 0.0670416 -205.85 -Number of tracker digits in this event = 4 -Event: 17 -Number of tracker hits in this event = 4 - 17 156.101 896 1 1 0.173321 0.53066 -174.45 - 17 118.418 898 1 0 0.182838 0.535059 -175.85 - 17 124.223 897 0 1 0.361275 0.619901 -204.45 - 17 127.18 898 0 0 0.371498 0.624373 -205.85 -Number of tracker digits in this event = 3 -Event: 18 -Number of tracker hits in this event = 6 - 18 194.124 899 2 1 0.847717 0.183472 -144.45 - 18 107.011 896 2 0 0.862189 0.188653 -145.85 - 18 115.158 901 1 1 1.17321 0.29086 -174.45 - 18 168.791 897 1 0 1.19429 0.292632 -175.85 - 18 119.079 903 0 1 1.60653 0.334181 -204.45 - 18 128.473 897 0 0 1.62865 0.341042 -205.85 -Number of tracker digits in this event = 3 -Event: 19 +Event: 11 +Number of tracker hits in this event = 18 + 11 427.64871 865 2 1 -6.5405807 -120.3793 -144.45 + 11 198.11047 288 2 0 -6.2157838 -122.4489 -145.85 + 11 140.13667 111 1 0 0.05 -157.91795 -175.95769 + 11 221.39176 287 2 0 -6.7011626 -122.57375 -145.85 + 11 372.13325 847 1 1 -10.053472 -165.5364 -174.45 + 11 230.17205 61 1 0 -10.626169 -167.89102 -175.85 + 11 257.88214 896 5 0 -0.088804113 0.19541688 -55.85 + 11 281.91324 878 4 1 -3.8820868 5.9536946 -84.45 + 11 274.46191 926 4 0 -4.0652996 6.2386149 -85.85 + 11 230.73435 859 3 1 -7.7582511 12.05187 -114.45 + 11 240.80313 957 3 0 -7.9227577 12.324162 -115.85 + 11 203.76337 841 2 1 -11.298041 17.86432 -144.45 + 11 234.806 986 2 0 -11.459506 18.124496 -145.85 + 11 228.08919 824 1 1 -14.732831 23.484028 -174.45 + 11 270.65101 1014 1 0 -14.869651 23.727881 -175.85 + 11 270.83878 809 0 1 -17.704252 28.665127 -204.45 + 11 261.51109 1040 0 0 -17.86918 28.900962 -205.85 + 11 140.29038 1024 0 0 -23.279068 25.727392 -205.85 +Number of tracker digits in this event = 18 +Event: 12 Number of tracker hits in this event = 1 - 19 107.791 896 4 0 -0.210181 0.0838817 -85.85 + 12 119.09127 895 0 0 -0.15679706 -0.5744895 -205.85 Number of tracker digits in this event = 0 -Event: 20 -Number of tracker hits in this event = 7 - 20 484.901 896 5 0 -0.0793636 0.179045 -55.85 - 20 150.886 896 2 1 0.0792447 0.671912 -144.45 - 20 116.388 899 2 0 0.0861512 0.680239 -145.85 - 20 259.521 896 1 1 0.228943 0.857774 -174.45 - 20 255.42 900 1 0 0.229812 0.869463 -175.85 - 20 159.458 897 0 1 0.25883 1.12062 -204.45 - 20 103.671 901 0 0 0.262437 1.1302 -205.85 -Number of tracker digits in this event = 5 -Event: 21 -Number of tracker hits in this event = 7 - 21 128.997 897 4 0 -0.0737356 0.352026 -85.85 - 21 153.55 898 3 0 -0.24864 0.558359 -115.85 - 21 108.709 899 2 0 -0.373906 0.702574 -145.85 - 21 160.712 900 1 0 -0.44408 0.853007 -175.85 - 21 127.051 895 0 1 -0.521873 1.17653 -204.45 - 21 112.569 901 0 0 -0.528574 1.1944 -205.85 - 21 34.1864 897 5 0 0.05 0.271647 -56.1551 -Number of tracker digits in this event = 4 -Event: 22 -Number of tracker hits in this event = 1 - 22 126.594 896 0 1 0.0849413 -0.337455 -204.45 -Number of tracker digits in this event = 1 -Event: 23 -Number of tracker hits in this event = 3 - 23 150.998 896 2 1 0.0664181 0.268696 -144.45 - 23 115.241 897 2 0 0.0642227 0.279218 -145.85 - 23 113.836 899 0 0 0.0543462 0.694159 -205.85 -Number of tracker digits in this event = 1 -Event: 24 +Event: 13 Number of tracker hits in this event = 8 - 24 112.877 894 3 1 -0.684547 0.130945 -114.45 - 24 106.283 896 3 0 -0.696495 0.132096 -115.85 - 24 161.827 893 2 1 -0.939592 0.146984 -144.45 - 24 113.686 896 2 0 -0.956625 0.148596 -145.85 - 24 282.156 891 1 1 -1.32118 0.166255 -174.45 - 24 182.388 896 1 0 -1.34155 0.163411 -175.85 - 24 154.306 889 0 1 -1.76274 0.106052 -204.45 - 24 228.283 896 0 0 -1.77919 0.106671 -205.85 + 13 144.82266 896 4 0 -0.11605331 0.20618003 -85.85 + 13 178.39582 897 3 0 -0.23318902 0.38894169 -115.85 + 13 120.54651 898 2 0 -0.41428182 0.56983984 -145.85 + 13 123.69138 895 1 1 -0.63927543 0.75251501 -174.45 + 13 135.58742 899 1 0 -0.64743319 0.76551968 -175.85 + 13 145.23147 894 0 1 -0.82579271 1.0307516 -204.45 + 13 113.18098 900 0 0 -0.83521145 1.0385086 -205.85 + 13 2.3083846 896 6 1 0.06863103 -0.05 -24.676606 +Number of tracker digits in this event = 6 +Event: 14 +Number of tracker hits in this event = 10 + 14 243.995 896 5 1 0.19951852 -0.13310078 -54.45 + 14 131.10152 898 4 1 0.52194048 -0.39001494 -84.45 + 14 125.40862 900 3 1 0.86100019 -0.64831353 -114.45 + 14 119.00583 894 3 0 0.87505813 -0.66056272 -115.85 + 14 166.25072 901 2 1 1.1456827 -0.91549959 -144.45 + 14 181.08799 893 2 0 1.1614289 -0.9256881 -145.85 + 14 250.37013 903 1 1 1.4977754 -1.1494159 -174.45 + 14 114.93503 892 1 0 1.5163638 -1.1618028 -175.85 + 14 137.68396 905 0 1 1.9436095 -1.4248492 -204.45 + 14 158.65413 891 0 0 1.9634433 -1.4345264 -205.85 +Number of tracker digits in this event = 8 +Event: 15 +Number of tracker hits in this event = 3 + 15 166.88843 897 2 0 -0.06707659 0.35251082 -145.85 + 15 140.8832 898 1 0 -0.076075373 0.50134527 -175.85 + 15 159.17689 899 0 0 -0.054977195 0.67366111 -205.85 +Number of tracker digits in this event = 3 +Event: 16 +Number of tracker hits in this event = 5 + 16 118.52854 896 5 0 -0.050399993 0.14307247 -55.85 + 16 152.92 897 4 0 -0.10704875 0.31637887 -85.85 + 16 171.40262 898 3 0 -0.082059551 0.5416951 -115.85 + 16 112.45554 896 0 1 0.18841206 1.4645202 -204.45 + 16 146.81232 903 0 0 0.1986574 1.4826504 -205.85 +Number of tracker digits in this event = 3 +Event: 17 +Number of tracker hits in this event = 12 + 17 501.2252 892 5 1 -1.2172387 0.30957483 -54.45 + 17 131.65665 897 5 0 -1.2775963 0.3217576 -55.85 + 17 139.68349 885 4 1 -2.5366394 0.51408392 -84.45 + 17 135.79296 898 4 0 -2.5888052 0.51604286 -85.85 + 17 129.37595 880 3 1 -3.6451564 0.54534592 -114.45 + 17 120.67173 898 3 0 -3.6942874 0.54964935 -115.85 + 17 202.84276 874 2 1 -4.6952275 0.62162499 -144.45 + 17 131.31265 898 2 0 -4.7508789 0.62750844 -145.85 + 17 127.42779 869 1 1 -5.8124393 0.71689933 -174.45 + 17 122.18306 899 1 0 -5.8642076 0.71937112 -175.85 + 17 166.11479 863 0 1 -6.9186379 0.77467751 -204.45 + 17 121.82575 899 0 0 -6.9716229 0.77586793 -205.85 +Number of tracker digits in this event = 12 +Event: 18 +Number of tracker hits in this event = 10 + 18 139.35394 895 4 1 -0.45578195 -0.57786471 -84.45 + 18 109.89924 895 4 0 -0.46995331 -0.59808206 -85.85 + 18 149.90683 894 3 1 -0.74837178 -1.0062613 -114.45 + 18 254.35929 893 3 0 -0.75956192 -1.0311846 -115.85 + 18 132.50205 893 2 1 -0.96290035 -1.55032 -144.45 + 18 210.00415 890 2 0 -0.96891222 -1.5781061 -145.85 + 18 185.5294 892 1 1 -1.0893572 -2.1512797 -174.45 + 18 128.91725 887 1 0 -1.0972402 -2.1680693 -175.85 + 18 304.89977 891 0 1 -1.2624727 -2.5042381 -204.45 + 18 127.50269 885 0 0 -1.2712661 -2.5203463 -205.85 +Number of tracker digits in this event = 9 +Event: 19 +Number of tracker hits in this event = 6 + 19 128.29013 896 5 1 0.16109464 -0.075862176 -54.45 + 19 145.25344 897 4 1 0.39850979 -0.22074003 -84.45 + 19 117.31709 898 3 1 0.55474633 -0.37369718 -114.45 + 19 145.92944 898 2 1 0.45954228 -0.39242681 -144.45 + 19 124.15658 897 1 1 0.36505728 -0.30437611 -174.45 + 19 123.95024 897 0 1 0.34873984 -0.33930482 -204.45 +Number of tracker digits in this event = 5 +Event: 20 +Number of tracker hits in this event = 2 + 20 121.99484 896 2 1 0.073088901 -0.062765373 -144.45 + 20 126.28666 896 1 1 0.14805115 -0.052370321 -174.45 +Number of tracker digits in this event = 2 +Event: 21 +Number of tracker hits in this event = 8 + 21 150.67434 897 5 1 0.2665055 -0.1177829 -54.45 + 21 151.39737 898 4 1 0.45960085 -0.16742212 -84.45 + 21 133.75486 900 2 1 0.85076218 0.056771626 -144.45 + 21 143.98428 896 2 0 0.84666402 0.07832225 -145.85 + 21 236.79741 899 1 1 0.76624726 0.52143981 -174.45 + 21 277.35485 898 1 0 0.76189657 0.54705579 -175.85 + 21 110.3025 899 0 1 0.66587882 1.0757036 -204.45 + 21 249.77192 901 0 0 0.65809328 1.1004925 -205.85 +Number of tracker digits in this event = 7 +Event: 22 +Number of tracker hits in this event = 7 + 22 140.62879 895 3 0 -0.30247291 -0.49885893 -115.85 + 22 125.57887 895 2 1 -0.51749652 -0.83721391 -144.45 + 22 178.43117 893 2 0 -0.52986543 -0.85397712 -145.85 + 22 123.7744 894 1 1 -0.77775055 -1.1737968 -174.45 + 22 138.18166 892 1 0 -0.78546495 -1.1899155 -175.85 + 22 134.84948 893 0 1 -0.95605962 -1.5369514 -204.45 + 22 143.91631 890 0 0 -0.96492123 -1.5553245 -205.85 +Number of tracker digits in this event = 7 +Event: 23 +Number of tracker hits in this event = 6 + 23 122.96761 896 4 1 0.16978117 -0.061441853 -84.45 + 23 173.14738 897 3 1 0.30589925 -0.1060798 -114.45 + 23 154.8141 898 2 1 0.45345045 -0.20762481 -144.45 + 23 109.28003 898 1 1 0.60655925 -0.27400638 -174.45 + 23 110.46299 899 0 1 0.70661221 -0.44499949 -204.45 + 23 129.60354 1398 7 0 33.323542 101.11073 4.1047601 +Number of tracker digits in this event = 4 +Event: 24 +Number of tracker hits in this event = 6 + 24 253.78514 896 4 1 0.12945606 0.066015804 -84.45 + 24 141.18207 896 4 0 0.12593355 0.0754623 -85.85 + 24 149.81028 897 2 0 -0.14600649 0.42053805 -145.85 + 24 143.79081 898 1 0 -0.23357836 0.58562605 -175.85 + 24 108.23412 899 0 0 -0.28939708 0.75271433 -205.85 + 24 190.03131 896 5 1 0.067840674 0.05 -54.737675 Number of tracker digits in this event = 5 Event: 25 -Number of tracker hits in this event = 4 - 25 123.606 896 3 0 -0.0895895 0.11395 -115.85 - 25 116.737 897 2 0 -0.139613 0.362113 -145.85 - 25 113.26 898 1 0 -0.18081 0.60504 -175.85 - 25 112.206 900 0 0 -0.318094 0.931138 -205.85 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 10 + 25 120.97727 896 4 0 -0.064331348 0.13634232 -85.85 + 25 193.92339 896 3 1 0.13621877 0.37341056 -114.45 + 25 121.22735 897 3 0 0.14196585 0.39002437 -115.85 + 25 127.17825 897 2 1 0.25095208 0.72522121 -144.45 + 25 189.34898 899 2 0 0.25902066 0.74090817 -145.85 + 25 138.46184 897 1 1 0.41725636 1.0705044 -174.45 + 25 108.86882 901 1 0 0.42604562 1.0910493 -175.85 + 25 150.40686 898 0 1 0.62101042 1.5344142 -204.45 + 25 178.42274 903 0 0 0.63490882 1.558603 -205.85 + 25 0.22109175 1464 3 0 170.81958 114.25429 -116.01517 +Number of tracker digits in this event = 8 Event: 26 -Number of tracker hits in this event = 12 - 26 123.197 896 5 0 -0.104148 0.0676554 -55.85 - 26 117.343 896 4 0 -0.295947 0.182047 -85.85 - 26 137.811 895 3 1 -0.507637 0.354385 -114.45 - 26 156.249 897 3 0 -0.52452 0.362275 -115.85 - 26 145.211 893 2 1 -0.881595 0.500265 -144.45 - 26 135.891 898 2 0 -0.898534 0.50386 -145.85 - 26 179.045 891 1 1 -1.26204 0.548447 -174.45 - 26 123.783 898 1 0 -1.28546 0.548065 -175.85 - 26 132.998 889 0 1 -1.77934 0.531151 -204.45 - 26 123.651 898 0 0 -1.80633 0.526425 -205.85 - 26 0.424606 1118 9 0 104.36 44.6414 63.8741 - 26 9.89581 1070 7 0 51.9857 34.9982 3.84844 -Number of tracker digits in this event = 9 +Number of tracker hits in this event = 5 + 26 120.82323 896 5 0 -0.062697991 0.11144191 -55.85 + 26 123.73772 896 4 0 -0.11744367 0.19778873 -85.85 + 26 358.456 897 3 0 -0.21044881 0.33260859 -115.85 + 26 134.8568 898 2 0 -0.25667331 0.4780755 -145.85 + 26 254.29869 899 1 0 -0.16297839 0.71537846 -175.85 +Number of tracker digits in this event = 5 Event: 27 -Number of tracker hits in this event = 12 - 27 152.374 896 4 1 0.0584993 0.256715 -84.45 - 27 119.099 897 4 0 0.0695916 0.265961 -85.85 - 27 146.004 897 3 1 0.306586 0.436991 -114.45 - 27 207.703 897 3 0 0.320669 0.446862 -115.85 - 27 155.852 898 2 1 0.618599 0.64922 -144.45 - 27 170.809 899 2 0 0.634551 0.661947 -145.85 - 27 186.649 900 1 1 0.921101 0.928472 -174.45 - 27 168.072 900 1 0 0.940169 0.936505 -175.85 - 27 153.331 902 0 1 1.33036 1.09085 -204.45 - 27 168.979 901 0 0 1.35404 1.09769 -205.85 - 27 160.519 896 5 1 0.05 0.0730486 -54.5986 - 27 459.473 897 5 1 0.282488 0.329338 -54.8 -Number of tracker digits in this event = 11 -Event: 28 -Number of tracker hits in this event = 8 - 28 134.254 896 3 1 0.0591971 0.338062 -114.45 - 28 162.438 897 3 0 0.0634512 0.34909 -115.85 - 28 220.39 896 2 1 0.160385 0.56623 -144.45 - 28 110.262 898 2 0 0.16399 0.572272 -145.85 - 28 140.067 897 1 1 0.254055 0.662735 -174.45 - 28 121.144 899 1 0 0.257973 0.673607 -175.85 - 28 120.511 897 0 1 0.342078 0.90394 -204.45 - 28 164.121 900 0 0 0.347724 0.904265 -205.85 -Number of tracker digits in this event = 7 -Event: 29 Number of tracker hits in this event = 4 - 29 140.612 897 3 1 0.261545 0.0766573 -114.45 - 29 115.886 896 3 0 0.266798 0.0746516 -115.85 - 29 126.679 899 0 1 0.808489 0.0669592 -204.45 - 29 123.941 896 0 0 0.821527 0.0683328 -205.85 + 27 221.39224 896 4 0 -0.22604797 0.1966576 -85.85 + 27 128.59854 895 2 1 -0.61408999 -0.13619484 -144.45 + 27 143.08282 894 1 1 -0.71554436 -0.19078997 -174.45 + 27 263.5002 893 0 1 -0.87965884 -0.24362411 -204.45 +Number of tracker digits in this event = 4 +Event: 28 +Number of tracker hits in this event = 3 + 28 199.02132 896 3 1 0.1113025 -0.13800936 -114.45 + 28 233.74548 896 2 1 0.082711407 -0.25584686 -144.45 + 28 169.42948 895 0 0 -0.068505571 -0.6149185 -205.85 Number of tracker digits in this event = 3 +Event: 29 +Number of tracker hits in this event = 13 + 29 198.88881 896 5 0 -0.20435632 0.054986282 -55.85 + 29 199.81512 895 4 1 -0.46181247 0.11942236 -84.45 + 29 133.80392 896 4 0 -0.47562863 0.12253873 -85.85 + 29 129.18496 894 3 1 -0.74631598 0.17458951 -114.45 + 29 136.71761 896 3 0 -0.75963209 0.17620394 -115.85 + 29 127.68453 893 2 1 -1.0104367 0.20713025 -144.45 + 29 111.9505 896 2 0 -1.0234594 0.20963694 -145.85 + 29 304.73301 891 1 1 -1.2795838 0.24817528 -174.45 + 29 134.08293 897 1 0 -1.2877811 0.25079361 -175.85 + 29 147.54502 890 0 1 -1.452688 0.30368181 -204.45 + 29 136.9358 897 0 0 -1.4607365 0.31066139 -205.85 + 29 67.256993 910 4 0 2.7525582 2.9387078 -85.85 + 29 403.33494 911 4 0 2.8511379 3.0582035 -85.915104 +Number of tracker digits in this event = 11 Event: 30 Number of tracker hits in this event = 4 - 30 147.104 896 3 0 -0.122191 0.194075 -115.85 - 30 126.594 898 2 0 -0.116973 0.452026 -145.85 - 30 133.846 899 1 0 -0.259726 0.732637 -175.85 - 30 144.521 901 0 0 -0.443224 1.11775 -205.85 -Number of tracker digits in this event = 4 + 30 171.63563 895 1 1 -0.57131413 0.21232451 -174.45 + 30 135.09684 896 1 0 -0.57277461 0.21881939 -175.85 + 30 117.85071 895 0 1 -0.59383943 0.35585741 -204.45 + 30 123.27094 897 0 0 -0.59316446 0.37090851 -205.85 +Number of tracker digits in this event = 3 Event: 31 -Number of tracker hits in this event = 9 - 31 139.221 896 4 0 -0.173078 0.114339 -85.85 - 31 163.917 895 3 1 -0.497434 0.281431 -114.45 - 31 118.42 897 3 0 -0.511789 0.281703 -115.85 - 31 171.433 894 2 1 -0.806759 0.266466 -144.45 - 31 136.932 897 2 0 -0.82068 0.267345 -145.85 - 31 129.535 892 1 1 -1.07549 0.304388 -174.45 - 31 122.623 897 1 0 -1.08644 0.306209 -175.85 - 31 318.588 891 0 1 -1.3184 0.338753 -204.45 - 31 135.143 897 0 0 -1.32436 0.341894 -205.85 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 5 + 31 124.10842 895 2 1 -0.47145843 -0.39331117 -144.45 + 31 111.61972 893 1 1 -0.8566265 -0.65958765 -174.45 + 31 132.9084 894 1 0 -0.87482204 -0.66883893 -175.85 + 31 118.60833 892 0 1 -1.2480241 -0.85833245 -204.45 + 31 250.08085 893 0 0 -1.2676045 -0.86646521 -205.85 +Number of tracker digits in this event = 3 Event: 32 -Number of tracker hits in this event = 8 - 32 124.14 897 3 1 0.409566 0.156415 -114.45 - 32 176.184 896 3 0 0.421095 0.167782 -115.85 - 32 135.226 899 2 1 0.687533 0.408879 -144.45 - 32 89.9651 897 2 0 0.702313 0.425395 -145.85 - 32 121.533 900 1 1 1.02543 0.769287 -174.45 - 32 141.796 899 1 0 1.0381 0.780577 -175.85 - 32 108.013 902 0 1 1.28124 0.993178 -204.45 - 32 178.046 900 0 0 1.28705 1.0053 -205.85 +Number of tracker hits in this event = 6 + 32 138.10666 895 3 0 -0.24992569 -0.64145618 -115.85 + 32 147.36085 893 2 0 -0.37365907 -0.86575533 -145.85 + 32 130.38007 895 1 1 -0.49791837 -1.2151984 -174.45 + 32 135.39356 892 1 0 -0.50341372 -1.2298804 -175.85 + 32 130.96516 895 0 1 -0.62300746 -1.5106446 -204.45 + 32 203.28229 890 0 0 -0.62542609 -1.5197956 -205.85 Number of tracker digits in this event = 6 Event: 33 Number of tracker hits in this event = 7 - 33 129.28 896 3 0 -0.392365 0.147154 -115.85 - 33 107.807 895 2 1 -0.531755 0.40271 -144.45 - 33 119.09 897 2 0 -0.536336 0.414175 -145.85 - 33 139.065 895 1 1 -0.616741 0.657809 -174.45 - 33 123.722 899 1 0 -0.619591 0.67295 -175.85 - 33 217.077 894 0 1 -0.66489 0.985332 -204.45 - 33 191.375 900 0 0 -0.665749 1.00161 -205.85 -Number of tracker digits in this event = 5 + 33 420.46023 896 3 1 0.07452759 -0.37052535 -114.45 + 33 113.86738 896 1 1 0.075319908 -0.706832 -174.45 + 33 218.41448 894 1 0 0.074457571 -0.71471244 -175.85 + 33 106.73639 896 0 1 0.073979606 -0.88469404 -204.45 + 33 248.36304 893 0 0 0.072901405 -0.90031609 -205.85 + 33 157.2081 1138 1 0 -7.6708603 48.472454 -176.25 + 33 19.827364 1124 1 0 -20.194012 45.781876 -176.25 +Number of tracker digits in this event = 4 Event: 34 -Number of tracker hits in this event = 12 - 34 296.506 896 4 1 0.239589 -0.108019 -84.45 - 34 336.468 898 3 1 0.478534 -0.222063 -114.45 - 34 136.767 899 2 1 0.671475 -0.438199 -144.45 - 34 169.146 900 1 1 0.890296 -0.552677 -174.45 - 34 141.726 895 1 0 0.902904 -0.557679 -175.85 - 34 163.909 901 0 1 1.14859 -0.660066 -204.45 - 34 134.911 894 0 0 1.15964 -0.66471 -205.85 - 34 32.5157 979 2 0 -46.1374 16.792 -146.25 - 34 177.969 893 4 0 -1.0307 -0.942526 -85.85 - 34 204.8 892 4 0 -1.41602 -1.11892 -86.25 - 34 201.471 886 4 1 -2.25633 -3.89332 -84.85 - 34 304.891 885 4 1 -2.55326 -4.22382 -84.61 -Number of tracker digits in this event = 11 -Event: 35 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 36 -Number of tracker hits in this event = 7 - 36 144.648 897 4 1 0.263894 -0.152844 -84.45 - 36 120.929 898 3 1 0.531839 -0.265292 -114.45 - 36 177.263 899 2 1 0.734273 -0.416243 -144.45 - 36 148.374 899 1 1 0.735496 -0.599497 -174.45 - 36 130.601 895 1 0 0.732833 -0.613169 -175.85 - 36 124.755 899 0 1 0.662999 -0.903186 -204.45 - 36 159.318 893 0 0 0.666335 -0.91636 -205.85 -Number of tracker digits in this event = 7 -Event: 37 -Number of tracker hits in this event = 52 - 37 135.759 896 5 0 -0.0532498 0.0899956 -55.85 - 37 110.161 896 4 0 -0.067709 0.112295 -85.85 - 37 772.316 899 3 0 -0.0883926 0.802181 -115.85 - 37 710.815 902 2 1 1.29267 12.9232 -144.45 - 37 594.096 963 2 0 1.33293 13.4801 -145.85 - 37 732.73 904 1 1 1.82897 24.8468 -174.45 - 37 597.431 1022 1 0 1.8586 25.3617 -175.85 - 37 734.644 907 0 1 2.38733 35.7517 -204.45 - 37 717.787 1077 0 0 2.42104 36.3047 -205.85 - 37 8132.59 896 3 1 0.05 0.504871 -114.594 - 37 225.049 897 3 1 0.281625 0.880138 -114.834 - 37 3667.76 907 3 0 1.2011 2.27832 -115.85 - 37 3708.44 908 3 0 1.38408 2.5636 -116.045 - 37 707.196 909 3 0 1.53553 2.77158 -116.221 - 37 5563.92 929 3 0 1.39565 6.67039 -115.85 - 37 7704.46 1045 2 1 29.9591 130.39 -144.45 - 37 8251.56 1576 2 0 31.2636 136.638 -145.85 - 37 338.868 657 4 0 -47.1736 -48.1687 -86.25 - 37 318.16 650 4 1 -49.4552 -50.5371 -84.85 - 37 100.485 440 5 0 -90.7132 -92.06 -56.25 - 37 278.188 439 5 0 -90.821 -92.1694 -56.1757 - 37 118.54 438 5 0 -91.0899 -92.4299 -55.9948 - 37 316.687 437 5 1 -92.7129 -94.0415 -54.85 - 37 391.064 268 6 0 -139.973 -126.466 -26.25 - 37 253.929 189 6 1 -142.248 -128.03 -24.85 - 37 332.222 101 7 0 -177.971 -159.752 3.75 - 37 247.759 2 7 1 -179.603 -161.125 5.15 - 37 230.392 52 7 0 -145.509 -169.697 3.75 - 37 162.168 171 7 1 -145.845 -171.086 5.15 - 37 458.21 170 7 1 -146.002 -171.413 5.55 - 37 72.1197 169 7 1 -146.192 -171.191 5.40164 - 37 171.016 878 3 1 -3.85973 -11.3411 -114.45 - 37 239.368 881 3 1 -3.29105 -11.5623 -114.649 - 37 213.718 879 3 1 -3.79186 -11.5733 -114.771 - 37 141.507 877 3 1 -4.15125 -11.5078 -114.829 - 37 293.836 875 3 1 -4.45458 -11.7982 -114.729 - 37 0.458918 876 3 1 -4.31245 -11.5805 -114.451 - 37 65.4787 793 4 0 69.0663 -20.8639 -85.9244 - 37 937.189 891 3 1 -1.30292 -1.88134 -114.45 - 37 65.7962 886 3 1 -2.33899 -2.4209 -114.796 - 37 592.156 877 3 0 -5.75621 -4.08398 -115.85 - 37 295.418 879 3 0 -19.494 -3.71491 -116.25 - 37 218.958 815 3 1 -16.6021 -1.71134 -114.85 - 37 304.81 818 3 1 -15.887 -1.26179 -114.572 - 37 17.5516 648 9 0 143.652 -49.9969 63.9288 - 37 194.042 876 3 0 -3.08994 -4.40138 -115.85 - 37 117.133 873 3 0 -3.40617 -4.90742 -116.089 - 37 75.3442 888 3 1 -1.86903 -2.71697 -114.787 - 37 396.956 721 3 0 -28.4821 -35.3431 -116.223 - 37 3335.09 915 2 1 3.93013 -12.3818 -144.45 - 37 1389.13 916 2 1 4.1663 -12.3748 -144.808 - 37 4562.64 842 2 0 6.57556 -11.1359 -145.85 -Number of tracker digits in this event = 42 -Event: 38 -Number of tracker hits in this event = 9 - 38 138.121 896 5 1 0.0538762 0.095398 -54.45 - 38 364.645 896 5 0 0.0580019 0.0981506 -55.85 - 38 180.144 896 4 1 0.142793 0.164497 -84.45 - 38 129.113 896 4 0 0.146047 0.166926 -85.85 - 38 129.561 896 3 1 0.206857 0.164 -114.45 - 38 129.04 896 3 0 0.202105 0.169586 -115.85 - 38 109.452 896 2 1 0.0918159 0.282885 -144.45 - 38 140.675 897 2 0 0.0859788 0.284297 -145.85 - 38 129.049 896 0 0 -0.213902 0.217935 -205.85 -Number of tracker digits in this event = 8 -Event: 39 -Number of tracker hits in this event = 6 - 39 139.607 895 3 1 -0.576364 -0.224572 -114.45 - 39 139.071 893 2 1 -0.854763 -0.342111 -144.45 - 39 120.845 892 1 1 -1.06279 -0.473795 -174.45 - 39 112.973 895 1 0 -1.06486 -0.484696 -175.85 - 39 125.068 892 0 1 -1.10933 -0.723796 -204.45 - 39 110.74 894 0 0 -1.11115 -0.736082 -205.85 -Number of tracker digits in this event = 4 -Event: 40 Number of tracker hits in this event = 5 - 40 167.36 900 1 0 -0.0834563 0.941728 -175.85 - 40 143.23 901 0 0 -0.266322 1.19063 -205.85 - 40 140.544 904 2 0 -0.448782 1.79973 -145.85 - 40 29.97 905 2 0 -0.510932 2.03191 -146.202 - 40 182.37 896 4 1 0.05 0.195813 -84.5749 + 34 137.39825 896 4 0 -0.081976077 0.050607731 -85.85 + 34 137.76669 896 3 0 -0.15933183 0.072526415 -115.85 + 34 188.09415 896 2 0 -0.28945948 0.11748927 -145.85 + 34 219.26388 896 1 0 -0.37896175 0.10341506 -175.85 + 34 175.68591 896 0 0 -0.36793802 0.20901816 -205.85 +Number of tracker digits in this event = 5 +Event: 35 +Number of tracker hits in this event = 5 + 35 116.91799 896 4 1 0.14912127 -0.074763068 -84.45 + 35 124.7082 896 3 1 0.14316054 -0.087443444 -114.45 + 35 197.08585 897 2 1 0.26348953 -0.11066704 -144.45 + 35 125.55851 896 1 1 0.18232954 -0.14318967 -174.45 + 35 135.11163 896 0 1 0.22947574 -0.32550122 -204.45 Number of tracker digits in this event = 4 -Event: 41 -Number of tracker hits in this event = 1 - 41 219.841 1786 5 1 178.63 63.688 -54.5366 -Number of tracker digits in this event = 1 -Event: 42 -Number of tracker hits in this event = 11 - 42 117.107 896 3 1 0.138291 -0.100186 -114.45 - 42 129.225 897 2 1 0.366927 -0.135344 -144.45 - 42 268.489 898 1 1 0.63826 -0.286202 -174.45 - 42 222.343 900 0 1 0.886987 -0.475515 -204.45 - 42 163.704 895 0 0 0.897245 -0.48431 -205.85 - 42 1936.44 894 0 0 4.28022 -0.697866 -206.25 - 42 1978.53 917 0 1 4.4171 -0.618058 -204.85 - 42 2868.25 901 1 0 7.80236 1.1311 -176.25 - 42 3098 935 1 1 7.96264 1.22822 -174.85 - 42 3752.41 879 2 0 19.5046 -3.6772 -146.25 - 42 197.364 1029 1 0 55.3609 26.7944 -176.25 -Number of tracker digits in this event = 10 -Event: 43 -Number of tracker hits in this event = 3 - 43 270.451 896 2 0 -0.14669 0.0997014 -145.85 - 43 207.992 896 1 0 -0.144868 0.231452 -175.85 - 43 145.296 897 0 0 -0.103468 0.275543 -205.85 +Event: 36 +Number of tracker hits in this event = 5 + 36 148.69811 898 3 1 0.45010531 -0.054204748 -114.45 + 36 65.022812 901 1 1 1.08031 0.05 -174.6481 + 36 113.07272 896 1 0 1.0869172 0.062332157 -175.85 + 36 141.45231 901 0 1 1.2318806 0.3529326 -204.45 + 36 174.68329 897 0 0 1.2351717 0.37192152 -205.85 Number of tracker digits in this event = 3 -Event: 44 +Event: 37 +Number of tracker hits in this event = 13 + 37 135.54044 896 4 1 0.089214897 -0.13594422 -84.45 + 37 198.39761 896 3 1 0.10199784 -0.38464824 -114.45 + 37 157.87331 896 2 1 0.12090818 -0.62246971 -144.45 + 37 131.20139 895 2 0 0.12367448 -0.63455654 -145.85 + 37 123.63848 896 1 1 0.18448618 -0.86314105 -174.45 + 37 107.04325 893 1 0 0.19035119 -0.87008531 -175.85 + 37 113.59808 897 0 1 0.31763095 -1.0045036 -204.45 + 37 354.35787 893 0 0 0.32757496 -1.0068827 -205.85 + 37 85.826378 676 3 0 37.27019 -44.396998 -116.25 + 37 113.26711 675 3 0 37.113115 -44.513658 -116.17111 + 37 167.79553 674 3 0 37.183839 -44.682729 -116.11069 + 37 204.34694 967 3 0 -148.77504 14.34154 -116.25 + 37 205.89934 150 3 1 -150.09505 15.834273 -114.85 +Number of tracker digits in this event = 9 +Event: 38 +Number of tracker hits in this event = 8 + 38 119.38813 896 4 0 -0.27750061 0.10565801 -85.85 + 38 151.40864 897 3 0 -0.44920843 0.25468185 -115.85 + 38 145.55347 894 2 1 -0.66726582 0.438834 -144.45 + 38 182.03648 897 2 0 -0.67756681 0.44919989 -145.85 + 38 125.62545 893 1 1 -0.88305659 0.66991927 -174.45 + 38 113.26345 899 1 0 -0.89332943 0.68035334 -175.85 + 38 139.00086 892 0 1 -1.1091823 0.892967 -204.45 + 38 144.95689 900 0 0 -1.1357031 0.89648348 -205.85 +Number of tracker digits in this event = 6 +Event: 39 +Number of tracker hits in this event = 9 + 39 166.33426 896 4 0 0.051030747 0.074623812 -85.85 + 39 110.85945 896 3 1 0.19125538 0.18465052 -114.45 + 39 108.65344 896 3 0 0.20093237 0.19074447 -115.85 + 39 123.30437 897 2 1 0.40814978 0.30894179 -144.45 + 39 112.95639 897 2 0 0.41572354 0.31513545 -145.85 + 39 159.16841 898 1 1 0.57295761 0.42919825 -174.45 + 39 139.62407 897 1 0 0.57250887 0.43099785 -175.85 + 39 124.7856 898 0 1 0.57453642 0.47915131 -204.45 + 39 152.04718 898 0 0 0.57539131 0.48356605 -205.85 +Number of tracker digits in this event = 6 +Event: 40 +Number of tracker hits in this event = 2 + 40 5128.9881 606 0 0 -139.89261 -58.40203 -206.25 + 40 26.151595 895 0 0 -4.5663862 -0.58810913 -205.88662 +Number of tracker digits in this event = 1 +Event: 41 Number of tracker hits in this event = 4 - 44 173.21 896 3 1 0.154818 -0.0908307 -114.45 - 44 140.473 896 2 1 0.160918 -0.0760688 -144.45 - 44 1564.89 356 4 1 -108.855 -113.27 -84.6519 - 44 24.1384 896 6 0 0.143959 0.05 -26.2238 + 41 153.05987 896 5 0 -0.083636404 0.059980245 -55.85 + 41 130.11274 896 4 0 -0.21238579 0.12373403 -85.85 + 41 162.70634 896 3 0 -0.28295595 0.11362098 -115.85 + 41 136.8293 895 0 1 -0.56106426 -0.12839039 -204.45 +Number of tracker digits in this event = 4 +Event: 42 +Number of tracker hits in this event = 8 + 42 235.31014 896 4 1 0.05345648 0.13476726 -84.45 + 42 110.60916 896 4 0 0.053860589 0.14418688 -85.85 + 42 114.61085 896 3 1 0.069095635 0.32625793 -114.45 + 42 188.55448 897 3 0 0.067238884 0.33647547 -115.85 + 42 150.89295 896 1 1 0.079347194 0.73012123 -174.45 + 42 132.0223 899 1 0 0.082024295 0.73623679 -175.85 + 42 140.79377 896 0 1 0.11262278 0.84585707 -204.45 + 42 128.11712 900 0 0 0.11526298 0.85621905 -205.85 +Number of tracker digits in this event = 6 +Event: 43 +Number of tracker hits in this event = 17 + 43 146.0981 895 1 1 -0.46890184 -0.13764244 -174.45 + 43 129.70171 895 0 1 -0.63001227 -0.20013504 -204.45 + 43 8985.9421 907 0 1 2.3505092 -0.24218141 -204.85 + 43 8983.163 902 1 0 2.6477206 1.4138922 -176.25 + 43 968.99655 793 0 0 10.624234 -20.957773 -206.25 + 43 1165.8626 952 0 1 11.418138 -22.456174 -204.85 + 43 901.10085 641 1 0 28.918619 -51.35638 -176.25 + 43 1125.4534 1044 1 1 29.775206 -52.789683 -174.85 + 43 1076.3549 492 2 0 44.687134 -81.13035 -146.25 + 43 1140.0727 1122 2 1 45.396895 -82.510985 -144.85 + 43 1215.5474 340 3 0 58.99442 -112.04618 -116.25 + 43 218.26047 338 3 0 59.168997 -112.42371 -115.87862 + 43 1359.8763 1194 3 1 59.659961 -113.46738 -114.85 + 43 1274.8973 183 4 0 72.366801 -143.49968 -86.25 + 43 1466.1094 1260 4 1 72.999907 -144.97417 -84.85 + 43 1568.3987 40 5 0 85.824938 -172.11823 -56.25 + 43 1646.4453 1327 5 1 86.434039 -173.42101 -54.85 +Number of tracker digits in this event = 17 +Event: 44 +Number of tracker hits in this event = 3 + 44 144.3564 896 2 1 0.10307247 -0.10678492 -144.45 + 44 168.34075 896 1 1 0.1871126 -0.067883947 -174.45 + 44 160.87092 897 0 1 0.32458366 -0.081500436 -204.45 Number of tracker digits in this event = 3 Event: 45 -Number of tracker hits in this event = 9 - 45 142.226 896 3 1 0.136691 0.274917 -114.45 - 45 122.74 897 3 0 0.147743 0.284721 -115.85 - 45 122.909 897 2 1 0.38172 0.498647 -144.45 - 45 177.383 898 2 0 0.393898 0.510124 -145.85 - 45 163.915 899 1 1 0.652413 0.751311 -174.45 - 45 139.244 899 1 0 0.665522 0.766736 -175.85 - 45 115.738 900 0 1 0.933661 1.09095 -204.45 - 45 130.842 901 0 0 0.946108 1.10538 -205.85 - 45 86.4461 967 1 1 14.3647 54.2778 -174.651 -Number of tracker digits in this event = 7 +Number of tracker hits in this event = 11 + 45 138.83363 896 5 1 0.091531698 -0.36363627 -54.45 + 45 225.03567 897 4 1 0.38458998 -0.74521651 -84.45 + 45 142.21834 894 4 0 0.40045184 -0.75487891 -85.85 + 45 114.28547 899 3 1 0.73077802 -0.94357237 -114.45 + 45 117.9016 893 3 0 0.74195961 -0.95290672 -115.85 + 45 137.93397 900 2 1 0.95258817 -1.1331339 -144.45 + 45 252.37111 892 2 0 0.96595448 -1.1377635 -145.85 + 45 250.09328 901 1 1 1.2300584 -1.2377309 -174.45 + 45 170.7824 892 1 0 1.2427005 -1.240063 -175.85 + 45 158.18109 903 0 1 1.478743 -1.2950445 -204.45 + 45 151.39944 891 0 0 1.4898361 -1.3010864 -205.85 +Number of tracker digits in this event = 9 Event: 46 -Number of tracker hits in this event = 2 - 46 92.7678 895 1 1 -0.5381 -0.179416 -174.45 - 46 142.035 894 0 1 -0.776224 -0.0556756 -204.45 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 7 + 46 137.99458 896 5 1 0.081951904 -0.056757426 -54.45 + 46 248.48978 896 4 1 0.19209674 -0.083302024 -84.45 + 46 103.31386 897 3 1 0.27840436 -0.11798373 -114.45 + 46 127.11989 897 2 1 0.37345582 -0.051199855 -144.45 + 46 149.80224 898 0 1 0.58728949 -0.084517029 -204.45 + 46 83.67244 899 6 0 0.43322267 0.80061992 -25.85 + 46 242.2936 900 6 0 0.54720487 0.91347924 -25.957339 +Number of tracker digits in this event = 5 Event: 47 -Number of tracker hits in this event = 41 - 47 129.16 896 2 1 0.229431 -0.527618 -144.45 - 47 290.05 895 2 0 0.238704 -0.534955 -145.85 - 47 157.271 897 1 1 0.448439 -0.7273 -174.45 - 47 172.368 894 1 0 0.462912 -0.73815 -175.85 - 47 107.074 899 0 1 0.770817 -0.960401 -204.45 - 47 156.371 893 0 0 0.784486 -0.975578 -205.85 - 47 1592.01 865 0 0 12.7483 -6.54445 -206.25 - 47 1479.09 964 0 1 13.7853 -7.01203 -204.85 - 47 1754.61 821 1 0 32.8289 -15.3994 -176.25 - 47 1817.26 1064 1 1 33.7749 -15.8046 -174.85 - 47 2224.48 769 2 0 56.7902 -25.7427 -146.25 - 47 2374.03 1185 2 1 57.908 -26.2646 -144.85 - 47 2882.14 714 3 0 81.126 -36.7076 -116.25 - 47 2989.59 1307 3 1 82.2962 -37.2114 -114.85 - 47 3929.68 623 4 0 108.518 -54.9281 -86.25 - 47 1677.41 622 4 0 108.788 -55.1169 -85.9662 - 47 3612.48 1442 4 1 109.801 -55.7942 -84.85 - 47 4703.83 1443 4 1 109.983 -55.9205 -84.638 - 47 94.4282 1071 8 0 19.1234 35.2426 33.75 - 47 95.7403 1072 8 0 19.1216 35.2607 33.7839 - 47 124.903 1103 8 0 35.951 41.4869 33.75 - 47 209.586 1080 8 1 36.8841 41.8771 35.15 - 47 185.92 1148 9 0 65.1659 50.5692 63.75 - 47 235.568 1229 9 1 66.7456 51.0268 65.15 - 47 145.356 1257 10 0 77.9791 72.3552 93.75 - 47 137.541 1288 10 1 78.4879 73.4208 95.15 - 47 55.8281 1382 11 0 90.7824 97.8476 123.75 - 47 104.127 1383 11 0 90.8588 97.9754 123.901 - 47 158.116 1349 11 1 91.2664 98.9822 125.15 - 47 378.733 1350 11 1 91.4389 99.8609 125.55 - 47 343.293 1352 11 1 91.9219 98.855 125.298 - 47 284.877 1355 11 1 92.4488 98.1363 125.203 - 47 90.0067 1360 11 1 93.3561 98.2511 125.459 - 47 3057.33 1117 0 0 -0.730776 44.4054 -206.25 - 47 2747.05 893 0 1 -0.9341 48.4559 -204.85 - 47 2785 816 0 0 29.8007 -16.3489 -206.25 - 47 2578.38 815 0 0 30.1434 -16.5433 -206.047 - 47 832.464 814 0 0 30.4263 -16.6868 -205.887 - 47 2662.16 1057 0 1 32.4356 -17.6247 -204.85 - 47 5963.04 1059 0 1 32.6526 -17.7146 -204.736 - 47 275.36 1060 0 1 32.9164 -17.8297 -204.608 -Number of tracker digits in this event = 35 -Event: 48 -Number of tracker hits in this event = 2 - 48 179.765 895 2 1 -0.472436 -0.304808 -144.45 - 48 119.557 894 1 1 -0.672371 -0.215726 -174.45 -Number of tracker digits in this event = 1 -Event: 49 -Number of tracker hits in this event = 13 - 49 104.279 896 5 1 0.148129 -0.141108 -54.45 - 49 152.325 897 4 1 0.425196 -0.395768 -84.45 - 49 175.431 899 3 1 0.768346 -0.680338 -114.45 - 49 138.202 894 3 0 0.783709 -0.696452 -115.85 - 49 200.527 901 2 1 1.10384 -1.01613 -144.45 - 49 154.52 893 2 0 1.11671 -1.0316 -145.85 - 49 134.413 902 1 1 1.36435 -1.31459 -174.45 - 49 297.516 891 1 0 1.37862 -1.32729 -175.85 - 49 197.157 904 0 1 1.67941 -1.57179 -204.45 - 49 366.186 890 0 0 1.69044 -1.58207 -205.85 - 49 64.1679 889 0 0 1.71593 -1.70152 -205.956 - 49 445.797 890 1 0 1.45111 -1.58918 -176.223 - 49 160.656 899 1 1 0.753855 -1.34634 -174.85 -Number of tracker digits in this event = 11 -Event: 50 Number of tracker hits in this event = 4 - 50 188.67 896 1 1 0.0884115 -0.867736 -174.45 - 50 139.473 893 1 0 0.109961 -0.919624 -175.85 - 50 126.064 898 0 1 0.540031 -1.98054 -204.45 - 50 159.354 888 0 0 0.562065 -2.04042 -205.85 + 47 133.25242 897 2 1 0.41976337 -0.27640215 -144.45 + 47 348.87848 901 1 1 1.0958318 -0.4000322 -174.45 + 47 159.84167 904 0 1 1.782233 -0.509434 -204.45 + 47 133.67817 895 0 0 1.8091575 -0.51245511 -205.85 Number of tracker digits in this event = 4 -Event: 51 +Event: 48 +Number of tracker hits in this event = 5 + 48 116.24212 896 3 1 0.16771049 0.099193468 -114.45 + 48 177.53705 896 3 0 0.16391557 0.1051994 -115.85 + 48 228.26004 896 2 1 0.085490997 0.21978055 -144.45 + 48 140.769 896 2 0 0.0814849 0.22454044 -145.85 + 48 189.05286 898 0 0 -0.07779052 0.51929033 -205.85 +Number of tracker digits in this event = 4 +Event: 49 Number of tracker hits in this event = 10 - 51 243.64 895 3 1 -0.590182 -0.562795 -114.45 - 51 118.922 895 3 0 -0.596104 -0.568524 -115.85 - 51 194.489 894 2 1 -0.709753 -0.680324 -144.45 - 51 126.926 894 2 0 -0.713921 -0.683846 -145.85 - 51 133.394 894 1 1 -0.783955 -0.739763 -174.45 - 51 118.254 894 1 0 -0.785764 -0.747853 -175.85 - 51 137.462 894 0 1 -0.829998 -0.924907 -204.45 - 51 163.454 893 0 0 -0.822681 -0.92951 -205.85 - 51 38.0345 897 3 0 -1.84883 0.442172 -115.85 - 51 242.103 898 3 0 -1.91135 0.451975 -115.882 + 49 87.32378 896 5 1 0.19611394 -0.05 -54.595225 + 49 102.60316 896 4 1 0.24779647 -0.21646336 -84.45 + 49 112.03354 897 3 1 0.32598196 -0.4189724 -114.45 + 49 115.21265 896 2 1 0.23638786 -0.59371985 -144.45 + 49 150.04156 895 2 0 0.22967061 -0.59683332 -145.85 + 49 158.74393 896 1 1 0.099527838 -0.66119354 -174.45 + 49 212.8378 894 1 0 0.099565836 -0.66630991 -175.85 + 49 116.33969 896 0 1 0.081496486 -0.74757872 -204.45 + 49 126.72572 894 0 0 0.10179749 -0.7831652 -205.85 + 49 4.2684656 1112 3 0 39.500728 43.342878 -116.03476 +Number of tracker digits in this event = 4 +Event: 50 +Number of tracker hits in this event = 10 + 50 124.98848 896 2 1 0.086061306 0.14872154 -144.45 + 50 119.38709 896 2 0 0.088263984 0.15188139 -145.85 + 50 111.67304 896 1 1 0.13608324 0.21961574 -174.45 + 50 106.62828 896 1 0 0.13047092 0.22309614 -175.85 + 50 6918.0063 897 0 0 -0.05 0.25583001 -206.06758 + 50 2011.5186 896 0 0 -0.24152288 0.12093611 -206.20007 + 50 1245.5061 896 0 1 0.075414029 -1.1661164 -204.85 + 50 2683.5759 907 0 1 2.2783963 -1.9904835 -204.85 + 50 2660.0111 908 0 1 2.5680147 -2.2715964 -204.69089 + 50 2238.1822 909 0 1 2.779025 -2.5051407 -204.54473 Number of tracker digits in this event = 7 +Event: 51 +Number of tracker hits in this event = 6 + 51 124.25765 896 5 1 0.055202084 -0.11009954 -54.45 + 51 141.18222 896 4 1 0.12675342 -0.18633355 -84.45 + 51 117.33767 896 3 1 0.13097525 -0.25451408 -114.45 + 51 122.67251 896 2 1 0.13182179 -0.37245263 -144.45 + 51 130.73818 896 1 1 0.092395782 -0.47807893 -174.45 + 51 118.52266 895 1 0 0.086851044 -0.47966617 -175.85 +Number of tracker digits in this event = 4 Event: 52 Number of tracker hits in this event = 3 - 52 118.839 896 3 1 0.130052 -0.090406 -114.45 - 52 158.438 895 1 0 -0.121811 -0.5709 -175.85 - 52 200.329 893 0 0 -0.180251 -0.877349 -205.85 + 52 136.05503 896 2 1 0.23512586 -0.24366153 -144.45 + 52 141.04571 898 1 1 0.63186226 -0.31373866 -174.45 + 52 105.96848 900 0 1 1.0494094 -0.33124777 -204.45 Number of tracker digits in this event = 2 Event: 53 -Number of tracker hits in this event = 7 - 53 210.482 896 2 1 0.15965 -0.700511 -144.45 - 53 268.737 894 2 0 0.165203 -0.712308 -145.85 - 53 237.698 897 1 1 0.261036 -0.94549 -174.45 - 53 168.8 893 1 0 0.263258 -0.961938 -175.85 - 53 142.137 897 0 1 0.318946 -1.29014 -204.45 - 53 191.533 891 0 0 0.314272 -1.29879 -205.85 - 53 110.094 895 2 0 0.311268 -0.604049 -145.85 -Number of tracker digits in this event = 6 +Number of tracker hits in this event = 6 + 53 158.04833 896 2 1 0.1298772 0.21824774 -144.45 + 53 115.36642 896 2 0 0.1401508 0.23162438 -145.85 + 53 124.90769 897 1 1 0.36788653 0.49033402 -174.45 + 53 112.68 898 1 0 0.37702908 0.50142219 -175.85 + 53 137.89624 898 0 1 0.58096381 0.72868432 -204.45 + 53 210.33531 899 0 0 0.59356863 0.74176141 -205.85 +Number of tracker digits in this event = 4 Event: 54 Number of tracker hits in this event = 6 - 54 130.735 896 4 1 0.109799 0.066444 -84.45 - 54 148.665 896 4 0 0.109802 0.0696461 -85.85 - 54 132.471 896 3 1 0.116339 0.13053 -114.45 - 54 125.151 896 3 0 0.111603 0.13497 -115.85 - 54 165.739 897 1 0 -0.121879 0.302479 -175.85 - 54 124.117 898 0 0 -0.215456 0.556464 -205.85 -Number of tracker digits in this event = 6 + 54 164.66454 896 4 1 0.053596338 0.17174418 -84.45 + 54 142.66487 896 4 0 0.051649293 0.18241317 -85.85 + 54 157.39263 898 2 0 -0.080024556 0.56457007 -145.85 + 54 136.82384 898 1 0 -0.24090414 0.61612513 -175.85 + 54 108.79273 895 0 1 -0.59673118 0.6778675 -204.45 + 54 136.19458 899 0 0 -0.61387201 0.67755415 -205.85 +Number of tracker digits in this event = 5 Event: 55 Number of tracker hits in this event = 12 - 55 166.964 896 5 1 0.119736 0.144056 -54.45 - 55 110.884 896 5 0 0.131075 0.150528 -55.85 - 55 137.956 897 4 1 0.366711 0.314404 -84.45 - 55 133.98 897 4 0 0.383363 0.323166 -85.85 - 55 127.235 899 3 1 0.730451 0.517061 -114.45 - 55 130.561 898 3 0 0.744652 0.521619 -115.85 - 55 107.643 900 2 1 1.03818 0.619627 -144.45 - 55 138.654 898 2 0 1.05253 0.623738 -145.85 - 55 134.716 902 1 1 1.35527 0.720909 -174.45 - 55 127.394 899 1 0 1.36181 0.711609 -175.85 - 55 143.703 903 0 1 1.48464 0.518275 -204.45 - 55 118.624 898 0 0 1.4899 0.506776 -205.85 -Number of tracker digits in this event = 9 + 55 141.39781 895 2 1 -0.45721618 -0.2395381 -144.45 + 55 151.70224 891 1 1 -1.2869748 -0.54010564 -174.45 + 55 115.65659 895 1 0 -1.3265038 -0.54875697 -175.85 + 55 15.762109 855 3 0 77.53531 -8.6196389 -116.11117 + 55 194.70056 720 0 1 -35.626846 -25.249862 -204.81371 + 55 287.26605 886 0 1 -2.2558212 -0.7708766 -204.45 + 55 253.37833 888 0 0 -4.6735392 -1.8616595 -205.85 + 55 142.72611 1660 8 0 14.450428 153.41291 33.75 + 55 111.46013 968 8 1 14.451818 153.60961 35.15 + 55 185.16218 962 8 1 13.289859 155.59134 35.443855 + 55 102.03796 893 4 0 -4.3968829 -1.0371965 -85.85 + 55 319.75236 892 4 0 -4.5709423 -1.0806986 -85.929199 +Number of tracker digits in this event = 8 Event: 56 -Number of tracker hits in this event = 4 - 56 175.569 895 2 0 -0.0843417 -0.586201 -145.85 - 56 320.141 893 1 0 -0.149513 -0.850952 -175.85 - 56 109.948 893 0 0 -0.199916 -1.01441 -205.85 - 56 56.1461 894 1 0 -0.176628 -0.837298 -176.116 -Number of tracker digits in this event = 2 -Event: 57 -Number of tracker hits in this event = 24 - 57 118.536 896 5 0 -0.156901 0.0951023 -55.85 - 57 196.596 897 4 0 -0.236633 0.274517 -85.85 - 57 127.225 897 3 0 -0.304209 0.408528 -115.85 - 57 141.194 895 2 1 -0.45692 0.562036 -144.45 - 57 120.641 898 2 0 -0.462828 0.568208 -145.85 - 57 191.771 895 1 1 -0.593515 0.687258 -174.45 - 57 126.971 899 1 0 -0.594389 0.69472 -175.85 - 57 114.929 895 0 1 -0.616577 0.847375 -204.45 - 57 119.616 900 0 0 -0.618166 0.856677 -205.85 - 57 125.992 980 0 0 7.32638 16.968 -206.25 - 57 96.1354 982 0 0 7.53817 17.3374 -205.921 - 57 252.541 936 0 1 8.17858 18.6136 -204.85 - 57 287.017 1197 1 0 34.9649 60.2874 -176.25 - 57 253.013 1077 1 1 36.2917 62.3561 -174.85 - 57 166.367 1344 2 0 56.9136 90.3457 -146.25 - 57 160.636 1185 2 1 57.9659 91.7134 -144.85 - 57 224.463 1510 3 0 90.3888 123.503 -116.25 - 57 275.247 1353 3 1 91.9995 125.019 -114.85 - 57 165.2 1678 4 0 104.719 156.984 -86.25 - 57 242.324 1419 4 1 105.282 158.615 -84.85 - 57 297.177 944 0 1 9.82893 17.9783 -204.85 - 57 46.2731 948 0 1 10.5662 18.1126 -204.522 - 57 42.3598 1708 5 0 80.8875 163.052 -55.9258 - 57 231.306 1304 5 1 81.8493 164.525 -54.85 -Number of tracker digits in this event = 18 -Event: 58 -Number of tracker hits in this event = 4 - 58 125.761 896 4 1 0.0934035 -0.0909268 -84.45 - 58 116.828 896 3 1 0.118695 -0.217357 -114.45 - 58 180.155 895 1 0 -0.0991687 -0.545917 -175.85 - 58 171.032 894 0 0 -0.269079 -0.783464 -205.85 -Number of tracker digits in this event = 3 -Event: 59 -Number of tracker hits in this event = 10 - 59 181.416 896 4 1 0.115678 0.181839 -84.45 - 59 97.8035 896 4 0 0.117566 0.179336 -85.85 - 59 216.651 896 3 1 0.172816 0.116873 -114.45 - 59 162.116 896 3 0 0.175327 0.115585 -115.85 - 59 147.67 896 2 1 0.208632 0.0934969 -144.45 - 59 112.292 896 2 0 0.212249 0.0969399 -145.85 - 59 191.764 897 1 1 0.281721 0.155177 -174.45 - 59 618.866 896 1 0 0.28003 0.157371 -175.85 - 59 125.061 897 0 1 0.257633 0.200911 -204.45 - 59 156.113 896 0 0 0.2586 0.203038 -205.85 -Number of tracker digits in this event = 8 -Event: 60 Number of tracker hits in this event = 3 - 60 139.524 895 1 0 -0.3375 -0.558545 -175.85 - 60 120.476 893 0 0 -0.265546 -0.918409 -205.85 - 60 128.627 898 3 0 -0.620489 0.460636 -115.85 + 56 134.66448 897 2 0 -0.24276645 0.30340454 -145.85 + 56 123.921 898 1 0 -0.37194421 0.5597163 -175.85 + 56 177.62224 899 0 0 -0.45548392 0.75384635 -205.85 Number of tracker digits in this event = 3 -Event: 61 -Number of tracker hits in this event = 4 - 61 145.501 896 4 0 -0.250446 0.0726842 -85.85 - 61 329.065 896 3 0 -0.442603 0.0818237 -115.85 - 61 351.721 893 1 1 -0.981828 -0.127557 -174.45 - 61 120.621 892 0 1 -1.19059 -0.328864 -204.45 -Number of tracker digits in this event = 4 -Event: 62 -Number of tracker hits in this event = 2 - 62 129.048 895 0 1 -0.48884 0.0549208 -204.45 - 62 129.975 896 0 0 -0.507095 0.0601579 -205.85 -Number of tracker digits in this event = 2 -Event: 63 -Number of tracker hits in this event = 24 - 63 121.732 896 4 1 0.209388 0.0663824 -84.45 - 63 119.463 896 4 0 0.213807 0.070836 -85.85 - 63 121.235 897 3 1 0.290418 0.184001 -114.45 - 63 159.948 896 3 0 0.296887 0.191109 -115.85 - 63 142.28 897 2 1 0.444293 0.403137 -144.45 - 63 157.692 897 2 0 0.456934 0.419039 -145.85 - 63 419.409 899 1 1 0.719726 0.782007 -174.45 - 63 121.844 899 1 0 0.733707 0.795374 -175.85 - 63 153.756 900 0 1 1.00312 1.06315 -204.45 - 63 191.171 901 0 0 1.0203 1.07001 -205.85 - 63 351.307 881 4 0 12.5146 -3.37769 -86.25 - 63 146.043 964 4 1 13.731 -2.28208 -84.85 - 63 174.121 965 4 1 14.0211 -2.02218 -84.45 - 63 176.416 967 4 1 14.4201 -1.84413 -84.7366 - 63 30.2408 969 4 1 14.8143 -2.20584 -84.8214 - 63 129.629 872 4 0 16.8627 -5.0732 -85.85 - 63 302.036 871 4 0 17.0943 -5.30622 -85.8712 - 63 162.757 870 4 0 17.5847 -5.54548 -86.0946 - 63 257.422 869 4 0 17.7418 -5.70574 -85.8814 - 63 12.9934 882 4 0 12.7576 -3.24291 -86.0759 - 63 117.774 301 0 0 -67.3928 -119.764 -206.175 - 63 128.387 1781 6 1 177.702 5.33474 -24.45 - 63 164.855 926 6 0 177.738 6.11796 -25.85 - 63 32.0282 927 6 0 177.803 6.29711 -26.1864 -Number of tracker digits in this event = 19 -Event: 64 -Number of tracker hits in this event = 8 - 64 123.3 897 4 0 -0.0865139 0.305681 -85.85 - 64 112.611 898 3 0 -0.346577 0.48554 -115.85 - 64 119.298 895 2 1 -0.616645 0.593981 -144.45 - 64 201.392 898 2 0 -0.624663 0.595324 -145.85 - 64 143.822 894 1 1 -0.806676 0.612367 -174.45 - 64 182.346 898 1 0 -0.817107 0.612292 -175.85 - 64 131.525 893 0 1 -1.02572 0.622787 -204.45 - 64 136.918 898 0 0 -1.04046 0.622427 -205.85 -Number of tracker digits in this event = 6 -Event: 65 +Event: 57 Number of tracker hits in this event = 6 - 65 151.376 896 2 1 0.148992 0.210057 -144.45 - 65 113.487 896 2 0 0.154966 0.223709 -145.85 - 65 157.218 897 1 1 0.280958 0.512779 -174.45 - 65 109.743 898 1 0 0.289397 0.532692 -175.85 - 65 121.722 897 0 1 0.440179 0.949952 -204.45 - 65 178.78 900 0 0 0.451813 0.969842 -205.85 -Number of tracker digits in this event = 4 -Event: 66 -Number of tracker hits in this event = 13 - 66 122.78 896 5 0 0.0905434 0.0513974 -55.85 - 66 303.015 896 4 1 0.18008 0.0877764 -84.45 - 66 121.83 896 4 0 0.185203 0.099082 -85.85 - 66 106.672 897 3 1 0.298631 0.360714 -114.45 - 66 134.646 897 3 0 0.3043 0.375795 -115.85 - 66 120.807 897 2 1 0.414633 0.688037 -144.45 - 66 132.888 899 2 0 0.420581 0.707372 -145.85 - 66 112.267 898 1 1 0.571555 1.11613 -174.45 - 66 146.967 901 1 0 0.573024 1.13317 -175.85 - 66 182.596 898 0 1 0.577304 1.48201 -204.45 - 66 193.957 903 0 0 0.575839 1.50084 -205.85 - 66 31.1607 886 0 0 5.07453 -2.26112 -205.85 - 66 200.227 920 0 1 5.0472 -2.53374 -204.85 -Number of tracker digits in this event = 10 -Event: 67 -Number of tracker hits in this event = 5 - 67 122.355 896 4 0 -0.0681513 0.0581908 -85.85 - 67 122.58 897 3 0 -0.055614 0.29573 -115.85 - 67 192.38 898 2 0 -0.0538789 0.509356 -145.85 - 67 127.175 896 0 1 0.123766 0.782872 -204.45 - 67 130.022 899 0 0 0.130043 0.791649 -205.85 + 57 102.56908 897 2 1 0.35337987 0.15932647 -144.45 + 57 124.09575 896 2 0 0.36634129 0.1713543 -145.85 + 57 121.64969 898 1 1 0.6390447 0.416847 -174.45 + 57 121.85358 897 1 0 0.65290589 0.43173612 -175.85 + 57 156.82248 900 0 1 0.9265594 0.75401647 -204.45 + 57 127.45562 899 0 0 0.93653706 0.76303914 -205.85 Number of tracker digits in this event = 5 -Event: 68 -Number of tracker hits in this event = 7 - 68 254.732 896 3 1 0.167123 -0.243508 -114.45 - 68 119.651 897 2 1 0.380452 -0.437992 -144.45 - 68 129.572 895 2 0 0.38504 -0.455323 -145.85 - 68 140.174 898 1 1 0.473864 -0.816182 -174.45 - 68 127.645 894 1 0 0.48343 -0.828759 -175.85 - 68 130.328 899 0 1 0.697889 -1.09928 -204.45 - 68 115.16 892 0 0 0.707066 -1.10743 -205.85 -Number of tracker digits in this event = 5 -Event: 69 -Number of tracker hits in this event = 7 - 69 132.841 896 4 0 -0.167864 0.0898024 -85.85 - 69 109.691 896 3 0 -0.296554 0.153938 -115.85 - 69 151.275 896 2 0 -0.305193 0.171203 -145.85 - 69 134.98 897 1 0 -0.308159 0.328059 -175.85 - 69 120.601 897 0 0 -0.284791 0.440811 -205.85 - 69 144.601 1 0 0 -33.3479 -179.824 -206.019 - 69 98.6839 2 0 0 -33.2855 -179.743 -205.986 -Number of tracker digits in this event = 5 -Event: 70 -Number of tracker hits in this event = 8 - 70 113.514 895 3 0 -0.345373 -0.474879 -115.85 - 70 144.571 895 2 1 -0.505757 -0.622035 -144.45 - 70 244.7 895 2 0 -0.513503 -0.626582 -145.85 - 70 116.965 894 1 1 -0.657116 -0.707416 -174.45 - 70 192.108 894 1 0 -0.66612 -0.7095 -175.85 - 70 617.606 894 0 1 -0.840848 -0.751911 -204.45 - 70 126.718 894 0 0 -0.852796 -0.755991 -205.85 - 70 28.3068 894 2 0 -0.60769 -0.656036 -146.093 -Number of tracker digits in this event = 5 -Event: 71 -Number of tracker hits in this event = 8 - 71 117.3 896 4 1 0.221502 -0.0772363 -84.45 - 71 125.949 898 2 1 0.509261 0.0883432 -144.45 - 71 327.721 896 2 0 0.518736 0.097294 -145.85 - 71 124.403 899 1 1 0.695007 0.284647 -174.45 - 71 134.609 897 1 0 0.704118 0.296597 -175.85 - 71 343.496 900 0 1 0.900521 0.541661 -204.45 - 71 219.663 898 0 0 0.914261 0.554652 -205.85 - 71 20.8935 899 0 1 0.768429 0.601502 -204.813 -Number of tracker digits in this event = 6 -Event: 72 -Number of tracker hits in this event = 8 - 72 103.754 896 4 1 0.0990102 0.0981847 -84.45 - 72 170.221 896 4 0 0.102656 0.10048 -85.85 - 72 186.322 896 3 1 0.154148 0.154892 -114.45 - 72 113.186 896 3 0 0.155861 0.155791 -115.85 - 72 192.857 896 2 1 0.171079 0.132906 -144.45 - 72 143.526 896 2 0 0.172701 0.12848 -145.85 - 72 97.5306 896 0 0 0.26529 0.05 -206.094 - 72 421.324 896 5 0 0.194016 0.05 -56.0879 -Number of tracker digits in this event = 5 -Event: 73 -Number of tracker hits in this event = 5 - 73 132.035 896 4 1 0.0792774 -0.0903096 -84.45 - 73 140.055 896 3 1 0.157299 -0.179034 -114.45 - 73 168.497 897 2 1 0.291708 -0.282816 -144.45 - 73 117.768 898 1 1 0.502913 -0.177918 -174.45 - 73 173.504 898 0 1 0.642062 -0.213637 -204.45 -Number of tracker digits in this event = 4 -Event: 74 -Number of tracker hits in this event = 9 - 74 532.592 896 5 1 0.0764904 0.173881 -54.45 - 74 128.386 896 5 0 0.0738986 0.18509 -55.85 - 74 148.623 896 3 1 0.0761074 0.62865 -114.45 - 74 149.393 898 3 0 0.0760863 0.64455 -115.85 - 74 151.576 896 2 1 0.061259 0.970761 -144.45 - 74 130.565 900 2 0 0.0553336 0.988695 -145.85 - 74 141.376 902 1 0 -0.11364 1.38443 -175.85 - 74 160.481 904 0 0 -0.276182 1.70333 -205.85 - 74 60.2452 897 5 1 0.267384 0.263404 -54.85 -Number of tracker digits in this event = 8 -Event: 75 -Number of tracker hits in this event = 14 - 75 153.357 896 5 1 0.08529 0.104241 -54.45 - 75 147.545 896 5 0 0.0915617 0.109371 -55.85 - 75 328.976 896 4 1 0.195752 0.216306 -84.45 - 75 121.102 896 4 0 0.198126 0.222625 -85.85 - 75 142.607 897 3 1 0.253687 0.357514 -114.45 - 75 117.391 897 3 0 0.250407 0.359066 -115.85 - 75 146.197 896 2 1 0.168341 0.431409 -144.45 - 75 105.062 897 2 0 0.169358 0.439268 -145.85 - 75 236.106 896 1 1 0.169963 0.583145 -174.45 - 75 134.45 898 1 0 0.17225 0.590216 -175.85 - 75 125.288 896 0 1 0.223306 0.767798 -204.45 - 75 268.727 899 0 0 0.227167 0.779258 -205.85 - 75 92.5533 679 0 1 -43.7714 -8.72439 -204.754 - 75 164.052 857 0 0 -44.103 -8.06666 -205.85 -Number of tracker digits in this event = 11 -Event: 76 -Number of tracker hits in this event = 13 - 76 137.128 896 5 1 0.0938566 0.0659028 -54.45 - 76 151.57 896 5 0 0.100765 0.0710542 -55.85 - 76 142.342 896 4 1 0.22357 0.181414 -84.45 - 76 120.452 896 4 0 0.233153 0.187111 -85.85 - 76 124.074 897 3 1 0.434502 0.284479 -114.45 - 76 173.287 897 3 0 0.447057 0.290741 -115.85 - 76 127.694 899 2 1 0.698366 0.397715 -144.45 - 76 491.346 897 2 0 0.711554 0.402902 -145.85 - 76 116.234 900 1 1 0.996527 0.516923 -174.45 - 76 140.987 898 1 0 1.01296 0.5217 -175.85 - 76 285.055 902 0 1 1.33486 0.647438 -204.45 - 76 124.837 899 0 0 1.35169 0.657894 -205.85 - 76 85.4384 896 2 0 0.706183 0.174584 -146.066 -Number of tracker digits in this event = 11 -Event: 77 -Number of tracker hits in this event = 6 - 77 123.949 896 4 1 0.126073 0.0779189 -84.45 - 77 186.041 896 4 0 0.13006 0.0793163 -85.85 - 77 120.848 896 3 1 0.196767 0.106041 -114.45 - 77 122.676 896 3 0 0.196459 0.104982 -115.85 - 77 218.944 896 2 1 0.179672 0.099285 -144.45 - 77 148.577 896 2 0 0.174631 0.0968387 -145.85 -Number of tracker digits in this event = 6 -Event: 78 -Number of tracker hits in this event = 12 - 78 174.121 897 5 1 0.308882 0.0639177 -54.45 - 78 110.173 896 5 0 0.321213 0.0819759 -55.85 - 78 134.086 898 4 1 0.565738 0.433287 -84.45 - 78 157.459 898 4 0 0.573307 0.452553 -85.85 - 78 110.333 899 3 1 0.714025 0.847763 -114.45 - 78 129.268 900 3 0 0.723152 0.862994 -115.85 - 78 143.032 900 2 1 0.903073 1.17265 -144.45 - 78 150.6 901 2 0 0.911431 1.17947 -145.85 - 78 179.59 901 1 1 1.08045 1.3217 -174.45 - 78 188.417 902 1 0 1.07855 1.30899 -175.85 - 78 151.612 901 0 1 1.05059 1.03283 -204.45 - 78 164.512 900 0 0 1.04816 1.02242 -205.85 -Number of tracker digits in this event = 10 -Event: 79 -Number of tracker hits in this event = 10 - 79 153.917 896 5 1 0.0534838 0.0670225 -54.45 - 79 154.777 896 5 0 0.0537608 0.073112 -55.85 - 79 194.591 896 3 1 0.0821878 0.428833 -114.45 - 79 186.599 897 3 0 0.0843218 0.438516 -115.85 - 79 168.057 896 2 1 0.163713 0.623595 -144.45 - 79 172.563 898 2 0 0.164549 0.632139 -145.85 - 79 187.251 896 1 1 0.193327 0.799132 -174.45 - 79 147.352 899 1 0 0.20362 0.80665 -175.85 - 79 153.341 897 0 1 0.432354 0.959642 -204.45 - 79 126.75 900 0 0 0.448795 0.963471 -205.85 -Number of tracker digits in this event = 10 -Event: 80 -Number of tracker hits in this event = 27 - 80 215.418 896 4 1 0.0883567 0.128657 -84.45 - 80 112.954 896 4 0 0.0872661 0.130157 -85.85 - 80 132.753 896 3 1 0.0684606 0.151883 -114.45 - 80 167.988 896 3 0 0.0689434 0.149955 -115.85 - 80 200.423 896 2 1 0.113368 0.125577 -144.45 - 80 148.672 896 2 0 0.118691 0.124793 -145.85 - 80 449.246 897 1 1 0.310378 0.17438 -174.45 - 80 6996.1 898 1 0 0.677842 0.49784 -175.85 - 80 655.11 937 0 1 8.3504 6.99161 -204.45 - 80 431.96 931 0 0 8.72704 7.24497 -205.85 - 80 1163.81 895 1 1 -0.539737 0.225481 -174.768 - 80 1925.03 896 1 1 0.14504 -0.45081 -174.45 - 80 3689.05 882 1 0 -0.44537 -3.18588 -175.85 - 80 4351.1 831 0 1 -13.3773 -56.4287 -204.45 - 80 2048.09 830 0 1 -13.4906 -57.0098 -204.739 - 80 3687.63 601 0 0 -14.0114 -59.3485 -205.85 - 80 3698.56 599 0 0 -14.0943 -59.7703 -206.045 - 80 1250.11 597 0 0 -14.1659 -60.109 -206.201 - 80 2001.26 850 2 0 -20.5783 -9.58063 -146.25 - 80 1942.25 790 2 1 -21.6147 -10.0716 -144.85 - 80 2291.27 790 3 0 -41.8982 -21.5949 -116.25 - 80 2482.18 683 3 1 -42.9034 -22.1806 -114.85 - 80 3143.94 725 4 0 -61.0832 -34.5787 -86.25 - 80 3357.85 588 4 1 -61.9567 -35.1958 -84.85 - 80 4268.14 614 5 0 -78.4539 -56.6635 -56.25 - 80 7955.06 1345 1 0 25.498 90.3936 -176.01 - 80 65.9198 1346 1 0 25.6702 90.6264 -175.938 -Number of tracker digits in this event = 25 -Event: 81 -Number of tracker hits in this event = 10 - 81 122.025 896 5 0 -0.0853336 0.0754105 -55.85 - 81 138.862 897 4 0 -0.446863 0.360383 -85.85 - 81 176.032 894 3 1 -0.759987 0.598078 -114.45 - 81 154.627 898 3 0 -0.770915 0.608259 -115.85 - 81 141.774 893 2 1 -0.992921 0.83371 -144.45 - 81 142.93 899 2 0 -1.00357 0.84826 -145.85 - 81 118.286 892 1 1 -1.23522 1.16847 -174.45 - 81 123.135 901 1 0 -1.24658 1.18743 -175.85 - 81 144.785 890 0 1 -1.45415 1.58382 -204.45 - 81 136.524 903 0 0 -1.46766 1.59071 -205.85 -Number of tracker digits in this event = 9 -Event: 82 -Number of tracker hits in this event = 12 - 82 142.279 896 5 1 0.122412 0.0766867 -54.45 - 82 150.07 896 5 0 0.125814 0.0774719 -55.85 - 82 120.581 896 4 1 0.154736 0.08167 -84.45 - 82 110.253 896 4 0 0.164044 0.0818499 -85.85 - 82 123.591 897 3 1 0.340602 0.0997716 -114.45 - 82 141.609 896 3 0 0.349683 0.104769 -115.85 - 82 109.789 898 2 1 0.504804 0.18661 -144.45 - 82 158.129 896 2 0 0.506451 0.19443 -145.85 - 82 155.836 898 1 1 0.545678 0.3724 -174.45 - 82 172.759 897 1 0 0.544374 0.38846 -175.85 - 82 105.658 898 0 1 0.536323 0.708312 -204.45 - 82 115.955 899 0 0 0.535376 0.715449 -205.85 -Number of tracker digits in this event = 8 -Event: 83 +Event: 58 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 -Event: 84 +Event: 59 Number of tracker hits in this event = 2 - 84 112.268 896 1 1 0.118245 -0.23496 -174.45 - 84 123.827 897 0 1 0.304971 -0.207757 -204.45 -Number of tracker digits in this event = 1 -Event: 85 -Number of tracker hits in this event = 5 - 85 126.553 895 3 0 -0.325304 -0.45678 -115.85 - 85 160.808 895 2 1 -0.463813 -0.389744 -144.45 - 85 129.868 894 1 1 -0.706678 -0.426158 -174.45 - 85 171.947 893 0 1 -0.886353 -0.535961 -204.45 - 85 241.582 895 0 0 -0.894181 -0.537645 -205.85 + 59 149.1344 895 1 0 -0.28183819 -0.59639629 -175.85 + 59 133.53071 893 0 0 -0.38464574 -0.87491699 -205.85 +Number of tracker digits in this event = 2 +Event: 60 +Number of tracker hits in this event = 2 + 60 131.32854 889 1 0 -0.1047478 -1.8053478 -175.85 + 60 260.07621 885 0 0 -0.18673936 -2.4972664 -205.85 +Number of tracker digits in this event = 2 +Event: 61 +Number of tracker hits in this event = 10 + 61 168.7103 896 5 1 0.11612389 -0.122066 -54.45 + 61 114.90484 897 4 1 0.26370204 -0.32132377 -84.45 + 61 109.09322 897 3 1 0.29103127 -0.53501209 -114.45 + 61 116.71144 895 3 0 0.29422954 -0.54703682 -115.85 + 61 135.82403 897 2 1 0.37874956 -0.78659273 -144.45 + 61 114.70698 894 2 0 0.38614238 -0.7965566 -145.85 + 61 301.75727 898 1 1 0.53305262 -1.0009222 -174.45 + 61 188.29496 893 1 0 0.53883745 -1.0130171 -175.85 + 61 141.80019 898 0 1 0.64449072 -1.2616055 -204.45 + 61 126.39212 891 0 0 0.64686854 -1.277457 -205.85 +Number of tracker digits in this event = 6 +Event: 62 +Number of tracker hits in this event = 8 + 62 113.44483 896 4 1 0.089114101 -0.053203195 -84.45 + 62 194.61326 896 3 1 0.18364135 -0.41750419 -114.45 + 62 329.34641 896 2 1 0.15671531 -0.75416527 -144.45 + 62 148.59726 894 2 0 0.15759531 -0.7706446 -145.85 + 62 127.06233 896 1 1 0.183792 -1.1195821 -174.45 + 62 119.18727 892 1 0 0.18476036 -1.1383387 -175.85 + 62 115.15917 896 0 1 0.18202366 -1.5113036 -204.45 + 62 133.79608 890 0 0 0.17841557 -1.5302116 -205.85 Number of tracker digits in this event = 5 -Event: 86 -Number of tracker hits in this event = 12 - 86 73.1713 896 5 1 0.170834 0.05 -54.6304 - 86 130.604 896 5 0 0.180882 0.0537683 -55.85 - 86 142.964 897 4 1 0.411543 0.144702 -84.45 - 86 133.478 896 4 0 0.42211 0.148 -85.85 - 86 120.359 898 3 1 0.636002 0.219141 -114.45 - 86 123.084 896 3 0 0.643958 0.22478 -115.85 - 86 120.613 899 2 1 0.799324 0.351197 -144.45 - 86 415.534 897 2 0 0.799936 0.357314 -145.85 - 86 219.55 899 1 1 0.840412 0.469084 -174.45 - 86 113.812 898 1 0 0.837366 0.472595 -175.85 - 86 118.536 899 0 1 0.770367 0.557188 -204.45 - 86 109.99 898 0 0 0.768315 0.561122 -205.85 +Event: 63 +Number of tracker hits in this event = 9 + 63 110.80509 895 3 1 -0.55612082 0.089406223 -114.45 + 63 125.00508 896 3 0 -0.57219388 0.093445354 -115.85 + 63 242.13231 893 2 1 -0.89843359 0.17903923 -144.45 + 63 128.30954 896 2 0 -0.9126289 0.18589861 -145.85 + 63 148.97046 892 1 1 -1.2134582 0.31612998 -174.45 + 63 135.05917 897 1 0 -1.2287964 0.31985114 -175.85 + 63 157.01238 890 0 1 -1.5633303 0.37319864 -204.45 + 63 219.28269 897 0 0 -1.5846884 0.37207472 -205.85 + 63 317.88314 875 0 0 -55.033071 -4.4893805 -206.25 Number of tracker digits in this event = 8 -Event: 87 +Event: 64 +Number of tracker hits in this event = 6 + 64 179.93148 896 2 1 0.079627177 -0.82627615 -144.45 + 64 155.38744 894 2 0 0.08110075 -0.8355922 -145.85 + 64 127.001 896 1 1 0.11280431 -1.0366229 -174.45 + 64 136.62048 893 1 0 0.11415079 -1.0421119 -175.85 + 64 125.119 896 0 1 0.13290293 -1.1493048 -204.45 + 64 113.39177 892 0 0 0.12862452 -1.1511142 -205.85 +Number of tracker digits in this event = 5 +Event: 65 +Number of tracker hits in this event = 3 + 65 152.07463 896 1 1 0.2085154 -0.42853486 -174.45 + 65 166.68754 897 0 1 0.34715055 -0.52280051 -204.45 + 65 132.43085 895 0 0 0.35589714 -0.52376736 -205.85 +Number of tracker digits in this event = 3 +Event: 66 +Number of tracker hits in this event = 7 + 66 146.16382 896 3 0 -0.39250856 0.20660742 -115.85 + 66 144.0379 894 2 1 -0.79137178 0.64676914 -144.45 + 66 141.15728 899 2 0 -0.8100214 0.66996233 -145.85 + 66 127.58312 892 1 1 -1.192628 1.1248262 -174.45 + 66 151.83285 901 1 0 -1.2094761 1.1444373 -175.85 + 66 129.39701 890 0 1 -1.5746462 1.5521652 -204.45 + 66 114.66971 903 0 0 -1.5862743 1.5771791 -205.85 +Number of tracker digits in this event = 6 +Event: 67 +Number of tracker hits in this event = 7 + 67 256.46811 896 5 0 -0.069830056 0.24731855 -55.85 + 67 200.63169 897 4 0 -0.18219883 0.43787245 -85.85 + 67 127.18445 898 3 0 -0.34269344 0.63706176 -115.85 + 67 137.36778 900 2 0 -0.44695522 0.91253178 -145.85 + 67 113.40346 895 1 1 -0.46296294 1.199602 -174.45 + 67 145.49456 901 1 0 -0.45395183 1.2040916 -175.85 + 67 129.94021 902 0 0 -0.25401895 1.3278958 -205.85 +Number of tracker digits in this event = 6 +Event: 68 +Number of tracker hits in this event = 10 + 68 100.56789 896 5 0 -0.085661497 0.072462293 -55.85 + 68 128.99966 896 4 0 -0.13701565 0.072771852 -85.85 + 68 263.54718 896 3 1 0.074073703 0.13269852 -114.45 + 68 104.07841 896 3 0 0.083785969 0.13411791 -115.85 + 68 128.42443 896 2 1 0.24276468 0.15737802 -144.45 + 68 298.09702 896 2 0 0.25237366 0.16218515 -145.85 + 68 132.14541 897 1 1 0.44932855 0.28194064 -174.45 + 68 210.41497 897 1 0 0.45737859 0.29343465 -175.85 + 68 225.4975 898 0 1 0.61366922 0.53144831 -204.45 + 68 197.28787 898 0 0 0.62525767 0.54229617 -205.85 +Number of tracker digits in this event = 8 +Event: 69 +Number of tracker hits in this event = 2 + 69 107.78323 896 1 1 0.12811297 -0.26896343 -174.45 + 69 131.84398 896 0 1 0.20509189 -0.2418514 -204.45 +Number of tracker digits in this event = 1 +Event: 70 +Number of tracker hits in this event = 9 + 70 140.98833 896 5 0 -0.14007627 0.14702993 -55.85 + 70 142.16421 897 4 0 -0.26138369 0.25926513 -85.85 + 70 133.97292 898 3 0 -0.39808727 0.45637848 -115.85 + 70 124.8132 895 2 1 -0.46379079 0.71454061 -144.45 + 70 206.0782 899 2 0 -0.46609513 0.72586169 -145.85 + 70 219.43929 895 1 1 -0.51235992 0.96113852 -174.45 + 70 153.87599 900 1 0 -0.51542845 0.97413175 -175.85 + 70 129.42346 895 0 1 -0.56724006 1.2339929 -204.45 + 70 159.9352 901 0 0 -0.56473617 1.2426266 -205.85 +Number of tracker digits in this event = 9 +Event: 71 +Number of tracker hits in this event = 10 + 71 212.07431 896 4 1 0.078135075 0.18525112 -84.45 + 71 134.1968 896 4 0 0.087018263 0.18844796 -85.85 + 71 128.78378 897 3 1 0.26089642 0.25345451 -114.45 + 71 135.81622 897 3 0 0.26133039 0.2534541 -115.85 + 71 369.20099 897 2 1 0.27878147 0.21090779 -144.45 + 71 372.4074 896 2 0 0.28192694 0.20897919 -145.85 + 71 122.98967 897 1 1 0.34238768 0.17399042 -174.45 + 71 113.00521 896 1 0 0.34452684 0.17453656 -175.85 + 71 126.31748 897 0 1 0.37531853 0.18420131 -204.45 + 71 113.00013 896 0 0 0.37314991 0.17724411 -205.85 +Number of tracker digits in this event = 8 +Event: 72 +Number of tracker hits in this event = 23 + 72 129.38491 897 4 0 -0.16209632 0.28904319 -85.85 + 72 112.03841 898 3 0 -0.23234472 0.46367566 -115.85 + 72 100.15239 898 2 0 -0.26123667 0.61065892 -145.85 + 72 128.63565 900 1 0 -0.4110356 0.93639311 -175.85 + 72 129.81706 895 0 1 -0.60491639 1.2729977 -204.45 + 72 188.4678 902 0 0 -0.6118231 1.2892893 -205.85 + 72 890.72098 762 0 0 44.036061 -27.178498 -206.25 + 72 925.01391 1128 0 1 46.461275 -28.736845 -204.85 + 72 1013.6749 605 1 0 92.611979 -58.480761 -176.25 + 72 276.69844 1367 1 1 94.865103 -59.92602 -174.85 + 72 916.75671 1368 1 1 95.070068 -60.05724 -174.7226 + 72 1040.8313 443 2 0 139.44913 -91.398434 -146.25 + 72 1004.3124 1601 2 1 141.62637 -92.937762 -144.85 + 72 1352.9699 999 0 0 1.4489705 20.820783 -206.25 + 72 1431.7003 903 0 1 1.54903 21.832946 -204.85 + 72 1546.3796 1113 1 0 4.6867812 43.54157 -176.25 + 72 1453.3895 919 1 1 4.8452411 44.621917 -174.85 + 72 1985.3376 1250 2 0 10.713229 71.009969 -146.25 + 72 2438.759 951 2 1 11.051546 72.284516 -144.85 + 72 2700.1812 1380 3 0 16.051625 97.369325 -116.25 + 72 1529.8021 1381 3 0 16.088151 97.595083 -115.98032 + 72 7936.3532 977 3 1 16.255705 98.671264 -114.85 + 72 201.61253 1788 4 1 179.07271 -119.41607 -84.70954 +Number of tracker digits in this event = 21 +Event: 73 +Number of tracker hits in this event = 6 + 73 122.11086 897 2 1 0.28278186 0.087692568 -144.45 + 73 107.49167 896 2 0 0.28793841 0.094109488 -145.85 + 73 167.35264 897 1 1 0.3994342 0.21103303 -174.45 + 73 132.58911 896 1 0 0.40010975 0.22359218 -175.85 + 73 374.38127 897 0 1 0.40253219 0.48515307 -204.45 + 73 157.98803 898 0 0 0.40294905 0.50013508 -205.85 +Number of tracker digits in this event = 5 +Event: 74 Number of tracker hits in this event = 5 - 87 122.777 896 4 1 0.123034 -0.0993516 -84.45 - 87 121.622 896 3 1 0.0762003 -0.158419 -114.45 - 87 147.938 896 2 1 0.109942 -0.243217 -144.45 - 87 112.181 896 1 1 0.218877 -0.364219 -174.45 - 87 130.621 897 0 1 0.394504 -0.4063 -204.45 + 74 116.44127 896 2 1 0.074429239 -0.12148465 -144.45 + 74 234.06712 896 0 1 0.14708951 0.21563683 -204.45 + 74 227.39866 896 0 0 0.15458559 0.22750945 -205.85 + 74 76.047498 1736 5 0 -52.824669 168.68306 -56.25 + 74 127.76775 1737 5 0 -52.807141 168.76912 -56.173043 +Number of tracker digits in this event = 3 +Event: 75 +Number of tracker hits in this event = 10 + 75 139.75982 896 5 1 0.10382921 -0.12480766 -54.45 + 75 150.19863 896 4 1 0.17430351 -0.33759688 -84.45 + 75 135.21552 897 3 1 0.2901966 -0.54920985 -114.45 + 75 171.03811 895 3 0 0.30087966 -0.55823161 -115.85 + 75 150.64287 898 2 1 0.53582418 -0.74030594 -144.45 + 75 215.26769 894 2 0 0.54793241 -0.75143466 -145.85 + 75 187.30651 899 1 1 0.80034951 -0.97171972 -174.45 + 75 403.12888 893 1 0 0.81369843 -0.97779135 -175.85 + 75 160.27599 901 0 1 1.0779742 -1.0938837 -204.45 + 75 123.04874 892 0 0 1.0911586 -1.1027769 -205.85 +Number of tracker digits in this event = 10 +Event: 76 +Number of tracker hits in this event = 13 + 76 142.78404 896 5 1 0.051888662 0.13913958 -54.45 + 76 189.27087 896 5 0 0.052755883 0.14646273 -55.85 + 76 125.26538 896 4 1 0.079564441 0.31036785 -84.45 + 76 199.48537 897 4 0 0.086216474 0.31457738 -85.85 + 76 111.48744 896 3 1 0.2006846 0.39662638 -114.45 + 76 109.39528 897 3 0 0.20756093 0.39716155 -115.85 + 76 136.61523 897 2 1 0.3480682 0.42184572 -144.45 + 76 164.61566 897 2 0 0.34961185 0.42365152 -145.85 + 76 199.01515 897 1 1 0.38937129 0.46029916 -174.45 + 76 129.00077 898 1 0 0.39314182 0.46423444 -175.85 + 76 118.03498 898 0 1 0.47615223 0.52802052 -204.45 + 76 125.14107 898 0 0 0.47688589 0.5356976 -205.85 + 76 41.614913 512 0 0 83.84939 -77.240311 -206.22149 +Number of tracker digits in this event = 9 +Event: 77 +Number of tracker hits in this event = 4 + 77 249.44051 896 3 1 0.1812358 -0.063514323 -114.45 + 77 122.94202 897 2 1 0.4235249 -0.1172171 -144.45 + 77 136.07329 898 1 1 0.63263743 -0.21078227 -174.45 + 77 118.296 900 0 1 0.88146635 -0.40197932 -204.45 +Number of tracker digits in this event = 3 +Event: 78 +Number of tracker hits in this event = 4 + 78 155.83819 896 5 0 -0.071153549 0.082553137 -55.85 + 78 141.74858 896 4 0 -0.11646973 0.085324292 -85.85 + 78 124.31563 895 1 0 -0.16424841 -0.5327196 -175.85 + 78 129.96095 894 0 0 -0.33350642 -0.83304544 -205.85 Number of tracker digits in this event = 4 +Event: 79 +Number of tracker hits in this event = 2 + 79 149.19877 896 3 1 0.060956052 -0.081176672 -114.45 + 79 101.94468 896 0 1 0.088919055 -0.11163985 -204.45 +Number of tracker digits in this event = 1 +Event: 80 +Number of tracker hits in this event = 6 + 80 178.5941 896 4 0 -0.12040361 0.10361066 -85.85 + 80 188.56923 896 3 0 -0.14579078 0.23893546 -115.85 + 80 112.91149 897 2 0 -0.23282541 0.35305914 -145.85 + 80 146.7034 898 1 0 -0.35155372 0.51746155 -175.85 + 80 195.39291 895 0 1 -0.49357872 0.94321559 -204.45 + 80 127.0985 900 0 0 -0.50052222 0.96529194 -205.85 +Number of tracker digits in this event = 5 +Event: 81 +Number of tracker hits in this event = 15 + 81 387.35135 859 1 1 -7.7174901 3.8622972 -174.45 + 81 416.70537 916 1 0 -8.1195437 4.0521756 -175.85 + 81 479.95594 815 0 1 -16.465314 7.8878982 -204.45 + 81 428.96954 935 0 0 -16.849402 8.0364319 -205.85 + 81 315.99596 897 2 0 1.5750131 0.30238883 -145.87765 + 81 105.48591 1034 1 1 27.815432 10.282358 -174.45 + 81 80.513394 1036 1 1 28.052583 10.409881 -174.70378 + 81 152.73535 950 1 0 29.180157 11.004381 -175.85 + 81 191.13575 1179 0 1 56.720834 25.706393 -204.45 + 81 196.02903 1027 0 0 58.569185 26.31926 -205.85 + 81 159.14426 1267 10 1 74.284354 136.43622 95.222212 + 81 194.14315 1025 1 1 26.023537 9.4288685 -174.45 + 81 130.89892 945 1 0 26.742707 9.900888 -175.85 + 81 139.93838 1100 0 1 40.935387 19.493912 -204.45 + 81 226.23743 995 0 0 40.935033 19.924693 -205.85 +Number of tracker digits in this event = 13 +Event: 82 +Number of tracker hits in this event = 10 + 82 179.38286 896 4 1 0.19087539 0.37124639 -84.45 + 82 157.34514 897 4 0 0.19989627 0.37637941 -85.85 + 82 147.48018 897 3 1 0.38110711 0.49007895 -114.45 + 82 132.83952 898 3 0 0.39354427 0.4936319 -115.85 + 82 151.8374 898 2 1 0.6346145 0.57551531 -144.45 + 82 161.56112 898 2 0 0.64209865 0.57725897 -145.85 + 82 126.17377 899 1 1 0.78684637 0.61006042 -174.45 + 82 256.76242 898 1 0 0.79569352 0.60867906 -175.85 + 82 142.37345 900 0 1 0.97266262 0.57809359 -204.45 + 82 119.71381 898 0 0 0.98123564 0.58024194 -205.85 +Number of tracker digits in this event = 9 +Event: 83 +Number of tracker hits in this event = 5 + 83 127.77336 896 4 1 0.060555184 0.23026119 -84.45 + 83 126.69919 896 4 0 0.060314013 0.2338432 -85.85 + 83 137.879 898 2 0 -0.066129141 0.51988517 -145.85 + 83 128.54127 899 1 0 -0.19479986 0.75677509 -175.85 + 83 142.32585 900 0 0 -0.32962735 0.91003366 -205.85 +Number of tracker digits in this event = 5 +Event: 84 +Number of tracker hits in this event = 15 + 84 127.26244 896 3 0 -0.10358251 0.078348496 -115.85 + 84 155.91206 896 2 0 -0.17984439 0.068924339 -145.85 + 84 248.17617 1146 11 0 -72.279362 50.098792 123.75 + 84 160.36776 532 11 1 -73.109269 51.55481 125.15 + 84 130.37686 1305 12 0 -129.75538 82.037615 153.75 + 84 105.18173 1306 12 0 -130.06385 82.205468 153.7611 + 84 103.67211 1308 12 0 -130.01437 82.50898 154.02685 + 84 155.53398 1307 12 0 -129.79481 82.438727 154.02815 + 84 237.45944 255 12 1 -129.08521 82.010433 155.15 + 84 134.14917 254 12 1 -129.2185 81.883706 155.49248 + 84 240.16687 694 3 1 -40.703103 120.60087 -114.52481 + 84 248.62894 693 3 1 -40.879269 120.45509 -114.60214 + 84 197.47242 896 0 0 -0.86848547 0.085964085 -205.85 + 84 224.6607 901 1 0 0.19517942 1.1147634 -175.85 + 84 69.283616 900 1 0 0.15871334 1.0355475 -176.00608 +Number of tracker digits in this event = 12 +Event: 85 +Number of tracker hits in this event = 14 + 85 141.90842 896 5 1 0.070800989 0.050926931 -54.45 + 85 129.08253 896 5 0 0.074569956 0.052028168 -55.85 + 85 130.56902 896 4 1 0.13478913 0.067652519 -84.45 + 85 100.18522 896 4 0 0.13511718 0.069677905 -85.85 + 85 146.28674 896 3 1 0.12958984 0.098040374 -114.45 + 85 125.53953 896 3 0 0.13501851 0.098669089 -115.85 + 85 196.718 897 2 1 0.25192827 0.1218852 -144.45 + 85 387.32329 896 2 0 0.2515547 0.12607063 -145.85 + 85 137.14308 897 1 1 0.25256067 0.18673942 -174.45 + 85 131.67481 896 1 0 0.25713891 0.19260608 -175.85 + 85 109.60467 897 0 1 0.35570435 0.33237954 -204.45 + 85 210.26055 897 0 0 0.36015197 0.34374684 -205.85 + 85 102.68046 1763 2 0 15.133459 174.04024 -145.85 + 85 195.99096 1764 2 0 15.049457 174.19944 -145.90533 +Number of tracker digits in this event = 11 +Event: 86 +Number of tracker hits in this event = 8 + 86 331.37313 896 5 1 0.052045409 0.1026372 -54.45 + 86 181.40366 896 5 0 0.051681783 0.10380902 -55.85 + 86 107.85562 896 3 0 -0.21742155 0.23111144 -115.85 + 86 116.32335 897 2 0 -0.37272203 0.37302064 -145.85 + 86 156.70271 895 1 1 -0.51772791 0.43318285 -174.45 + 86 122.39282 897 1 0 -0.51991846 0.4354339 -175.85 + 86 127.40833 895 0 1 -0.58746211 0.47778963 -204.45 + 86 128.79266 898 0 0 -0.58942182 0.48240252 -205.85 +Number of tracker digits in this event = 6 +Event: 87 +Number of tracker hits in this event = 3 + 87 127.98177 895 2 1 -0.63326486 -0.087684097 -144.45 + 87 109.51923 894 1 1 -0.83233061 -0.10765733 -174.45 + 87 110.84708 893 0 1 -0.98952249 -0.054650261 -204.45 +Number of tracker digits in this event = 1 Event: 88 -Number of tracker hits in this event = 5 - 88 171.743 896 4 0 -0.146326 0.130267 -85.85 - 88 115.322 897 3 0 -0.130733 0.305884 -115.85 - 88 111.764 898 2 0 -0.0609567 0.552063 -145.85 - 88 139.385 899 1 0 -0.140997 0.726034 -175.85 - 88 130.581 900 0 0 -0.176376 0.940639 -205.85 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 4 + 88 146.89461 894 2 1 -0.65257331 -0.14908193 -144.45 + 88 121.05048 893 1 1 -1.0148987 -0.28568062 -174.45 + 88 131.94258 891 0 1 -1.4365864 -0.4890888 -204.45 + 88 132.8151 895 0 0 -1.4551298 -0.48332533 -205.85 +Number of tracker digits in this event = 4 Event: 89 -Number of tracker hits in this event = 5 - 89 122.757 896 2 1 0.104385 -0.388974 -144.45 - 89 115.791 896 1 1 0.171236 -0.533694 -174.45 - 89 163.644 895 1 0 0.173157 -0.537009 -175.85 - 89 121.73 896 0 1 0.227571 -0.59407 -204.45 - 89 119.966 895 0 0 0.236947 -0.598233 -205.85 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 11 + 89 93.148028 883 5 0 -1.1023114 -2.9126619 -55.85 + 89 27.467447 882 5 0 -1.2021673 -3.2060851 -55.991344 + 89 410.90348 881 5 0 -1.2219228 -3.2641883 -56.019256 + 89 306.32957 791 4 1 -21.360582 -62.380905 -84.45 + 89 356.75465 571 4 0 -22.34308 -65.252844 -85.85 + 89 267.41419 686 3 1 -42.3434 -123.86508 -114.45 + 89 284.60476 267 3 0 -43.309878 -126.71364 -115.85 + 89 43.431115 674 3 1 -44.803827 -130.27594 -114.85 + 89 174.7389 673 3 1 -44.855038 -130.34856 -114.83845 + 89 14.574826 250 3 0 -45.651216 -129.95085 -115.85 + 89 111.56328 251 3 0 -45.653733 -129.93725 -115.86676 +Number of tracker digits in this event = 6 Event: 90 -Number of tracker hits in this event = 30 - 90 105.423 896 4 1 0.132983 -0.427494 -84.45 - 90 129.708 897 3 1 0.294887 -0.670665 -114.45 - 90 116.906 894 3 0 0.303676 -0.681909 -115.85 - 90 122.272 898 2 1 0.465007 -0.918045 -144.45 - 90 190.476 893 2 0 0.467648 -0.928794 -145.85 - 90 331.16 898 1 1 0.516482 -1.15179 -174.45 - 90 123.842 892 1 0 0.524593 -1.16094 -175.85 - 90 125.158 899 0 1 0.690032 -1.32635 -204.45 - 90 124.39 891 0 0 0.698629 -1.33351 -205.85 - 90 987.437 973 0 0 9.44899 15.5464 -206.25 - 90 936.331 946 0 1 10.113 16.8619 -204.85 - 90 1035.93 1110 1 0 24.9047 42.9751 -176.25 - 90 933.124 1023 1 1 25.6269 44.2444 -174.85 - 90 850.456 1243 2 0 39.6107 69.4567 -146.25 - 90 956.039 1097 2 1 40.2917 70.6832 -144.85 - 90 1004.47 1374 3 0 55.2931 96.1975 -116.25 - 90 846.149 1175 3 1 56.0316 97.4525 -114.85 - 90 1041.81 1505 4 0 71.1029 122.511 -86.25 - 90 788.404 1254 4 1 71.8377 123.738 -84.85 - 90 151.494 1255 4 1 72.0056 124.022 -84.5283 - 90 944.313 1637 5 0 88.2668 148.859 -56.25 - 90 946.859 1341 5 1 89.0566 150.079 -54.85 - 90 1035.17 1769 6 0 105.977 175.324 -26.25 - 90 977.842 1427 6 1 106.799 176.562 -24.85 - 90 3765.96 759 0 0 8.19536 -27.8019 -206.25 - 90 2742.88 757 0 0 8.27347 -28.1331 -206.002 - 90 7241.41 938 0 1 8.58424 -29.6169 -204.85 - 90 5583.7 939 0 1 8.67679 -29.9963 -204.547 - 90 1.16374 423 3 0 149.777 -95.5387 -115.855 - 90 150.916 1644 3 1 150.333 -95.734 -114.85 -Number of tracker digits in this event = 27 +Number of tracker hits in this event = 5 + 90 139.04425 895 2 0 -0.38078645 -0.56028445 -145.85 + 90 126.40976 895 1 1 -0.64693581 -0.82787514 -174.45 + 90 123.25712 894 1 0 -0.65907617 -0.84943889 -175.85 + 90 158.56902 893 0 1 -0.90269686 -1.2983691 -204.45 + 90 167.63772 891 0 0 -0.92102368 -1.3193037 -205.85 +Number of tracker digits in this event = 5 Event: 91 Number of tracker hits in this event = 3 - 91 135.324 896 1 1 0.0611464 0.208107 -174.45 - 91 219.05 896 1 0 0.0598672 0.215764 -175.85 - 91 41.5241 896 2 0 0.05 0.0946295 -146.12 -Number of tracker digits in this event = 2 + 91 233.17144 896 2 0 -0.11853661 0.20107454 -145.85 + 91 150.89495 897 1 0 -0.1265144 0.36240173 -175.85 + 91 142.17364 898 0 0 -0.17935752 0.49670438 -205.85 +Number of tracker digits in this event = 3 Event: 92 -Number of tracker hits in this event = 6 - 92 187.04 895 3 0 -0.211205 -0.57718 -115.85 - 92 134.746 894 2 0 -0.436247 -0.765119 -145.85 - 92 116.755 895 1 1 -0.628099 -0.809379 -174.45 - 92 127.816 894 1 0 -0.634542 -0.813286 -175.85 - 92 141.601 894 0 1 -0.773775 -0.869975 -204.45 - 92 138.921 893 0 0 -0.779074 -0.876887 -205.85 -Number of tracker digits in this event = 5 +Number of tracker hits in this event = 11 + 92 132.50637 896 5 0 -0.13237273 0.12610781 -55.85 + 92 177.93128 897 4 0 -0.32758338 0.28649332 -85.85 + 92 133.5951 895 3 1 -0.45317712 0.48079319 -114.45 + 92 125.20151 898 3 0 -0.45633797 0.48987426 -115.85 + 92 227.90325 895 2 1 -0.53467397 0.69597279 -144.45 + 92 109.40167 899 2 0 -0.54184009 0.70883818 -145.85 + 92 130.10618 894 1 1 -0.69788787 0.95163609 -174.45 + 92 133.05935 900 1 0 -0.68066183 0.99260072 -175.85 + 92 149.20616 905 0 0 -0.21135472 1.9103782 -205.85 + 92 121.30067 895 5 1 -0.49998782 0.25927721 -54.685881 + 92 192.93496 894 5 1 -0.69315508 0.3438633 -54.626475 +Number of tracker digits in this event = 10 Event: 93 -Number of tracker hits in this event = 5 - 93 137.386 896 5 1 0.0847186 -0.0806645 -54.45 - 93 108.982 898 1 1 0.487944 0.0828712 -174.45 - 93 194.792 896 1 0 0.492796 0.0876188 -175.85 - 93 147.896 898 0 1 0.575527 0.17802 -204.45 - 93 402.808 896 0 0 0.572209 0.185089 -205.85 +Number of tracker hits in this event = 6 + 93 124.76332 895 2 1 -0.46689058 0.15905754 -144.45 + 93 104.07806 896 2 0 -0.47651771 0.16293017 -145.85 + 93 138.15965 894 1 1 -0.6766706 0.23437487 -174.45 + 93 119.49317 896 1 0 -0.67341901 0.23647797 -175.85 + 93 135.00616 895 0 1 -0.62403563 0.26727499 -204.45 + 93 180.99133 897 0 0 -0.61842761 0.26707674 -205.85 Number of tracker digits in this event = 4 Event: 94 -Number of tracker hits in this event = 13 - 94 103.699 896 5 1 0.189863 0.0801978 -54.45 - 94 140.384 896 5 0 0.199936 0.0862926 -55.85 - 94 161.956 897 4 1 0.389136 0.194846 -84.45 - 94 126.542 896 4 0 0.405745 0.20459 -85.85 - 94 126.572 899 3 1 0.746434 0.369078 -114.45 - 94 128.327 897 3 0 0.765301 0.37156 -115.85 - 94 100.309 901 2 1 1.12665 0.427974 -144.45 - 94 122.858 897 2 0 1.14016 0.428057 -145.85 - 94 142.823 902 1 1 1.41652 0.434919 -174.45 - 94 356.169 897 1 0 1.42811 0.433791 -175.85 - 94 253.689 904 0 1 1.67641 0.390387 -204.45 - 94 150.459 897 0 0 1.68584 0.392317 -205.85 - 94 180.748 898 1 0 1.31505 0.450865 -176.239 -Number of tracker digits in this event = 11 +Number of tracker hits in this event = 4 + 94 112.19395 896 1 1 0.073642303 -0.85532994 -174.45 + 94 119.2702 893 1 0 0.081437583 -0.86736162 -175.85 + 94 209.39448 896 0 1 0.23415978 -1.103881 -204.45 + 94 144.26387 892 0 0 0.24182169 -1.1198968 -205.85 +Number of tracker digits in this event = 2 Event: 95 -Number of tracker hits in this event = 9 - 95 301.682 896 4 0 -0.0528402 0.189337 -85.85 - 95 165.271 897 3 0 -0.264806 0.340273 -115.85 - 95 116.654 897 2 0 -0.376103 0.387706 -145.85 - 95 393.384 895 1 1 -0.490779 0.369696 -174.45 - 95 107.621 897 1 0 -0.483662 0.356466 -175.85 - 95 138.406 896 0 0 -0.332826 0.072739 -205.85 - 95 15.4802 894 1 1 -0.657816 0.0925505 -174.804 - 95 169.576 902 1 0 -0.497268 1.27787 -175.85 - 95 170.987 903 1 0 -0.415294 1.46739 -175.929 -Number of tracker digits in this event = 6 +Number of tracker hits in this event = 2 + 95 177.93126 895 1 0 -0.15935971 -0.4516377 -175.85 + 95 129.63746 895 0 0 -0.2681529 -0.49771164 -205.85 +Number of tracker digits in this event = 2 Event: 96 Number of tracker hits in this event = 9 - 96 785.509 1719 0 1 165.181 -17.5392 -204.45 - 96 97.0485 809 0 0 166.242 -17.7391 -205.85 - 96 255.64 808 0 0 166.284 -17.8937 -206.015 - 96 204.58 807 0 0 166.486 -18.1031 -206.25 - 96 493.954 806 0 0 166.664 -18.2689 -205.877 - 96 112.59 805 0 0 166.965 -18.4623 -205.852 - 96 551.364 833 0 0 166.671 -13.0118 -205.85 - 96 134.467 896 4 1 0.05 0.314261 -84.5538 - 96 0.961335 896 4 0 0.814791 0.0505628 -85.85 -Number of tracker digits in this event = 6 + 96 133.18685 896 3 1 0.12097829 0.092443892 -114.45 + 96 130.83418 896 3 0 0.12297491 0.093615412 -115.85 + 96 140.51615 896 2 1 0.16733324 0.14450191 -144.45 + 96 129.9181 896 2 0 0.16812049 0.15388892 -145.85 + 96 177.08753 896 1 1 0.20605526 0.34036661 -174.45 + 96 145.96259 897 1 0 0.2123771 0.35572468 -175.85 + 96 320.67908 897 0 1 0.31427336 0.63417872 -204.45 + 96 142.38381 898 0 0 0.31762182 0.64833633 -205.85 + 96 20.60966 896 4 1 0.05 0.095596004 -84.840094 +Number of tracker digits in this event = 8 Event: 97 Number of tracker hits in this event = 10 - 97 168.54 896 4 1 0.0504006 -0.104321 -84.45 - 97 139.566 896 3 1 0.0597748 -0.221821 -114.45 - 97 125.936 896 2 1 0.108236 -0.310705 -144.45 - 97 253.147 896 1 1 0.128906 -0.41643 -174.45 - 97 168.903 896 0 1 0.10339 -0.52375 -204.45 - 97 140.841 895 0 0 0.105332 -0.522877 -205.85 - 97 214.36 1365 0 0 172.192 94.4015 -206.25 - 97 324.621 1753 0 1 172.005 96.0525 -204.85 - 97 346.097 1371 0 0 169.106 95.5955 -205.85 - 97 102.921 1369 0 0 168.272 95.3336 -206.151 -Number of tracker digits in this event = 9 + 97 156.49118 896 3 1 0.061824838 -0.71703799 -114.45 + 97 120.70611 894 3 0 0.064025021 -0.73615605 -115.85 + 97 119.24308 896 2 1 0.10239548 -1.1316612 -144.45 + 97 132.41489 892 2 0 0.10392199 -1.1510266 -145.85 + 97 300.29726 896 1 1 0.14111225 -1.5669107 -174.45 + 97 228.9559 890 1 0 0.14319867 -1.587372 -175.85 + 97 246.25604 896 0 1 0.17736355 -2.0003284 -204.45 + 97 179.11407 888 0 0 0.18367489 -2.0219356 -205.85 + 97 412.58126 898 6 0 -0.27573769 0.51135522 -25.85 + 97 118.51754 899 6 0 0.17675491 0.68957167 -26.029083 +Number of tracker digits in this event = 8 Event: 98 -Number of tracker hits in this event = 6 - 98 172.565 896 4 1 0.110904 -0.0836082 -84.45 - 98 136.718 896 3 1 0.141949 -0.156773 -114.45 - 98 146.595 896 2 1 0.233961 -0.266811 -144.45 - 98 348.895 897 1 1 0.35099 -0.1488 -174.45 - 98 547.242 894 1 0 -0.350894 -0.763367 -175.85 - 98 269.251 893 1 0 -0.875564 -0.957315 -176.223 -Number of tracker digits in this event = 6 +Number of tracker hits in this event = 9 + 98 157.30805 898 2 1 0.51402171 -0.17884323 -144.45 + 98 289.93716 898 1 1 0.64590144 -0.55133602 -174.45 + 98 163.93 895 1 0 0.65127691 -0.56791133 -175.85 + 98 115.22429 899 0 1 0.76777463 -0.92637296 -204.45 + 98 121.84396 893 0 0 0.78042551 -0.94176757 -205.85 + 98 60.688606 899 1 1 0.65267856 -0.69318736 -174.73711 + 98 176.49773 888 1 0 0.69639692 -1.9363414 -175.85 + 98 118.80102 896 4 1 0.2317457 0.05 -84.473749 + 98 14.470182 897 4 1 0.26007182 0.11247394 -84.476003 +Number of tracker digits in this event = 5 Event: 99 -Number of tracker hits in this event = 5 - 99 120.095 897 2 0 -0.129392 0.430051 -145.85 - 99 230.433 899 1 0 -0.308865 0.682911 -175.85 - 99 156.887 900 0 0 -0.356025 0.965615 -205.85 - 99 270.987 900 3 0 0.284908 0.921226 -115.85 - 99 1.53705 901 3 0 0.389437 1.19167 -116.24 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 6 + 99 585.97486 896 5 1 0.10196837 -0.090041974 -54.45 + 99 133.45483 897 4 1 0.3433409 -0.18030095 -84.45 + 99 121.23135 898 3 1 0.62419515 -0.23603737 -114.45 + 99 120.49404 899 2 1 0.80835214 -0.28934722 -144.45 + 99 219.24323 900 1 1 0.89720379 -0.24822574 -174.45 + 99 101.40669 901 0 1 1.1300391 -0.087372507 -204.45 +Number of tracker digits in this event = 5 Run terminated. Run Summary Number of events processed : 100 - User=1.22s Real=3.07s Sys=0.03s + User=1.19s Real=1.26s Sys=0.04s End of Run File Tracks_0.dat /gun/particle gamma /gun/energy 1 GeV /gun/sourceType 2 /run/beamOn 100 + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Scintillator + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.3689452 keV e- 355.79082 keV e+ 347.13789 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Calorimeter + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : CesiumIodide + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 38.405229 keV e- 691.66869 keV e+ 658.43466 keV + Region(s) which use this couple : + Calorimeter + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Tracker + +Index : 5 used in the geometry : Yes recalculation needed : No + Material : Silicon + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 2.3033387 keV e- 120.42458 keV e+ 118.95119 keV + Region(s) which use this couple : + Tracker + +Index : 6 used in the geometry : Yes recalculation needed : No + Material : Tungsten + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 36.047857 keV e- 351.43773 keV e+ 334.55147 keV + Region(s) which use this couple : + Tracker + +==================================================================== + Start Run processing. Event: 0 -Number of tracker hits in this event = 21 - 0 241.062 896 3 1 0.133055 -1.17919 -114.45 - 0 116.795 892 3 0 0.127728 -1.20313 -115.85 - 0 237.232 889 2 0 -0.173576 -1.7593 -145.85 - 0 372.366 894 1 1 -0.803064 -2.28238 -174.45 - 0 256.285 886 1 0 -0.881832 -2.33832 -175.85 - 0 153.768 883 0 1 -2.98463 -3.57367 -204.45 - 0 114.641 880 0 0 -3.02646 -3.50475 -205.85 - 0 117.721 885 1 0 -0.894165 -2.50508 -175.85 - 0 156.547 878 0 1 -3.98943 -5.82622 -204.45 - 0 114.061 869 0 0 -3.74827 -5.83245 -205.85 - 0 103.779 880 0 1 -3.56067 -2.39519 -204.45 - 0 228.977 886 0 0 -3.77477 -2.43331 -205.85 - 0 124.994 897 2 1 0.328625 -0.0905603 -144.45 - 0 133.84 898 1 1 0.458231 -0.263603 -174.45 - 0 101.798 897 0 1 0.419085 -0.103035 -204.45 - 0 223.732 896 1 0 1.71701 0.0963915 -175.85 - 0 271.548 896 2 1 0.179499 -0.203486 -144.45 - 0 176.933 898 2 0 0.892732 0.649275 -145.85 - 0 208.049 927 2 0 41.0958 6.38027 -145.967 - 0 219.11 895 2 0 0.05 -0.505617 -145.948 - 0 222.453 894 2 0 -0.771003 -0.663423 -146.068 -Number of tracker digits in this event = 15 +Number of tracker hits in this event = 12 + 0 141.5867 897 2 1 0.38730811 -0.14896235 -144.45 + 0 188.28363 899 1 1 0.71959824 -0.14759435 -174.45 + 0 121.82842 901 0 1 1.1189739 -0.10823924 -204.45 + 0 229.43174 896 3 0 0.25335478 0.05 -115.89137 + 0 106.49008 899 3 1 0.84407172 -0.58962879 -114.45 + 0 201.05622 895 3 0 0.87713576 -0.60591886 -115.85 + 0 300.29943 903 2 1 1.558573 -1.0862756 -144.45 + 0 117.30074 892 2 0 1.5753645 -1.1366791 -145.85 + 0 118.88624 906 1 1 2.1743972 -2.2775039 -174.45 + 0 101.45678 886 1 0 2.1692972 -2.3601309 -175.85 + 0 116.31535 904 0 1 1.7448777 -3.7801359 -204.45 + 0 143.31838 878 0 0 1.8211898 -3.8827046 -205.85 +Number of tracker digits in this event = 7 Event: 1 -Number of tracker hits in this event = 2 - 1 0.241559 1136 1 1 48.169 -56.979 -174.494 - 1 316.314 806 1 0 110.864 -18.3721 -176.011 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 9 + 1 141.44251 896 2 0 -0.13731823 0.22970301 -145.85 + 1 77.880688 896 1 0 -0.051015446 0.12881838 -175.85 + 1 197.48618 898 1 1 0.63513343 -0.12967501 -174.45 + 1 63.337654 944 0 0 -5.3842837 9.7750485 -206.03031 + 1 138.37633 783 8 0 -85.09742 -22.98527 33.75 + 1 153.03634 475 8 1 -84.466509 -22.534006 35.15 + 1 227.04012 1214 3 1 63.78584 50.126525 -114.7019 + 1 168.54968 894 1 0 -0.14360093 -0.66063822 -175.85 + 1 297.53265 637 0 1 -52.102587 12.105761 -204.48766 +Number of tracker digits in this event = 7 Event: 2 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 3 -Number of tracker hits in this event = 1 - 3 141.364 1467 2 0 -132.451 114.852 -145.892 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 4 -Number of tracker hits in this event = 14 - 4 126.971 896 3 1 0.172571 0.0700867 -114.45 - 4 103.026 896 3 0 0.19747 0.12673 -115.85 - 4 100.912 899 2 1 0.754263 1.29999 -144.45 - 4 268.872 902 2 0 0.797799 1.37813 -145.85 - 4 117.493 904 1 1 1.80886 2.93915 -174.45 - 4 114.706 910 1 0 1.86179 3.03562 -175.85 - 4 242.807 909 0 1 2.81001 5.09025 -204.45 - 4 219.24 921 0 0 2.86524 5.18197 -205.85 - 4 179.04 896 2 1 0.153057 -0.154398 -144.45 - 4 114.906 896 1 0 0.518641 0.0765024 -175.85 - 4 99.191 898 0 1 0.541604 0.953857 -204.45 - 4 111.455 900 0 0 0.550596 0.995703 -205.85 - 4 202.551 572 5 1 -65.1616 21.0249 -54.8061 - 4 142.646 571 5 1 -65.2574 21.1557 -54.6063 +Number of tracker hits in this event = 8 + 4 108.09876 896 2 0 -0.12078275 0.11989734 -145.85 + 4 128.46561 896 3 0 0.33393081 0.053524555 -115.85 + 4 150.7157 930 2 1 7.022922 0.64279137 -144.45 + 4 138.63121 899 2 0 7.4947691 0.80725905 -145.85 + 4 154.95998 980 1 1 17.038848 4.5516787 -174.45 + 4 201.54718 917 1 0 17.337747 4.4026134 -175.85 + 4 128.20493 1012 0 1 23.384635 1.3366968 -204.45 + 4 167.9737 900 0 0 23.553142 0.94849381 -205.85 Number of tracker digits in this event = 7 Event: 5 -Number of tracker hits in this event = 8 - 5 284.188 898 0 1 0.540673 -0.342581 -204.45 - 5 146.432 895 0 0 0.612525 -0.525791 -205.85 - 5 233.658 897 1 1 0.403892 0.28677 -174.45 - 5 111.235 897 1 0 0.414577 0.300732 -175.85 - 5 137.214 899 0 1 0.839388 0.329173 -204.45 - 5 105.24 897 0 0 0.861153 0.323497 -205.85 - 5 27.3714 898 1 1 0.457293 0.30662 -174.457 - 5 8.99472 954 4 0 -113.889 11.7646 -86.0299 -Number of tracker digits in this event = 4 -Event: 6 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 7 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 8 Number of tracker hits in this event = 3 - 8 109.656 902 0 1 1.29542 -0.523201 -204.45 - 8 105.295 895 0 0 1.28281 -0.58914 -205.85 - 8 110.798 896 0 0 -0.139645 0.174724 -205.85 -Number of tracker digits in this event = 0 + 5 124.76949 901 0 1 1.0809674 0.95135631 -204.45 + 5 103.58802 900 0 0 1.1597184 0.97082471 -205.85 + 5 88.449203 1486 2 0 -87.752056 118.59179 -146.13904 +Number of tracker digits in this event = 1 +Event: 6 +Number of tracker hits in this event = 32 + 6 121.33365 894 4 1 -0.84104008 -0.12321086 -84.45 + 6 141.92022 894 3 0 -0.43488823 -0.74257838 -115.85 + 6 131.48593 894 2 1 -0.7930919 -0.20746842 -144.45 + 6 206.92133 892 1 1 -1.0503014 -0.78504386 -174.45 + 6 129.79706 893 1 0 -0.93386113 -1.0147564 -175.85 + 6 156.76047 904 0 1 1.7718546 -5.8825116 -204.45 + 6 121.50817 867 0 0 1.9971585 -6.0928282 -205.85 + 6 114.49713 896 3 0 -0.39106064 0.1272672 -115.85 + 6 122.20716 897 2 0 -0.2975173 0.40641358 -145.85 + 6 472.60764 897 1 0 -0.18010157 0.32160693 -175.85 + 6 244.52546 895 2 1 -0.62705855 0.070109195 -144.45 + 6 186.60731 896 2 0 -0.60457261 0.08672018 -145.85 + 6 136.82689 896 1 1 0.057825869 0.20579016 -174.45 + 6 159.57025 906 0 1 2.2038135 1.800069 -204.45 + 6 214.85966 905 0 0 2.2371855 1.8630894 -205.85 + 6 122.83201 899 2 0 -0.81002125 0.72388085 -145.85 + 6 108.6858 881 1 1 -3.4231339 9.8262099 -174.45 + 6 105.75637 943 1 0 -3.1988458 9.570181 -175.85 + 6 436.59274 907 0 1 2.3111019 3.7431242 -204.45 + 6 49.008653 900 0 1 0.96724118 3.7871461 -204.82167 + 6 378.97385 917 0 0 -1.5921374 4.3199157 -205.85 + 6 122.80683 907 1 1 2.3778219 -4.3378164 -174.45 + 6 106.69549 878 1 0 2.0952234 -3.8904731 -175.85 + 6 533.95833 868 0 1 -5.9242828 7.4988796 -204.45 + 6 107.45122 859 0 1 -7.7430511 7.2211036 -204.55957 + 6 258.1343 857 0 1 -8.08458 7.1337204 -204.58658 + 6 137.10461 853 0 1 -8.8500233 6.7536624 -204.61976 + 6 299.41241 851 0 1 -9.2616913 6.4854752 -204.70917 + 6 41.047406 849 0 1 -9.6651179 5.7716892 -204.80579 + 6 123.99915 911 0 0 -9.2778637 3.1711551 -205.85 + 6 81.692733 909 0 0 -9.087494 2.7704148 -206.02043 + 6 200.25073 854 0 1 -8.7253298 1.8652491 -204.85 +Number of tracker digits in this event = 24 +Event: 7 +Number of tracker hits in this event = 17 + 7 122.474 894 4 1 -0.80655387 0.63764877 -84.45 + 7 113.27223 899 4 0 -0.79390938 0.65912899 -85.85 + 7 189.7157 895 3 1 -0.64260251 1.3806229 -114.45 + 7 116.02964 903 3 0 -0.4138392 1.4500458 -115.85 + 7 140.83666 916 2 1 4.0635736 2.7192096 -144.45 + 7 124.53545 909 2 0 4.2834233 2.7604129 -145.85 + 7 119.98989 941 1 1 9.0599846 3.5572022 -174.45 + 7 267.73262 913 1 0 9.315524 3.5492274 -175.85 + 7 113.36592 967 0 1 14.361759 3.8008728 -204.45 + 7 110.45924 914 0 0 14.543049 3.7638945 -205.85 + 7 154.70175 896 4 0 -0.11681743 0.095031108 -85.85 + 7 135.87478 897 3 0 -0.14881456 0.3750505 -115.85 + 7 156.80748 899 2 0 -0.073244626 0.79037437 -145.85 + 7 144.81823 896 0 1 0.1616182 1.7339082 -204.45 + 7 104.34957 904 0 0 0.15640345 1.7496493 -205.85 + 7 124.16726 931 1 1 7.0512146 24.626293 -174.48326 + 7 199.93346 834 1 1 -12.694442 61.271939 -174.80182 +Number of tracker digits in this event = 11 +Event: 8 +Number of tracker hits in this event = 18 + 8 113.42039 890 3 1 -1.4721721 0.28530619 -114.45 + 8 120.89927 897 3 0 -1.5007931 0.30820209 -115.85 + 8 111.31822 890 2 1 -1.6025974 0.35582031 -144.45 + 8 209.87709 897 2 0 -1.6104802 0.39597613 -145.85 + 8 140.61778 889 1 1 -1.7060608 1.1053386 -174.45 + 8 158.33595 901 1 0 -1.6406631 1.0870275 -175.85 + 8 107.49334 900 0 0 -0.24181246 0.99532515 -205.85 + 8 207.99913 1162 3 0 -145.15643 53.403353 -116.14991 + 8 202.39383 896 0 1 0.05 1.0228663 -204.47512 + 8 160.80899 718 4 0 123.06584 -36.005909 -86.25 + 8 146.698 717 4 0 123.00246 -36.057692 -86.208473 + 8 107.88863 896 2 1 0.187502 0.10199081 -144.45 + 8 138.17661 896 2 0 0.1872771 0.11290512 -145.85 + 8 113.02616 896 1 1 0.15341484 0.37133703 -174.45 + 8 179.82314 897 1 0 0.14933582 0.38153078 -175.85 + 8 147.22435 390 2 1 -102.01662 109.02035 -144.82003 + 8 125.39031 897 1 1 0.29191708 0.36903716 -174.45 + 8 296.90167 896 3 1 0.065498568 0.05 -114.73017 +Number of tracker digits in this event = 13 Event: 9 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 10 -Number of tracker hits in this event = 11 - 10 140.325 896 2 1 0.118053 0.156124 -144.45 - 10 176.59 896 2 0 0.127163 0.162755 -145.85 - 10 118.53 897 1 1 0.338665 0.296788 -174.45 - 10 227.422 897 1 0 0.351728 0.292334 -175.85 - 10 147.533 898 0 1 0.546752 0.239676 -204.45 - 10 180.317 896 0 0 0.540074 0.238846 -205.85 - 10 132.608 897 2 0 -0.0990237 0.296087 -145.85 - 10 114.801 896 1 0 -0.131608 0.0946985 -175.85 - 10 206.152 892 0 1 -1.17669 -0.870891 -204.45 - 10 116.754 893 0 0 -0.878402 -1.02557 -205.85 - 10 213.827 898 2 0 2.60132 0.566993 -145.85 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 11 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 10 + 11 157.3384 896 3 1 0.15215204 0.27237935 -114.45 + 11 233.86148 897 3 0 0.15833859 0.27468761 -115.85 + 11 229.7702 897 2 1 0.33816773 0.42552048 -144.45 + 11 128.76688 898 2 0 0.35557441 0.47011784 -145.85 + 11 115.77694 899 1 1 0.79001602 1.4503668 -174.45 + 11 112.53575 903 1 0 0.76720202 1.5051291 -175.85 + 11 141.82279 897 0 1 0.30241416 2.5751048 -204.45 + 11 126.48682 908 0 0 0.28646233 2.6282978 -205.85 + 11 121.87136 896 0 1 0.14453134 -0.71621874 -204.45 + 11 136.80091 894 0 0 0.1444752 -0.73920916 -205.85 +Number of tracker digits in this event = 8 Event: 12 +Number of tracker hits in this event = 20 + 12 112.53149 896 4 1 0.15502264 -0.48217455 -84.45 + 12 157.53221 895 4 0 0.15938479 -0.48720611 -85.85 + 12 130.99073 897 3 1 0.29170628 -0.45878484 -114.45 + 12 100.41516 896 1 1 0.059078301 1.1773771 -174.45 + 12 114.93786 895 0 1 -0.58983236 2.444124 -204.45 + 12 126.43845 908 0 0 -0.59418882 2.5339361 -205.85 + 12 173.24248 952 6 1 11.444523 -22.873434 -24.638899 + 12 99.008628 898 2 1 0.62097847 -0.05 -144.80908 + 12 15.276837 899 2 1 0.65221254 -0.078812973 -144.84707 + 12 165.47517 899 5 0 -0.22010179 0.73943923 -55.85 + 12 112.73826 898 4 1 0.45469835 1.5659621 -84.45 + 12 144.07346 903 4 0 0.53162391 1.5862107 -85.85 + 12 110.67812 906 3 1 2.0746909 1.8069789 -114.45 + 12 130.42022 904 3 0 2.1499312 1.8284841 -115.85 + 12 116.76859 914 2 1 3.8197632 2.1970204 -144.45 + 12 93.249588 906 2 0 3.930664 2.2294662 -145.85 + 12 443.66689 927 1 1 6.3746078 2.763667 -174.45 + 12 137.64456 909 1 0 6.4513074 2.7631485 -175.85 + 12 117.42687 936 0 1 8.1760402 2.7983237 -204.45 + 12 98.478921 909 0 0 8.2532278 2.7222903 -205.85 +Number of tracker digits in this event = 9 +Event: 13 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 -Event: 13 -Number of tracker hits in this event = 2 - 13 228.616 359 6 1 -108.24 152.638 -24.5221 - 13 85.8112 358 6 1 -108.373 152.692 -24.4698 -Number of tracker digits in this event = 1 Event: 14 -Number of tracker hits in this event = 2 - 14 108.952 978 1 1 16.498 -10.5295 -174.61 - 14 190.219 707 4 0 -136.048 -38.1653 -85.9628 -Number of tracker digits in this event = 1 -Event: 15 -Number of tracker hits in this event = 12 - 15 131.859 896 1 0 -0.146343 0.0681929 -175.85 - 15 110.367 896 0 0 -0.187301 0.0681897 -205.85 - 15 83.8496 900 1 0 0.260838 0.941231 -175.85 - 15 107.757 896 0 1 0.240216 -0.255665 -204.45 - 15 150.352 879 0 0 -3.15259 -3.81666 -206.25 - 15 157.827 881 0 1 -3.44453 -4.12727 -204.85 - 15 152.529 863 1 0 -10.8033 -6.86086 -176.25 - 15 118.776 842 1 1 -11.1069 -6.99646 -174.85 - 15 113.715 888 2 0 -14.5989 -2.0207 -146.25 - 15 122.425 824 2 1 -14.798 -2.02267 -144.85 - 15 263.7 811 3 0 -53.0624 -17.2716 -116.25 - 15 185.938 624 3 1 -54.7814 -18.3543 -114.85 -Number of tracker digits in this event = 7 -Event: 16 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 +Event: 15 +Number of tracker hits in this event = 15 + 15 160.58898 896 4 1 0.05 0.072362669 -84.499056 + 15 159.31107 900 4 0 0.83434796 1.0248229 -85.85 + 15 271.15912 992 3 1 19.431613 22.029489 -114.45 + 15 255.43292 1013 3 0 19.212866 23.451011 -115.85 + 15 124.08429 977 2 1 16.353416 47.826745 -144.45 + 15 123.78811 1138 2 0 16.997313 48.568435 -145.85 + 15 115.85607 1059 1 1 32.652146 68.574117 -174.45 + 15 128.1508 1242 1 0 32.828589 69.365593 -175.85 + 15 101.85294 894 2 0 -0.32132007 -0.67159663 -145.85 + 15 108.93276 892 1 0 -0.17358463 -1.1134139 -175.85 + 15 108.44325 890 0 0 -0.44289995 -1.586636 -205.85 + 15 152.52121 1281 10 1 77.208118 -114.46821 95.211988 + 15 308.00656 894 0 1 -0.79115229 -1.9382231 -204.45 + 15 234.83997 888 0 0 -0.84139885 -1.960872 -205.85 + 15 2.5909875 893 0 0 -0.57343684 -0.96669463 -206.23718 +Number of tracker digits in this event = 10 +Event: 16 +Number of tracker hits in this event = 2 + 16 58.852471 155 1 1 -149.03385 -56.489889 -174.7285 + 16 51.898834 897 0 0 -62.285817 0.33115742 -205.8848 +Number of tracker digits in this event = 0 Event: 17 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 18 -Number of tracker hits in this event = 14 - 18 99.4649 896 0 1 0.180952 0.137746 -204.45 - 18 180.308 896 0 0 0.186977 0.127581 -205.85 - 18 118.876 1453 4 1 112.089 -77.8622 -84.493 - 18 1.97028 565 3 0 94.7539 -66.543 -116.214 - 18 159.352 1030 1 0 -30.1227 26.8783 -176.25 - 18 211.45 745 1 1 -30.4911 27.2014 -174.85 - 18 201.434 899 2 1 0.808278 -0.865485 -144.45 - 18 112.732 893 2 0 0.905649 -0.930281 -145.85 - 18 222.705 910 1 1 3.00321 -2.06297 -174.45 - 18 127.186 887 1 0 3.10713 -2.1738 -175.85 - 18 158.787 922 0 1 5.428 -4.5259 -204.45 - 18 139.722 875 0 0 5.51338 -4.58966 -205.85 - 18 429.724 894 2 0 1.71865 -0.829789 -145.85 - 18 0.640969 895 2 0 2.64057 -0.585867 -146.249 -Number of tracker digits in this event = 9 +Number of tracker hits in this event = 16 + 18 118.71722 896 3 0 -0.13996835 0.10348787 -115.85 + 18 5.0391076 719 1 1 -35.763022 -95.437848 -174.71704 + 18 227.15678 896 1 1 0.085008867 0.22676861 -174.45 + 18 169.94068 896 1 0 0.14182492 0.19166231 -175.85 + 18 108.71142 904 0 1 1.7488652 -0.25466841 -204.45 + 18 120.7373 895 0 0 1.7283824 -0.58623247 -205.85 + 18 196.18221 895 1 0 -0.080193155 -0.62327484 -175.85 + 18 253.95978 902 0 1 1.3006586 -23.437151 -204.45 + 18 157.02487 776 0 0 1.4834605 -24.309347 -205.85 + 18 111.1728 896 4 1 0.055306586 -0.18508458 -84.45 + 18 97.625189 892 3 0 -0.32614707 -1.0970358 -115.85 + 18 113.84573 881 2 0 -0.24815442 -3.3350881 -145.85 + 18 91.478866 895 1 1 -0.62476094 -3.0328683 -174.45 + 18 111.15394 883 1 0 -0.64684836 -3.0343559 -175.85 + 18 277.3526 892 0 1 -1.1356235 -2.6922156 -204.45 + 18 120.00003 885 0 0 -1.3246986 -2.6381185 -205.85 +Number of tracker digits in this event = 8 Event: 19 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 19 + 19 113.17823 904 1 1 1.7494421 -0.68107644 -174.45 + 19 156.52337 894 1 0 2.0151566 -0.69534433 -175.85 + 19 107.94577 938 0 1 8.4876274 -1.7569153 -204.45 + 19 158.13775 889 0 0 8.9094131 -1.807283 -205.85 + 19 97.106588 894 3 1 -0.78446842 0.17005344 -114.45 + 19 238.08943 896 3 0 -0.82974503 0.17661265 -115.85 + 19 239.20158 889 2 1 -1.7065045 0.14666956 -144.45 + 19 309.9298 897 2 0 -1.6752011 0.25397885 -145.85 + 19 120.22795 893 1 1 -0.9860567 2.3289087 -174.45 + 19 104.57534 907 1 0 -0.8672075 2.4459355 -175.85 + 19 145.81385 899 0 1 0.7033935 5.5136883 -204.45 + 19 138.32427 924 0 0 0.82224918 5.7183716 -205.85 + 19 419.29386 866 1 1 -6.2599858 -6.6908426 -174.45 + 19 146.62579 863 1 0 -7.1581538 -7.0453802 -175.85 + 19 136.78748 817 0 1 -16.09302 -12.895586 -204.45 + 19 86.817608 832 0 0 -15.821162 -13.187343 -205.85 + 19 247.69375 595 0 1 -60.635357 -25.680805 -204.83564 + 19 122.82419 895 0 0 -0.86039165 -0.52819363 -205.85 + 19 107.83727 895 2 0 -0.62447193 -0.46598403 -145.85 +Number of tracker digits in this event = 13 Event: 20 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 @@ -1510,80 +1631,89 @@ Event: 21 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 22 -Number of tracker hits in this event = 2 - 22 188.301 1654 7 1 152.178 -149.075 5.49366 - 22 51.713 699 3 0 47.8687 -39.7007 -116.2 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 22 + 22 96.301576 896 2 1 0.2131344 0.45458367 -144.45 + 22 114.67233 898 2 0 0.20914573 0.45506231 -145.85 + 22 137.84955 896 1 1 0.10647127 0.42297402 -174.45 + 22 160.00748 897 1 0 0.1292099 0.42474119 -175.85 + 22 287.13054 898 0 1 0.54902127 0.44327735 -204.45 + 22 275.86581 897 0 0 0.56887557 0.43106743 -205.85 + 22 263.98022 897 0 1 0.34562015 0.28884958 -204.45 + 22 121.8174 898 0 0 0.29696291 0.51176412 -205.85 + 22 165.5916 896 4 0 -0.05 0.075533668 -86.217304 + 22 284.31667 895 2 1 -0.58605891 0.15137329 -144.45 + 22 112.47097 896 2 0 -0.60224574 0.13323387 -145.85 + 22 143.50216 893 1 1 -0.92631923 -0.28215924 -174.45 + 22 169.40282 892 0 1 -1.2328365 -0.89932458 -204.45 + 22 198.81916 893 0 0 -1.2527707 -0.91741801 -205.85 + 22 1.5212717 965 1 0 27.498615 13.902705 -175.85191 + 22 45.564501 1030 1 1 26.924556 13.809057 -174.85 + 22 157.44103 1152 0 0 15.603362 51.428632 -205.97505 + 22 16.609298 896 4 1 0.05 -0.09718363 -84.831175 + 22 136.0704 939 3 1 8.7516452 6.9289141 -114.45 + 22 132.40339 935 3 0 9.345527 7.9648543 -115.85 + 22 241.19677 917 3 0 -17.403116 4.3555087 -116.25 + 22 184.62741 803 3 1 -19.010678 3.6153316 -114.85 +Number of tracker digits in this event = 16 Event: 23 -Number of tracker hits in this event = 5 - 23 142.234 895 0 1 -0.637449 -0.475349 -204.45 - 23 108.132 895 0 0 -0.650977 -0.502556 -205.85 - 23 203.817 896 0 1 0.180875 0.08548 -204.45 - 23 123.878 896 0 0 0.187894 0.084976 -205.85 - 23 152.298 649 4 1 -49.722 -41.131 -84.4807 -Number of tracker digits in this event = 4 -Event: 24 -Number of tracker hits in this event = 10 - 24 144.731 892 5 1 -1.18357 2.5076 -54.45 - 24 244.842 909 5 0 -0.96067 2.79637 -55.85 - 24 202.054 920 4 1 5.00304 9.62519 -84.45 - 24 130.804 938 4 0 5.32251 8.53824 -85.85 - 24 178.774 953 3 1 11.6115 -27.7626 -114.45 - 24 168.153 759 3 0 13.2169 -27.8362 -115.85 - 24 192.339 921 4 1 5.0919 9.43376 -84.5622 - 24 113.164 895 1 0 -0.205001 -0.47217 -175.85 - 24 249.847 411 0 0 36.1689 -97.8106 -205.951 - 24 436.973 1107 10 0 90.7846 42.3674 93.75 -Number of tracker digits in this event = 9 -Event: 25 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 +Event: 24 +Number of tracker hits in this event = 2 + 24 130.34649 899 0 1 0.65701101 -0.22579846 -204.45 + 24 72.949204 896 0 0 0.052311412 0.05 -205.95191 +Number of tracker digits in this event = 1 +Event: 25 +Number of tracker hits in this event = 4 + 25 111.39258 896 0 1 0.1980954 -0.605369 -204.45 + 25 311.98265 895 0 0 0.27445685 -0.60989549 -205.85 + 25 201.61776 896 2 1 0.05 0.27630512 -144.6995 + 25 121.00863 897 2 1 0.28838948 0.17365949 -144.75891 +Number of tracker digits in this event = 3 Event: 26 -Number of tracker hits in this event = 0 +Number of tracker hits in this event = 1 + 26 8.8230541 909 0 1 2.7274125 5.7664702 -204.46798 Number of tracker digits in this event = 0 Event: 27 -Number of tracker hits in this event = 4 - 27 99.6534 896 0 0 -0.257019 0.203153 -205.85 - 27 109.412 897 2 0 -0.0985448 0.347713 -145.85 - 27 103.504 899 1 0 -0.196419 0.762885 -175.85 - 27 145.414 902 0 0 -0.0971287 1.30587 -205.85 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 26 + 27 144.00937 896 4 1 0.23081052 0.085944024 -84.45 + 27 298.57871 896 4 0 0.23607784 0.092698508 -85.85 + 27 119.10423 897 3 1 0.39423078 0.28180105 -114.45 + 27 101.88695 897 3 0 0.41106132 0.295827 -115.85 + 27 109.83259 899 2 1 0.74031946 0.5621387 -144.45 + 27 97.708802 898 2 0 0.74676212 0.57346712 -145.85 + 27 131.57039 899 1 1 0.83252493 0.82136002 -174.45 + 27 156.47822 899 1 0 0.84004647 0.82634979 -175.85 + 27 144.56788 900 0 1 1.0021824 0.93822563 -204.45 + 27 110.57 900 0 0 1.0075331 0.95333569 -205.85 + 27 165.68154 896 5 1 0.05 -0.17705291 -54.498495 + 27 11.95353 896 5 0 1.4225686 0.05 -56.217256 + 27 124.7979 899 5 0 -0.31536949 0.77922249 -55.85 + 27 122.33923 898 4 1 0.53888298 0.13730768 -84.45 + 27 111.19011 917 3 1 4.371568 -0.93707346 -114.45 + 27 101.33254 893 3 0 4.4187873 -0.96661059 -115.85 + 27 107.24502 924 2 1 5.8405642 -2.3883165 -144.45 + 27 246.92952 885 2 0 5.8801771 -2.471323 -145.85 + 27 146.55679 920 1 1 4.8706078 -5.1865862 -174.45 + 27 160.8801 871 1 0 4.946071 -5.2552924 -175.85 + 27 136.63383 930 0 1 6.8545298 -7.0062996 -204.45 + 27 164.21408 860 0 0 7.4665954 -7.4879139 -205.85 + 27 119.49166 956 1 1 12.114014 -2.3965396 -174.45 + 27 120.76368 886 1 0 12.101534 -2.3417449 -175.85 + 27 113.40981 963 0 1 13.630822 -0.4549991 -204.45 + 27 23.028585 746 0 0 -16.940927 -30.40623 -206.25 +Number of tracker digits in this event = 14 Event: 28 -Number of tracker hits in this event = 17 - 28 180.509 899 2 1 0.830761 0.235457 -144.45 - 28 161.404 896 2 0 0.904001 0.215812 -145.85 - 28 104.007 907 1 1 2.4068 -0.22272 -174.45 - 28 112.45 914 0 1 3.84468 -0.0738822 -204.45 - 28 105.233 896 4 0 -0.059934 0.0735921 -85.85 - 28 86.7152 888 3 1 -2.03559 0.97545 -114.45 - 28 55.6172 887 3 1 -2.07627 1.00727 -114.685 - 28 107.965 901 3 0 -2.33582 1.17496 -115.85 - 28 110.856 856 2 1 -8.34338 5.41632 -144.45 - 28 107.384 924 2 0 -8.72021 5.67833 -145.85 - 28 101.25 816 1 1 -16.2957 10.6399 -174.45 - 28 162.631 951 1 0 -16.5552 11.1125 -175.85 - 28 130.51 785 0 1 -22.4775 20.2916 -204.45 - 28 137.469 1000 0 0 -22.6452 20.9522 -205.85 - 28 113.69 815 1 1 -16.4745 10.0403 -174.803 - 28 78.3136 943 1 0 -16.2994 9.61516 -175.85 - 28 186.202 896 0 1 0.207984 -0.0819058 -204.45 -Number of tracker digits in this event = 6 +Number of tracker hits in this event = 1 + 28 231.14348 1000 3 1 20.913733 30.000706 -114.65374 +Number of tracker digits in this event = 1 Event: 29 -Number of tracker hits in this event = 8 - 29 163.48 1037 2 0 58.79 28.2909 -146.165 - 29 181.023 1036 2 0 58.6393 28.2093 -146.097 - 29 10.8476 1120 0 0 -29.4235 44.9366 -205.958 - 29 78.0777 237 1 0 -63.1311 -132.583 -176.098 - 29 29.8621 1295 5 1 79.8942 125.273 -54.5081 - 29 34.7507 695 0 1 -40.5796 29.2458 -204.504 - 29 111.876 900 0 1 0.882314 0.224412 -204.45 - 29 117.951 896 0 0 0.910902 0.228409 -205.85 -Number of tracker digits in this event = 2 -Event: 30 -Number of tracker hits in this event = 2 - 30 115.527 896 0 0 -0.161473 0.0699305 -205.85 - 30 97.9563 1387 0 0 2.42137 98.9156 -206.076 +Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 +Event: 30 +Number of tracker hits in this event = 1 + 30 263.83571 1611 10 0 152.68374 143.60229 93.954577 +Number of tracker digits in this event = 1 Event: 31 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 @@ -1603,76 +1733,97 @@ Event: 36 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 37 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 1 + 37 206.01836 1142 6 1 49.438023 -36.155253 -24.796294 +Number of tracker digits in this event = 1 Event: 38 -Number of tracker hits in this event = 11 - 38 106.426 896 3 0 -0.0728706 0.0862676 -115.85 - 38 121.862 893 0 0 -0.327928 -1.00202 -205.85 - 38 32.8735 896 0 0 -0.441546 0.05 -206.142 - 38 137.21 896 3 1 0.132528 -0.086706 -114.45 - 38 107.995 896 2 1 0.240447 -0.191591 -144.45 - 38 119.098 896 1 1 0.202528 -0.694094 -174.45 - 38 117.405 894 1 0 0.197009 -0.716237 -175.85 - 38 94.8614 896 0 1 0.237966 -1.1721 -204.45 - 38 110.919 892 0 0 0.246353 -1.19682 -205.85 - 38 171.329 841 0 1 -11.4241 -1.34113 -204.45 - 38 133.137 891 0 0 -10.4341 -1.2847 -205.85 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 39 -Number of tracker hits in this event = 3 - 39 351.863 897 0 1 0.296867 0.0577878 -204.45 - 39 108.476 896 0 0 0.176757 0.0925644 -205.85 - 39 181.151 380 1 1 -103.98 -84.0478 -174.606 -Number of tracker digits in this event = 2 -Event: 40 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 41 Number of tracker hits in this event = 2 - 41 354.946 1302 12 0 -135.555 81.4235 153.75 - 41 220.461 1303 12 0 -135.606 81.4825 153.986 -Number of tracker digits in this event = 2 -Event: 42 -Number of tracker hits in this event = 5 - 42 242.448 896 1 0 -0.0621354 0.0686062 -175.85 - 42 133.284 896 0 0 -0.118564 0.124186 -205.85 - 42 121.846 902 0 1 1.33586 1.36176 -204.45 - 42 156.541 902 0 0 1.41989 1.43892 -205.85 - 42 221.394 900 1 0 -18.7393 0.892984 -176.061 -Number of tracker digits in this event = 5 -Event: 43 -Number of tracker hits in this event = 0 + 39 111.53335 878 1 0 174.78409 -3.995161 -176.13552 + 39 101.92566 1197 0 1 60.433544 34.003225 -204.64851 Number of tracker digits in this event = 0 +Event: 40 +Number of tracker hits in this event = 13 + 40 214.52969 492 1 0 -83.67645 -81.237499 -176.25 + 40 206.82609 475 1 1 -84.643652 -81.889279 -174.85 + 40 45.213953 473 1 1 -84.968362 -82.085903 -174.55092 + 40 103.71479 523 0 1 -74.917891 -71.230616 -204.5915 + 40 299.95098 846 0 0 23.087472 -10.339305 -206.25 + 40 49.145637 845 0 0 23.552908 -10.565631 -205.8835 + 40 64.634658 1022 0 1 25.444677 -11.450277 -204.85 + 40 7.4614165 1023 0 1 25.616612 -11.578252 -204.8295 + 40 88.151355 840 0 0 26.541298 -11.452007 -205.85 + 40 218.0231 841 0 0 26.701564 -11.39501 -205.92966 + 40 164.43965 842 0 0 27.117707 -11.21368 -206.02051 + 40 159.7215 895 1 0 -0.31805468 -0.64571108 -175.85 + 40 29.566783 894 1 0 -0.38975224 -0.81762817 -176.20028 +Number of tracker digits in this event = 6 +Event: 41 +Number of tracker hits in this event = 16 + 41 142.87846 901 5 1 1.1290941 3.4962313 -54.45 + 41 114.19414 913 5 0 1.3256893 3.5315828 -55.85 + 41 52.018386 921 4 1 5.1010296 3.7545648 -84.45 + 41 86.035131 1767 10 0 -89.482579 174.94544 94.090497 + 41 178.08484 452 10 1 -89.1142 175.10362 95.15 + 41 86.880813 453 10 1 -89.039598 175.13759 95.216319 + 41 118.54212 896 3 1 0.20343531 0.38593563 -114.45 + 41 104.39302 897 3 0 0.20499021 0.3871892 -115.85 + 41 113.9544 896 2 1 0.20467667 0.43058439 -144.45 + 41 210.94356 897 2 0 0.191212 0.43397782 -145.85 + 41 235.75155 898 1 0 -0.090464175 0.55130887 -175.85 + 41 124.6603 896 0 1 0.14307619 1.1436052 -204.45 + 41 130.17959 901 0 0 0.15743371 1.1670187 -205.85 + 41 123.75963 897 1 0 -0.1363077 0.44519216 -175.85 + 41 163.01701 893 0 1 -0.93666907 -0.22301946 -204.45 + 41 138.26683 896 0 0 -0.40381126 0.2362857 -205.85 +Number of tracker digits in this event = 9 +Event: 42 +Number of tracker hits in this event = 1 + 42 196.36221 556 1 1 -68.293895 35.312529 -174.58972 +Number of tracker digits in this event = 1 +Event: 43 +Number of tracker hits in this event = 14 + 43 244.99638 895 3 1 -0.4739839 0.087054358 -114.45 + 43 157.49885 902 3 0 -0.35614395 1.314744 -115.85 + 43 621.04345 904 2 1 1.8498253 28.533335 -144.45 + 43 717.30923 1073 2 0 -0.33713798 35.546855 -145.85 + 43 134.75068 896 2 1 0.16527791 0.21841041 -144.45 + 43 119.78879 896 2 0 0.17733943 0.22472423 -145.85 + 43 128.79299 897 1 1 0.43511416 0.37788583 -174.45 + 43 112.95483 897 1 0 0.44573167 0.38651403 -175.85 + 43 600.92554 898 0 1 0.62478552 0.54730741 -204.45 + 43 112.07513 898 0 0 0.63233222 0.54401656 -205.85 + 43 231.84265 889 0 0 -2.3603578 -1.6521091 -205.85 + 43 331.41942 899 0 1 0.66550789 0.65947258 -204.45 + 43 262.70716 899 0 0 0.91536561 0.73347315 -205.85 + 43 290.66709 3 2 0 -97.87148 -179.5246 -145.86781 +Number of tracker digits in this event = 11 Event: 44 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 45 -Number of tracker hits in this event = 20 - 45 186.481 897 4 1 0.335079 -2.70441 -84.45 - 45 107.324 883 4 0 0.302196 -2.87437 -85.85 - 45 108.369 865 3 0 -0.28487 -6.61761 -115.85 - 45 132.354 896 2 1 0.234834 -14.021 -144.45 - 45 113.422 826 2 0 0.243975 -14.3972 -145.85 - 45 119.175 899 1 1 0.754536 -22.1237 -174.45 - 45 111.061 785 1 0 0.860435 -22.5192 -175.85 - 45 117.701 908 0 1 2.49369 -30.2678 -204.45 - 45 116.598 744 0 0 2.64812 -30.6954 -205.85 - 45 299.363 897 3 0 0.0693666 0.438182 -115.85 - 45 119.157 925 2 1 6.02142 7.19411 -144.45 - 45 81.6805 933 2 0 6.30547 7.59798 -145.85 - 45 100.749 934 2 0 6.35791 7.66666 -146.128 - 45 114.81 937 1 1 8.30789 17.1788 -174.45 - 45 236.119 982 1 0 7.98152 17.4085 -175.85 - 45 8.40523 983 1 0 7.87793 17.4683 -176.236 - 45 313.458 892 0 1 -1.14967 21.7049 -204.45 - 45 143.923 1007 0 0 -1.82542 22.2701 -205.85 - 45 100.7 891 0 1 -1.26931 21.6869 -204.477 - 45 64.0258 896 3 1 0.05 0.052571 -114.7 -Number of tracker digits in this event = 6 -Event: 46 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 +Event: 46 +Number of tracker hits in this event = 15 + 46 110.1921 896 4 1 0.24154326 -0.098683956 -84.45 + 46 152.02673 898 3 1 0.51162925 -0.16062042 -114.45 + 46 104.55756 900 2 1 0.9492661 -0.086947822 -144.45 + 46 179.54515 903 1 1 1.5367041 -0.10027457 -174.45 + 46 235.37025 905 0 1 1.9802914 -0.23656897 -204.45 + 46 417.58996 896 5 1 0.05 -0.30288786 -54.453237 + 46 189.17724 897 6 0 -0.13043235 0.39042286 -25.85 + 46 182.52116 971 6 0 -21.660952 15.154898 -26.25 + 46 186.02789 784 6 1 -22.84875 15.115629 -24.85 + 46 367.82649 782 6 1 -23.195882 15.128453 -24.45 + 46 416.91855 779 6 1 -23.753393 16.168168 -24.717762 + 46 23.571804 780 6 1 -23.641108 17.217608 -24.465603 + 46 139.84884 899 5 1 0.76540585 19.959276 -54.45 + 46 112.02677 993 5 0 0.76491615 19.573822 -55.85 + 46 0.32330548 996 4 0 -0.84666176 20.162422 -86.044515 +Number of tracker digits in this event = 10 Event: 47 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 @@ -1681,2152 +1832,2271 @@ Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 49 Number of tracker hits in this event = 1 - 49 294.868 896 0 1 0.0666395 -0.0592795 -204.45 -Number of tracker digits in this event = 1 + 49 93.087462 819 2 1 -15.761553 -34.55802 -144.79029 +Number of tracker digits in this event = 0 Event: 50 -Number of tracker hits in this event = 13 - 50 177.611 896 4 1 0.0909789 0.123798 -84.45 - 50 137.186 896 4 0 0.08718 0.131439 -85.85 - 50 111.015 897 3 0 -0.218476 0.301544 -115.85 - 50 111.386 895 2 1 -0.608891 0.357281 -144.45 - 50 131.104 897 2 0 -0.624937 0.363468 -145.85 - 50 129.783 892 1 1 -1.08513 0.43475 -174.45 - 50 342.238 897 1 0 -1.11388 0.420173 -175.85 - 50 148.786 998 2 0 65.2641 20.6062 -146.25 - 50 206.86 893 0 1 -0.950763 0.716759 -204.45 - 50 140.084 900 0 0 -0.845238 0.946932 -205.85 - 50 120.941 899 0 0 -0.988408 0.811176 -205.85 - 50 121.021 895 3 0 -0.164048 -0.60495 -115.85 - 50 135.782 893 2 0 -0.224961 -0.932904 -145.85 -Number of tracker digits in this event = 11 -Event: 51 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 +Event: 51 +Number of tracker hits in this event = 3 + 51 231.04975 307 2 0 -13.303958 -118.73249 -146.10181 + 51 94.360248 1092 8 0 158.07654 39.387688 33.75 + 51 346.89041 1093 8 0 158.132 39.526307 33.821459 +Number of tracker digits in this event = 2 Event: 52 -Number of tracker hits in this event = 2 - 52 13.6423 896 0 0 -0.150239 0.05 -206.221 - 52 116.898 895 0 1 -0.581145 -0.196198 -204.45 -Number of tracker digits in this event = 0 -Event: 53 Number of tracker hits in this event = 1 - 53 27.2726 916 2 0 -151.259 4.10386 -145.978 + 52 129.38103 1575 0 1 136.53699 8.712782 -204.58835 +Number of tracker digits in this event = 1 +Event: 53 +Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 54 -Number of tracker hits in this event = 12 - 54 302.253 896 1 1 0.0740886 -0.0979945 -174.45 - 54 35.346 897 1 1 0.354872 -0.354302 -174.79 - 54 133.037 898 1 0 -1.02874 0.50011 -175.85 - 54 327.835 899 1 0 -1.2717 0.656843 -175.89 - 54 126.66 884 1 1 -2.65044 -0.333466 -174.45 - 54 125.365 894 1 0 -2.74766 -0.73351 -175.85 - 54 154.365 871 0 1 -5.28646 -8.7442 -204.45 - 54 170.286 852 0 0 -5.34109 -9.08195 -205.85 - 54 325.742 855 0 0 -4.87743 -8.55464 -205.85 - 54 357.206 857 0 0 -4.47871 -8.17145 -206.23 - 54 255.144 858 0 0 -3.88436 -7.9898 -206.237 - 54 223.136 860 0 0 -3.75578 -7.64313 -205.867 -Number of tracker digits in this event = 11 +Number of tracker hits in this event = 1 + 54 95.588873 595 3 1 -60.585256 9.5311072 -114.71437 +Number of tracker digits in this event = 0 Event: 55 -Number of tracker hits in this event = 13 - 55 131.751 895 3 1 -0.631661 -0.685328 -114.45 - 55 112.133 894 3 0 -0.608139 -0.744805 -115.85 - 55 138.195 901 1 1 1.10554 -3.98792 -174.45 - 55 152.54 877 1 0 1.1605 -4.1031 -175.85 - 55 132.89 906 0 1 2.19158 -6.53998 -204.45 - 55 119.045 864 0 0 2.29574 -6.71672 -205.85 - 55 166.405 896 3 1 0.0554414 -0.0997342 -114.45 - 55 180.467 896 2 1 0.164286 -0.137704 -144.45 - 55 124.668 896 1 1 0.205728 0.187868 -174.45 - 55 207.127 896 1 0 0.217951 0.204278 -175.85 - 55 114.076 897 0 1 0.308167 0.455509 -204.45 - 55 118.527 898 0 0 0.301258 0.475234 -205.85 - 55 26.704 1222 4 0 175.361 65.3583 -85.8761 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 18 + 55 163.83711 896 2 1 0.13075472 0.24327953 -144.45 + 55 358.03755 897 2 0 0.13735772 0.25508098 -145.85 + 55 158.25848 897 1 1 0.30778577 0.50975133 -174.45 + 55 277.09372 898 1 0 0.3101444 0.52827978 -175.85 + 55 118.51756 898 0 1 0.45170827 0.91691796 -204.45 + 55 122.51791 900 0 0 0.45721807 0.94342568 -205.85 + 55 325.57452 1061 2 0 -26.973084 33.173222 -146.25 + 55 143.35675 1062 2 0 -27.094555 33.347777 -146.07499 + 55 272.82871 889 3 1 -1.817717 -1.8488102 -114.45 + 55 120.53997 888 3 0 -1.7862463 -1.9114545 -115.85 + 55 121.61589 888 2 1 -2.0098735 -3.5979859 -144.45 + 55 116.82902 879 2 0 -2.0545175 -3.7374712 -145.85 + 55 118.14559 882 1 1 -3.056786 -6.6989809 -174.45 + 55 126.29486 863 1 0 -3.1097214 -6.9094736 -175.85 + 55 231.98009 877 0 1 -4.067949 -11.128887 -204.45 + 55 145.26448 841 0 0 -4.1270984 -11.266053 -205.85 + 55 745.0674 890 3 0 0.05 -1.613097 -115.8849 + 55 264.9817 889 3 0 1.0006975 -1.735018 -115.96985 +Number of tracker digits in this event = 15 Event: 56 Number of tracker hits in this event = 1 - 56 119.689 1152 5 1 51.3484 179.52 -54.8353 -Number of tracker digits in this event = 0 + 56 277.65642 333 3 0 174.84832 -113.54576 -116.18676 +Number of tracker digits in this event = 1 Event: 57 -Number of tracker hits in this event = 15 - 57 124.295 893 1 1 -0.996518 -0.0830761 -174.45 - 57 166.669 891 0 1 -1.32185 -0.246473 -204.45 - 57 195.74 638 7 0 -132.163 -51.9218 3.89925 - 57 114.349 897 5 1 0.360422 -0.649117 -54.45 - 57 125.072 895 5 0 0.480423 -0.62759 -55.85 - 57 121.851 909 4 1 2.73109 -0.121878 -84.45 - 57 150.063 920 3 1 4.86172 0.78552 -114.45 - 57 116.192 899 3 0 4.95086 0.84095 -115.85 - 57 168.479 929 2 1 6.82787 1.72853 -144.45 - 57 108.297 904 2 0 6.97525 1.78105 -145.85 - 57 240.643 947 1 1 10.4242 2.98895 -174.45 - 57 115.544 911 1 0 10.5995 3.11343 -175.85 - 57 112.416 965 0 1 14.0068 5.79857 -204.45 - 57 124.882 925 0 0 14.1739 5.98125 -205.85 - 57 114.013 851 0 0 5.13522 -9.33995 -206.091 -Number of tracker digits in this event = 9 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 58 -Number of tracker hits in this event = 9 - 58 201.75 896 2 1 0.130968 0.220135 -144.45 - 58 161.517 896 2 0 0.105638 0.200409 -145.85 - 58 297.705 894 0 1 -0.82534 -0.653932 -204.45 - 58 120.547 894 0 0 -0.881908 -0.707952 -205.85 - 58 102.365 212 5 1 -137.689 -132.893 -54.8204 - 58 133.21 897 2 0 0.0800594 0.263384 -145.85 - 58 118.724 900 1 0 0.051884 0.907407 -175.85 - 58 135.611 896 0 1 0.236842 1.79031 -204.45 - 58 171.674 904 0 0 0.254268 1.8227 -205.85 -Number of tracker digits in this event = 7 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 59 -Number of tracker hits in this event = 4 - 59 156.992 904 0 1 1.66853 -0.378544 -204.45 - 59 424.615 941 0 0 13.2934 9.09672 -206.25 - 59 87.2336 940 0 0 13.4032 9.00178 -206.108 - 59 351.069 896 0 0 -0.0633989 0.05 -205.888 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 60 -Number of tracker hits in this event = 3 - 60 149.653 1429 0 1 107.342 40.6169 -204.812 - 60 136.983 1431 0 1 107.602 40.7207 -204.686 - 60 424.532 1432 0 1 107.802 40.7465 -204.46 +Number of tracker hits in this event = 5 + 60 129.77438 895 1 0 -0.15146348 -0.5718181 -175.85 + 60 131.11814 897 0 1 0.30684221 -1.3481987 -204.45 + 60 125.76432 891 0 0 0.18352312 -1.277457 -205.85 + 60 110.81102 896 1 0 -0.12405778 0.072329506 -175.85 + 60 106.24174 1058 0 0 59.694115 32.559279 -206.14468 Number of tracker digits in this event = 3 Event: 61 +Number of tracker hits in this event = 6 + 61 374.15614 896 0 1 0.05 0.26201612 -204.54059 + 61 125.40423 897 0 0 0.059714941 0.26708284 -205.85 + 61 21.35924 731 0 1 -33.304201 3.4489055 -204.49286 + 61 153.88161 892 1 1 -1.2038101 -3.3190266 -174.45 + 61 253.79629 881 1 0 -1.1368438 -3.3908611 -175.85 + 61 249.77991 895 0 1 -0.55843877 -6.2789458 -204.45 +Number of tracker digits in this event = 5 +Event: 62 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 -Event: 62 -Number of tracker hits in this event = 7 - 62 391.413 573 6 0 49.9726 -65.0127 -26.0322 - 62 32.0743 306 6 0 52.8599 -118.844 -26.0078 - 62 106.779 896 3 1 0.178197 -0.0671749 -114.45 - 62 124.943 896 2 1 0.100248 -0.145741 -144.45 - 62 112.28 896 1 1 0.137947 -0.400699 -174.45 - 62 234.815 895 1 0 0.118998 -0.454697 -176.11 - 62 107.044 891 0 0 -0.136551 -1.38008 -205.85 -Number of tracker digits in this event = 3 Event: 63 -Number of tracker hits in this event = 21 - 63 97.5577 896 2 1 0.234855 -0.0846453 -144.45 - 63 104.409 898 1 1 0.628921 -0.197768 -174.45 - 63 167.511 900 0 1 0.920525 -0.432491 -204.45 - 63 107.023 896 3 1 0.130384 0.0505271 -114.45 - 63 48.5367 897 3 0 0.0571571 0.379681 -115.85 - 63 133.233 900 2 1 0.857831 9.50499 -144.45 - 63 92.6715 942 2 0 0.578664 9.34863 -145.85 - 63 263.741 862 1 1 -7.07449 8.9227 -174.45 - 63 228.225 939 1 0 -6.76007 8.69498 -175.85 - 63 324.343 907 0 1 2.38777 5.07456 -204.45 - 63 360.413 926 0 0 6.29111 6.14413 -205.85 - 63 351.985 863 1 1 -6.98272 9.15605 -174.494 - 63 158.196 896 4 0 -0.0987722 0.137293 -85.85 - 63 103.963 895 3 1 -0.46403 0.240998 -114.45 - 63 119.549 896 3 0 -0.494756 0.246282 -115.85 - 63 98.1045 892 2 1 -1.12302 0.32297 -144.45 - 63 107.691 897 2 0 -1.14133 0.326679 -145.85 - 63 103.282 890 1 1 -1.53759 0.400042 -174.45 - 63 179.243 897 1 0 -1.56186 0.415635 -175.85 - 63 146.81 887 0 1 -2.12496 0.772805 -204.45 - 63 120.7 899 0 0 -2.15006 0.763437 -205.85 -Number of tracker digits in this event = 11 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 64 -Number of tracker hits in this event = 1 - 64 186.174 606 1 1 -58.3272 -41.6164 -174.833 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 22 + 64 114.18303 895 4 0 -0.18197486 -0.49625979 -85.85 + 64 124.74356 892 3 0 -0.28898468 -1.1060061 -115.85 + 64 123.33934 892 2 0 -0.42684621 -1.1872156 -145.85 + 64 114.51097 891 1 0 -0.44449359 -1.2951773 -175.85 + 64 248.20836 895 2 1 -0.51308587 -1.0611655 -144.45 + 64 972.20957 892 2 1 -1.0825364 -1.2455219 -144.71786 + 64 52.963742 886 2 0 -0.40283133 -2.3315403 -145.85 + 64 65.374025 903 2 1 1.5743116 -1.5226399 -144.85 + 64 115.87921 896 6 0 -0.076165557 0.13604269 -25.85 + 64 115.52893 890 5 1 -1.6478935 2.5739959 -54.45 + 64 157.23038 909 5 0 -1.9042617 2.7861978 -55.85 + 64 112.1597 863 4 1 -6.9242599 7.9848791 -84.45 + 64 151.96439 936 4 0 -7.4140905 8.0951132 -85.85 + 64 114.66227 811 3 1 -17.39423 9.8989603 -114.45 + 64 175.10868 945 3 0 -17.672595 9.9512021 -115.85 + 64 114.76143 771 2 1 -25.429269 9.8333726 -144.45 + 64 100.39397 944 2 0 -25.932221 9.7568374 -145.85 + 64 128.42171 713 1 1 -36.897651 8.323357 -174.45 + 64 113.58338 937 1 0 -37.327696 8.3022747 -175.85 + 64 185.91406 667 0 1 -46.088709 8.3396837 -204.45 + 64 148.09448 938 0 0 -46.632241 8.5190768 -205.85 + 64 41.789523 930 0 0 -47.522011 6.9947091 -206.21339 +Number of tracker digits in this event = 10 Event: 65 -Number of tracker hits in this event = 6 - 65 278.19 955 2 0 8.62072 11.9247 -146.25 - 65 126.225 917 2 1 4.4433 14.2587 -144.85 - 65 191.743 916 2 1 4.18691 14.3421 -144.813 - 65 113.2 915 2 1 3.93331 14.4531 -144.815 - 65 218.034 965 2 0 2.84548 13.9263 -145.85 - 65 74.8913 964 2 0 2.73013 13.8465 -145.985 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 66 -Number of tracker hits in this event = 1 - 66 109.4 758 3 1 -27.8809 111.41 -114.6 +Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 67 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 19 + 67 172.26597 914 2 1 3.8493143 3.3679984 -144.45 + 67 107.51801 914 2 0 4.2976384 3.6799353 -145.85 + 67 216.14993 963 1 1 13.647862 8.9746951 -174.45 + 67 17.212058 964 1 1 13.742028 9.047372 -174.8055 + 67 126.81744 942 1 0 13.981406 9.2533486 -175.85 + 67 104.46454 998 0 1 20.646551 15.427284 -204.45 + 67 125.44234 973 0 0 20.836136 15.645244 -205.85 + 67 182.93386 896 3 0 -0.25951191 0.1444238 -115.85 + 67 100.94118 895 2 1 -0.4824254 0.52404393 -144.45 + 67 100.09849 898 2 0 -0.49127214 0.54769902 -145.85 + 67 191.92708 894 1 1 -0.77281328 1.0051873 -174.45 + 67 116.3271 900 1 0 -0.77020495 1.0194937 -175.85 + 67 110.1724 895 0 1 -0.64416083 1.2912274 -204.45 + 67 199.27188 902 0 0 -0.6493579 1.3132234 -205.85 + 67 128.64292 901 1 0 -0.87483169 1.0867515 -175.85 + 67 114.37432 882 0 1 -3.1403077 2.9889458 -204.45 + 67 181.71826 910 0 0 -3.22585 3.0476811 -205.85 + 67 155.38222 896 3 1 0.21852147 -0.05 -114.6419 + 67 275.68598 894 3 0 2.1750839 -0.6709315 -115.85 +Number of tracker digits in this event = 11 Event: 68 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 69 -Number of tracker hits in this event = 4 - 69 251.249 267 9 1 -126.59 -105.758 65.448 - 69 2.92214 268 9 1 -126.541 -105.502 65.159 - 69 119.892 374 9 0 -126.359 -105.319 64.15 - 69 298.091 373 9 0 -126.34 -105.358 64.0062 -Number of tracker digits in this event = 2 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 70 -Number of tracker hits in this event = 3 - 70 140.355 896 0 1 0.185266 0.0732478 -204.45 - 70 99.8129 896 0 0 0.175969 0.0732341 -205.85 - 70 45.0666 896 1 0 0.05 0.0703406 -176.23 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 26 + 70 127.07044 899 3 1 0.67263244 -1.1701073 -114.45 + 70 134.58294 891 3 0 0.79215674 -1.2825089 -115.85 + 70 109.91694 913 2 1 3.4831432 -3.4224862 -144.45 + 70 123.62127 880 2 0 3.6011403 -3.5672782 -145.85 + 70 114.79145 925 1 1 6.0418586 -6.2742214 -174.45 + 70 131.6795 865 1 0 6.091152 -6.4523316 -175.85 + 70 113.17432 929 0 1 6.8039975 -10.149846 -204.45 + 70 193.28747 847 0 0 7.1569976 -10.201516 -205.85 + 70 259.51593 895 1 0 -0.20095177 -0.53737956 -175.85 + 70 47.002042 1236 5 1 68.112173 -16.066799 -54.76183 + 70 876.94417 791 6 0 -19.42483 -21.305408 -26.25 + 70 139.2454 790 6 0 -19.739459 -21.499986 -25.886256 + 70 196.77827 795 6 1 -20.608807 -22.86078 -24.85 + 70 164.1755 792 6 1 -21.0692 -23.619782 -24.45 + 70 185.84108 777 6 0 -20.853053 -24.061155 -25.85 + 70 192.9079 835 5 1 -12.468773 -42.186388 -54.530321 + 70 233.11362 966 0 0 -10.007093 14.085375 -206.22788 + 70 17.429368 895 0 0 0.05 -0.55529969 -206.21006 + 70 167.00436 896 3 0 0.40595747 0.097770111 -115.85 + 70 364.97932 962 2 1 13.31805 3.6465617 -144.45 + 70 260.17924 963 2 1 13.6212 4.8516059 -144.46842 + 70 149.51537 921 2 0 12.78219 5.0971675 -145.85 + 70 313.57658 895 3 1 -0.58995359 0.13388187 -114.85 + 70 1.7710204 891 3 1 -1.3869976 0.46245993 -114.84413 + 70 209.07633 899 3 0 -3.224252 0.77050291 -115.85 + 70 110.99177 900 3 0 -3.7968728 0.88746452 -116.03875 +Number of tracker digits in this event = 19 Event: 71 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 72 -Number of tracker hits in this event = 10 - 72 137.419 896 2 1 0.155674 -0.422665 -144.45 - 72 138.944 895 2 0 0.148647 -0.454008 -145.85 - 72 108.37 893 1 0 -0.246001 -1.03352 -175.85 - 72 114.154 894 0 1 -0.813952 -1.8587 -204.45 - 72 114.868 888 0 0 -0.771789 -1.87175 -205.85 - 72 102.508 896 3 1 0.0713441 -0.0643969 -114.45 - 72 121.526 898 1 1 0.592364 -0.071295 -174.45 - 72 228.179 899 0 1 0.778915 -0.0897635 -204.45 - 72 133.229 1653 0 0 -93.1072 152.127 -206.152 - 72 193.15 1655 0 0 -93.1451 152.371 -206.145 -Number of tracker digits in this event = 6 -Event: 73 -Number of tracker hits in this event = 2 - 73 101.838 1571 5 1 135.575 31.198 -54.748 - 73 21.7996 1570 5 1 135.546 31.2012 -54.679 +Number of tracker hits in this event = 1 + 72 15.689841 1253 3 1 71.603498 30.417218 -114.49805 Number of tracker digits in this event = 0 +Event: 73 +Number of tracker hits in this event = 9 + 73 132.02913 896 1 1 0.16140508 0.095954982 -174.45 + 73 297.11427 896 1 0 0.16519402 0.097809169 -175.85 + 73 101.90594 896 0 1 0.20249787 0.14261111 -204.45 + 73 105.32327 896 0 0 0.197825 0.14317415 -205.85 + 73 104.25692 891 1 1 -1.2786856 -0.49797167 -174.45 + 73 107.35451 895 1 0 -1.3494901 -0.50834019 -175.85 + 73 150.09594 884 0 1 -2.7146721 -0.77194818 -204.45 + 73 102.75299 894 0 0 -2.7645145 -0.79060033 -205.85 + 73 16.663501 581 2 0 57.975541 -63.430777 -145.95404 +Number of tracker digits in this event = 3 Event: 74 -Number of tracker hits in this event = 15 - 74 126.938 896 3 0 -0.063368 0.11539 -115.85 - 74 134.233 897 2 0 -0.243732 0.387385 -145.85 - 74 115.698 898 1 0 -0.411276 0.588159 -175.85 - 74 100.604 895 0 1 -0.5685 0.90856 -204.45 - 74 110.273 900 0 0 -0.575509 0.92446 -205.85 - 74 283.138 895 1 1 -0.493007 0.446495 -174.634 - 74 152.342 894 0 1 -0.696465 0.802785 -204.45 - 74 98.583 898 0 0 -0.723683 0.610236 -205.85 - 74 118.168 884 3 0 -0.0769061 -2.67342 -115.85 - 74 466.098 900 2 1 0.980134 -5.55434 -144.45 - 74 131.016 870 2 0 0.994172 -5.61578 -145.85 - 74 116.583 899 1 1 0.734988 -6.58492 -174.45 - 74 196.102 864 1 0 0.768816 -6.67354 -175.85 - 74 126.806 904 0 1 1.83656 -8.43423 -204.45 - 74 116.605 856 0 0 1.70671 -8.32686 -205.85 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 1 + 74 206.55961 800 2 0 128.86961 -19.517572 -146.24707 +Number of tracker digits in this event = 1 Event: 75 -Number of tracker hits in this event = 17 - 75 225.741 896 4 0 -0.0884496 0.0744012 -85.85 - 75 134.581 895 3 1 -0.453938 0.0693698 -114.45 - 75 158.231 896 3 0 -0.48317 0.0680406 -115.85 - 75 119.443 892 2 1 -1.0594 0.0638695 -144.45 - 75 130.341 896 2 0 -1.09746 0.0599844 -145.85 - 75 121.354 884 0 1 -2.77628 -0.265693 -204.45 - 75 182.452 771 5 0 -34.9445 -25.3978 -56.25 - 75 125.096 725 5 1 -34.5301 -25.2459 -54.85 - 75 228.697 896 5 1 0.0792989 -0.19806 -54.45 - 75 102.436 893 3 0 -0.446898 -0.920757 -115.85 - 75 135.773 894 2 1 -0.762456 -1.41981 -144.45 - 75 155.492 891 2 0 -0.764998 -1.44231 -145.85 - 75 106.483 894 1 1 -0.756853 -1.93436 -174.45 - 75 141.101 888 1 0 -0.769841 -1.95636 -175.85 - 75 143.977 892 0 1 -1.09753 -2.36982 -204.45 - 75 103.122 886 0 0 -1.11717 -2.40104 -205.85 - 75 122.363 556 0 1 -68.3026 57.7589 -204.667 -Number of tracker digits in this event = 13 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 76 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 77 -Number of tracker hits in this event = 0 +Number of tracker hits in this event = 1 + 77 96.575093 830 13 1 -13.548601 -49.835887 185.53501 Number of tracker digits in this event = 0 Event: 78 -Number of tracker hits in this event = 0 +Number of tracker hits in this event = 1 + 78 74.411122 908 1 1 2.4563954 -10.651463 -174.53984 Number of tracker digits in this event = 0 Event: 79 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 80 -Number of tracker hits in this event = 6 - 80 99.1696 912 0 0 -32.959 3.42261 -206.006 - 80 90.9094 913 0 0 -32.9357 3.60842 -205.92 - 80 34.8755 914 0 0 -32.9155 3.6541 -205.85 - 80 13.6792 738 0 1 -31.8559 3.93294 -204.85 - 80 12.1391 739 0 1 -31.8432 3.93004 -204.844 - 80 70.8525 906 0 0 -32.0335 2.23037 -205.85 +Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 81 -Number of tracker hits in this event = 4 - 81 138.106 896 1 1 0.170852 0.131697 -174.45 - 81 128.882 896 1 0 0.162618 0.136694 -175.85 - 81 192.67 1274 6 0 -134.249 75.7633 -26.0997 - 81 132.409 896 0 1 0.214018 -0.200081 -204.45 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 82 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 31 + 82 105.11546 900 1 0 -0.327817 0.8535458 -175.85 + 82 120.65078 905 0 0 -0.31045691 2.0298938 -205.85 + 82 224.73723 896 1 0 0.2453741 0.060147402 -175.85 + 82 101.40178 891 0 1 -1.3399459 0.72211632 -204.45 + 82 116.54233 899 0 0 -1.5137722 0.74817449 -205.85 + 82 167.82643 898 0 1 0.53171325 -0.26860048 -204.45 + 82 129.31784 894 0 1 -0.68241359 0.33719184 -204.45 + 82 344.53544 897 0 0 -0.68460808 0.31120319 -205.85 + 82 233.81633 896 2 1 0.05 0.16948318 -144.53275 + 82 160.39263 897 2 1 0.38145376 0.067034905 -144.6191 + 82 183.69589 899 2 0 0.25109019 0.81412218 -145.85 + 82 100.15319 898 1 1 0.5310479 3.1327227 -174.45 + 82 100.40875 911 1 0 0.62160257 3.1300335 -175.85 + 82 112.13292 902 0 1 1.3097613 3.3888221 -204.45 + 82 141.79197 913 0 0 1.2750079 3.5003192 -205.85 + 82 490.77558 893 2 0 -3.7863117 -1.0416204 -145.85 + 82 91.756504 698 2 0 -74.729251 -39.876437 -146.25 + 82 802.31382 527 2 1 -74.18719 -39.794621 -144.85 + 82 221.87569 902 1 1 1.4309966 0.45824463 -174.45 + 82 106.37779 898 1 0 1.3233846 0.52447423 -175.85 + 82 134.47505 893 0 1 -1.0442391 2.3559317 -204.45 + 82 129.45532 907 0 0 -1.0402151 2.3633001 -205.85 + 82 84.766793 896 4 0 0.05 0.087395739 -86.04036 + 82 152.34221 902 3 1 1.3529726 1.9408129 -114.45 + 82 103.86563 905 3 0 1.4902497 2.0344445 -115.85 + 82 152.18162 918 2 1 4.4958243 3.8357018 -144.45 + 82 112.50367 915 2 0 4.645212 3.9472888 -145.85 + 82 123.83364 935 1 1 8.0320087 6.2447344 -174.45 + 82 177.67967 927 1 0 8.1253325 6.38216 -175.85 + 82 148.95808 945 0 1 9.8808515 9.4050707 -204.45 + 82 133.70692 943 0 0 9.9388327 9.5516846 -205.85 +Number of tracker digits in this event = 20 Event: 83 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 5 + 83 10.110032 516 3 0 95.815955 -76.299849 -115.87823 + 83 54.427297 1380 3 1 97.491861 -76.104846 -114.85 + 83 140.89497 1381 3 1 97.618382 -76.038415 -114.82073 + 83 176.98338 1382 3 1 97.844869 -76.032368 -114.73498 + 83 95.633391 1383 3 1 97.952429 -75.930267 -114.71108 +Number of tracker digits in this event = 2 Event: 84 -Number of tracker hits in this event = 22 - 84 120.66 895 5 1 -0.457797 0.522951 -54.45 - 84 172.803 898 5 0 -0.398599 0.515398 -55.85 - 84 104.689 898 4 1 0.557882 0.289376 -84.45 - 84 99.6408 896 4 0 0.559024 0.228983 -85.85 - 84 218.512 898 3 1 0.452102 -0.763657 -114.45 - 84 120.782 893 3 0 0.594029 -0.922978 -115.85 - 84 274.239 912 2 1 3.40112 -4.02526 -144.45 - 84 99.2343 877 2 0 3.6742 -4.16394 -145.85 - 84 121.849 941 1 1 9.13388 -6.59593 -174.45 - 84 106.06 864 1 0 9.17067 -6.71235 -175.85 - 84 176.457 945 0 1 9.86435 -9.2102 -204.45 - 84 119.418 851 0 0 10.1222 -9.35909 -205.85 - 84 64.8197 1519 2 0 71.0543 125.251 -146.001 - 84 149.726 896 3 0 -0.13808 0.195856 -115.85 - 84 110.795 896 2 0 -0.383286 0.222985 -145.85 - 84 359.751 894 1 1 -0.702982 0.318636 -174.45 - 84 457.422 897 1 0 -0.722619 0.331576 -175.85 - 84 146.569 892 0 1 -1.06929 0.622227 -204.45 - 84 236.574 899 0 0 -1.09936 0.678891 -205.85 - 84 376.807 893 0 1 -1.00004 0.523207 -204.45 - 84 446.906 898 0 0 -1.01075 0.543131 -205.85 - 84 245.803 894 0 1 -0.832584 0.481794 -204.45 -Number of tracker digits in this event = 15 +Number of tracker hits in this event = 1 + 84 278.16244 1646 14 1 150.60846 101.01572 215.30006 +Number of tracker digits in this event = 1 Event: 85 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 86 -Number of tracker hits in this event = 27 - 86 156.354 897 1 1 0.367291 -0.0645946 -174.45 - 86 106.158 901 0 1 1.06485 -0.14607 -204.45 - 86 80.9639 1080 1 0 -20.3097 37.011 -176.004 - 86 250.446 895 2 1 -0.611745 -0.629758 -144.45 - 86 101.771 895 2 0 -0.641971 -0.645616 -145.85 - 86 252.403 891 1 1 -1.30239 -0.965995 -174.45 - 86 126.101 893 1 0 -1.33144 -0.986164 -175.85 - 86 270.223 888 0 1 -1.99362 -1.4508 -204.45 - 86 108.758 890 0 0 -2.03117 -1.46664 -205.85 - 86 188.491 893 3 0 -1.55196 -0.895946 -115.85 - 86 8.16405 892 3 0 -1.95544 -1.07853 -116.244 - 86 46.8044 774 3 0 -29.3112 -24.8009 -116.25 - 86 284.649 773 3 0 -29.3253 -24.8577 -116.173 - 86 107.157 524 2 0 -17.7287 -74.7268 -146.075 - 86 8.24084 523 2 0 -17.7249 -74.9067 -146.238 - 86 17.8985 587 2 0 -1.09045 -62.0564 -146.25 - 86 16.7388 588 2 0 -1.08614 -62.0426 -146.246 - 86 31.8878 185 2 0 -1.66746 -143.003 -146.25 - 86 113.68 891 2 0 -0.489875 -1.34759 -145.85 - 86 113.669 885 1 0 -1.41111 -2.56384 -175.85 - 86 100.04 885 0 0 -1.93724 -2.63824 -205.85 - 86 60.6031 338 3 1 -112.401 -68.1642 -114.549 - 86 110.198 766 1 0 46.2362 -26.3428 -176.25 - 86 115.555 1130 1 1 46.9091 -26.2695 -174.85 - 86 185.726 1131 1 1 47.0862 -26.2646 -174.632 - 86 165.183 1132 1 1 47.3892 -26.3815 -174.469 - 86 337.775 1133 1 1 47.5933 -26.6611 -174.493 -Number of tracker digits in this event = 10 -Event: 87 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 +Event: 87 +Number of tracker hits in this event = 5 + 87 175.92794 896 1 1 0.053099685 0.28100345 -174.45 + 87 112.08949 897 1 0 0.05265667 0.32476738 -175.85 + 87 11.469286 667 1 0 10.826221 -46.157305 -175.90645 + 87 82.182562 1440 2 1 109.36591 89.341883 -144.55243 + 87 6.3570841 1337 2 0 108.11181 88.416618 -145.8796 +Number of tracker digits in this event = 1 Event: 88 -Number of tracker hits in this event = 24 - 88 267.281 896 3 1 0.15537 -0.734328 -114.45 - 88 141.528 894 3 0 0.178653 -0.783618 -115.85 - 88 108.292 899 2 1 0.680473 -1.91433 -144.45 - 88 149.538 888 2 0 0.708137 -1.97302 -145.85 - 88 175.701 904 1 1 1.75008 -3.40402 -174.45 - 88 146.797 880 1 0 1.79528 -3.46298 -175.85 - 88 175.733 909 0 1 2.8327 -4.57591 -204.45 - 88 149.503 875 0 0 2.88546 -4.6427 -205.85 - 88 104.789 919 1 1 4.76573 23.7792 -174.636 - 88 88.523 897 3 1 0.391696 -0.647408 -114.617 - 88 228.652 898 3 1 0.498099 -0.556487 -114.608 - 88 268.902 893 0 1 -0.890783 -0.207284 -204.45 - 88 96.5513 898 5 1 0.57991 0.511076 -54.45 - 88 104.757 898 5 0 0.616837 0.517082 -55.85 - 88 189.971 903 4 1 1.50767 0.787734 -84.45 - 88 157.233 899 4 0 1.54829 0.843648 -85.85 - 88 251.632 907 3 1 2.39987 2.08556 -114.45 - 88 274.651 906 3 0 2.44885 2.11931 -115.85 - 88 132.491 912 2 1 3.28367 2.78214 -144.45 - 88 107.753 909 2 0 3.24092 2.82892 -145.85 - 88 104.018 908 1 1 2.52936 4.01302 -174.45 - 88 259.696 916 1 0 2.54736 4.10802 -175.85 - 88 177.186 910 0 1 3.02638 6.1023 -204.45 - 88 145.262 927 0 0 3.13082 6.25436 -205.85 -Number of tracker digits in this event = 17 +Number of tracker hits in this event = 10 + 88 276.90266 897 1 1 0.28677195 0.34238185 -174.45 + 88 109.53154 897 1 0 0.3117374 0.36671164 -175.85 + 88 121.5779 899 0 1 0.79756411 0.8027945 -204.45 + 88 120.40999 899 0 0 0.83549485 0.8242094 -205.85 + 88 222.49873 346 6 0 106.47886 -110.91897 -26.248351 + 88 26.934878 1659 2 0 -119.30718 153.25379 -145.92418 + 88 11.542435 896 1 1 0.059651025 -0.050269792 -174.45 + 88 92.950008 896 0 1 0.074653814 0.075112504 -204.45 + 88 157.29945 896 0 0 0.064639893 0.090027232 -205.85 + 88 3.0165776 461 9 0 9.8924922 -87.391327 64.123464 +Number of tracker digits in this event = 5 Event: 89 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 90 -Number of tracker hits in this event = 18 - 90 98.6376 894 3 0 -0.194718 -0.80787 -115.85 - 90 137.75 894 2 0 -0.0824514 -0.795914 -145.85 - 90 125.059 893 1 0 -0.105174 -0.882207 -175.85 - 90 111.342 895 0 1 -0.516789 -0.856365 -204.45 - 90 108.171 893 0 0 -0.515651 -0.883457 -205.85 - 90 96.7242 407 1 0 -31.3585 -98.6849 -175.952 - 90 215.147 406 1 0 -31.3232 -98.8033 -175.852 - 90 96.758 896 4 1 0.09123 0.202089 -84.45 - 90 151.553 896 4 0 0.0982549 0.210261 -85.85 - 90 101.798 897 3 1 0.250207 0.371788 -114.45 - 90 128.971 897 3 0 0.257659 0.381636 -115.85 - 90 133.217 897 2 1 0.426516 0.580356 -144.45 - 90 107.274 898 2 0 0.438283 0.590589 -145.85 - 90 189.671 899 1 1 0.689868 0.78668 -174.45 - 90 193.043 899 1 0 0.698481 0.791292 -175.85 - 90 130.126 899 0 1 0.827362 0.906967 -204.45 - 90 124.413 900 0 0 0.842832 0.922071 -205.85 - 90 257.496 855 5 1 -8.58415 98.867 -54.5595 -Number of tracker digits in this event = 11 +Number of tracker hits in this event = 21 + 90 316.87935 897 3 0 -0.14759718 0.27669113 -115.85 + 90 249.50482 896 2 0 -0.14700516 0.23284462 -145.85 + 90 159.00078 898 1 0 -0.14810863 0.48117676 -175.85 + 90 108.04538 896 0 0 -0.36158993 0.22077665 -205.85 + 90 363.04907 896 4 1 0.14072699 -0.089073368 -84.45 + 90 98.964278 899 3 1 0.73880018 0.26285965 -114.45 + 90 108.22196 905 2 1 1.9663299 0.29834908 -144.45 + 90 167.56725 897 2 0 2.052756 0.29763122 -145.85 + 90 172.90131 915 1 1 3.9621846 0.12190788 -174.45 + 90 213.07851 896 1 0 4.0100097 0.097809231 -175.85 + 90 218.74264 919 0 1 4.7019724 -0.43161757 -204.45 + 90 143.85093 895 0 0 4.7065562 -0.4612333 -205.85 + 90 350.64961 906 2 1 2.1054158 0.30400653 -144.45 + 90 220.454 900 2 0 3.1641568 0.96611072 -145.85 + 90 182.47733 1046 1 1 30.147144 10.053338 -174.45 + 90 173.17455 938 1 0 30.802365 8.6479885 -175.85 + 90 142.36264 1116 0 1 44.058277 -14.270966 -204.45 + 90 161.65595 820 0 0 44.664737 -15.628573 -205.85 + 90 251.5841 940 1 1 8.8851271 -0.17626796 -174.45 + 90 118.68741 992 0 1 19.282072 1.6590806 -204.45 + 90 118.57857 906 0 0 19.436657 2.239455 -205.85 +Number of tracker digits in this event = 16 Event: 91 -Number of tracker hits in this event = 23 - 91 180.843 900 4 0 -0.341363 0.873363 -85.85 - 91 131.951 896 3 1 0.114556 1.89397 -114.45 - 91 101.272 905 3 0 0.118008 1.98503 -115.85 - 91 283.242 897 2 1 0.300894 3.88823 -144.45 - 91 154.485 916 2 0 0.275104 4.09789 -145.85 - 91 125.209 937 1 0 -0.425078 8.42014 -175.85 - 91 149.312 891 0 1 -1.4338 11.9167 -204.45 - 91 134.407 956 0 0 -1.50712 12.0806 -205.85 - 91 31.8205 896 2 1 0.238096 3.97555 -144.838 - 91 743.08 900 1 1 0.928174 4.51151 -174.45 - 91 215.336 918 1 0 0.862057 4.58068 -175.85 - 91 95.2852 894 0 1 -0.775189 6.68761 -204.45 - 91 108.371 928 0 0 -0.940832 6.576 -205.85 - 91 189.922 899 1 1 0.68077 5.77956 -174.61 - 91 307.18 936 1 0 -1.95107 8.09712 -175.85 - 91 108.973 938 1 0 -2.54582 8.52303 -176.229 - 91 137.099 939 1 0 -2.68836 8.78155 -176.104 - 91 195.954 867 1 1 -6.07377 11.1303 -174.85 - 91 193.521 865 1 1 -6.57296 11.4422 -174.843 - 91 2.00388 901 1 1 1.15439 4.1207 -174.459 - 91 114.017 895 1 0 -0.0749293 -0.609652 -175.85 - 91 117.26 902 0 1 1.31214 -2.01752 -204.45 - 91 107.482 887 0 0 1.39707 -2.10891 -205.85 -Number of tracker digits in this event = 14 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 92 -Number of tracker hits in this event = 14 - 92 152.499 897 1 1 0.419461 -0.0746187 -174.45 - 92 244.976 897 0 1 0.395581 0.795629 -204.45 - 92 148.476 899 0 0 0.375152 0.838523 -205.85 - 92 239.178 1418 5 0 -144.502 105.12 -56.25 - 92 27.0809 1419 5 0 -144.563 105.157 -56.2392 - 92 113.995 905 5 1 1.8971 -46.6102 -54.769 - 92 213.274 904 5 1 1.78176 -46.8163 -54.6787 - 92 173 895 0 0 0.293686 -0.560738 -205.85 - 92 286.282 1016 1 0 -56.2691 24.2074 -176.25 - 92 214.254 607 1 1 -58.093 25.134 -174.85 - 92 144.883 910 1 0 -12.9866 2.95621 -176.25 - 92 126.514 833 1 1 -12.8838 2.7768 -174.85 - 92 88.8563 896 1 1 0.05 -0.150542 -174.622 - 92 61.6675 645 1 1 -50.6388 75.1121 -174.81 -Number of tracker digits in this event = 10 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 93 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 94 -Number of tracker hits in this event = 4 - 94 83.4485 896 1 1 0.05 -0.184312 -174.544 - 94 105.368 899 0 1 0.662187 -0.0890923 -204.45 - 94 60.1343 230 3 0 64.8351 -133.974 -115.999 - 94 147.82 1219 3 1 64.841 -134.357 -114.85 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 95 -Number of tracker hits in this event = 24 - 95 130.081 898 3 1 0.478796 -0.545526 -114.45 - 95 282.986 894 3 0 0.49907 -0.724244 -115.85 - 95 101.527 897 2 1 0.381388 -4.35428 -144.45 - 95 96.2032 875 2 0 0.374534 -4.45361 -145.85 - 95 111.454 896 1 1 0.194847 -6.6005 -174.45 - 95 101.24 864 1 0 -0.111062 -6.84925 -175.85 - 95 21.1787 863 1 0 -0.178852 -6.90636 -176.179 - 95 129.89 867 0 1 -6.21956 -10.7952 -204.45 - 95 181.227 843 0 0 -6.56216 -10.9658 -205.85 - 95 115.214 897 3 1 0.421455 -0.348369 -114.45 - 95 155.995 888 2 1 -1.8508 -6.76666 -144.45 - 95 149.222 862 2 0 -1.58549 -7.24699 -145.85 - 95 131.864 916 1 1 4.15484 -16.2495 -174.45 - 95 108.561 815 1 0 4.029 -16.4938 -175.85 - 95 110.814 907 0 1 2.29612 -19.3168 -204.45 - 95 125.66 801 0 0 2.05469 -19.4352 -205.85 - 95 122.191 899 4 0 -0.976749 0.779461 -85.85 - 95 137.65 1065 4 0 -41.8115 33.856 -86.25 - 95 235.304 1066 4 0 -42.0511 34.1445 -86.0007 - 95 24.4992 1067 4 0 -42.1322 34.3197 -85.8849 - 95 373.897 681 4 1 -43.3896 36.764 -84.85 - 95 4.12182 661 4 1 -47.3738 42.9924 -84.85 - 95 15.5453 1117 4 0 -46.6997 44.4328 -85.85 - 95 337.603 683 4 1 -42.8585 33.9477 -84.85 -Number of tracker digits in this event = 13 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 96 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 97 -Number of tracker hits in this event = 3 - 97 102.659 882 0 1 -3.14618 98.3055 -204.552 - 97 223.972 890 0 0 -0.786536 -1.6099 -205.85 - 97 3.18325 888 0 0 -0.655149 -2.0042 -206.162 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 98 -Number of tracker hits in this event = 5 - 98 274.941 896 0 1 0.180889 -0.138043 -204.45 - 98 80.8624 1367 7 1 94.9355 79.9407 5.21767 - 98 128.127 896 0 0 0.0547107 0.13358 -205.85 - 98 177.216 1724 4 1 166.215 36.5332 -84.7054 - 98 53.7364 911 3 1 3.14176 -5.31325 -114.522 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 99 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Run terminated. Run Summary Number of events processed : 100 - User=9.07s Real=22.98s Sys=0.02s + User=8.17s Real=8.23s Sys=0.03s End of Run File Tracks_1.dat /gun/particle e- /gun/energy 1 GeV /gun/sourceType 2 /run/beamOn 100 + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Scintillator + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.3689452 keV e- 355.79082 keV e+ 347.13789 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Calorimeter + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : CesiumIodide + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 38.405229 keV e- 691.66869 keV e+ 658.43466 keV + Region(s) which use this couple : + Calorimeter + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Tracker + +Index : 5 used in the geometry : Yes recalculation needed : No + Material : Silicon + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 2.3033387 keV e- 120.42458 keV e+ 118.95119 keV + Region(s) which use this couple : + Tracker + +Index : 6 used in the geometry : Yes recalculation needed : No + Material : Tungsten + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 36.047857 keV e- 351.43773 keV e+ 334.55147 keV + Region(s) which use this couple : + Tracker + +==================================================================== + Start Run processing. Event: 0 -Number of tracker hits in this event = 12 - 0 279.417 896 3 0 -0.357135 0.125535 -115.85 - 0 254.322 895 2 1 -0.461769 0.117117 -144.45 - 0 115.662 896 2 0 -0.462757 0.114115 -145.85 - 0 99.0016 895 3 1 -0.456 0.130037 -114.681 - 0 140.428 899 2 0 -0.655183 0.813137 -145.85 - 0 124.394 877 1 1 -4.249 13.1972 -174.45 - 0 159.473 964 1 0 -4.71871 13.6697 -175.85 - 0 166.243 824 0 1 -14.7274 23.3952 -204.45 - 0 146.851 1015 0 0 -15.3445 23.9076 -205.85 - 0 31.0931 1406 1 0 -95.8143 102.68 -176.132 - 0 106.878 1389 0 1 99.2704 -68.3122 -204.807 - 0 166.824 897 3 0 -0.163966 0.280019 -115.85 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 32 + 0 103.03752 896 5 1 0.15814514 -0.064367941 -54.45 + 0 143.8087 897 4 1 0.44257747 -0.12761965 -84.45 + 0 230.54273 899 3 1 0.79591859 -0.10488501 -114.45 + 0 122.5296 903 2 1 1.5531439 -0.24792568 -144.45 + 0 125.21753 894 2 0 1.3760652 -0.84551569 -145.85 + 0 117.5208 909 1 1 2.7269089 -11.336582 -174.45 + 0 129.92259 846 1 0 2.2968807 -10.435761 -175.85 + 0 156.64928 858 0 1 -7.9731992 12.236739 -204.45 + 0 314.6855 962 0 0 -8.3377834 13.363041 -205.85 + 0 167.70305 963 0 0 -8.4409454 13.555141 -206.15954 + 0 292.9239 924 0 0 -56.415855 5.7583665 -206.25 + 0 243.37725 922 0 0 -56.862073 5.4115968 -205.91981 + 0 369.58922 921 0 0 -57.182081 5.1775708 -205.86967 + 0 164.11005 895 2 0 1.6492601 -0.47879185 -145.85 + 0 161.01257 927 1 1 6.416746 -6.9118803 -174.45 + 0 133.73704 862 1 0 5.5720705 -7.0952773 -175.85 + 0 125.66731 837 0 1 -12.18897 -9.0065787 -204.45 + 0 135.33535 849 0 0 -11.7455 -9.8365211 -205.85 + 0 355.19895 912 0 1 3.3629055 0.21702535 -204.45 + 0 275.07807 896 0 0 3.4170922 0.23076664 -205.85 + 0 287.87392 897 3 1 0.43008005 -0.35326518 -114.45 + 0 106.33715 899 2 0 -0.19355291 0.69345778 -145.85 + 0 137.86235 889 1 1 -1.6506336 1.9668667 -174.45 + 0 151.75188 905 1 0 -0.91375119 2.0479224 -175.85 + 0 166.20891 967 0 1 14.277739 3.7042954 -204.45 + 0 114.46942 915 0 0 15.028592 3.8801889 -205.85 + 0 124.3777 893 2 1 -0.95460696 -2.5413372 -144.45 + 0 110.66056 886 2 0 -0.8387256 -2.4458995 -145.85 + 0 117.49304 896 1 0 -0.19780268 0.10011633 -175.85 + 0 107.50524 879 0 1 -3.8440267 -0.73145187 -204.45 + 0 126.23646 893 0 0 -3.9927025 -0.92711675 -205.85 + 0 40.317381 900 1 0 -2.6090383 0.944546 -175.85 +Number of tracker digits in this event = 24 Event: 1 -Number of tracker hits in this event = 13 - 1 163.022 899 3 0 -0.0802466 0.754048 -115.85 - 1 112.338 1272 8 0 146.258 75.4177 33.9607 - 1 582.087 896 1 1 0.13027 1.45905 -174.45 - 1 767.244 891 1 0 7.51168 -1.39399 -175.85 - 1 122.516 887 1 0 9.94694 -2.21242 -176.249 - 1 161.325 908 2 0 -0.32176 2.49023 -145.85 - 1 52.0676 897 4 0 0.05 0.442355 -86.0377 - 1 427.75 898 4 0 0.102496 0.456861 -86.1607 - 1 252.001 896 4 1 0.05 0.409448 -84.6173 - 1 27.3015 891 4 1 -1.40698 2.52998 -84.7182 - 1 107.324 889 6 0 1.10278 -1.69578 -25.85 - 1 104.567 888 6 0 1.18157 -1.8571 -26.0377 - 1 205.245 887 6 0 1.12493 -2.08628 -26.0317 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 11 + 1 106.03955 894 4 1 -0.66892584 -0.11452426 -84.45 + 1 111.92421 892 3 1 -1.1594825 -0.29545768 -114.45 + 1 291.77727 889 2 1 -1.749261 -0.40049968 -144.45 + 1 111.23307 886 1 1 -2.4118531 -0.64811238 -174.45 + 1 207.4856 894 1 0 -2.4374443 -0.66961804 -175.85 + 1 123.10163 883 0 1 -2.9637214 -1.1272929 -204.45 + 1 144.82739 892 0 0 -2.9883691 -1.1406968 -205.85 + 1 181.06349 400 1 0 53.973928 -100.12688 -176.19504 + 1 198.57006 1167 1 1 54.305184 -101.84884 -174.85 + 1 53.146295 1166 1 1 54.243537 -102.27599 -174.54974 + 1 322.04896 1016 0 1 24.143019 -51.964625 -204.79489 +Number of tracker digits in this event = 7 Event: 2 -Number of tracker hits in this event = 6 - 2 111.938 896 5 0 -0.0840147 0.144876 -55.85 - 2 107.045 898 4 0 -0.195547 0.618148 -85.85 - 2 114.879 901 3 0 -0.283732 1.17207 -115.85 - 2 186.776 904 2 0 -0.328046 1.73511 -145.85 - 2 181.922 907 1 0 -0.353663 2.43273 -175.85 - 2 117.778 911 0 0 -0.426256 3.14625 -205.85 -Number of tracker digits in this event = 2 -Event: 3 -Number of tracker hits in this event = 17 - 3 202.86 896 2 0 -0.0750717 0.196745 -145.85 - 3 117.558 898 1 0 -0.0743713 0.483451 -175.85 - 3 402.443 899 0 0 -0.253699 0.801134 -205.85 - 3 100.056 897 1 0 -0.219091 0.334066 -175.85 - 3 96.8876 892 0 1 -1.19495 3.33365 -204.45 - 3 123.934 910 0 0 -1.1599 2.90612 -205.85 - 3 112.656 896 1 0 -0.124027 0.21427 -175.85 - 3 40.2894 900 0 1 0.878314 -0.05 -204.69 - 3 305.802 896 2 1 0.05 0.0998555 -144.477 - 3 16.2239 899 2 1 0.781471 0.407691 -144.834 - 3 241.15 901 2 0 3.94984 1.22927 -145.85 - 3 175.777 902 2 0 4.71431 1.26643 -145.998 - 3 94.4545 988 2 0 111.058 18.6452 -146.25 - 3 131.913 989 2 0 111.017 18.841 -146.179 - 3 120.514 990 2 0 111.221 18.852 -146.018 - 3 302.585 1449 2 1 111.268 18.2247 -144.85 - 3 80.497 1450 2 1 111.432 18.0166 -144.59 +Number of tracker hits in this event = 13 + 2 135.00816 894 3 1 -0.65748763 -0.49794423 -114.45 + 2 498.65425 895 3 0 -0.67945063 -0.51013091 -115.85 + 2 101.90645 892 2 1 -1.1646641 -0.74328138 -144.45 + 2 250.89617 894 2 0 -1.1884089 -0.75530513 -145.85 + 2 106.86145 889 1 1 -1.6769221 -1.0089063 -174.45 + 2 653.74714 893 1 0 -1.7086701 -1.0256258 -175.85 + 2 146.66325 886 0 1 -2.3846426 -1.3333769 -204.45 + 2 122.34294 891 0 0 -2.4182292 -1.3481607 -205.85 + 2 111.42418 893 2 1 -0.88647868 -0.75002874 -144.45 + 2 137.55467 881 1 1 -3.3153445 0.4691157 -174.45 + 2 101.09142 898 1 0 -3.4700279 0.50319011 -175.85 + 2 131.83439 872 0 1 -5.2274809 0.26462962 -204.45 + 2 142.06414 899 0 0 -5.0821993 0.72663813 -205.85 Number of tracker digits in this event = 9 -Event: 4 -Number of tracker hits in this event = 47 - 4 138.955 896 5 1 0.0825861 0.147326 -54.45 - 4 110.852 896 5 0 0.111309 0.160227 -55.85 - 4 313.265 899 4 1 0.808939 0.324085 -84.45 - 4 105.825 897 4 0 0.819827 0.29319 -85.85 - 4 170.268 900 3 1 1.01711 -0.362785 -114.45 - 4 140.504 901 2 1 1.07412 -0.570122 -144.45 - 4 226.221 895 2 0 1.07519 -0.594715 -145.85 - 4 98.8922 901 1 1 1.06442 -1.09258 -174.45 - 4 126.191 892 1 0 1.03526 -1.11696 -175.85 - 4 129.77 897 0 1 0.419198 -1.6806 -204.45 - 4 147.575 889 0 0 0.381171 -1.72136 -205.85 - 4 302.117 1392 7 0 23.7374 99.8516 3.75 - 4 123.736 1391 7 0 23.6367 99.7322 4.14276 - 4 242.322 900 0 1 0.999323 -1.41526 -204.45 - 4 111.675 890 0 0 0.961136 -1.59976 -205.85 - 4 331.727 892 0 0 1.07151 -1.18891 -205.85 - 4 141.408 1122 1 0 4.54009 45.387 -176.25 - 4 461.187 917 1 1 4.35295 46.5917 -174.85 - 4 172.776 1132 1 0 3.55014 47.3731 -175.85 - 4 271.149 1067 1 0 -80.6064 34.3386 -176.25 - 4 108.988 889 2 1 -1.8338 -0.0985521 -144.45 - 4 118.283 873 1 1 -4.86928 1.75334 -174.45 - 4 183.935 904 1 0 -5.04755 1.83702 -175.85 - 4 115.117 854 0 1 -8.6652 3.90262 -204.45 - 4 127.559 915 0 0 -9.01093 3.98295 -205.85 - 4 244.554 893 0 1 -0.89867 0.785527 -204.45 - 4 555.443 899 0 0 -0.829992 0.796593 -205.85 - 4 112.652 34 8 1 -173.224 -42.6848 35.1763 - 4 135.749 877 1 1 -4.09433 -3.44938 -174.45 - 4 113.107 880 1 0 -4.64261 -3.48985 -175.85 - 4 191.256 818 0 1 -16.0391 -3.23663 -204.45 - 4 201.219 884 0 0 -16.3987 -2.78638 -205.85 - 4 132.582 912 1 1 3.28385 -7.90451 -174.45 - 4 130.735 860 1 0 3.47521 -7.46843 -175.85 - 4 207.255 925 0 1 5.93363 -1.73667 -204.45 - 4 135.057 903 1 1 1.48931 -1.84339 -174.45 - 4 115.562 887 1 0 1.4719 -2.06359 -175.85 - 4 170.698 903 0 1 1.63057 -6.56646 -204.45 - 4 167.488 867 0 0 3.20925 -6.08895 -205.85 - 4 127.918 901 3 0 -0.0592609 1.07235 -115.85 - 4 131.412 893 2 1 -0.860661 1.33007 -144.45 - 4 207.556 902 2 0 -0.911222 1.31987 -145.85 - 4 163.153 888 1 1 -1.96505 1.18324 -174.45 - 4 137.467 901 1 0 -2.03793 1.17483 -175.85 - 4 108.845 880 0 1 -3.51714 1.08132 -204.45 - 4 92.1885 901 0 0 -3.54584 1.10017 -205.85 - 4 158.766 701 0 1 -39.3596 51.0556 -204.717 -Number of tracker digits in this event = 35 -Event: 5 -Number of tracker hits in this event = 9 - 5 185.755 899 0 1 0.688627 -0.249651 -204.45 - 5 227.715 720 4 1 -35.6095 -74.2681 -84.7546 - 5 87.4016 900 2 1 0.982342 -0.27275 -144.85 - 5 284.166 896 5 1 0.249389 -0.05 -54.4555 - 5 548.891 877 5 0 2.82352 -4.16607 -55.85 - 5 201.558 1027 4 1 26.34 -54.902 -84.45 - 5 248.071 631 4 0 25.8225 -53.3822 -85.85 - 5 400.093 819 1 1 -15.7183 -88.2743 -174.572 - 5 108.191 820 1 1 -15.6229 -88.743 -174.632 -Number of tracker digits in this event = 7 -Event: 6 -Number of tracker hits in this event = 8 - 6 131.153 895 3 1 -0.505924 -0.261809 -114.45 - 6 109.824 893 2 1 -0.860962 -0.418484 -144.45 - 6 118.956 892 1 1 -1.19665 -0.453166 -174.45 - 6 126.28 895 1 0 -1.21376 -0.452404 -175.85 - 6 130.08 890 0 1 -1.56208 -0.434428 -204.45 - 6 330.698 1132 1 0 -32.9887 47.3293 -176.064 - 6 165.272 885 4 0 -30.8327 -2.48453 -86.25 - 6 138.077 737 4 1 -32.1545 -2.73223 -84.85 -Number of tracker digits in this event = 6 -Event: 7 -Number of tracker hits in this event = 10 - 7 111.978 896 4 0 -0.127684 0.0793146 -85.85 - 7 98.746 897 3 0 -0.234457 0.251623 -115.85 - 7 118.511 898 2 0 -0.3581 0.461697 -145.85 - 7 131.048 895 1 1 -0.550367 0.549708 -174.45 - 7 126.478 898 1 0 -0.563956 0.559797 -175.85 - 7 175.243 894 0 1 -0.820901 0.787055 -204.45 - 7 114.734 899 0 0 -0.835487 0.793155 -205.85 - 7 0.0900507 1054 0 0 -72.0494 31.8218 -205.85 - 7 121.329 531 0 1 -73.2667 31.0664 -204.85 - 7 59.6968 1475 3 0 -37.2266 116.384 -116.243 -Number of tracker digits in this event = 4 -Event: 8 -Number of tracker hits in this event = 8 - 8 124.337 896 4 1 0.108773 -0.422198 -84.45 - 8 145.51 896 3 1 0.094896 -0.729726 -114.45 - 8 122.652 894 3 0 0.0886629 -0.749676 -115.85 - 8 138.421 892 2 0 -0.0707799 -1.1862 -145.85 - 8 93.5484 889 1 0 -0.182642 -1.71494 -175.85 - 8 288.795 887 0 0 -0.357531 -2.22153 -205.85 - 8 15.1259 720 2 0 7.86373 -35.4686 -145.884 - 8 425.485 935 2 1 7.8598 -34.9757 -144.85 -Number of tracker digits in this event = 6 -Event: 9 -Number of tracker hits in this event = 20 - 9 125.893 896 5 0 -0.0785678 0.223989 -55.85 - 9 103.334 898 4 0 -0.189066 0.458685 -85.85 - 9 210.263 898 3 0 -0.211036 0.642955 -115.85 - 9 119.108 899 2 0 -0.227744 0.810398 -145.85 - 9 199.987 900 1 0 -0.266607 0.960864 -175.85 - 9 91.1635 901 0 0 -0.194514 1.12651 -205.85 - 9 219.664 1674 4 1 156.312 65.0418 -84.6764 - 9 74.3306 1673 4 1 156.046 65.1432 -84.6935 - 9 542.947 1146 0 0 5.59391 50.1992 -206.25 - 9 250.631 915 0 1 4.0473 53.048 -204.85 - 9 149.117 900 2 0 -0.32185 0.861507 -145.85 - 9 131.294 894 1 1 -0.740421 4.69575 -174.45 - 9 123.601 920 1 0 -0.900944 5.04967 -175.85 - 9 190.847 877 0 1 -4.07794 11.7112 -204.45 - 9 118.387 956 0 0 -4.32939 12.1119 -205.85 - 9 122.14 898 2 0 -0.458393 0.552935 -145.85 - 9 119.631 883 1 1 -2.95787 -2.31152 -174.45 - 9 134.253 885 1 0 -3.10392 -2.53667 -175.85 - 9 136.109 867 0 1 -6.06793 -7.36164 -204.45 - 9 164.761 861 0 0 -6.28536 -7.44963 -205.85 -Number of tracker digits in this event = 14 -Event: 10 -Number of tracker hits in this event = 7 - 10 177.917 896 4 0 -0.112492 0.0561186 -85.85 - 10 158.895 896 3 0 -0.25398 0.0579935 -115.85 - 10 116.003 895 2 1 -0.510955 -0.0723637 -144.45 - 10 110.81 894 1 1 -0.722635 -0.208472 -174.45 - 10 109.021 893 0 1 -0.933283 -0.497758 -204.45 - 10 123.748 895 0 0 -0.944717 -0.503504 -205.85 - 10 44.07 958 1 1 12.6423 -15.7036 -174.65 -Number of tracker digits in this event = 3 -Event: 11 -Number of tracker hits in this event = 12 - 11 47.4773 896 2 1 0.05 -0.862121 -144.706 - 11 91.523 893 2 0 0.0524853 -0.872515 -145.85 - 11 111.464 896 1 1 0.113693 -1.14 -174.45 - 11 355.229 892 1 0 0.11942 -1.15626 -175.85 - 11 136.201 896 0 1 0.236814 -1.4856 -204.45 - 11 112.952 890 0 0 0.238886 -1.50591 -205.85 - 11 126.743 467 1 1 -86.1477 40.7208 -174.629 - 11 424.489 1154 1 0 -93.7493 51.6595 -176.182 - 11 12.0539 1155 1 0 -93.7885 51.8655 -176.13 - 11 346.24 735 5 0 97.9762 -32.5165 -56.2336 - 11 159.454 734 5 0 98.2067 -32.723 -56.111 - 11 301.374 895 4 0 0.05 -0.487599 -85.9969 -Number of tracker digits in this event = 7 -Event: 12 -Number of tracker hits in this event = 4 - 12 104.258 895 0 1 -0.611985 -0.515249 -204.45 - 12 127.014 895 0 0 -0.619664 -0.529097 -205.85 - 12 248.199 192 7 1 -141.63 -120.081 5.48603 - 12 71.3286 713 2 1 -36.9926 19.063 -144.62 -Number of tracker digits in this event = 2 -Event: 13 +Event: 3 Number of tracker hits in this event = 23 - 13 143.581 896 5 0 -0.130037 0.0765084 -55.85 - 13 108.863 896 4 0 -0.271098 0.0889792 -85.85 - 13 135.342 896 3 0 -0.377298 0.127617 -115.85 - 13 125.113 896 2 0 -0.438036 0.16741 -145.85 - 13 112.56 895 1 1 -0.497999 0.455861 -174.45 - 13 92.9243 897 1 0 -0.420626 0.436976 -175.85 - 13 153.555 902 0 1 1.36008 -0.0663291 -204.45 - 13 156.402 898 4 1 0.553855 2.27454 -84.45 - 13 245.253 907 4 0 0.709282 2.41704 -85.85 - 13 117.187 919 3 1 4.65762 4.81509 -114.45 - 13 277.567 919 3 0 4.66777 4.71105 -115.85 - 13 185.854 922 2 1 5.44033 2.41323 -144.45 - 13 108.565 907 2 0 5.63522 2.28899 -145.85 - 13 149.876 943 1 1 9.59649 -5.51161 -174.45 - 13 116.394 868 1 0 9.63982 -5.85984 -175.85 - 13 149.853 952 0 1 11.4476 -12.9331 -204.45 - 13 276.078 953 0 1 11.4577 -13.0191 -204.741 - 13 119.711 831 0 0 11.506 -13.3359 -205.85 - 13 178.502 901 5 0 -1.082 1.17954 -55.85 - 13 216.561 832 4 1 -13.1482 22.9514 -84.45 - 13 186.405 1017 4 0 -12.8552 24.3572 -85.85 - 13 195.873 893 3 1 -0.853206 46.9273 -114.45 - 13 381.778 1139 3 0 1.70618 48.7735 -115.85 -Number of tracker digits in this event = 16 -Event: 14 + 3 244.87022 897 1 1 0.27343939 0.091765771 -174.45 + 3 133.6087 896 1 0 0.26865037 0.093041698 -175.85 + 3 119.42709 896 0 1 0.11640522 0.10552524 -204.45 + 3 115.89168 896 0 0 0.12810068 0.1323318 -205.85 + 3 104.27154 894 1 0 0.30656259 -0.76286508 -175.85 + 3 140.50223 904 0 1 1.7828774 -0.4975473 -204.45 + 3 98.604899 895 0 0 1.7823342 -0.48605251 -205.85 + 3 155.33712 865 1 1 -6.5196763 0.61933948 -174.45 + 3 259.73345 863 1 1 -6.8587399 0.9539795 -174.59047 + 3 436.50617 862 1 1 -7.0816728 1.2167362 -174.66338 + 3 1860.0194 953 1 0 -17.261841 11.613133 -175.85 + 3 506.49381 969 1 0 -20.184588 14.679291 -176.13211 + 3 819.34599 975 1 0 -21.047306 15.957536 -175.85 + 3 490.72068 987 1 0 -21.753706 18.441232 -176.24867 + 3 574.64739 993 1 0 -22.6467 19.543167 -175.85 + 3 75.384973 908 1 0 -9.7841933 2.6210797 -175.85 + 3 79.745034 909 1 0 -9.9617273 2.776941 -175.87028 + 3 509.3147 910 1 0 -10.09486 2.9900742 -175.96897 + 3 181.46917 901 2 0 -0.98230939 1.1824986 -145.85 + 3 113.38093 896 2 1 0.17165326 -0.48870003 -144.45 + 3 160.83751 895 2 0 0.16550739 -0.54645749 -145.85 + 3 138.90422 905 0 1 1.9962873 -2.080377 -204.45 + 3 98.896979 887 0 0 2.117112 -2.1001694 -205.85 +Number of tracker digits in this event = 15 +Event: 4 +Number of tracker hits in this event = 18 + 4 199.45052 896 5 0 -0.1836945 0.17918543 -55.85 + 4 112.43609 897 4 0 -0.32703008 0.4222171 -85.85 + 4 121.18327 899 3 0 -0.44266242 0.73870752 -115.85 + 4 408.27926 895 2 1 -0.60991235 1.0174036 -144.45 + 4 315.07147 900 2 0 -0.64648528 1.0393485 -145.85 + 4 268.76566 893 1 1 -1.0215894 1.5899407 -174.45 + 4 157.85514 903 1 0 -0.98646416 1.5633287 -175.85 + 4 120.65035 900 0 0 -0.27946112 0.92568083 -205.85 + 4 110.63014 900 1 0 -0.78861765 1.0128016 -175.85 + 4 148.05471 900 0 1 1.0261224 2.8926296 -204.45 + 4 116.66732 911 0 0 0.9285404 3.1225222 -205.85 + 4 130.70689 895 1 1 -0.58416873 1.1267516 -174.45 + 4 105.11997 901 1 0 -0.58681913 1.1480039 -175.85 + 4 119.11361 895 0 1 -0.60852376 1.5548058 -204.45 + 4 117.31079 903 0 0 -0.60545281 1.5767927 -205.85 + 4 116.56184 1155 5 0 128.20638 51.940202 -56.25 + 4 227.65148 1156 5 0 128.35891 52.158365 -56.06171 + 4 140.60874 1157 5 0 128.22291 52.269746 -56.028887 +Number of tracker digits in this event = 11 +Event: 5 Number of tracker hits in this event = 7 - 14 107.022 895 2 1 -0.528468 -0.0891662 -144.45 - 14 160.618 894 1 1 -0.805462 -0.130418 -174.45 - 14 104.733 892 0 1 -1.08099 -0.183613 -204.45 - 14 117.694 520 2 0 -8.4946 -75.5814 -145.914 - 14 87.2082 894 3 0 1.50816 -0.819119 -115.85 - 14 368.962 893 3 0 1.71105 -1.02355 -115.931 - 14 221.773 892 3 0 1.87779 -1.10121 -115.878 + 5 141.15377 896 5 0 -0.10519737 0.096989054 -55.85 + 5 96.742906 896 4 0 -0.1273034 0.22188444 -85.85 + 5 104.53569 897 3 0 -0.34476303 0.33167219 -115.85 + 5 116.3425 897 2 0 -0.35110511 0.39551537 -145.85 + 5 109.87134 898 1 0 -0.311047 0.58395611 -175.85 + 5 168.76359 898 0 1 0.63495161 1.5299893 -204.45 + 5 109.77033 903 0 0 0.67667582 1.5782375 -205.85 +Number of tracker digits in this event = 2 +Event: 6 +Number of tracker hits in this event = 58 + 6 38.278531 896 5 0 0.30500468 0.05 -56.106608 + 6 117.29546 899 4 1 0.72889092 0.27264993 -84.45 + 6 87.928908 897 4 0 0.74409418 0.28395964 -85.85 + 6 226.97486 901 3 1 1.1039354 0.5325028 -114.45 + 6 213.67933 899 3 0 0.82158917 0.71061124 -115.85 + 6 137.3628 873 2 1 -4.9359208 4.3414944 -144.45 + 6 104.18 918 2 0 -5.2118335 4.5186841 -145.85 + 6 115.90734 843 1 1 -10.855732 8.1434129 -174.45 + 6 135.12475 937 1 0 -11.130601 8.3223904 -175.85 + 6 119.37305 814 0 1 -16.737664 12.01301 -204.45 + 6 175.10797 956 0 0 -17.024979 12.188053 -205.85 + 6 148.07604 899 1 1 0.68226766 4.7721552 -174.45 + 6 129.599 920 1 0 0.75629861 4.91016 -175.85 + 6 109.68405 906 0 1 2.0663203 7.4871803 -204.45 + 6 234.62408 934 0 0 2.1258738 7.7768557 -205.85 + 6 101.71286 896 4 1 0.05 -0.22340676 -84.554662 + 6 104.51709 899 3 1 0.82405137 0.88953533 -114.45 + 6 139.29356 900 3 0 0.89950881 0.99268122 -115.85 + 6 119.01943 908 2 1 2.6065663 2.9250352 -144.45 + 6 128.4186 911 2 0 2.6837569 3.0580272 -145.85 + 6 121.09751 916 1 1 4.1882088 5.5987188 -174.45 + 6 138.86465 924 1 0 4.2732127 5.7158676 -175.85 + 6 179.73492 925 0 1 6.007121 7.823059 -204.45 + 6 107.80911 935 0 0 6.0496611 7.9206833 -205.85 + 6 110.16004 891 3 1 -1.3791928 -2.2374914 -114.45 + 6 179.26502 886 3 0 -1.3082323 -2.4370619 -115.85 + 6 144.68317 897 2 1 0.31515376 -6.3610303 -144.45 + 6 118.31551 865 2 0 0.2001785 -6.5945515 -145.85 + 6 128.7071 887 1 1 -2.227506 -11.680734 -174.45 + 6 99.489712 839 1 0 -2.7213403 -11.674768 -175.85 + 6 468.17987 820 0 1 -15.55074 -11.774183 -204.45 + 6 3800.475 812 0 1 -17.205804 -11.664576 -204.54652 + 6 246.09947 769 0 1 -25.767896 -7.3227959 -204.50721 + 6 396.26914 767 0 1 -26.14498 -6.8826118 -204.45 + 6 528.2104 764 0 1 -26.780024 -6.0799838 -204.55489 + 6 132.43183 873 0 0 -27.653831 -4.8965642 -205.85 + 6 110.19333 1129 0 0 -83.571985 46.687436 -206.25 + 6 15.354621 1128 0 0 -83.507199 46.602317 -205.89197 + 6 92.468647 476 0 1 -84.393764 47.34846 -204.85 + 6 128.53568 475 0 1 -84.459203 47.409447 -204.59386 + 6 914.35807 779 0 1 -23.805865 -8.1539164 -204.66531 + 6 191.67974 895 5 0 -0.073609616 -0.50429306 -55.85 + 6 277.19573 903 4 1 1.5535228 -1.9707318 -84.45 + 6 613.28664 888 4 0 1.6311055 -2.0064852 -85.85 + 6 167.90525 911 3 1 3.1253445 -3.0085921 -114.45 + 6 140.77055 882 3 0 3.2714365 -3.0527108 -115.85 + 6 233.23335 926 2 1 6.1797823 -3.9262418 -144.45 + 6 108.3024 878 2 0 6.3299294 -4.0344571 -145.85 + 6 144.09691 942 1 1 9.2576079 -6.8710102 -174.45 + 6 107.44115 863 1 0 9.3516471 -7.0190137 -175.85 + 6 139.92395 953 0 1 11.614756 -10.089014 -204.45 + 6 310.52858 846 0 0 11.724017 -10.296373 -205.85 + 6 61.03944 903 5 1 1.6422352 -2.9735204 -54.45 + 6 65.806997 904 5 1 1.710126 -2.9882916 -54.648804 + 6 133.28333 882 5 0 2.2517726 -3.1306023 -55.85 + 6 167.80063 980 4 1 17.024936 -4.0680391 -84.45 + 6 137.30239 875 4 0 18.490219 -4.5584864 -85.85 + 6 6.4860567 976 4 1 16.205943 -10.709096 -84.70027 +Number of tracker digits in this event = 36 +Event: 7 +Number of tracker hits in this event = 19 + 7 117.33864 895 3 1 -0.58600861 -0.44263572 -114.45 + 7 128.90105 895 3 0 -0.59521582 -0.45867532 -115.85 + 7 126.18427 894 2 1 -0.71950558 -0.81178119 -144.45 + 7 704.51752 894 2 0 -0.72926437 -0.82811854 -145.85 + 7 108.60798 893 1 1 -0.96031524 -1.2053913 -174.45 + 7 303.04101 892 1 0 -0.97053294 -1.2210454 -175.85 + 7 114.14019 892 0 1 -1.1292002 -1.5944832 -204.45 + 7 101.60809 890 0 0 -1.1457868 -1.6400472 -205.85 + 7 256.82627 109 4 0 -90.402618 -158.23796 -86.25 + 7 227.02531 892 1 1 -1.0718518 -0.96014399 -174.45 + 7 139.34255 891 0 1 -1.3203113 -5.2843554 -204.45 + 7 94.870611 870 0 0 -1.2805163 -5.4612996 -205.85 + 7 16.425506 13 11 0 35.355626 -177.42444 124.10564 + 7 143.79484 1067 11 1 34.44433 -178.60475 125.15 + 7 176.29734 1068 11 1 34.487347 -178.6801 125.32964 + 7 59.312734 893 1 0 -1.1362964 -1.0463353 -175.85 + 7 144.99662 883 0 1 -2.9612521 -3.005146 -204.45 + 7 132.73398 883 0 0 -2.9035169 -2.9560224 -205.85 + 7 530.1015 894 6 0 1.476954 -0.765371 -25.85 +Number of tracker digits in this event = 12 +Event: 8 +Number of tracker hits in this event = 31 + 8 274.31271 899 4 1 0.83540059 -0.13344769 -84.45 + 8 118.59836 901 3 1 1.1886267 -0.16114571 -114.45 + 8 209.43538 902 2 1 1.4370082 -0.06732767 -144.45 + 8 332.73395 904 1 1 1.6501563 0.092719162 -174.45 + 8 211.83074 896 1 0 1.6617089 0.10961429 -175.85 + 8 114.56338 905 0 1 1.9018386 0.40375887 -204.45 + 8 116.12143 897 0 0 1.9092078 0.40741112 -205.85 + 8 272.60538 903 1 1 1.6449964 0.091621547 -174.45 + 8 108.61981 889 0 1 -1.8287224 -1.6242675 -204.45 + 8 144.9131 890 0 0 -1.5096258 -1.504 -205.85 + 8 285.57606 727 1 0 -3.7484041 -34.163715 -175.85 + 8 154.58324 725 1 0 -3.7967172 -34.470684 -175.85022 + 8 148.03903 726 1 0 -3.9797587 -34.382323 -175.85 + 8 162.06723 728 1 0 -4.1539777 -34.040919 -176.11376 + 8 124.68626 897 1 0 1.7911912 0.35026658 -175.85 + 8 146.965 914 0 1 3.7722087 6.2309949 -204.45 + 8 135.93973 930 0 0 4.1344833 6.9241008 -205.85 + 8 153.65809 926 0 1 6.100237 -6.6353332 -204.45 + 8 73.387759 867 0 0 6.2090026 -6.1377072 -205.85 + 8 262.24605 868 0 0 6.2351382 -6.0390772 -206.09794 + 8 434.42534 1029 0 1 26.799626 -9.7814829 -204.45 + 8 389.31672 814 0 0 25.277874 -16.842061 -205.85 + 8 251.17872 808 0 0 24.863255 -17.883994 -205.95402 + 8 873.9236 805 0 0 24.807603 -18.539913 -205.85 + 8 162.7963 792 0 0 24.27928 -21.189349 -205.85439 + 8 128.9505 789 0 0 24.201852 -21.664988 -206.05207 + 8 4.3031515 788 0 0 24.086615 -21.911355 -206.24424 + 8 28.948775 787 0 0 23.839092 -22.108541 -206.0195 + 8 46.942622 1014 0 1 23.774145 -21.922277 -204.85 + 8 111.01139 795 0 0 26.032449 -20.529675 -205.85 + 8 14.995864 847 2 1 -10.145601 25.653063 -144.66604 +Number of tracker digits in this event = 21 +Event: 9 +Number of tracker hits in this event = 12 + 9 136.31371 896 4 0 -0.20146441 0.12237084 -85.85 + 9 108.11729 896 3 0 -0.43351236 0.22735462 -115.85 + 9 224.69161 893 2 1 -1.0202014 0.33359153 -144.45 + 9 177.79252 897 2 0 -1.0446907 0.34115532 -145.85 + 9 120.9512 890 1 1 -1.5735751 0.47047909 -174.45 + 9 102.21817 898 1 0 -1.5987051 0.47805024 -175.85 + 9 113.59701 887 0 1 -2.1318045 0.596002 -204.45 + 9 115.53714 898 0 0 -2.1677285 0.5943169 -205.85 + 9 98.926399 864 0 1 -6.70273 -3.8719987 -204.79204 + 9 18.030774 892 2 1 -1.0899642 0.28775465 -144.85 + 9 33.822696 894 2 0 -2.1790401 -0.81948848 -145.85 + 9 139.29298 893 2 0 -2.1950588 -0.86240804 -145.89383 +Number of tracker digits in this event = 5 +Event: 10 +Number of tracker hits in this event = 8 + 10 118.42849 914 3 1 3.7071245 -0.81872381 -114.45 + 10 105.72212 894 3 0 3.874513 -0.82548144 -115.85 + 10 249.52993 931 2 1 7.2132083 -0.9870776 -144.45 + 10 126.20614 893 2 0 7.3848311 -0.99509857 -145.85 + 10 129.3634 950 1 1 11.011999 -1.3631539 -174.45 + 10 134.24233 891 1 0 11.179755 -1.376712 -175.85 + 10 119.7382 968 0 1 14.534753 -1.6315348 -204.45 + 10 120.94785 890 0 0 14.697862 -1.6249358 -205.85 +Number of tracker digits in this event = 5 +Event: 11 +Number of tracker hits in this event = 7 + 11 316.05313 897 3 1 0.39425068 -0.34570655 -114.45 + 11 121.29972 896 2 1 0.21852829 -1.3526151 -144.45 + 11 119.46613 891 2 0 0.2181939 -1.4084229 -145.85 + 11 109.50886 896 1 1 0.23597133 -2.5503687 -174.45 + 11 160.5092 885 1 0 0.22167083 -2.5780157 -175.85 + 11 150.03951 882 0 0 -0.1135601 -3.203556 -205.85 + 11 15.121853 896 5 0 0.14005292 0.05 -56.204204 +Number of tracker digits in this event = 4 +Event: 12 +Number of tracker hits in this event = 9 + 12 223.97858 891 1 1 -1.350401 0.3504337 -174.45 + 12 120.586 897 1 0 -1.3876753 0.36549206 -175.85 + 12 90.204735 887 0 1 -2.1923296 0.62310289 -204.45 + 12 111.22089 898 0 0 -2.2471424 0.62417624 -205.85 + 12 59.652561 364 4 0 -150.39184 -107.18121 -85.999223 + 12 95.24051 896 3 1 0.081383735 -0.05 -114.78624 + 12 215.83229 897 3 1 0.26934783 -0.27946517 -114.76866 + 12 1.844 894 3 1 -0.74935328 0.05 -114.69686 + 12 34.162709 893 3 1 -0.95193618 0.10651373 -114.68596 Number of tracker digits in this event = 3 +Event: 13 +Number of tracker hits in this event = 18 + 13 347.7125 896 4 0 -0.19130363 0.058481819 -85.85 + 13 107.75528 895 2 0 -0.35297067 -0.55089917 -145.85 + 13 118.13369 893 1 0 -0.12239963 -0.92931648 -175.85 + 13 160.07639 889 0 0 -0.1272122 -1.7866867 -205.85 + 13 99.013345 902 3 0 -2.6846919 1.3559224 -115.85 + 13 167.50614 903 3 0 -2.9677679 1.6004064 -115.86824 + 13 120.09722 904 3 0 -2.8671423 1.8120709 -116.10584 + 13 30.376225 905 3 0 -2.9025625 1.9779726 -116.21692 + 13 242.23494 896 3 0 -0.61694314 0.16822587 -115.85326 + 13 79.285071 974 3 0 -30.663223 15.844864 -116.25 + 13 72.397025 975 3 0 -30.743583 15.930323 -116.03865 + 13 98.177431 745 3 1 -30.507083 15.970533 -114.85 + 13 179.91717 746 3 1 -30.41065 15.93957 -114.6721 + 13 171.29576 747 3 1 -30.162318 15.9976 -114.59969 + 13 163.45635 885 2 1 -2.5220396 -0.53732248 -144.45 + 13 150.00979 894 2 0 -3.5150016 -0.79311357 -145.85 + 13 238.24369 784 1 1 -22.754009 -8.1854482 -174.45 + 13 172.1951 858 1 0 -24.453092 -7.865756 -175.85 +Number of tracker digits in this event = 11 +Event: 14 +Number of tracker hits in this event = 11 + 14 97.163565 896 4 1 0.070994206 -0.28588437 -84.45 + 14 117.8699 896 3 1 0.17536675 -0.4583419 -114.45 + 14 180.01618 895 3 0 0.17965304 -0.46275165 -115.85 + 14 128.52064 897 2 1 0.29541616 -0.60975802 -144.45 + 14 116.23696 895 2 0 0.30303818 -0.62660679 -145.85 + 14 292.47808 897 1 1 0.4228925 -0.97297416 -174.45 + 14 186.4344 893 1 0 0.42249306 -0.98858668 -175.85 + 14 117.1341 897 0 1 0.40778013 -1.2857072 -204.45 + 14 138.37576 891 0 0 0.41317755 -1.3136368 -205.85 + 14 23.880599 908 1 1 2.6202067 -56.714699 -174.81381 + 14 71.593871 751 0 1 -29.362298 9.6462716 -204.54014 +Number of tracker digits in this event = 5 Event: 15 -Number of tracker hits in this event = 6 - 15 117.004 896 3 1 0.112955 -0.357294 -114.45 - 15 142.085 897 2 1 0.263489 -0.0924814 -144.45 - 15 118.896 899 1 1 0.73259 -0.086431 -174.45 - 15 122.762 901 0 1 1.06519 -0.159713 -204.45 - 15 254.239 900 0 1 0.922085 -0.863072 -204.45 - 15 257.047 893 0 0 0.939434 -0.868099 -205.85 +Number of tracker hits in this event = 10 + 15 108.20407 895 3 1 -0.47842955 -0.27646172 -114.45 + 15 119.32031 893 2 1 -0.86991309 -0.37401254 -144.45 + 15 122.42227 890 1 1 -1.474977 -0.45020906 -174.45 + 15 127.57386 895 1 0 -1.5019481 -0.45396273 -175.85 + 15 108.90124 888 0 1 -2.0375577 -0.5238304 -204.45 + 15 194.38968 895 0 0 -2.0686882 -0.5171831 -205.85 + 15 562.98501 868 0 0 41.105328 -6.027551 -206.17703 + 15 65.284713 178 1 1 -144.52163 -47.585001 -174.59448 + 15 46.042174 177 1 1 -144.5619 -47.632292 -174.61742 + 15 13.110815 895 2 0 -0.66886618 -0.52043074 -146.2148 Number of tracker digits in this event = 4 Event: 16 -Number of tracker hits in this event = 27 - 16 193.222 896 4 1 0.156275 0.0750759 -84.45 - 16 143.046 896 4 0 0.156986 0.0781123 -85.85 - 16 110.949 896 3 1 0.232626 0.164411 -114.45 - 16 129.494 896 3 0 0.246212 0.167764 -115.85 - 16 142.889 898 2 1 0.532003 0.234244 -144.45 - 16 172.67 896 2 0 0.53405 0.228881 -145.85 - 16 350.961 898 1 1 0.58723 0.119336 -174.45 - 16 149.36 896 1 0 0.599764 0.111653 -175.85 - 16 175.658 899 0 1 0.835475 -0.0507533 -204.45 - 16 79.011 937 3 0 -13.1049 8.34816 -115.897 - 16 160.92 498 0 0 -142.919 -79.9402 -206.25 - 16 160.128 181 0 1 -143.947 -79.1249 -204.85 - 16 138.581 508 1 0 -150.399 -77.9871 -176.25 - 16 803.769 147 1 1 -150.583 -77.9852 -174.85 - 16 593.048 139 1 1 -152.255 -77.6548 -174.805 - 16 98.5467 132 1 1 -153.555 -77.71 -174.79 - 16 0.13521 131 1 1 -153.799 -77.6737 -174.85 - 16 269.324 522 1 0 -164.476 -75.0855 -175.85 - 16 337.024 523 1 0 -165.126 -74.9543 -175.966 - 16 47.1992 11 3 1 -177.919 -83.2783 -114.589 - 16 59.8233 1042 3 1 29.3283 -87.8981 -114.592 - 16 122.531 898 1 0 1.5551 0.531144 -175.85 - 16 446.283 971 0 1 15.2485 -6.10989 -204.45 - 16 300.693 856 0 0 14.9416 -8.42932 -205.85 - 16 84.1075 970 0 1 14.9054 -6.38815 -204.835 - 16 139.684 969 0 1 14.7979 -6.28439 -204.828 - 16 261.56 968 0 1 14.5636 -6.15206 -204.636 +Number of tracker hits in this event = 30 + 16 143.45761 895 4 0 -0.061633584 -0.56992057 -85.85 + 16 108.42301 893 3 0 -0.16026012 -0.87223345 -115.85 + 16 101.73545 892 2 0 -0.093030571 -1.1394117 -145.85 + 16 172.68493 897 0 1 0.41837565 -1.9028437 -204.45 + 16 279.46874 888 0 0 0.44075509 -1.9120548 -205.85 + 16 0.029573093 896 5 1 0.050403803 0.05 -54.759038 + 16 155.58352 900 5 0 -0.23010633 0.95190828 -55.85 + 16 145.34373 895 3 0 0.050724112 -0.64502335 -115.85 + 16 135.78157 898 2 1 0.52484706 -0.18947224 -144.45 + 16 311.42483 901 1 1 1.1736752 3.1228442 -174.45 + 16 229.72136 911 1 0 1.2431275 3.2434398 -175.85 + 16 184.38968 907 0 1 2.3480509 5.6602752 -204.45 + 16 122.03775 924 0 0 2.3396321 5.6842428 -205.85 + 16 198.09004 916 0 0 2.7459283 4.1644597 -205.85 + 16 140.11475 915 0 0 2.8442311 4.0241662 -205.85783 + 16 19.606155 1279 0 1 76.840105 81.818948 -204.85 + 16 0.19584602 1280 0 1 76.851109 81.830576 -204.84971 + 16 92.485683 1309 0 0 77.582435 82.749201 -205.85 + 16 2.4487727 890 2 0 0.05 -1.4647364 -146.23447 + 16 128.79885 908 1 1 2.50551 0.22164996 -174.45 + 16 130.1367 897 1 0 2.7823346 0.30692926 -175.85 + 16 144.41969 940 0 1 8.918278 3.0857001 -204.45 + 16 86.724332 896 2 1 0.14672062 -0.94411861 -144.52093 + 16 176.25869 893 2 0 0.18074545 -0.93049713 -145.85 + 16 139.15768 896 1 0 1.0963717 0.16696864 -175.85 + 16 94.472345 885 0 1 -2.538464 3.4416698 -204.45 + 16 101.6805 911 0 0 -2.6524326 3.2025478 -205.85 + 16 332.43149 902 1 1 1.2529428 0.05 -174.47113 + 16 122.2691 902 1 0 1.4710957 1.281217 -175.85 + 16 393.01282 901 1 0 1.5527105 1.2343915 -176.08176 Number of tracker digits in this event = 20 Event: 17 -Number of tracker hits in this event = 25 - 17 117.284 895 3 1 -0.520037 -0.243995 -114.45 - 17 130.555 894 2 1 -0.722123 -0.34414 -144.45 - 17 106.968 893 1 1 -0.885783 -0.421898 -174.45 - 17 92.7855 893 0 1 -1.01124 -0.546179 -204.45 - 17 222.438 895 0 0 -1.00858 -0.551181 -205.85 - 17 114.812 874 2 1 -4.71493 -0.05 -144.504 - 17 123.485 897 1 1 0.344791 -2.7716 -174.45 - 17 168.597 885 1 0 0.419487 -2.62201 -175.85 - 17 126.111 919 0 1 4.7356 -4.82351 -204.45 - 17 124.216 870 0 0 5.03845 -5.56427 -205.85 - 17 60.6764 873 0 1 -5.03343 -115.707 -204.791 - 17 64.2919 893 3 0 0.422316 -0.997433 -115.85 - 17 109.375 892 3 0 0.514931 -1.08419 -115.932 - 17 101.443 891 3 0 0.634729 -1.36516 -115.966 - 17 155.619 897 3 0 0.213549 0.306653 -115.85 - 17 171.608 928 2 1 6.59163 4.92795 -144.45 - 17 413.021 929 2 1 6.73767 5.04793 -144.556 - 17 193.284 924 2 0 8.40872 5.71091 -145.85 - 17 43.6518 1147 1 1 50.4399 18.1121 -174.782 - 17 335.801 993 1 0 52.13 19.4671 -175.85 - 17 283.606 995 1 0 52.4233 19.8939 -176.142 - 17 439.556 1159 1 1 52.7988 20.4279 -174.85 - 17 81.3483 1158 1 1 52.6228 22.7514 -174.85 - 17 157.656 1012 1 0 52.3964 23.2893 -175.85 - 17 168.961 1011 1 0 52.3617 23.2465 -176.011 -Number of tracker digits in this event = 15 +Number of tracker hits in this event = 12 + 17 105.93425 896 4 1 0.21705133 -0.28918859 -84.45 + 17 131.50999 897 3 1 0.2885189 -0.53347018 -114.45 + 17 131.04976 895 3 0 0.29893977 -0.54488073 -115.85 + 17 148.43773 898 2 1 0.53096237 -0.81365371 -144.45 + 17 326.7543 894 2 0 0.53584598 -0.82020105 -145.85 + 17 150.28323 898 1 1 0.61909776 -0.95788543 -174.45 + 17 129.71732 893 1 0 0.62352479 -0.9710843 -175.85 + 17 111.46565 899 0 1 0.7195861 -1.231896 -204.45 + 17 120.00727 892 0 0 0.71429738 -1.2480328 -205.85 + 17 108.89212 897 5 0 -0.34878384 0.34715035 -55.85 + 17 4.2244035 898 5 0 -0.47469374 0.4582415 -56.23528 + 17 164.64744 755 3 1 -28.63829 35.20939 -114.49151 +Number of tracker digits in this event = 8 Event: 18 -Number of tracker hits in this event = 18 - 18 225.282 895 3 1 -0.572739 -0.463578 -114.45 - 18 124.077 895 3 0 -0.581232 -0.465562 -115.85 - 18 189.767 894 2 1 -0.736471 -0.568589 -144.45 - 18 278.657 895 2 0 -0.745664 -0.579488 -145.85 - 18 135.67 893 1 1 -1.01612 -0.814219 -174.45 - 18 119.773 894 1 0 -1.06237 -0.814057 -175.85 - 18 114.245 888 0 1 -2.02205 -0.786101 -204.45 - 18 113.204 894 0 0 -2.05811 -0.780277 -205.85 - 18 80.7427 491 1 0 -24.094 -81.3304 -176.01 - 18 321.753 771 1 1 -25.4139 -83.0648 -174.85 - 18 12.6433 1514 13 0 -158.236 124.179 184.116 - 18 111.917 108 13 1 -158.489 124.771 185.15 - 18 332.512 107 13 1 -158.574 124.862 185.299 - 18 124.215 893 3 0 -0.415587 -1.02943 -115.85 - 18 178.379 920 2 1 4.97014 -14.7136 -144.45 - 18 168.543 820 2 0 6.27734 -15.4961 -145.85 - 18 118.71 875 0 1 -4.62193 -1.67471 -204.45 - 18 133.377 891 0 0 -4.90095 -1.42606 -205.85 -Number of tracker digits in this event = 11 +Number of tracker hits in this event = 47 + 18 259.7154 896 4 0 -0.1298127 0.13865069 -85.85 + 18 188.14556 895 2 0 -0.18866613 -0.50970408 -145.85 + 18 101.67292 894 1 0 -0.22713219 -0.80999956 -175.85 + 18 110.05023 892 0 0 -0.18740281 -1.1621294 -205.85 + 18 189.37765 875 3 1 -4.5910765 -2.1418566 -114.45 + 18 452.62758 888 3 0 -5.1625393 -1.9177777 -115.85 + 18 123.75787 803 2 1 -18.902061 1.2715177 -144.45 + 18 124.11894 904 2 0 -19.338764 1.6529081 -145.85 + 18 150.72953 737 1 1 -32.091999 8.0426685 -174.45 + 18 153.93177 940 1 0 -32.177191 8.9853083 -175.85 + 18 199.50015 749 0 1 -29.845779 26.66503 -204.45 + 18 278.68346 1038 0 0 -29.642893 28.644169 -205.85 + 18 523.32661 1227 0 0 -7.9005887 66.296062 -206.25 + 18 10.393244 1226 0 0 -6.8780772 66.211014 -206.22699 + 18 39.211813 1413 2 0 -44.120228 104.11436 -145.899 + 18 134.15354 897 4 0 0.26756985 0.26265648 -85.85 + 18 228.49795 972 3 1 15.433151 -5.9911862 -114.45 + 18 304.78564 862 3 0 18.371521 -7.0675735 -115.85 + 18 293.40988 860 3 0 19.309872 -7.4693493 -116.25 + 18 343.86392 857 3 0 19.37915 -8.1597472 -116.01907 + 18 338.81515 992 3 1 19.276773 -11.655088 -114.85 + 18 125.42076 898 3 0 0.05 0.50977352 -116.15036 + 18 150.71032 920 2 1 4.8547802 0.77920499 -144.45 + 18 143.3114 899 2 0 4.9334852 0.83362126 -145.85 + 18 129.21756 932 1 1 7.4324662 2.7910939 -174.45 + 18 93.058094 910 1 0 7.6205017 2.9716866 -175.85 + 18 240.13398 955 0 1 11.892085 5.78811 -204.45 + 18 127.99318 925 0 0 12.305571 6.044173 -205.85 + 18 153.91256 876 2 1 -4.3633987 -16.335874 -144.45 + 18 95.164257 811 2 0 -3.791075 -17.301554 -145.85 + 18 247.14517 810 2 0 -3.7136006 -17.475742 -146.10233 + 18 157.17616 949 1 1 10.814959 -44.411509 -174.45 + 18 259.23916 678 1 0 9.9312523 -44.020981 -175.85 + 18 309.62651 415 1 0 1.8501056 -97.126018 -176.25 + 18 58.076222 411 1 0 2.0083113 -97.836998 -175.92497 + 18 499.47704 906 1 1 2.2082345 -101.50529 -174.85 + 18 199.91636 908 1 1 2.487237 -102.74714 -174.63453 + 18 99.857396 910 1 1 2.9360301 -102.80912 -174.45 + 18 142.60858 911 1 1 3.2468423 -102.98159 -174.62604 + 18 83.058733 388 1 0 3.2817695 -102.3689 -175.85 + 18 75.340912 389 1 0 3.2727459 -102.16877 -175.92899 + 18 73.897607 390 1 0 3.2572245 -101.96234 -175.86647 + 18 133.51984 391 1 0 3.2186631 -101.77114 -175.85598 + 18 268.57462 392 1 0 3.3387627 -101.66933 -176.03803 + 18 144.74764 896 3 1 0.05 0.3577023 -114.57285 + 18 242.76641 890 3 0 0.56096998 -1.5152917 -115.85 + 18 11.535314 887 3 0 0.65107454 -2.0627783 -116.2372 +Number of tracker digits in this event = 35 Event: 19 -Number of tracker hits in this event = 8 - 19 119.797 896 4 1 0.215322 0.121973 -84.45 - 19 147.877 896 4 0 0.216756 0.119786 -85.85 - 19 143.568 896 3 1 0.182248 -0.0562814 -114.45 - 19 128.901 896 2 1 0.215723 -0.26935 -144.45 - 19 113.001 897 1 1 0.363162 0.38962 -174.45 - 19 113.233 897 1 0 0.372812 0.428827 -175.85 - 19 125.547 898 0 1 0.607569 1.23494 -204.45 - 19 115.81 902 0 0 0.608005 1.27804 -205.85 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 9 + 19 110.05511 896 4 1 0.19925759 -0.22916428 -84.45 + 19 126.70202 897 3 1 0.43739123 -0.32358367 -114.45 + 19 341.2651 899 2 1 0.79761314 -0.50728961 -144.45 + 19 124.43611 895 2 0 0.83213171 -0.51934134 -145.85 + 19 228.26567 903 1 1 1.5676907 -0.77387624 -174.45 + 19 114.68186 894 1 0 1.6057696 -0.7861568 -175.85 + 19 320.9912 907 0 1 2.3396199 -1.0374532 -204.45 + 19 92.2746 892 0 0 2.3893895 -1.051382 -205.85 + 19 51.275641 692 1 0 31.031656 -41.092235 -176.17344 +Number of tracker digits in this event = 5 Event: 20 -Number of tracker hits in this event = 6 - 20 225.147 897 4 0 -0.095152 0.336422 -85.85 - 20 108.284 898 3 0 -0.205796 0.531665 -115.85 - 20 139.726 899 2 0 -0.207235 0.726511 -145.85 - 20 111.09 900 1 0 -0.208517 0.97992 -175.85 - 20 165.154 902 0 0 -0.140516 1.38339 -205.85 - 20 284.238 967 0 0 -11.4009 14.3906 -205.958 -Number of tracker digits in this event = 4 -Event: 21 -Number of tracker hits in this event = 24 - 21 160.246 896 1 0 -0.194239 0.0560482 -175.85 - 21 115.401 896 0 0 -0.222818 0.110846 -205.85 - 21 146.14 902 2 1 1.38453 -6.81899 -144.45 - 21 114.706 859 2 0 1.54614 -7.72921 -145.85 - 21 119.931 896 3 0 -0.587408 0.0728881 -115.85 - 21 123.929 851 2 1 -9.39945 4.18829 -144.45 - 21 110.391 916 2 0 -10.0899 4.23633 -145.85 - 21 167.253 768 1 1 -25.9018 5.86623 -174.45 - 21 170.743 924 1 0 -26.9216 5.69163 -175.85 - 21 266.541 659 0 1 -47.6884 6.17605 -204.45 - 21 526.22 655 0 1 -48.5466 6.2832 -204.85 - 21 246.505 647 0 1 -50.1392 6.78064 -204.653 - 21 185.586 818 1 1 -15.8856 -2.22021 -174.45 - 21 165.295 882 1 0 -14.4386 -3.06195 -175.85 - 21 166.324 883 1 0 -14.0449 -3.03134 -175.986 - 21 124.663 896 4 0 -0.227555 0.0780411 -85.85 - 21 99.5816 884 3 1 -2.82046 -1.69368 -114.45 - 21 115.235 889 3 0 -2.9102 -1.65982 -115.85 - 21 183.887 878 2 1 -3.97686 -1.13178 -144.45 - 21 109.102 891 2 0 -4.54913 -1.36573 -145.85 - 21 215.786 820 1 1 -15.5951 -4.2978 -174.45 - 21 152.013 876 1 0 -15.9252 -4.30604 -175.85 - 21 158.45 794 0 1 -20.7157 -9.62036 -204.45 - 21 334.054 846 0 0 -19.8161 -10.2673 -205.85 +Number of tracker hits in this event = 21 + 20 150.6627 896 5 0 -0.12279704 0.18965384 -55.85 + 20 523.50321 897 4 0 -0.27227046 0.38471343 -85.85 + 20 128.30171 895 3 1 -0.48654664 0.40832832 -114.45 + 20 156.22295 897 3 0 -0.50487342 0.40842621 -115.85 + 20 126.19934 894 2 1 -0.81218745 0.38464683 -144.45 + 20 440.77928 897 2 0 -0.82826532 0.38545623 -145.85 + 20 106.03956 892 1 1 -1.127385 0.38593382 -174.45 + 20 374.02819 897 1 0 -1.1414378 0.37964877 -175.85 + 20 121.52873 891 0 1 -1.4373542 0.23373478 -204.45 + 20 142.79909 896 0 0 -1.4457665 0.23212526 -205.85 + 20 129.9858 893 2 1 -1.0183195 -1.6910102 -144.85 + 20 272.16106 896 2 1 0.19410045 0.25580258 -144.45 + 20 151.47498 917 1 1 4.4209273 0.63948094 -174.45 + 20 125.54973 927 0 1 6.3724347 -6.5678552 -204.45 + 20 223.78117 863 0 0 6.2865316 -6.9934561 -205.85 + 20 200.91926 862 0 0 6.1982778 -7.1543449 -206.02506 + 20 284.62081 895 1 1 -0.60086837 0.34357022 -174.45 + 20 57.25058 910 1 0 0.068543102 2.9982651 -175.85 + 20 176.3823 911 1 0 0.067667891 3.2074306 -175.88325 + 20 22.931123 912 1 0 0.057512427 3.3674594 -175.94064 + 20 28.404529 913 1 0 -0.05 3.5864731 -175.87421 Number of tracker digits in this event = 17 -Event: 22 +Event: 21 Number of tracker hits in this event = 7 - 22 105.085 898 2 1 0.495243 0.27597 -144.45 - 22 126.417 897 2 0 0.501777 0.281985 -145.85 - 22 121.132 899 1 1 0.671412 0.417804 -174.45 - 22 134.644 897 1 0 0.681085 0.418652 -175.85 - 22 180.003 900 0 1 0.880934 0.458854 -204.45 - 22 97.986 898 0 0 0.891459 0.461158 -205.85 - 22 80.4591 1608 5 0 -59.3409 143.061 -55.9104 + 21 141.13882 899 4 0 -0.13391823 0.72417501 -85.85 + 21 133.50588 896 2 1 0.051931485 1.3620602 -144.45 + 21 105.7327 902 2 0 0.052221537 1.381589 -145.85 + 21 79.2578 904 1 0 0.05 1.8059131 -175.97144 + 21 120.89351 896 0 1 0.24249551 2.1933315 -204.45 + 21 108.09806 906 0 0 0.25261876 2.2320762 -205.85 + 21 92.702928 902 1 0 0.6399302 1.2827522 -175.85843 +Number of tracker digits in this event = 3 +Event: 22 +Number of tracker hits in this event = 5 + 22 35.161459 896 1 1 0.15596109 -0.050557418 -174.45 + 22 186.12733 897 0 1 0.40472972 0.062455869 -204.45 + 22 121.78502 896 0 0 0.41589923 0.074139913 -205.85 + 22 181.75705 896 2 1 0.059716838 0.2946454 -144.45 + 22 187.86618 904 2 0 0.42047304 1.8169354 -145.85 Number of tracker digits in this event = 4 Event: 23 -Number of tracker hits in this event = 68 - 23 117.634 896 5 1 0.0559293 -0.0807274 -54.45 - 23 161.179 896 4 1 0.21118 -0.242163 -84.45 - 23 131.905 898 3 1 0.619706 -0.530391 -114.45 - 23 101.074 895 3 0 0.635312 -0.544164 -115.85 - 23 210.922 900 2 1 0.969095 -0.818521 -144.45 - 23 214.255 894 2 0 0.991509 -0.82874 -145.85 - 23 132.83 902 1 1 1.43618 -1.02941 -174.45 - 23 177.96 893 1 0 1.45917 -1.04008 -175.85 - 23 253.022 905 0 1 1.8911 -1.25086 -204.45 - 23 129.391 891 0 0 1.91524 -1.26376 -205.85 - 23 178.921 755 0 0 -12.5 -28.5396 -206.25 - 23 226.86 837 0 1 -12.1997 -30.2654 -204.85 - 23 107.045 582 1 0 -7.52845 -63.1414 -176.25 - 23 106.95 581 1 0 -7.49083 -63.3906 -176.049 - 23 172.384 861 1 1 -7.35923 -64.5559 -174.85 - 23 125.337 554 2 0 -9.95034 -68.747 -146.25 - 23 107.04 847 2 1 -10.1 -68.9317 -144.85 - 23 190.634 502 3 0 -23.6361 -79.109 -116.25 - 23 111.223 776 3 1 -24.3135 -79.6962 -114.85 - 23 183.724 517 4 0 -57.19 -76.0894 -86.25 - 23 183.657 603 4 1 -58.8731 -76.1144 -84.85 - 23 185.763 662 0 0 -24.1921 -47.1775 -206.25 - 23 226.269 659 0 0 -24.3016 -47.7461 -205.988 - 23 259.381 773 0 1 -24.9524 -49.496 -204.85 - 23 175.443 703 1 0 -46.9844 -38.9472 -176.25 - 23 193.731 657 1 1 -48.2261 -38.3913 -174.85 - 23 251.646 755 2 0 -71.9074 -28.6313 -146.25 - 23 271.406 530 2 1 -73.6406 -27.8288 -144.85 - 23 353.119 526 2 1 -74.256 -27.4915 -144.45 - 23 187.239 763 2 0 -75.8472 -26.9734 -145.85 - 23 98.7307 377 1 1 -104.66 -28.0881 -174.45 - 23 369.365 376 1 1 -104.808 -27.856 -174.566 - 23 236.561 375 1 1 -104.953 -27.5713 -174.487 - 23 249.797 754 2 0 -72.1242 -28.7467 -146.145 - 23 209.248 688 2 0 -119.202 -42.0023 -146.25 - 23 24.8623 296 2 1 -120.883 -42.5403 -144.85 - 23 297.344 295 2 1 -120.961 -42.566 -144.786 - 23 289.326 680 3 0 -178.665 -43.6427 -116.25 - 23 405.927 629 3 0 -156.753 -53.6723 -116.25 - 23 385.764 724 2 0 -116.388 -34.7566 -146.25 - 23 186.685 311 2 1 -117.762 -34.7611 -144.85 - 23 192.311 733 3 0 -155.942 -32.9029 -116.25 - 23 131.111 110 3 1 -158.106 -32.891 -114.85 - 23 191.79 109 3 1 -158.272 -32.8993 -114.751 - 23 132.36 750 4 0 -171.373 -29.4703 -86.25 - 23 166.748 40 4 1 -172.06 -29.2452 -84.85 - 23 117.373 766 5 0 -164.242 -26.3941 -56.25 - 23 125.313 82 5 1 -163.587 -26.3411 -54.85 - 23 220.672 637 3 0 -127.946 -52.0783 -116.25 - 23 124.009 636 3 0 -128.081 -52.338 -116.095 - 23 422.759 635 3 0 -127.979 -52.5155 -115.907 - 23 54.5548 723 2 0 -116.848 -35.0275 -145.85 - 23 126.964 722 2 0 -116.911 -35.1593 -145.884 - 23 309.456 721 2 0 -116.802 -35.2721 -146.141 - 23 158.016 848 2 0 -83.4685 -9.89884 -146.25 - 23 8.59328 850 2 0 -83.445 -9.58978 -145.871 - 23 140.168 483 2 1 -82.9778 -9.28223 -144.85 - 23 27.4728 484 2 1 -82.7952 -9.12632 -144.559 - 23 34.7163 1033 4 1 27.479 -52.5799 -84.7431 - 23 300.194 895 0 0 1.48052 -0.472974 -205.85 - 23 253.141 897 2 1 0.308425 -0.279409 -144.45 - 23 123.212 897 1 1 0.428345 -0.316108 -174.45 - 23 100.896 897 0 1 0.276071 -0.763071 -204.45 - 23 120.769 894 0 0 0.272024 -0.784791 -205.85 - 23 139.661 883 1 1 -2.95382 0.249554 -174.45 - 23 112.107 897 1 0 -3.06756 0.264792 -175.85 - 23 122.29 871 0 1 -5.25583 0.710648 -204.45 - 23 111.01 898 0 0 -5.42126 0.631455 -205.85 -Number of tracker digits in this event = 52 +Number of tracker hits in this event = 28 + 23 117.67772 896 3 1 0.080242889 0.15671531 -114.45 + 23 122.74124 896 3 0 0.084096437 0.16701495 -115.85 + 23 188.27851 896 2 1 0.17546482 0.41423206 -144.45 + 23 442.67009 897 2 0 0.1775769 0.43247629 -145.85 + 23 146.63685 896 1 1 0.23143577 0.80236754 -174.45 + 23 100.52932 899 1 0 0.22985791 0.82999904 -175.85 + 23 112.42771 896 0 1 0.19901465 1.3894654 -204.45 + 23 101.99545 902 0 0 0.19269404 1.422806 -205.85 + 23 251.20921 897 2 1 0.27234733 0.2960392 -144.45 + 23 109.51614 896 2 0 0.18127093 0.21221833 -145.85 + 23 236.50025 890 1 1 -1.5452066 -2.0666277 -174.45 + 23 138.33837 887 1 0 -1.410774 -2.190387 -175.85 + 23 146.74865 905 0 1 2.0132882 -5.158958 -204.45 + 23 118.20625 870 0 0 2.1642197 -5.5989707 -205.85 + 23 24.615132 265 0 1 -127.00372 -5.6544381 -204.69054 + 23 124.59087 888 1 0 -2.2322561 -1.9605949 -175.85 + 23 276.56251 847 1 1 -10.072829 1.1571276 -174.45 + 23 120.66709 902 1 0 -10.979485 1.4128306 -175.85 + 23 108.25138 766 0 1 -26.4342 6.1027683 -204.45 + 23 103.59479 926 0 0 -25.948127 6.1572038 -205.85 + 23 76.45571 895 2 1 -0.57430002 -0.1834184 -144.45 + 23 510.74468 934 2 0 -19.894578 7.7590036 -146.25 + 23 175.81161 933 2 0 -20.41773 7.5769909 -146.07441 + 23 14.351716 935 2 0 -19.966461 7.9754048 -146.22147 + 23 193.30585 854 0 0 1.2364687 -8.7213768 -205.85 + 23 172.80792 852 0 0 0.47034403 -9.190749 -205.85 + 23 200.73841 782 0 0 34.92907 -23.144381 -206.25 + 23 212.38428 1079 0 1 36.83 -23.044914 -204.85 +Number of tracker digits in this event = 17 Event: 24 -Number of tracker hits in this event = 12 - 24 146.135 897 4 1 0.350262 -0.0861867 -84.45 - 24 119.938 899 3 1 0.793708 -0.17143 -114.45 - 24 110.35 902 2 1 1.36568 0.0931606 -144.45 - 24 187.763 896 2 0 1.40721 0.138165 -145.85 - 24 252.568 906 1 1 2.18482 1.11048 -174.45 - 24 120.722 901 1 0 2.20628 1.13495 -175.85 - 24 422.039 908 0 1 2.49861 1.8884 -204.45 - 24 508.175 907 0 1 2.43007 1.60406 -204.771 - 24 148.014 900 0 0 2.58309 1.03024 -205.85 - 24 41.575 920 0 0 2.02254 4.93582 -205.85 - 24 371.097 906 0 0 3.18843 2.15158 -205.85 - 24 39.3392 907 1 1 2.2838 1.19234 -174.653 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 20 + 24 159.85926 896 3 1 0.22971813 0.19065657 -114.45 + 24 123.1068 896 3 0 0.22937782 0.17773005 -115.85 + 24 94.092548 896 2 1 0.17788665 -0.098653961 -144.45 + 24 153.03407 901 1 1 1.1838617 -0.3452175 -174.45 + 24 154.41322 907 0 1 2.3621156 0.67411009 -204.45 + 24 132.14593 899 0 0 2.4218371 0.6927526 -205.85 + 24 200.191 895 1 0 1.2074052 -0.56932515 -176.19767 + 24 35.717563 889 1 1 -1.6767817 -1.2922088 -174.85 + 24 523.72357 897 1 1 0.37558941 0.65078712 -174.45 + 24 337.81497 899 1 0 0.39731822 0.65555125 -175.85 + 24 124.16064 900 0 1 0.86874751 0.64037694 -204.45 + 24 93.163665 898 0 0 0.88442763 0.61463653 -205.85 + 24 136.31419 911 0 1 3.1191263 1.5837566 -204.45 + 24 98.531564 903 0 0 3.7912919 1.5545661 -205.85 + 24 26.029652 1480 1 0 59.205449 117.5027 -175.86019 + 24 179.49667 1193 1 1 59.501495 117.46348 -174.85 + 24 138.43122 896 0 1 0.21757655 -2.0705562 -204.45 + 24 122.77783 882 0 0 0.44684968 -3.1963663 -205.85 + 24 201.47867 906 0 1 2.0530842 2.656376 -204.45 + 24 127.87686 914 0 0 1.9913872 3.7159453 -205.85 +Number of tracker digits in this event = 15 Event: 25 -Number of tracker hits in this event = 8 - 25 107.489 896 4 1 0.0921448 0.10894 -84.45 - 25 145.311 896 4 0 0.100098 0.108894 -85.85 - 25 108.338 897 3 1 0.289111 0.111863 -114.45 - 25 142.35 896 3 0 0.291154 0.106942 -115.85 - 25 137.291 897 1 1 0.406514 -0.138548 -174.45 - 25 97.0558 898 0 1 0.562654 -0.22323 -204.45 - 25 137.779 965 6 1 13.8547 -29.4364 -24.5778 - 25 165.164 964 6 1 13.8215 -29.4542 -24.45 -Number of tracker digits in this event = 5 +Number of tracker hits in this event = 17 + 25 118.70036 896 4 1 0.074304534 -0.27832926 -84.45 + 25 147.41481 898 3 1 0.54257635 -0.59106864 -114.45 + 25 131.66424 895 3 0 0.54044311 -0.58215504 -115.85 + 25 226.08048 898 2 1 0.51837641 -0.35706403 -144.45 + 25 99.126456 899 1 1 0.6834253 -0.23014622 -174.45 + 25 138.05192 900 0 1 1.0364255 0.2843816 -204.45 + 25 116.39018 897 0 0 1.0591309 0.30334702 -205.85 + 25 131.33477 896 2 0 0.057231914 0.17494897 -145.85 + 25 119.37773 918 1 1 4.4705884 1.2961058 -174.45 + 25 112.98671 903 1 0 4.7244015 1.6292272 -175.85 + 25 522.27961 945 0 1 9.9400205 9.0091241 -204.45 + 25 129.59488 942 0 0 10.339098 9.2633722 -205.85 + 25 87.762736 889 2 0 -0.05 -1.7482462 -145.94269 + 25 140.87556 846 1 1 -10.323245 -5.2063316 -174.45 + 25 186.78676 870 1 0 -9.2302419 -5.6472501 -175.85 + 25 176.13734 958 0 1 12.601362 -16.132344 -204.45 + 25 190.87953 822 0 0 14.184551 -15.067192 -205.85 +Number of tracker digits in this event = 11 Event: 26 -Number of tracker hits in this event = 10 - 26 112.439 895 3 1 -0.459181 0.118656 -114.45 - 26 177.742 896 3 0 -0.473028 0.133799 -115.85 - 26 108.692 894 2 1 -0.762334 0.437688 -144.45 - 26 125.431 897 2 0 -0.775598 0.449463 -145.85 - 26 108.252 892 1 1 -1.06622 0.677172 -174.45 - 26 166.298 899 1 0 -1.08799 0.696441 -175.85 - 26 107.474 890 0 1 -1.50662 1.03099 -204.45 - 26 91.7993 901 0 0 -1.52729 1.05508 -205.85 - 26 166.16 642 7 0 -78.1 -51.1738 3.78903 - 26 87.5901 468 6 1 -86.0335 -36.1477 -24.8046 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 11 + 26 127.99715 896 5 0 -0.13364465 0.184294 -55.85 + 26 112.78832 897 4 0 -0.26189747 0.35616008 -85.85 + 26 106.6071 898 3 0 -0.31714119 0.48936968 -115.85 + 26 109.16183 898 2 0 -0.22207582 0.4748214 -145.85 + 26 131.18233 897 1 0 -0.40353978 0.35905469 -175.85 + 26 91.920338 895 0 1 -0.55360178 0.19664067 -204.45 + 26 108.9661 896 0 0 -0.55932492 0.18534889 -205.85 + 26 124.50198 894 1 1 -0.66781017 0.067514315 -174.45 + 26 7.9642332 896 1 0 -0.72580098 0.050519699 -175.85 + 26 154.0285 891 0 1 -1.4330042 -0.45180079 -204.45 + 26 282.15856 895 0 0 -1.6674407 -0.59481803 -205.85 +Number of tracker digits in this event = 5 Event: 27 -Number of tracker hits in this event = 8 - 27 201.399 896 3 1 0.115296 0.140246 -114.45 - 27 166.065 896 3 0 0.11228 0.144355 -115.85 - 27 140.059 896 2 1 0.0799538 0.233798 -144.45 - 27 96.915 896 2 0 0.0805437 0.238272 -145.85 - 27 112.762 896 1 1 0.100698 0.332349 -174.45 - 27 105.77 897 1 0 0.103752 0.336283 -175.85 - 27 144.493 896 0 1 0.168935 0.406586 -204.45 - 27 106.281 897 0 0 0.175402 0.399819 -205.85 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 32 + 27 186.40834 896 5 1 0.11178269 0.2327004 -54.45 + 27 125.15655 896 5 0 0.12169311 0.24361198 -55.85 + 27 314.97589 897 4 1 0.32063708 0.42549546 -84.45 + 27 135.33718 897 4 0 0.32956593 0.43549299 -85.85 + 27 167.93221 898 3 1 0.51265108 0.69022976 -114.45 + 27 121.08572 899 3 0 0.51837721 0.71468802 -115.85 + 27 255.89551 898 2 1 0.62386241 1.1935876 -144.45 + 27 134.13644 901 2 0 0.62271866 1.213467 -145.85 + 27 134.10993 898 1 1 0.59814407 1.6490723 -174.45 + 27 124.82686 904 1 0 0.59718286 1.6636595 -175.85 + 27 109.49744 898 0 1 0.585677 1.9461034 -204.45 + 27 261.22739 905 0 0 0.58565099 1.9543421 -205.85 + 27 109.38123 902 2 0 0.61282981 1.258783 -145.85 + 27 148.60095 897 1 1 0.28632224 2.5682334 -174.45 + 27 199.54824 909 1 0 0.18803444 2.72305 -175.85 + 27 174.95314 888 0 1 -1.9367841 5.7014052 -204.45 + 27 104.05106 924 0 0 -2.1036285 5.77263 -205.85 + 27 565.32584 900 3 1 0.96350224 -9.2601369 -114.45 + 27 258.83683 866 3 0 1.1527119 -6.3354237 -115.85 + 27 440.01185 868 3 0 1.0585653 -6.0461794 -115.95259 + 27 23.865735 870 3 0 0.96131217 -5.5547256 -115.91247 + 27 70.409761 896 6 1 0.05 -0.16102899 -24.696003 + 27 109.51004 895 6 0 0.29856191 -0.60497707 -25.85 + 27 164.31793 933 5 1 7.6354648 -8.8633009 -54.45 + 27 295.86724 843 5 0 9.4239041 -10.874381 -55.85 + 27 171.61315 566 5 0 82.681178 -66.367496 -56.25 + 27 308.80927 1318 5 1 84.632904 -67.50823 -54.85 + 27 739.53804 1321 5 1 85.081647 -67.748935 -54.571214 + 27 121.4417 942 6 0 161.6458 9.3942556 -25.974453 + 27 321.9075 1724 6 1 166.19745 13.473525 -24.85 + 27 275.89047 1726 6 1 166.70571 13.976935 -24.605637 + 27 190.75572 1729 6 1 167.23438 13.952343 -24.690143 +Number of tracker digits in this event = 26 Event: 28 -Number of tracker hits in this event = 6 - 28 125.653 898 4 1 0.450743 -0.0612239 -84.45 - 28 180.2 901 2 1 1.0973 -0.0910515 -144.45 - 28 99.0585 904 1 1 1.67662 -0.0954568 -174.45 - 28 151.733 907 0 1 2.25816 -0.0670804 -204.45 - 28 85.3982 898 3 1 0.617587 -0.103698 -114.493 - 28 11.7936 966 12 1 14.0614 26.8671 155.506 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 8 + 28 112.2124 896 5 1 0.10778962 -0.073676179 -54.45 + 28 105.85712 899 3 1 0.69138108 -0.12079359 -114.45 + 28 209.66038 901 2 1 1.1449215 -0.37724537 -144.45 + 28 346.26291 903 1 1 1.6133646 -0.82352919 -174.45 + 28 193.68286 894 1 0 1.6295163 -0.83927327 -175.85 + 28 101.68302 905 0 1 1.9665924 -1.1463542 -204.45 + 28 123.92498 892 0 0 1.9778964 -1.1575941 -205.85 + 28 119.24586 893 1 0 1.5909869 -0.89960345 -176.22865 +Number of tracker digits in this event = 4 Event: 29 -Number of tracker hits in this event = 15 - 29 167.483 896 2 0 -0.313221 0.233471 -145.85 - 29 123.73 895 1 1 -0.471159 0.457048 -174.45 - 29 125.336 898 1 0 -0.477056 0.469779 -175.85 - 29 209.25 895 0 1 -0.601437 0.726346 -204.45 - 29 213.747 899 0 0 -0.60821 0.75582 -205.85 - 29 310.786 895 2 1 -0.545965 0.350144 -144.731 - 29 9.83412 1631 4 0 -69.8025 147.684 -86.134 - 29 22.0903 888 0 1 -1.85131 -79.1722 -204.602 - 29 310.796 871 0 1 -5.25499 -86.2644 -204.522 - 29 122.657 902 2 0 -0.333602 1.29569 -145.85 - 29 245.508 873 1 1 -5.04726 12.37 -174.45 - 29 168.498 965 1 0 -6.41947 13.9767 -175.85 - 29 210.457 967 1 0 -6.69694 14.3118 -176.165 - 29 262.458 726 0 1 -34.3886 41.7467 -204.45 - 29 166.064 1108 0 0 -35.9494 42.5261 -205.85 -Number of tracker digits in this event = 13 +Number of tracker hits in this event = 10 + 29 160.34095 896 5 0 -0.21372998 0.15542546 -55.85 + 29 94.752746 898 4 0 -0.41844235 0.55560688 -85.85 + 29 131.56828 894 3 1 -0.66911824 0.86489925 -114.45 + 29 113.08671 900 3 0 -0.67982924 0.87435061 -115.85 + 29 119.76097 893 2 1 -0.89216681 1.0635957 -144.45 + 29 120.70919 901 2 0 -0.90256714 1.0708636 -145.85 + 29 104.76305 892 1 1 -1.089659 1.1996512 -174.45 + 29 116.55801 901 1 0 -1.0918601 1.2022028 -175.85 + 29 138.89366 892 0 1 -1.1159815 1.2634285 -204.45 + 29 200.831 902 0 0 -1.1099479 1.2605156 -205.85 +Number of tracker digits in this event = 5 Event: 30 -Number of tracker hits in this event = 11 - 30 119.568 894 4 0 -0.453746 -0.669864 -85.85 - 30 139.648 895 3 1 -0.619812 -0.979271 -114.45 - 30 129.082 893 3 0 -0.64752 -0.995107 -115.85 - 30 107.526 892 2 1 -1.1778 -1.31074 -144.45 - 30 121.468 891 2 0 -1.20316 -1.33315 -145.85 - 30 126.794 889 1 1 -1.77534 -1.69402 -174.45 - 30 128.784 889 1 0 -1.79382 -1.71164 -175.85 - 30 105.107 887 0 1 -2.20426 -2.10885 -204.45 - 30 104.749 887 0 0 -2.20002 -2.10654 -205.85 - 30 260.786 893 2 1 -0.853223 -1.25815 -144.45 - 30 113.852 892 2 0 -1.66554 -1.16701 -145.85 -Number of tracker digits in this event = 6 +Number of tracker hits in this event = 4 + 30 140.57267 892 1 1 -1.2295915 0.16545928 -174.45 + 30 132.60507 896 1 0 -1.2547428 0.17356124 -175.85 + 30 143.59133 889 0 1 -1.8242424 0.41987122 -204.45 + 30 193.97144 897 0 0 -1.8511985 0.44535253 -205.85 +Number of tracker digits in this event = 4 Event: 31 -Number of tracker hits in this event = 13 - 31 135.98 891 3 1 -1.36897 0.104205 -114.45 - 31 138.544 896 3 0 -1.3959 0.115602 -115.85 - 31 138.809 888 2 1 -2.03621 0.254454 -144.45 - 31 165.311 897 2 0 -2.04806 0.267108 -145.85 - 31 141.653 887 1 1 -2.2469 0.482196 -174.45 - 31 166.872 898 1 0 -2.26777 0.493247 -175.85 - 31 113.148 884 0 1 -2.78609 0.786774 -204.45 - 31 109.183 899 0 0 -2.81974 0.785218 -205.85 - 31 53.1685 460 2 0 125.188 -87.4889 -145.92 - 31 123.91 972 0 0 -27.6605 15.4119 -206.25 - 31 108.077 759 0 1 -27.7661 14.7513 -204.85 - 31 158.986 415 8 1 -97.035 60.5222 35.3031 - 31 121.644 840 2 0 -43.8698 -11.6043 -146.079 -Number of tracker digits in this event = 9 +Number of tracker hits in this event = 12 + 31 99.452971 896 5 1 0.14559677 0.11243717 -54.45 + 31 140.74199 896 5 0 0.15574722 0.11666071 -55.85 + 31 134.64119 897 4 1 0.34331055 0.19791188 -84.45 + 31 110.58323 896 4 0 0.36734843 0.21315777 -85.85 + 31 104.84283 899 3 1 0.84775026 0.47942647 -114.45 + 31 104.25934 898 3 0 0.86714977 0.49856805 -115.85 + 31 105.58949 901 2 1 1.2497897 0.89532191 -144.45 + 31 395.07669 900 2 0 1.2753921 0.9197203 -145.85 + 31 143.05808 904 1 1 1.7820025 1.4135922 -174.45 + 31 120.37818 902 1 0 1.8008439 1.4397954 -175.85 + 31 110.52735 906 0 1 2.1838658 1.8995313 -204.45 + 31 151.73746 905 0 0 2.2202928 1.941226 -205.85 +Number of tracker digits in this event = 6 Event: 32 -Number of tracker hits in this event = 3 - 32 116.826 895 2 1 -0.621051 -0.269253 -144.45 - 32 120.379 894 1 1 -0.710457 -0.115311 -174.45 - 32 113.508 894 0 1 -0.736519 -0.147702 -204.45 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 13 + 32 107.93744 893 4 0 -0.23385725 -1.0212673 -85.85 + 32 123.20027 888 3 0 -0.4414943 -2.0081383 -115.85 + 32 110.93626 895 2 1 -0.56636435 -2.992518 -144.45 + 32 102.36596 883 2 0 -0.57164274 -3.0328063 -145.85 + 32 376.32007 894 1 1 -0.70242214 -3.8428576 -174.45 + 32 95.624513 878 1 0 -0.6955486 -3.8942052 -175.85 + 32 102.56268 895 0 1 -0.53947115 -4.9289948 -204.45 + 32 113.49136 873 0 0 -0.53596322 -4.9756252 -205.85 + 32 242.38267 879 1 0 -0.74228599 -3.7211201 -175.85 + 32 193.74832 887 0 1 -2.0961773 -3.6203822 -204.45 + 32 100.54458 880 0 0 -2.045426 -3.5555685 -205.85 + 32 152.04926 908 0 1 2.6464997 -7.1024581 -204.45 + 32 127.99812 862 0 0 2.9148761 -7.155511 -205.85 +Number of tracker digits in this event = 6 Event: 33 -Number of tracker hits in this event = 11 - 33 95.3168 896 5 0 -0.0928872 0.0868573 -55.85 - 33 117.692 897 4 0 -0.379958 0.264342 -85.85 - 33 182.307 898 3 0 -0.415172 0.453237 -115.85 - 33 127.977 897 2 0 -0.175286 0.420292 -145.85 - 33 134.862 892 1 1 -1.17478 1.76147 -174.45 - 33 126.228 904 1 0 -1.21573 1.83332 -175.85 - 33 89.1208 888 0 1 -1.94952 3.35413 -204.45 - 33 177.618 912 0 0 -1.98642 3.38358 -205.85 - 33 378.78 1197 1 0 23.4052 60.4174 -176.25 - 33 382.744 1201 1 0 23.7455 61.1373 -175.867 - 33 181.309 1200 1 0 23.1488 60.8879 -176.119 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 4 + 33 112.78533 896 4 1 0.15785052 -0.2998047 -84.45 + 33 135.45058 898 3 1 0.50300044 -0.28425209 -114.45 + 33 98.360549 900 2 1 0.90916858 -0.20772194 -144.45 + 33 124.43967 903 1 1 1.5766482 -0.073755197 -174.45 +Number of tracker digits in this event = 2 Event: 34 Number of tracker hits in this event = 11 - 34 199.225 896 5 0 -0.129642 0.0996675 -55.85 - 34 100.001 896 4 0 -0.444262 0.0610625 -85.85 - 34 135.608 893 3 1 -0.875765 0.0609213 -114.45 - 34 144.04 896 3 0 -0.891548 0.0798585 -115.85 - 34 161.257 892 2 1 -1.23198 0.494467 -144.45 - 34 155.672 898 2 0 -1.23475 0.519628 -145.85 - 34 184.19 891 1 1 -1.26615 1.00775 -174.45 - 34 124.392 900 1 0 -1.27013 1.03347 -175.85 - 34 230.456 891 0 1 -1.39354 1.56671 -204.45 - 34 353.16 903 0 0 -1.40585 1.57638 -205.85 - 34 93.7442 784 7 1 -22.8201 19.3584 5.34927 -Number of tracker digits in this event = 9 + 34 169.80415 895 4 0 -0.34663027 -0.57159106 -85.85 + 34 119.85679 895 3 1 -0.46025141 -0.95953666 -114.45 + 34 169.51958 893 3 0 -0.46920648 -0.96940993 -115.85 + 34 110.64698 895 2 1 -0.53138265 -1.088456 -144.45 + 34 111.95205 892 2 0 -0.53897091 -1.0962004 -145.85 + 34 110.34679 894 1 1 -0.67283012 -1.1931159 -174.45 + 34 203.99255 892 1 0 -0.67392596 -1.1842101 -175.85 + 34 124.91882 894 0 1 -0.72216388 -0.9634697 -204.45 + 34 127.35979 893 0 0 -0.72668939 -0.95215737 -205.85 + 34 96.615245 1125 3 0 -79.527928 45.925574 -116.25 + 34 65.135695 1126 3 0 -79.523579 46.06441 -116.15549 +Number of tracker digits in this event = 5 Event: 35 -Number of tracker hits in this event = 11 - 35 134.028 896 4 1 0.115734 0.253103 -84.45 - 35 118.711 897 4 0 0.0995081 0.288361 -85.85 - 35 128.11 901 3 0 -0.164884 1.06524 -115.85 - 35 126.451 906 2 0 -0.463056 2.22809 -145.85 - 35 143.011 894 1 1 -0.703998 3.54338 -174.45 - 35 162.517 914 1 0 -0.717182 3.74461 -175.85 - 35 152.123 891 0 1 -1.36629 7.72638 -204.45 - 35 121.862 935 0 0 -1.45825 7.98466 -205.85 - 35 227.592 898 0 1 0.459029 0.98273 -204.45 - 35 215.013 900 0 0 0.466731 1.03696 -205.85 - 35 86.1229 506 4 1 -78.392 -128.845 -84.637 -Number of tracker digits in this event = 9 +Number of tracker hits in this event = 28 + 35 194.22868 896 3 1 0.13315522 0.26130628 -114.45 + 35 136.47391 897 3 0 0.1437724 0.26603902 -115.85 + 35 114.11242 897 2 1 0.39036711 0.3242347 -144.45 + 35 143.58962 897 2 0 0.40466893 0.32073739 -145.85 + 35 115.15946 899 1 1 0.7361744 0.29178325 -174.45 + 35 117.84465 897 1 0 0.79066609 0.30653225 -175.85 + 35 107.14779 905 0 1 1.8819102 0.68470278 -204.45 + 35 276.92225 899 0 0 1.8773335 0.70495075 -205.85 + 35 365.22594 900 0 1 1.0470983 0.26019285 -204.45 + 35 120.27877 896 0 0 1.0623956 0.24172432 -205.85 + 35 639.61971 897 0 0 1.0585978 0.26500746 -205.85 + 35 153.03705 1335 0 1 87.858018 -5.1881892 -204.80322 + 35 142.79115 1336 0 1 88.0653 -5.2517038 -204.78913 + 35 1.844 861 0 0 91.23666 -7.4478666 -205.85 + 35 12.935656 860 0 0 91.373897 -7.5429037 -205.89591 + 35 227.77778 896 2 1 0.11064933 0.50940717 -144.45 + 35 128.64743 899 2 0 0.56899675 0.79464829 -145.85 + 35 162.03445 945 1 1 9.9757171 5.857202 -174.45 + 35 124.76331 929 1 0 9.2440635 6.7599278 -175.85 + 35 219.06832 907 0 1 2.4414193 28.360718 -204.45 + 35 835.9717 908 0 1 2.5204042 29.011016 -204.49789 + 35 58.84049 914 0 1 3.6524062 31.59496 -204.84029 + 35 441.30279 1090 0 0 4.6810676 38.960858 -205.85 + 35 183.88774 1097 0 0 4.7550363 40.327711 -205.89659 + 35 4.91611 845 1 1 -10.482126 -60.04327 -174.5382 + 35 99.528634 896 2 0 0.90014365 0.088502979 -145.85 + 35 132.24387 1036 1 1 28.192464 -73.643604 -174.77019 + 35 162.4572 1128 0 1 46.585614 -62.297641 -204.6065 +Number of tracker digits in this event = 19 Event: 36 -Number of tracker hits in this event = 26 - 36 111.504 896 5 1 0.187791 -0.126067 -54.45 - 36 229.917 898 4 1 0.472925 -0.331281 -84.45 - 36 407.099 899 3 1 0.764908 -0.705408 -114.45 - 36 111.707 894 3 0 0.76491 -0.723385 -115.85 - 36 127.981 899 2 1 0.737005 -1.07192 -144.45 - 36 115.324 892 2 0 0.733244 -1.08505 -145.85 - 36 161.037 898 1 1 0.636944 -1.35654 -174.45 - 36 122.549 891 1 0 0.623841 -1.37259 -175.85 - 36 134.421 897 0 1 0.384057 -1.70115 -204.45 - 36 107.806 889 0 0 0.369728 -1.71835 -205.85 - 36 219.279 895 3 0 1.1293 -0.587809 -115.85 - 36 101.502 896 3 0 -0.32454 0.0876342 -115.85 - 36 128.609 895 2 1 -0.641868 0.501086 -144.45 - 36 109.941 898 2 0 -0.652838 0.524252 -145.85 - 36 118.948 893 1 1 -0.869563 0.852985 -174.45 - 36 121.511 899 1 0 -0.869227 0.83669 -175.85 - 36 101.384 894 0 1 -0.786738 0.483518 -204.45 - 36 124.915 897 0 0 -0.825254 0.430057 -205.85 - 36 301.927 897 4 1 0.324501 -0.05 -84.5053 - 36 427.133 886 4 0 -2.69329 -2.44699 -85.85 - 36 285.44 554 3 1 -68.69 -55.0972 -114.45 - 36 350.294 611 3 0 -71.606 -57.2509 -115.85 - 36 110.127 245 2 1 -131.091 -102.323 -144.45 - 36 225.975 243 2 1 -131.376 -102.522 -144.585 - 36 243.275 378 2 0 -134.02 -104.358 -145.85 - 36 208.998 376 2 0 -134.701 -104.833 -146.167 -Number of tracker digits in this event = 17 +Number of tracker hits in this event = 7 + 36 142.67933 896 4 0 -0.16143665 0.17173821 -85.85 + 36 136.24413 897 3 0 -0.3453008 0.42683238 -115.85 + 36 176.00143 898 2 0 -0.35252416 0.47191526 -145.85 + 36 101.19358 898 1 0 -0.39496335 0.53289904 -175.85 + 36 109.49827 895 0 1 -0.45980647 0.62862778 -204.45 + 36 125.12639 899 0 0 -0.46984145 0.65308346 -205.85 + 36 95.24649 896 5 1 0.05 -0.056222206 -54.51507 +Number of tracker digits in this event = 4 Event: 37 -Number of tracker hits in this event = 14 - 37 430.713 896 5 1 0.0808781 0.0774397 -54.45 - 37 213.465 896 5 0 0.086873 0.0771689 -55.85 - 37 103.256 896 4 1 0.190328 0.0625957 -84.45 - 37 155.593 896 4 0 0.196051 0.0604354 -85.85 - 37 89.7595 897 3 1 0.307043 0.05 -114.575 - 37 101.489 897 3 0 0.400106 0.259362 -115.85 - 37 104.872 908 2 1 2.5238 4.87981 -144.45 - 37 114.592 921 2 0 2.66323 5.14814 -145.85 - 37 98.0553 923 1 1 5.59809 10.4639 -174.45 - 37 134.631 949 1 0 5.65723 10.7297 -175.85 - 37 398.872 928 0 1 6.52466 16.3671 -204.45 - 37 126.72 979 0 0 6.57761 16.7293 -205.85 - 37 242.978 980 1 0 4.94565 16.8992 -176.25 - 37 206.384 899 5 0 1.2826 0.676624 -55.85 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 34 + 37 109.16328 896 5 1 0.12931073 -0.22266602 -54.45 + 37 97.858411 895 4 1 -0.47055446 0.15419424 -84.45 + 37 112.57658 896 4 0 -0.53767257 0.17045455 -85.85 + 37 315.22895 887 3 1 -2.1457124 0.52479801 -114.45 + 37 161.75567 898 3 0 -2.2504782 0.6312682 -115.85 + 37 130.43418 875 2 1 -4.5698746 3.4881326 -144.45 + 37 112.57904 914 2 0 -4.6174759 3.7048779 -145.85 + 37 126.07358 868 1 1 -5.9368021 7.7763681 -174.45 + 37 112.46804 935 1 0 -6.0510256 7.9684883 -175.85 + 37 92.341688 860 0 1 -7.6289299 12.150546 -204.45 + 37 92.914735 956 0 0 -7.5994788 12.115009 -205.85 + 37 154.32699 892 3 0 -0.98079266 -1.1133983 -115.85 + 37 166.03305 891 3 0 -0.54104658 -1.2545289 -115.94048 + 37 121.81072 890 3 0 -0.33126263 -1.5248773 -115.96463 + 37 200.26551 889 3 0 -0.23543307 -1.715454 -115.97934 + 37 257.42832 896 0 1 0.21351358 -0.66180664 -204.45 + 37 341.35866 894 0 0 0.21745309 -0.65562275 -205.85 + 37 119.92285 904 3 1 1.6717702 0.34106573 -114.45 + 37 134.66351 897 3 0 1.7855859 0.34222661 -115.85 + 37 106.6776 916 2 1 4.2296505 0.44936373 -144.45 + 37 120.13896 898 2 0 4.3479557 0.55318902 -145.85 + 37 152.98056 929 1 1 6.8074011 2.7232019 -174.45 + 37 161.15968 908 1 0 6.7902448 2.4835781 -175.85 + 37 184.70421 925 0 1 5.926886 -3.1020612 -204.45 + 37 10.182868 877 0 0 5.4038117 -4.2369864 -205.85 + 37 338.77245 876 0 0 5.3937577 -4.2600844 -205.88148 + 37 153.88999 897 4 0 -0.10434883 0.44155246 -85.85 + 37 206.45784 907 3 0 -2.6972112 2.3769184 -115.85 + 37 213.4043 836 2 1 -12.349168 5.0255886 -144.45 + 37 419.61385 922 2 0 -12.598633 5.4051112 -145.85 + 37 135.61315 825 1 1 -14.483346 14.77166 -174.45 + 37 126.88265 973 1 0 -14.961501 15.646728 -175.85 + 37 260.6336 778 0 1 -23.918055 34.991797 -204.45 + 37 237.29991 1082 0 0 -24.578482 37.261008 -205.85 +Number of tracker digits in this event = 24 Event: 38 -Number of tracker hits in this event = 12 - 38 151.077 896 5 1 0.057468 -0.0878398 -54.45 - 38 132.075 896 4 1 0.179765 -0.0922177 -84.45 - 38 105.062 896 3 1 0.182248 0.0732168 -114.45 - 38 104.087 896 3 0 0.180565 0.0873841 -115.85 - 38 183.079 896 2 1 0.143186 0.391882 -144.45 - 38 176.882 897 2 0 0.143778 0.408838 -145.85 - 38 148.44 896 1 1 0.167677 0.72601 -174.45 - 38 133.056 899 1 0 0.166865 0.743594 -175.85 - 38 103.906 896 0 1 0.145871 1.1081 -204.45 - 38 263.393 901 0 0 0.141744 1.12294 -205.85 - 38 42.6028 300 0 0 -48.6924 -120.059 -206.024 - 38 69.3714 896 4 0 0.118363 0.05 -85.9731 -Number of tracker digits in this event = 7 -Event: 39 -Number of tracker hits in this event = 10 - 39 140.662 896 4 1 0.109577 0.410249 -84.45 - 39 111.574 897 4 0 0.108186 0.424747 -85.85 - 39 104.772 896 3 1 0.0828251 0.735605 -114.45 - 39 199.077 899 3 0 0.0804068 0.752206 -115.85 - 39 233.575 896 0 1 0.193475 1.54138 -204.45 - 39 201.169 903 0 0 0.197504 1.54786 -205.85 - 39 120.112 891 0 0 0.178586 -1.40103 -205.85 - 39 121.851 407 5 0 172.603 -98.5801 -56.1727 - 39 115.5 1605 7 0 -87.9056 142.54 3.79076 - 39 221.26 1606 7 0 -88.0927 142.56 4.00252 -Number of tracker digits in this event = 7 -Event: 40 -Number of tracker hits in this event = 9 - 40 122.702 896 4 0 -0.116232 0.0980284 -85.85 - 40 148.512 896 1 1 0.243108 1.28472 -174.45 - 40 110.495 902 1 0 0.25444 1.3085 -175.85 - 40 104.671 898 0 1 0.509182 1.77964 -204.45 - 40 181.362 904 0 0 0.517573 1.80763 -205.85 - 40 99.9491 664 1 0 -39.22 -46.7511 -176.113 - 40 486.789 699 1 1 -39.744 -46.4027 -174.85 - 40 301.845 698 1 1 -39.8867 -46.0756 -174.45 - 40 72.9244 1587 1 0 -52.6367 138.879 -176.225 -Number of tracker digits in this event = 5 -Event: 41 -Number of tracker hits in this event = 3 - 41 156.576 901 2 0 -0.38493 1.15449 -145.85 - 41 134.996 912 1 0 -0.186452 3.28712 -175.85 - 41 136.661 922 0 0 -0.280367 5.29013 -205.85 -Number of tracker digits in this event = 3 -Event: 42 Number of tracker hits in this event = 16 - 42 108.635 896 5 1 0.133894 -0.239871 -54.45 - 42 135.247 899 4 1 0.730714 -0.937389 -84.45 - 42 134.956 893 4 0 0.778456 -0.94266 -85.85 - 42 115.547 903 3 1 1.51789 -1.34166 -114.45 - 42 125.495 891 3 0 1.55021 -1.38594 -115.85 - 42 170.98 907 2 1 2.30283 -2.22405 -144.45 - 42 120.585 887 2 0 2.13226 -2.08567 -145.85 - 42 118.312 890 1 1 -1.57737 0.524026 -174.45 - 42 135.122 899 1 0 -1.68593 0.77264 -175.85 - 42 279.667 877 0 1 -4.234 6.05441 -204.45 - 42 148.543 927 0 0 -4.31964 6.35423 -205.85 - 42 139.857 544 1 1 -70.7956 176.461 -174.826 - 42 63.6286 638 0 0 1.03866 -51.9908 -205.895 - 42 73.3462 902 0 1 1.33927 -53.4114 -204.85 - 42 301.702 903 0 1 1.48539 -53.5765 -204.726 - 42 232.625 904 0 1 1.70149 -53.8296 -204.662 -Number of tracker digits in this event = 11 -Event: 43 -Number of tracker hits in this event = 7 - 43 113.62 896 3 0 -0.214295 0.211843 -115.85 - 43 139.263 895 2 1 -0.471165 0.415515 -144.45 - 43 113.549 897 2 0 -0.492256 0.425191 -145.85 - 43 97.8366 893 1 1 -0.932315 0.635642 -174.45 - 43 142.175 898 1 0 -0.950085 0.640612 -175.85 - 43 213.044 891 0 1 -1.29767 0.7186 -204.45 - 43 105.078 899 0 0 -1.30655 0.728738 -205.85 -Number of tracker digits in this event = 3 -Event: 44 -Number of tracker hits in this event = 7 - 44 119.704 895 3 1 -0.572127 -0.267599 -114.45 - 44 109.026 893 2 1 -0.892602 -0.521166 -144.45 - 44 96.3494 895 2 0 -0.908465 -0.527093 -145.85 - 44 212.394 892 1 1 -1.2439 -0.63815 -174.45 - 44 172.466 894 1 0 -1.3267 -0.687287 -175.85 - 44 134.458 881 0 1 -3.3884 -1.47506 -204.45 - 44 106.526 890 0 0 -3.44341 -1.52269 -205.85 -Number of tracker digits in this event = 3 -Event: 45 -Number of tracker hits in this event = 4 - 45 102.613 896 4 0 -0.09255 0.066125 -85.85 - 45 112.538 896 3 0 -0.17105 0.0578899 -115.85 - 45 112.488 896 2 0 -0.168885 0.0800449 -145.85 - 45 149.761 896 1 0 -0.110997 0.0868796 -175.85 -Number of tracker digits in this event = 1 -Event: 46 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 47 -Number of tracker hits in this event = 6 - 47 120.942 896 4 1 0.153582 -0.080909 -84.45 - 47 215.018 896 3 1 0.19762 -0.0897525 -114.45 - 47 301.029 684 2 1 -42.6558 -60.7802 -144.85 - 47 242.94 683 2 1 -42.9087 -60.9516 -144.554 - 47 121.445 897 3 1 0.288184 -0.0527341 -114.755 - 47 22.7703 896 5 1 0.05 -0.0798678 -54.6159 -Number of tracker digits in this event = 5 -Event: 48 -Number of tracker hits in this event = 7 - 48 145.879 896 4 0 -0.175757 0.164891 -85.85 - 48 113.457 897 3 0 -0.398514 0.297365 -115.85 - 48 106.982 892 2 1 -1.06079 -0.12721 -144.45 - 48 143.427 890 1 1 -1.61586 -0.588313 -174.45 - 48 123.916 895 1 0 -1.64343 -0.613953 -175.85 - 48 167.125 887 0 1 -2.19499 -1.13629 -204.45 - 48 101.191 892 0 0 -2.22852 -1.16349 -205.85 -Number of tracker digits in this event = 4 -Event: 49 -Number of tracker hits in this event = 36 - 49 215.553 896 4 0 -0.131397 0.170331 -85.85 - 49 163.142 896 2 1 0.171538 0.352482 -144.45 - 49 132.45 897 2 0 0.173501 0.344706 -145.85 - 49 308.601 896 1 1 0.224805 0.22174 -174.45 - 49 239.777 896 1 0 0.237348 0.207652 -175.85 - 49 32.313 898 0 1 0.570581 -0.05 -204.703 - 49 336.959 897 0 1 0.295563 0.298442 -204.45 - 49 284.701 903 0 0 0.779826 1.53566 -205.85 - 49 152.914 896 0 0 0.291631 0.22574 -205.85 - 49 126.779 894 0 1 -0.695839 0.382224 -204.45 - 49 300.193 897 0 0 -0.714812 0.356173 -205.85 - 49 91.3839 728 1 1 -33.9879 -12.4094 -174.737 - 49 195.671 727 1 1 -34.1576 -12.4758 -174.658 - 49 157.893 1436 0 0 -72.5447 108.675 -206.048 - 49 130.753 1438 0 0 -72.7413 109.041 -206.136 - 49 107.906 1439 0 0 -72.6967 109.341 -206.244 - 49 290.167 1440 0 0 -72.8516 109.516 -206.187 - 49 100.21 897 1 0 -0.24057 0.304099 -175.85 - 49 189.86 862 0 1 -7.20424 1.74618 -204.45 - 49 357.219 896 3 1 0.0506665 -0.05 -114.525 - 49 119.83 899 2 1 0.669111 -1.02068 -144.45 - 49 151.537 892 2 0 0.592706 -1.13215 -145.85 - 49 102.433 891 1 1 -1.36307 -2.7909 -174.45 - 49 129.529 883 1 0 -1.39103 -2.85611 -175.85 - 49 95.2748 887 0 1 -2.10455 -3.21128 -204.45 - 49 187.112 881 0 0 -2.35716 -3.37491 -205.85 - 49 179.301 964 3 0 -2.75441 13.6916 -115.85 - 49 283.81 966 3 0 -2.82666 14.1509 -115.88 - 49 238.65 969 3 0 -3.09196 14.8087 -115.853 - 49 178.846 971 3 0 -3.26292 15.2325 -115.94 - 49 173.144 973 3 0 -3.60738 15.4942 -116.066 - 49 134.048 974 3 0 -3.7511 15.8489 -116.056 - 49 1.35849 976 3 0 -3.6936 16.1373 -115.854 - 49 59.4447 885 3 1 -2.55025 16.8709 -114.85 - 49 270.144 886 3 1 -2.43484 16.8659 -114.73 - 49 147.667 887 3 1 -2.23745 16.9914 -114.616 -Number of tracker digits in this event = 27 -Event: 50 -Number of tracker hits in this event = 9 - 50 139.139 896 3 1 0.0804318 0.429692 -114.45 - 50 136.756 897 3 0 0.077841 0.44425 -115.85 - 50 491.379 896 1 1 0.167673 0.808842 -174.45 - 50 282.566 899 1 0 0.169028 0.812433 -175.85 - 50 111.889 897 0 1 0.250459 0.945695 -204.45 - 50 161.56 900 0 0 0.242122 0.97573 -205.85 - 50 193.251 896 4 1 0.219418 -0.05 -84.6705 - 50 249.972 891 4 0 0.0808634 -1.32499 -85.85 - 50 55.5578 890 4 0 0.0558247 -1.61822 -86.1346 -Number of tracker digits in this event = 7 -Event: 51 -Number of tracker hits in this event = 3 - 51 126.581 896 3 0 -0.182112 0.115802 -115.85 - 51 121.931 896 2 0 -0.237031 0.211626 -145.85 - 51 221.47 897 1 0 -0.234172 0.336767 -175.85 -Number of tracker digits in this event = 3 -Event: 52 -Number of tracker hits in this event = 7 - 52 115.494 895 3 0 -0.193234 -0.515894 -115.85 - 52 106.605 894 2 0 -0.426723 -0.692133 -145.85 - 52 105.887 894 1 1 -0.675127 -0.873517 -174.45 - 52 106.989 893 1 0 -0.688506 -0.877604 -175.85 - 52 131.696 893 0 1 -0.972758 -0.954057 -204.45 - 52 102.075 893 0 0 -0.983596 -0.96315 -205.85 - 52 14.7701 1134 0 0 -91.5867 47.7538 -206.185 -Number of tracker digits in this event = 1 -Event: 53 -Number of tracker hits in this event = 6 - 53 114.34 898 0 1 0.529905 0.0952836 -204.45 - 53 240.81 896 0 0 0.55192 0.0932389 -205.85 - 53 110.157 276 7 1 -124.88 -91.6558 5.38505 - 53 6.21293 896 1 1 0.05 -0.0527172 -174.824 - 53 131.435 920 0 1 4.98425 1.72713 -204.45 - 53 116.238 904 0 0 4.84759 1.66694 -205.85 -Number of tracker digits in this event = 2 -Event: 54 -Number of tracker hits in this event = 10 - 54 189.079 897 4 0 -0.303041 0.25468 -85.85 - 54 149.837 895 3 1 -0.598222 0.486387 -114.45 - 54 110.209 898 3 0 -0.694212 0.560162 -115.85 - 54 123.788 885 2 1 -2.54548 1.82217 -144.45 - 54 124.792 904 2 0 -2.56649 1.81059 -145.85 - 54 98.6393 883 1 1 -2.8525 1.70392 -174.45 - 54 104.32 904 1 0 -3.06292 1.68922 -175.85 - 54 176.496 861 0 1 -7.38435 0.950244 -204.45 - 54 82.9957 900 0 0 -7.57995 0.860883 -205.85 - 54 19.8454 899 0 0 -7.62972 0.843713 -206.178 -Number of tracker digits in this event = 5 -Event: 55 -Number of tracker hits in this event = 10 - 55 109.344 896 4 1 0.141554 -0.081328 -84.45 - 55 111.998 896 3 1 0.238853 0.092694 -114.45 - 55 188.909 896 3 0 0.250551 0.099801 -115.85 - 55 97.4738 898 2 1 0.502547 0.289294 -144.45 - 55 211.811 897 2 0 0.513713 0.299834 -145.85 - 55 328.228 899 1 1 0.724455 0.512857 -174.45 - 55 117.906 898 1 0 0.736184 0.52289 -175.85 - 55 119.461 900 0 1 1.00436 0.791877 -204.45 - 55 124.256 899 0 0 1.01629 0.804116 -205.85 - 55 269.841 1422 12 0 110.559 105.85 153.861 -Number of tracker digits in this event = 5 -Event: 56 -Number of tracker hits in this event = 24 - 56 154.62 896 4 1 0.189456 0.338914 -84.45 - 56 160.898 897 4 0 0.195657 0.349863 -85.85 - 56 110.558 897 3 1 0.310879 0.565772 -114.45 - 56 119.784 898 3 0 0.318211 0.584064 -115.85 - 56 201.627 898 2 1 0.470692 0.958476 -144.45 - 56 130.452 900 2 0 0.48499 0.996557 -145.85 - 56 119.056 900 1 1 0.93489 1.92205 -174.45 - 56 97.8017 905 1 0 0.955167 1.94632 -175.85 - 56 207.596 902 0 1 1.38557 2.50686 -204.45 - 56 153.751 908 0 0 1.40843 2.55239 -205.85 - 56 109.803 898 2 0 0.464875 0.621816 -145.85 - 56 125.293 913 1 1 3.51469 -2.79666 -174.45 - 56 125.092 882 1 0 3.74461 -3.10239 -175.85 - 56 191.742 930 0 1 6.85196 -7.39769 -204.45 - 56 251.698 853 0 0 6.88746 -8.99556 -205.85 - 56 5.03188 851 0 0 6.86247 -9.44996 -206.238 - 56 145.98 639 0 0 1.47527 -51.6754 -206.25 - 56 243.387 905 0 1 2.02476 -52.4467 -204.85 - 56 349.358 906 0 1 2.20922 -52.6556 -204.701 - 56 95.018 907 0 1 2.32179 -52.658 -204.476 - 56 483.958 771 1 0 99.5274 -25.4012 -176.25 - 56 6.00219 1011 3 0 -102.943 23.1635 -115.875 - 56 390.941 386 3 1 -102.826 23.3806 -114.85 - 56 35.5232 418 2 1 -96.4664 15.098 -144.5 -Number of tracker digits in this event = 15 -Event: 57 -Number of tracker hits in this event = 5 - 57 140.365 896 3 1 0.0830332 -0.149994 -114.45 - 57 90.5008 896 2 1 0.073199 -0.197086 -144.45 - 57 106.258 896 1 1 0.0915937 -0.315318 -174.45 - 57 107.954 896 0 1 0.0872209 -0.501495 -204.45 - 57 114.999 895 0 0 0.0692454 -0.513849 -205.85 -Number of tracker digits in this event = 1 -Event: 58 -Number of tracker hits in this event = 27 - 58 117.509 897 2 1 0.300801 -0.188856 -144.45 - 58 154.84 897 1 1 0.346899 -0.62853 -174.45 - 58 127.187 894 1 0 0.355 -0.650389 -175.85 - 58 121.791 898 0 1 0.528724 -1.08444 -204.45 - 58 134.349 892 0 0 0.531344 -1.11244 -205.85 - 58 1057.28 896 2 1 0.235462 -0.47403 -144.456 - 58 267.62 893 2 1 -0.915655 -1.86281 -144.492 - 58 704.683 890 2 1 -1.61759 -2.38131 -144.45 - 58 631.086 700 2 0 -40.3846 -39.6074 -145.85 - 58 327.528 693 2 0 -41.764 -40.9146 -145.851 - 58 236.038 692 2 1 -41.2359 -42.2275 -144.85 - 58 422.895 689 2 1 -41.8133 -42.3226 -144.85 - 58 87.8665 688 2 1 -41.8702 -42.416 -144.543 - 58 130.663 892 2 0 -1.87084 -1.18531 -145.85 - 58 71.7222 891 2 0 -2.05924 -1.37718 -146.057 - 58 167.397 816 0 0 16.5448 -16.3834 -206.25 - 58 45.8625 814 0 0 16.8745 -16.6786 -205.938 - 58 266.027 985 0 1 17.886 -17.8718 -204.85 - 58 223.563 692 1 0 64.5871 -41.2056 -176.25 - 58 220.95 1229 1 1 66.6939 -42.2306 -174.85 - 58 160.106 713 2 0 89.0809 -36.9031 -146.25 - 58 189.502 1345 2 1 90.441 -36.116 -144.85 - 58 360.782 1347 2 1 90.8995 -35.7572 -144.45 - 58 128.626 476 2 0 76.4679 -84.2675 -146.234 - 58 190.523 901 2 0 -0.574684 1.16828 -145.85 - 58 254.093 902 2 0 -0.635173 1.32451 -146.038 - 58 177.607 900 2 0 0.626745 0.995519 -145.85 -Number of tracker digits in this event = 23 -Event: 59 -Number of tracker hits in this event = 14 - 59 109.163 897 1 1 0.326064 0.057248 -174.45 - 59 119.402 896 1 0 0.32553 0.0563013 -175.85 - 59 120.905 1083 4 0 -66.8658 37.4818 -86.1267 - 59 108.962 1472 5 0 39.6441 115.919 -56.2454 - 59 87.4314 1473 5 0 39.6248 116.005 -56.1877 - 59 42.4349 896 4 0 0.376634 0.05 -86.0995 - 59 104.094 916 3 1 4.23795 10.7113 -114.45 - 59 231.352 956 3 0 4.94926 12.0739 -115.85 - 59 186.969 1231 3 0 -41.3175 67.2174 -116.25 - 59 23.1762 1232 3 0 -41.0809 67.2893 -115.898 - 59 92.4874 696 3 1 -40.3419 68.1032 -114.85 - 59 53.928 697 3 1 -40.2425 68.3495 -114.764 - 59 492.19 1238 3 0 -39.7581 68.5015 -115.85 - 59 110.796 1237 3 0 -40.0196 68.4433 -115.927 -Number of tracker digits in this event = 4 -Event: 60 -Number of tracker hits in this event = 11 - 60 114.18 892 2 1 -1.22279 -0.91662 -144.45 - 60 114.269 893 2 0 -1.25541 -0.919803 -145.85 - 60 127.047 888 1 1 -1.91286 -1.01121 -174.45 - 60 184.927 893 1 0 -1.93988 -1.01267 -175.85 - 60 105.239 885 0 1 -2.49786 -1.03125 -204.45 - 60 166.506 893 0 0 -2.52939 -1.03162 -205.85 - 60 364.287 730 10 0 105.171 -33.5999 93.75 - 60 420.345 732 10 0 105.227 -33.1689 94.0313 - 60 130.552 731 10 0 104.976 -33.2559 93.8482 - 60 46.1739 733 10 0 104.93 -33.0251 93.8622 - 60 243.384 901 6 0 1.17489 1.11844 -25.85 -Number of tracker digits in this event = 7 -Event: 61 -Number of tracker hits in this event = 12 - 61 129.119 896 4 0 -0.0700787 0.143296 -85.85 - 61 104.004 897 3 0 -0.133244 0.319822 -115.85 - 61 119.049 897 2 0 -0.235714 0.41882 -145.85 - 61 103.602 899 1 0 -0.314791 0.689032 -175.85 - 61 115.897 900 0 0 -0.295558 0.960314 -205.85 - 61 187.558 794 0 0 17.173 -20.651 -206.138 - 61 107.767 983 0 1 17.5374 -21.0135 -204.85 - 61 35.1653 896 5 1 0.216926 -0.05 -54.8199 - 61 8.10503 897 5 1 0.28973 -0.058919 -54.8393 - 61 133.195 898 5 0 0.0730395 0.476647 -55.85 - 61 185.153 927 4 1 6.43844 21.8026 -84.45 - 61 417.538 928 4 1 6.55352 21.3069 -84.85 -Number of tracker digits in this event = 5 -Event: 62 + 38 190.65004 896 2 1 0.074770557 0.056259134 -144.45 + 38 114.72918 896 2 0 0.095439465 0.0632004 -145.85 + 38 108.43971 898 1 1 0.50679486 0.12236873 -174.45 + 38 98.762469 896 1 0 0.54158906 0.10854187 -175.85 + 38 333.13721 902 0 1 1.3222871 -0.2249816 -204.45 + 38 10.827672 162 1 0 -32.044625 -147.63992 -176.11527 + 38 74.329165 896 3 1 0.05 0.098768333 -114.58583 + 38 100.54063 896 3 0 0.10602941 0.089176788 -115.85 + 38 448.63402 890 2 1 -1.6115395 0.85971599 -144.45 + 38 430.62416 885 2 1 -2.5415126 2.0904763 -144.73388 + 38 285.65377 882 2 1 -3.1258187 3.1942256 -144.50847 + 38 319.95022 881 2 1 -3.3177986 3.948435 -144.81614 + 38 301.31708 878 2 1 -3.9796758 4.1438575 -144.47416 + 38 331.014 877 2 1 -4.2026579 4.5005362 -144.73637 + 38 136.81243 924 2 0 -3.7624007 5.7321682 -145.85 + 38 217.74021 925 2 0 -3.7148092 5.8674327 -145.86738 +Number of tracker digits in this event = 10 +Event: 39 Number of tracker hits in this event = 33 - 62 95.7042 896 5 1 0.199106 -0.054176 -54.45 - 62 202.862 897 4 1 0.424717 -0.0958172 -84.45 - 62 96.1515 898 3 1 0.538962 -0.20572 -114.45 - 62 129.655 898 2 1 0.585606 -0.364003 -144.45 - 62 237.486 898 1 1 0.602506 -0.543203 -174.45 - 62 100.139 895 1 0 0.60185 -0.548913 -175.85 - 62 152.779 898 0 1 0.608678 -0.667043 -204.45 - 62 392.034 894 0 0 0.613253 -0.670631 -205.85 - 62 87.103 900 2 1 0.86325 -0.209821 -144.554 - 62 268.605 897 6 0 -0.0929196 0.339496 -25.85 - 62 142.642 891 5 1 -1.38499 7.78104 -54.45 - 62 136.449 939 5 0 -1.20387 8.81446 -55.85 - 62 261.537 907 4 1 2.38873 28.5802 -84.45 - 62 245.947 1042 4 0 2.80682 29.3801 -85.85 - 62 125.402 958 3 1 12.496 42.8428 -114.45 - 62 147.063 1113 3 0 12.8793 43.5272 -115.85 - 62 326.196 1002 2 1 21.4258 56.0172 -144.45 - 62 992.419 1006 2 1 22.2327 55.5321 -144.567 - 62 20.5053 1018 2 1 24.5386 54.5739 -144.46 - 62 925.758 1019 2 1 24.7865 54.5014 -144.45 - 62 214.908 1021 2 1 25.1111 51.8132 -144.85 - 62 1098.79 765 2 0 1.9499 -26.6344 -145.85 - 62 107.31 750 2 0 1.09426 -29.5672 -145.852 - 62 233.842 749 2 0 1.04115 -29.7588 -145.895 - 62 504.936 745 2 0 1.02878 -30.458 -145.94 - 62 323.851 985 1 1 18.0378 -78.0885 -174.45 - 62 282.534 989 1 1 18.6857 -77.8039 -174.833 - 62 153.853 991 1 1 19.2363 -77.7876 -174.805 - 62 42.7379 746 2 0 0.990883 -30.3982 -146.026 - 62 18.0737 1152 2 0 24.125 51.4477 -145.85 - 62 136.424 1153 2 0 24.0946 51.4522 -145.863 - 62 57.2014 1007 2 1 22.2533 55.4626 -144.607 - 62 98.2735 896 6 0 -0.0844289 0.154497 -26.0029 -Number of tracker digits in this event = 23 -Event: 63 + 39 105.68115 896 5 1 0.12611181 0.13585609 -54.45 + 39 115.84618 896 5 0 0.13277362 0.14575677 -55.85 + 39 436.56368 897 4 1 0.2733287 0.31162555 -84.45 + 39 97.90554 897 4 0 0.26746743 0.32040596 -85.85 + 39 138.23785 896 3 1 0.17796484 0.45517762 -114.45 + 39 351.99051 897 3 0 0.16922037 0.44026798 -115.85 + 39 137.36689 896 2 0 -0.081706648 0.11802778 -145.85 + 39 213.90189 894 0 1 -0.71651714 -0.62221695 -204.45 + 39 155.1415 895 0 0 -0.74666245 -0.64901749 -205.85 + 39 53.464842 1443 5 0 -125.61461 110.0607 -56.023275 + 39 42.114789 1446 5 0 -125.81739 110.55677 -55.983237 + 39 184.95333 257 5 1 -128.72733 112.67199 -54.85 + 39 90.675213 255 5 1 -129.02727 112.79025 -54.801044 + 39 49.438023 1475 5 0 -131.75567 116.54525 -55.85 + 39 192.50758 1476 5 0 -131.83294 116.70014 -55.914246 + 39 255.56235 1477 5 0 -131.84325 116.76459 -55.85 + 39 123.05659 449 0 1 -89.675099 51.351459 -204.71182 + 39 144.89716 447 0 1 -90.603139 51.455131 -204.78597 + 39 182.17563 446 0 1 -90.92248 51.420107 -204.50837 + 39 35.005187 444 0 1 -91.269706 51.389447 -204.80363 + 39 489.12108 1168 0 0 -95.082864 54.51394 -205.85 + 39 236.66711 897 2 1 0.33133354 0.71322067 -144.45 + 39 386.43346 899 2 0 0.39928746 0.83698174 -145.85 + 39 111.50214 905 1 1 2.0299916 3.5863811 -174.45 + 39 149.18133 914 1 0 1.7936385 3.7020821 -175.85 + 39 228.92646 883 0 1 -2.9072661 5.4053502 -204.45 + 39 127.05346 922 0 0 -3.0775551 5.3833117 -205.85 + 39 148.22833 897 1 1 0.28858388 2.8782742 -174.45 + 39 185.78183 911 1 0 0.38009614 3.2481228 -175.85 + 39 255.97308 907 0 1 2.370513 11.001031 -204.45 + 39 224.5101 953 0 0 2.4653193 11.615409 -205.85 + 39 28.021536 954 0 0 2.4816265 11.752853 -206.16011 + 39 34.013185 963 5 0 -20.103062 13.572671 -56.158423 +Number of tracker digits in this event = 22 +Event: 40 +Number of tracker hits in this event = 17 + 40 123.16211 896 4 1 0.15154937 0.086875716 -84.45 + 40 112.72095 896 4 0 0.1581231 0.091238799 -85.85 + 40 103.9261 897 3 1 0.2964224 0.1604709 -114.45 + 40 118.70762 896 3 0 0.29842367 0.16104122 -115.85 + 40 154.26975 897 2 1 0.30282358 0.17424842 -144.45 + 40 122.42099 896 2 0 0.29753789 0.16117186 -145.85 + 40 120.21061 896 1 1 0.22485028 -0.068125962 -174.45 + 40 130.91998 896 0 1 0.16263228 -0.347622 -204.45 + 40 190.33913 757 1 0 -82.604121 -28.233556 -176.25 + 40 185.49119 476 1 1 -84.422564 -28.432082 -174.85 + 40 159.79143 758 2 0 -113.84356 -27.944149 -146.25 + 40 194.47343 324 2 1 -115.32984 -27.996047 -144.85 + 40 280.85741 682 3 0 -163.46772 -43.094119 -116.25 + 40 219.3146 71 3 1 -165.81529 -43.777975 -114.85 + 40 151.45674 634 4 0 -179.74939 -52.710439 -86.25 + 40 97.653865 687 4 0 -176.00706 -42.128833 -86.109052 + 40 30.010584 1769 7 0 90.04037 175.25504 4.024462 +Number of tracker digits in this event = 12 +Event: 41 +Number of tracker hits in this event = 5 + 41 67.77752 658 3 1 -47.973821 -22.268624 -114.71285 + 41 237.33545 895 0 1 -0.48188803 0.20238636 -204.69533 + 41 134.70404 1703 2 0 -113.01106 162.0672 -145.90486 + 41 297.98066 894 0 1 -0.79565933 0.14767882 -204.45 + 41 276.2565 896 0 0 -0.84912396 0.1632437 -205.85 +Number of tracker digits in this event = 4 +Event: 42 +Number of tracker hits in this event = 11 + 42 128.67431 896 4 1 0.18883362 0.19274527 -84.45 + 42 373.99992 896 4 0 0.19286022 0.19347931 -85.85 + 42 127.20783 897 3 1 0.28956729 0.19101523 -114.45 + 42 125.42617 896 3 0 0.29433685 0.19480144 -115.85 + 42 141.33546 897 2 1 0.38365242 0.25122426 -144.45 + 42 100.26686 897 2 0 0.39078425 0.25412306 -145.85 + 42 312.22054 898 1 1 0.50575549 0.2998665 -174.45 + 42 131.75962 897 1 0 0.50018675 0.29515218 -175.85 + 42 144.30241 897 0 1 0.38455114 0.2207254 -204.45 + 42 119.92877 896 0 0 0.38024065 0.21887944 -205.85 + 42 383.46239 350 9 0 -179.91729 -110.14681 63.755691 +Number of tracker digits in this event = 9 +Event: 43 +Number of tracker hits in this event = 31 + 43 218.83696 897 5 0 -0.090802988 0.28497369 -55.85 + 43 164.90155 898 4 0 -0.17433279 0.53503118 -85.85 + 43 162.18382 895 3 1 -0.49862391 0.81640476 -114.45 + 43 228.28898 899 3 0 -0.51555958 0.82203282 -115.85 + 43 131.41881 893 2 1 -0.86066821 0.92569488 -144.45 + 43 223.9025 900 2 0 -0.86167721 0.93068154 -145.85 + 43 105.05815 893 1 1 -0.89100614 1.0191983 -174.45 + 43 232.03385 900 1 0 -0.89624018 1.0307719 -175.85 + 43 139.23382 893 0 1 -1.0039286 1.2756641 -204.45 + 43 156.8027 902 0 0 -1.0021943 1.2871993 -205.85 + 43 43.768384 857 1 1 -8.0608829 145.60632 -174.64162 + 43 119.24967 894 2 1 -0.83279323 1.0016047 -144.45 + 43 103.33904 895 1 1 -0.50166102 0.99404752 -174.45 + 43 125.82992 892 0 1 -1.1246797 0.73189783 -204.45 + 43 104.55166 899 0 0 -1.063535 0.74623774 -205.85 + 43 93.014679 725 2 0 -35.159876 -34.519439 -145.92313 + 43 136.80495 689 2 1 -41.737737 -40.381941 -144.85 + 43 132.2757 896 2 1 0.19806458 0.21630503 -144.45 + 43 116.28307 896 2 0 0.22686753 0.10531584 -145.85 + 43 454.01959 900 1 1 1.0331176 -2.3781827 -174.45 + 43 139.76564 885 1 0 1.0526494 -2.5019175 -175.85 + 43 107.48136 900 0 1 1.0406867 -5.1271697 -204.45 + 43 115.22891 872 0 0 0.92479888 -5.1494944 -205.85 + 43 261.19705 982 4 1 17.350272 -32.845939 -84.654086 + 43 213.28545 896 3 0 -1.3972234 0.17727878 -115.85 + 43 158.57619 759 2 1 -27.743556 -12.132406 -144.45 + 43 185.21744 836 2 0 -28.13074 -12.365708 -145.85 + 43 92.248143 722 1 1 -35.067967 -15.620339 -174.45 + 43 124.80172 819 1 0 -35.385501 -15.722333 -175.85 + 43 184.13531 662 0 1 -47.078431 -20.133198 -204.45 + 43 158.11229 791 0 0 -47.391222 -21.410132 -205.85 +Number of tracker digits in this event = 21 +Event: 44 +Number of tracker hits in this event = 8 + 44 239.74661 897 3 1 0.4110818 -0.54138305 -114.45 + 44 124.66086 895 3 0 0.41555926 -0.55520159 -115.85 + 44 930.82128 898 2 1 0.53872449 -0.85505305 -144.45 + 44 105.20616 893 2 0 0.55275685 -0.87754531 -145.85 + 44 128.43135 899 1 1 0.79822064 -1.3013251 -174.45 + 44 130.54604 891 1 0 0.81115993 -1.3222589 -175.85 + 44 142.33759 901 0 1 1.1074414 -1.7534978 -204.45 + 44 191.44612 889 0 0 1.119566 -1.757587 -205.85 +Number of tracker digits in this event = 7 +Event: 45 +Number of tracker hits in this event = 10 + 45 132.52337 896 4 1 0.2053144 -0.16995265 -84.45 + 45 117.61062 897 3 1 0.34048409 -0.45043914 -114.45 + 45 116.84436 895 3 0 0.34230521 -0.47484927 -115.85 + 45 122.8226 897 2 1 0.39702261 -0.96228603 -144.45 + 45 172.11818 893 2 0 0.39979069 -0.98375337 -145.85 + 45 226.68665 898 1 1 0.48587723 -1.3880065 -174.45 + 45 107.11783 891 1 0 0.47262867 -1.4035093 -175.85 + 45 145.13291 896 0 1 0.21103231 -1.7432316 -204.45 + 45 120.04732 889 0 0 0.18838122 -1.757409 -205.85 + 45 30.681268 1438 9 0 112.88875 109.0249 64.08949 +Number of tracker digits in this event = 6 +Event: 46 +Number of tracker hits in this event = 10 + 46 191.86515 898 4 1 0.64294376 0.10846145 -84.45 + 46 157.70767 896 4 0 0.65414757 0.11708466 -85.85 + 46 211.64841 900 3 1 0.90844197 0.28945375 -114.45 + 46 143.19062 897 3 0 0.91302999 0.29394614 -115.85 + 46 123.96626 900 2 1 1.0021508 0.41284905 -144.45 + 46 128.4486 897 2 0 1.0061856 0.4101684 -145.85 + 46 139.25281 901 1 1 1.0815948 0.348528 -174.45 + 46 120.43671 897 1 0 1.0930496 0.35907044 -175.85 + 46 238.01604 902 0 1 1.3284143 0.53337135 -204.45 + 46 156.35953 898 0 0 1.3393952 0.54235964 -205.85 +Number of tracker digits in this event = 10 +Event: 47 +Number of tracker hits in this event = 19 + 47 106.60805 896 4 1 0.078494443 -0.43849906 -84.45 + 47 130.7638 895 4 0 0.090393904 -0.45221038 -85.85 + 47 392.12486 897 3 1 0.30654724 -0.74100717 -114.45 + 47 108.15373 894 3 0 0.32125893 -0.75783232 -115.85 + 47 110.12392 899 2 1 0.66298026 -1.1066749 -144.45 + 47 107.43041 892 2 0 0.68847896 -1.1446369 -145.85 + 47 112.36046 901 1 1 1.2175716 -1.9330504 -174.45 + 47 114.97355 888 1 0 1.251367 -1.9743204 -175.85 + 47 128.81796 905 0 1 1.9499157 -2.8300471 -204.45 + 47 214.31528 883 0 0 1.989693 -2.8669208 -205.85 + 47 555.21622 901 0 1 1.1762978 -2.0684575 -204.45 + 47 125.26128 890 0 0 1.7306378 -1.5754543 -205.85 + 47 132.85718 888 0 0 0.29344201 -1.9767671 -205.85 + 47 17.083913 889 0 0 0.11732 -1.8033282 -206.25 + 47 155.14659 851 3 0 65.709094 -9.2648113 -116.25 + 47 104.54912 852 3 0 65.959748 -9.1837175 -116.00705 + 47 148.70318 853 3 0 66.016424 -8.9828377 -115.912 + 47 86.628835 854 3 0 66.091955 -8.7063065 -116.03115 + 47 126.35815 855 3 0 66.088843 -8.5820285 -115.99429 +Number of tracker digits in this event = 10 +Event: 48 +Number of tracker hits in this event = 17 + 48 149.24417 894 2 0 -0.083346 -0.6819621 -145.85 + 48 116.29194 898 0 1 0.46498192 -1.3836349 -204.45 + 48 100.10339 891 0 0 0.48194632 -1.416156 -205.85 + 48 318.91353 1044 2 1 29.812361 100.48304 -144.7437 + 48 90.215975 895 1 0 0.59171029 -0.49101812 -175.85 + 48 119.58193 896 2 1 0.05 -0.59733649 -144.58582 + 48 435.67453 890 2 0 1.3808711 -1.5554833 -145.85 + 48 129.21414 888 2 0 78.570124 -1.9719425 -146.25 + 48 123.93775 893 0 0 -0.59786407 -1.0380371 -205.85 + 48 206.40769 896 0 1 0.05 -1.8186149 -204.67582 + 48 269.50793 877 0 0 0.72145484 -4.0559579 -205.85 + 48 150.42052 896 1 1 0.096663102 -0.85944147 -174.45 + 48 326.75727 893 1 0 -0.30617786 -0.98666029 -175.85 + 48 121.16201 868 0 1 -5.9453964 -0.73630711 -204.45 + 48 136.30064 895 0 0 -5.7494111 -0.46668945 -205.85 + 48 162.68464 905 0 1 1.8896395 -2.1723344 -204.45 + 48 262.17025 887 0 0 2.0119939 -2.2098021 -205.85 +Number of tracker digits in this event = 13 +Event: 49 +Number of tracker hits in this event = 8 + 49 108.43769 896 3 1 0.11561881 -0.4565512 -114.45 + 49 111.12997 895 3 0 0.12635676 -0.4601951 -115.85 + 49 146.99266 897 2 1 0.35437444 -0.5228328 -144.45 + 49 139.70211 895 2 0 0.35978343 -0.53953108 -145.85 + 49 109.30865 897 1 1 0.4248917 -0.86452512 -174.45 + 49 124.15219 893 1 0 0.42116955 -0.88254636 -175.85 + 49 104.30555 897 0 1 0.34844385 -1.2292937 -204.45 + 49 249.64133 892 0 0 0.34275521 -1.2417843 -205.85 +Number of tracker digits in this event = 4 +Event: 50 +Number of tracker hits in this event = 11 + 50 135.41863 897 3 1 0.31641546 -0.40156875 -114.45 + 50 123.60523 899 2 1 0.827856 -0.64628966 -144.45 + 50 135.97431 895 2 0 0.86190543 -0.6333596 -145.85 + 50 135.07996 903 1 1 1.478888 -0.37436966 -174.45 + 50 131.70135 905 0 1 1.9743577 -0.55308778 -204.45 + 50 126.72841 895 0 0 2.0126056 -0.55641326 -205.85 + 50 429.76035 904 0 1 1.6786048 0.75834828 -204.45 + 50 134.64477 900 0 0 1.7623353 0.90507124 -205.85 + 50 109.79676 897 1 0 -0.38734605 0.40163292 -175.85 + 50 126.54474 895 0 1 -0.58108372 0.74962942 -204.45 + 50 100.13562 899 0 0 -0.59891275 0.76554689 -205.85 +Number of tracker digits in this event = 9 +Event: 51 +Number of tracker hits in this event = 20 + 51 116.7543 896 4 1 0.1429695 0.090019828 -84.45 + 51 96.918563 896 4 0 0.16354755 0.091432705 -85.85 + 51 122.68298 898 3 1 0.5522595 0.13029325 -114.45 + 51 124.01736 896 3 0 0.57108885 0.122743 -115.85 + 51 114.28977 902 1 1 1.3907979 -0.70982127 -174.45 + 51 103.21168 894 1 0 1.4084248 -0.74705052 -175.85 + 51 107.70122 904 0 1 1.7727951 -1.4691702 -204.45 + 51 311.9805 890 0 0 1.7846762 -1.5113237 -205.85 + 51 235.17389 900 2 1 1.0216477 0.32886785 -144.45 + 51 259.42436 897 2 0 1.0605056 0.32220157 -145.85 + 51 165.03092 896 1 0 2.0649488 0.054498673 -175.85 + 51 116.24947 913 0 1 3.5089802 2.0134543 -204.45 + 51 185.5134 906 0 0 3.5211925 2.2143349 -205.85 + 51 106.93922 901 1 1 1.1256287 -0.16873153 -174.45 + 51 317.53845 894 0 1 -0.65449434 -2.194314 -204.45 + 51 115.15365 886 0 0 -0.80161087 -2.2945493 -205.85 + 51 343.70845 881 5 0 -0.63737675 -3.3411815 -55.85 + 51 497.74159 842 5 0 3.8435769 -11.246468 -56.25 + 51 138.65682 916 5 1 4.1590505 -10.126132 -54.85 + 51 348.62067 918 5 1 4.4714899 -9.8469665 -54.529027 +Number of tracker digits in this event = 12 +Event: 52 +Number of tracker hits in this event = 14 + 52 112.58554 897 4 0 -0.28413382 0.28284379 -85.85 + 52 148.26016 894 3 1 -0.75114653 0.44918194 -114.45 + 52 151.18262 898 3 0 -0.77742083 0.46448666 -115.85 + 52 115.39914 891 2 1 -1.3742726 0.83761791 -144.45 + 52 218.55754 900 2 0 -1.4400977 0.85178247 -145.85 + 52 164.82234 883 1 1 -2.8961137 1.0522864 -174.45 + 52 204.15229 900 1 0 -2.9542847 1.0475331 -175.85 + 52 245.98471 877 0 1 -4.0798035 0.98995394 -204.45 + 52 217.69217 900 0 0 -4.1189942 0.9905901 -205.85 + 52 547.90515 893 2 1 -1.0465302 0.71309871 -144.45 + 52 174.94776 906 2 0 0.73888451 2.2330854 -145.85 + 52 2.9869308 908 2 0 1.0433523 2.4977935 -146.23816 + 52 290.45104 895 1 0 -0.12580773 -0.47825515 -175.85 + 52 128.34019 894 0 0 0.089620765 -0.67746641 -205.85 +Number of tracker digits in this event = 11 +Event: 53 +Number of tracker hits in this event = 14 + 53 152.02443 897 5 0 -0.26381422 0.3615518 -55.85 + 53 123.81236 894 4 1 -0.66656237 0.78364113 -84.45 + 53 171.16466 899 4 0 -0.68988673 0.8090872 -85.85 + 53 577.64523 892 3 1 -1.1539487 1.3604527 -114.45 + 53 108.48518 902 3 0 -1.1709467 1.3827532 -115.85 + 53 205.90846 890 2 1 -1.5349351 1.8285946 -144.45 + 53 105.38049 904 2 0 -1.5585738 1.8429647 -145.85 + 53 123.82367 888 1 1 -2.0286692 2.1457487 -174.45 + 53 109.86035 906 1 0 -2.0523086 2.157723 -175.85 + 53 126.2913 885 0 1 -2.5397314 2.3779774 -204.45 + 53 125.53137 907 0 0 -2.58083 2.3923757 -205.85 + 53 154.1687 905 3 0 -0.27528178 2.0142664 -115.85 + 53 264.69574 975 2 1 15.946777 16.855336 -144.45 + 53 298.82038 994 2 0 15.525645 19.765117 -145.85 +Number of tracker digits in this event = 11 +Event: 54 Number of tracker hits in this event = 9 - 63 143.279 896 2 1 0.0561021 -0.136866 -144.45 - 63 237.053 896 1 1 0.21214 -0.216388 -174.45 - 63 106.115 897 0 1 0.387648 -0.31112 -204.45 - 63 266.086 580 12 0 -122.897 -63.5796 154.083 - 63 438.425 389 2 1 -102.189 -99.6762 -144.45 - 63 401.435 388 2 1 -102.464 -100.047 -144.467 - 63 152.761 386 2 0 -101.043 -102.834 -145.85 - 63 96.3106 385 2 0 -100.903 -102.986 -145.886 - 63 150.638 401 2 1 -99.9263 -102.913 -144.85 + 54 315.96569 895 4 1 -0.52493364 -0.20399015 -84.45 + 54 130.46854 892 3 1 -1.2139505 -0.74270924 -114.45 + 54 136.11966 894 3 0 -1.2391526 -0.7734237 -115.85 + 54 106.06249 889 2 1 -1.7595987 -1.361278 -144.45 + 54 131.36001 891 2 0 -1.7618873 -1.3884309 -145.85 + 54 103.409 889 1 1 -1.7595173 -1.8098604 -174.45 + 54 179.59489 889 1 0 -1.7649154 -1.8451568 -175.85 + 54 202.43068 888 0 1 -1.931934 -2.5444035 -204.45 + 54 117.58649 885 0 0 -1.9340618 -2.5712677 -205.85 +Number of tracker digits in this event = 6 +Event: 55 +Number of tracker hits in this event = 30 + 55 218.57781 889 3 1 -1.6701106 -0.12168356 -114.45 + 55 104.96699 886 2 1 -2.3518858 -0.2417656 -144.45 + 55 66.094951 896 1 0 -3.2787127 0.05 -176.042 + 55 107.46091 874 0 1 -4.6606397 0.54226008 -204.45 + 55 577.00026 898 0 0 -4.7462099 0.56921787 -205.85 + 55 290.01472 720 2 0 -44.555968 -35.645963 -146.01807 + 55 235.08694 706 1 0 -103.04308 -38.276307 -176.0782 + 55 33.399476 455 3 1 -88.578764 109.00852 -114.58982 + 55 116.56818 897 2 1 0.27852879 0.13743085 -144.45 + 55 113.36951 896 2 0 0.27836122 0.15780411 -145.85 + 55 108.55869 896 1 1 0.21470916 0.62430622 -174.45 + 55 108.92745 898 1 0 0.21899065 0.64485961 -175.85 + 55 23.731461 899 1 0 0.21983291 0.65155119 -176.21187 + 55 103.70244 896 0 1 0.2483016 0.56568479 -204.45 + 55 206.71871 905 0 1 1.9119954 9.3394949 -204.45 + 55 156.11239 946 0 0 1.4149616 10.248063 -205.85 + 55 19.303812 887 3 0 1.2856423 -2.228383 -115.85 + 55 142.52862 886 3 0 1.2917969 -2.2564098 -115.85908 + 55 333.2804 894 2 1 -0.73054452 1.5225401 -144.50108 + 55 299.59412 914 2 0 -2.0477357 3.6847891 -145.85 + 55 174.8022 916 2 0 -2.5569631 4.208904 -146.25 + 55 228.19388 919 2 0 -2.893276 4.7213345 -146.21402 + 55 191.27419 920 2 0 -3.1577971 4.8897436 -146.15727 + 55 252.05628 895 1 1 -0.46181892 0.98272545 -174.45 + 55 243.65241 900 1 0 -0.33765439 0.85516809 -175.85 + 55 98.32939 902 0 1 1.3900488 0.38731176 -204.45 + 55 118.98997 897 0 0 1.37828 0.28947589 -205.85 + 55 115.2383 907 0 0 -0.40244367 2.3076156 -205.85 + 55 134.67295 956 2 1 12.09344 1.7780911 -144.45 + 55 101.16744 906 2 0 12.462244 2.1843801 -145.85 +Number of tracker digits in this event = 15 +Event: 56 +Number of tracker hits in this event = 10 + 56 122.42634 896 3 1 0.21577591 -0.3684075 -114.45 + 56 150.80426 897 2 1 0.27688128 -0.64400957 -144.45 + 56 123.88856 894 2 0 0.28301511 -0.65319622 -145.85 + 56 108.90904 897 1 1 0.41122442 -0.8551656 -174.45 + 56 115.69214 893 1 0 0.41640098 -0.85787627 -175.85 + 56 194.33467 898 0 1 0.4903116 -0.91123651 -204.45 + 56 375.25914 893 0 0 0.49614384 -0.91063854 -205.85 + 56 257.45369 899 5 0 -1.1815264 0.6760273 -55.85 + 56 356.09107 900 5 0 -1.3246311 0.89303262 -55.921301 + 56 74.468329 901 5 0 -1.6282848 1.0774483 -55.899926 +Number of tracker digits in this event = 7 +Event: 57 +Number of tracker hits in this event = 38 + 57 145.29143 895 2 1 -0.50004078 -0.32908161 -144.45 + 57 112.16821 894 1 1 -0.71676955 -0.45058052 -174.45 + 57 111.31878 895 1 0 -0.72608044 -0.45493664 -175.85 + 57 116.10868 893 0 1 -0.89328951 -0.49835222 -204.45 + 57 139.94307 895 0 0 -0.90057261 -0.47461755 -205.85 + 57 305.1486 895 3 0 -0.34176201 -0.47642344 -115.85 + 57 136.08709 877 2 1 -4.1009013 -1.9274428 -144.45 + 57 185.09365 886 2 0 -4.2255995 -2.3206563 -145.85 + 57 124.21491 858 1 1 -7.9798597 -10.148578 -174.45 + 57 132.25788 846 1 0 -8.0254241 -10.347473 -175.85 + 57 101.8703 849 0 1 -9.7980563 -13.142539 -204.45 + 57 117.24762 833 0 0 -10.253132 -13.016443 -205.85 + 57 126.23823 905 2 1 1.928661 2.0850188 -144.45 + 57 96.770053 904 2 0 1.9386485 1.7977416 -145.85 + 57 161.87691 908 1 1 2.4778723 -2.8870564 -174.45 + 57 111.34596 884 1 0 2.2435339 -2.7358022 -175.85 + 57 274.74506 880 0 1 -3.5699911 -1.2011581 -204.45 + 57 287.10752 891 0 0 -3.8029522 -1.293301 -205.85 + 57 125.516 896 6 0 -0.05 0.18420163 -26.160135 + 57 124.58402 876 5 1 -4.4480095 27.765562 -54.45 + 57 109.62814 1033 5 0 -4.689825 27.452129 -55.85 + 57 156.33292 897 5 1 0.32457543 -18.834324 -54.45 + 57 224.89581 894 5 1 -0.76076831 -19.981475 -54.85 + 57 506.43953 891 5 1 -1.3473747 -20.423081 -54.650131 + 57 311.54804 885 5 1 -2.5605702 -21.723508 -54.45 + 57 649.30686 881 5 1 -3.4241394 -22.105819 -54.594027 + 57 643.90485 875 5 1 -4.5180414 -23.472875 -54.7939 + 57 522.92031 872 5 1 -5.2313951 -25.122132 -54.745517 + 57 90.162992 870 5 1 -5.4885321 -26.596858 -54.849006 + 57 240.20656 733 5 0 -4.596332 -33.005322 -55.85 + 57 332.07891 729 5 0 -4.4976183 -33.688348 -55.851289 + 57 71.027903 728 5 0 -4.9877006 -34.024607 -55.908468 + 57 226.78661 869 5 1 -5.7828917 -35.877629 -54.663378 + 57 289.41653 713 5 0 -5.3943642 -36.88599 -55.85 + 57 81.433646 712 5 0 -5.4011575 -37.096465 -55.970783 + 57 44.157807 714 5 0 -5.5682936 -36.827902 -56.249005 + 57 2.0664111 879 5 1 -3.7688005 -22.713308 -54.628725 + 57 111.9479 902 6 1 1.264117 0.82424868 -24.85 +Number of tracker digits in this event = 24 +Event: 58 +Number of tracker hits in this event = 19 + 58 139.72499 896 5 1 0.14983399 -0.050975228 -54.45 + 58 425.28336 897 4 1 0.3893566 -0.14448233 -84.45 + 58 130.52267 899 3 1 0.76654682 -0.28005209 -114.45 + 58 112.41936 901 2 1 1.1930021 -0.22779906 -144.45 + 58 101.46729 904 1 1 1.8051545 0.21976531 -174.45 + 58 103.35071 896 1 0 1.8440769 0.24085115 -175.85 + 58 107.89409 908 0 1 2.6324761 0.67117156 -204.45 + 58 159.33782 899 0 0 2.6662134 0.69409506 -205.85 + 58 177.3459 1370 5 0 84.009371 95.368981 -56.089028 + 58 152.1166 862 3 1 -7.0872778 3.6953019 -114.45 + 58 118.17614 914 3 0 -7.9593606 3.7702438 -115.85 + 58 123.69274 763 2 1 -26.902071 3.337774 -144.45 + 58 154.82935 913 2 0 -27.445393 3.4973184 -145.85 + 58 111.5572 698 1 1 -39.980866 3.7765516 -174.45 + 58 198.71485 914 1 0 -40.321365 3.7289026 -175.85 + 58 129.65692 671 0 1 -45.324571 6.81306 -204.45 + 58 105.80459 931 0 0 -45.349226 7.1244691 -205.85 + 58 32.554486 898 4 1 0.51544716 -0.091555681 -84.758198 + 58 207.93349 897 4 0 1.0757724 0.2789582 -85.85 +Number of tracker digits in this event = 11 +Event: 59 +Number of tracker hits in this event = 8 + 59 204.69594 895 3 1 -0.53024556 -0.31276602 -114.45 + 59 116.46137 894 2 1 -0.66351344 -0.6004013 -144.45 + 59 118.17631 895 2 0 -0.66773538 -0.61233633 -145.85 + 59 167.43806 894 1 1 -0.76663871 -0.88264699 -174.45 + 59 146.49318 893 1 0 -0.77717855 -0.90494545 -175.85 + 59 115.49764 893 0 1 -0.99495572 -1.3249837 -204.45 + 59 94.304252 891 0 0 -1.0081133 -1.3548174 -205.85 + 59 13.797636 1277 4 1 76.4323 38.909939 -84.842847 +Number of tracker digits in this event = 3 +Event: 60 +Number of tracker hits in this event = 7 + 60 69.100344 896 5 1 0.051244664 0.20700477 -54.45 + 60 112.31568 897 4 0 -0.10068275 0.43096715 -85.85 + 60 142.39879 899 3 0 -0.21261114 0.80536634 -115.85 + 60 139.22471 902 2 0 -0.40053153 1.425096 -145.85 + 60 113.93397 906 1 0 -0.19315336 2.0589987 -175.85 + 60 145.64651 895 0 1 -0.46851534 3.261652 -204.45 + 60 121.94312 912 0 0 -0.49523305 3.3334206 -205.85 +Number of tracker digits in this event = 4 +Event: 61 +Number of tracker hits in this event = 32 + 61 122.34959 896 1 1 0.15709856 -0.4197289 -174.45 + 61 128.59413 907 0 1 2.4411122 -0.38708119 -204.45 + 61 107.78576 895 0 0 2.7155519 -0.4589711 -205.85 + 61 138.36617 890 0 0 1.0370857 -1.5523889 -205.85 + 61 650.22182 898 1 1 0.48978517 -0.11356278 -174.45 + 61 229.18697 894 1 0 -0.18419345 -0.78780499 -175.85 + 61 411.784 893 1 0 -0.22054236 -0.96210113 -176.15703 + 61 186.34196 899 0 1 0.7982226 1.8027157 -204.45 + 61 170.67992 907 0 0 1.5515213 2.2953861 -205.85 + 61 100.38995 896 5 0 -0.14682981 0.05 -55.891492 + 61 125.86663 893 4 1 -0.88148451 2.8820017 -84.45 + 61 127.68695 906 4 0 -1.2633196 2.0952657 -85.85 + 61 183.52841 854 3 1 -8.7714219 -14.619402 -114.45 + 61 205.48262 817 3 0 -8.566584 -16.19977 -115.85 + 61 225.3328 895 2 1 -0.47619519 -44.676738 -144.45 + 61 99.205893 674 2 0 -0.212403 -44.722928 -145.85 + 61 74.104432 375 0 0 40.9254 -105.00191 -206.18783 + 61 9.5067912 1012 1 1 23.337138 -53.606536 -174.83902 + 61 56.652803 629 1 0 26.169436 -53.849337 -175.85 + 61 19.718738 628 1 0 26.239745 -53.858653 -175.85532 + 61 36.112854 1039 1 1 28.707857 -60.01699 -174.85 + 61 35.258208 591 1 0 28.230887 -61.406755 -175.85 + 61 64.821434 1032 1 1 27.315775 -62.083302 -174.85 + 61 98.362097 896 5 1 0.13774839 0.05 -54.631205 + 61 222.70208 897 5 0 0.38365094 0.44610936 -55.85 + 61 127.86454 929 4 1 6.6535721 9.5759227 -84.45 + 61 107.75308 946 4 0 7.1577098 10.108221 -85.85 + 61 327.69507 978 3 1 16.468697 21.555087 -114.45 + 61 206.93029 1010 3 0 17.513214 23.024176 -115.85 + 61 215.67275 1050 2 1 30.977046 48.161391 -144.45 + 61 148.72666 1143 2 0 31.878617 49.519855 -145.85 + 61 104.01427 1336 0 0 2.3252788 88.136595 -206.0675 +Number of tracker digits in this event = 19 +Event: 62 +Number of tracker hits in this event = 13 + 62 121.92787 897 3 0 -0.19157645 0.27410074 -115.85 + 62 126.74419 895 1 1 -0.55273404 -0.32965701 -174.45 + 62 316.91922 895 0 1 -0.5197668 -0.63792561 -204.45 + 62 94.705758 895 0 0 -0.51473465 -0.64995749 -205.85 + 62 30.94666 894 0 0 -0.51184251 -0.6544495 -206.12552 + 62 167.70987 567 1 1 -66.23304 -51.147663 -174.49569 + 62 242.76473 894 1 1 -0.65748414 0.72549032 -174.45 + 62 114.56934 898 1 0 -0.3291255 0.48853592 -175.85 + 62 370.36618 925 0 1 6.0191639 -0.63748759 -204.45 + 62 409.06092 892 0 0 9.8300207 -1.2434297 -205.85 + 62 111.44188 899 1 0 -0.56076237 0.84062601 -175.85 + 62 108.35273 902 0 1 1.2870377 5.1367295 -204.45 + 62 143.17941 922 0 0 1.1349641 5.3265585 -205.85 +Number of tracker digits in this event = 8 +Event: 63 +Number of tracker hits in this event = 11 + 63 133.10549 895 4 1 -0.54238824 -0.29485422 -84.45 + 63 100.89262 893 3 1 -1.0401855 -0.28661726 -114.45 + 63 169.83772 886 1 1 -2.3137299 0.39783608 -174.45 + 63 126.37807 897 1 0 -2.3526197 0.41682241 -175.85 + 63 127.76269 882 0 1 -3.1220657 0.82291764 -204.45 + 63 117.54271 899 0 0 -3.1679443 0.84250124 -205.85 + 63 265.93896 1102 1 0 -118.38005 41.272867 -175.93551 + 63 186.45293 1010 4 1 22.850676 -40.115149 -84.565873 + 63 19.427651 896 6 1 0.069488632 0.05 -24.802271 + 63 154.85993 897 6 0 0.96469202 0.38854557 -25.85 + 63 92.320659 898 6 0 1.2278557 0.5764516 -26.119353 Number of tracker digits in this event = 7 Event: 64 -Number of tracker hits in this event = 4 - 64 128.487 896 3 0 -0.201637 0.185739 -115.85 - 64 103.794 897 2 0 -0.267036 0.388858 -145.85 - 64 99.4073 898 1 0 -0.313659 0.545545 -175.85 - 64 108.764 898 0 0 -0.383589 0.622846 -205.85 -Number of tracker digits in this event = 1 -Event: 65 -Number of tracker hits in this event = 7 - 65 112.415 896 3 1 0.0726931 0.0910415 -114.45 - 65 176.313 896 3 0 0.0761841 0.0943446 -115.85 - 65 143.901 896 2 1 0.172325 0.148635 -144.45 - 65 139.606 896 2 0 0.180844 0.146148 -145.85 - 65 201.939 897 1 1 0.361552 0.0681762 -174.45 - 65 103.002 896 1 0 0.372294 0.0623038 -175.85 - 65 113.36 898 0 1 0.596871 -0.0616927 -204.45 -Number of tracker digits in this event = 4 -Event: 66 -Number of tracker hits in this event = 13 - 66 104.305 896 4 1 0.0696148 0.112086 -84.45 - 66 124.943 896 4 0 0.0687064 0.0990881 -85.85 - 66 117.261 896 3 1 0.0724135 -0.160811 -114.45 - 66 185.878 896 2 1 0.111861 -0.51268 -144.45 - 66 118.556 895 2 0 0.114337 -0.525339 -145.85 - 66 137.75 896 1 1 0.174475 -0.783651 -174.45 - 66 136.181 894 1 0 0.177125 -0.803332 -175.85 - 66 208.997 896 0 1 0.229918 -1.20032 -204.45 - 66 164.378 892 0 0 0.240567 -1.19298 -205.85 - 66 231.687 648 4 1 -50.0328 -24.0443 -84.85 - 66 213.071 647 4 1 -50.0675 -24.0595 -84.7395 - 66 155.804 897 0 1 0.317985 -1.37415 -204.544 - 66 277.283 794 1 0 167.265 -20.6797 -175.887 -Number of tracker digits in this event = 10 -Event: 67 -Number of tracker hits in this event = 12 - 67 120.751 895 1 1 -0.583234 -0.518264 -174.45 - 67 177.612 895 1 0 -0.583506 -0.525625 -175.85 - 67 123.335 895 0 1 -0.600402 -0.676141 -204.45 - 67 145.687 894 0 0 -0.61067 -0.676476 -205.85 - 67 87.3751 639 0 0 83.1369 -51.6727 -206.222 - 67 94.6982 896 5 1 0.05 -0.127192 -54.6835 - 67 262.31 938 4 1 8.53724 -2.72802 -84.45 - 67 208.708 876 4 0 8.73556 -4.41625 -85.85 - 67 287.519 903 4 0 39.5099 1.58681 -86.25 - 67 392.516 1098 4 1 40.622 4.16283 -84.85 - 67 160.672 1099 4 1 40.8287 5.04135 -84.45 - 67 124.178 917 4 0 40.7062 4.33757 -85.85 -Number of tracker digits in this event = 10 -Event: 68 -Number of tracker hits in this event = 12 - 68 189.394 896 5 1 0.102044 -0.11099 -54.45 - 68 139.219 896 4 1 0.140452 -0.35819 -84.45 - 68 154.412 896 3 1 0.199749 -0.550536 -114.45 - 68 206.3 895 3 0 0.203418 -0.559729 -115.85 - 68 169.028 897 2 1 0.281709 -0.754659 -144.45 - 68 112.216 894 2 0 0.287675 -0.762291 -145.85 - 68 101.743 897 1 1 0.40038 -0.938661 -174.45 - 68 93.966 893 1 0 0.397637 -0.951577 -175.85 - 68 193.125 897 0 1 0.345226 -1.23204 -204.45 - 68 103.844 892 0 0 0.348345 -1.2432 -205.85 - 68 4.51162 760 1 1 -27.5489 30.098 -174.466 - 68 275.105 890 2 0 -1.34268 -1.51071 -145.85 -Number of tracker digits in this event = 7 -Event: 69 -Number of tracker hits in this event = 21 - 69 266.258 896 2 1 0.179396 0.216175 -144.45 - 69 646.144 896 2 0 0.141808 0.234338 -145.85 - 69 196.377 895 1 1 -0.465935 0.153605 -174.45 - 69 402.535 896 1 0 -0.426921 0.171138 -175.85 - 69 146.907 898 0 1 0.610086 0.335389 -204.45 - 69 157.974 897 0 0 0.726915 0.353239 -205.85 - 69 101.93 897 2 0 -0.169387 0.28114 -145.85 - 69 275.204 871 1 1 -5.27181 5.48035 -174.45 - 69 201.948 934 1 0 -6.41869 7.77679 -175.85 - 69 525.436 790 0 1 -21.4772 31.15 -204.45 - 69 102.005 786 0 1 -22.2971 32.4835 -204.836 - 69 285.827 1160 0 0 -31.3201 52.8829 -205.85 - 69 190.947 1164 0 0 -31.6764 53.7899 -205.879 - 69 241.954 785 0 1 -22.4917 32.4017 -204.7 - 69 423.261 744 1 1 -30.7664 -4.01852 -174.45 - 69 149.38 888 1 0 -29.7585 -1.98392 -175.85 - 69 99.3601 1306 8 1 82.1341 76.4669 35.3278 - 69 10.3018 745 1 1 -30.5962 -3.8689 -174.569 - 69 206.296 897 1 1 0.43579 0.230229 -174.45 - 69 140.535 900 0 1 0.974161 -0.329411 -204.45 - 69 114.863 895 0 0 1.13472 -0.462705 -205.85 -Number of tracker digits in this event = 16 -Event: 70 -Number of tracker hits in this event = 31 - 70 324.396 896 5 1 0.116923 -0.117818 -54.45 - 70 186.121 896 4 1 0.204154 -0.218 -84.45 - 70 114.619 897 3 1 0.380563 -0.38289 -114.45 - 70 102.356 898 2 1 0.613009 -0.5499 -144.45 - 70 127.779 895 2 0 0.623756 -0.552806 -145.85 - 70 163.266 899 1 1 0.80621 -0.540796 -174.45 - 70 139.197 895 1 0 0.819114 -0.542631 -175.85 - 70 434.709 901 0 1 1.09371 -0.614352 -204.45 - 70 144.615 895 0 0 1.10349 -0.623445 -205.85 - 70 267.38 894 0 0 1.08479 -0.816601 -205.85 - 70 129.097 1010 1 0 -67.4727 22.9822 -176.011 - 70 212.383 977 0 0 -56.974 16.2805 -205.911 - 70 340.396 895 6 0 -1.51237 -0.482753 -26.0844 - 70 288.25 896 3 1 0.183884 -0.250006 -114.45 - 70 197.189 903 2 1 1.46859 0.415929 -144.45 - 70 120.699 898 2 0 1.44943 0.501301 -145.85 - 70 484.094 900 1 1 0.991054 2.19825 -174.45 - 70 114.99 906 1 0 0.9703 2.16045 -175.85 - 70 132.046 898 0 0 -0.179606 0.604943 -205.85 - 70 178.13 923 1 0 1.82499 5.52793 -175.85 - 70 68.1606 924 1 0 1.83248 5.65026 -175.892 - 70 120.813 902 2 0 0.0798477 1.43331 -145.85 - 70 173.24 902 1 1 1.28882 -0.451023 -174.45 - 70 235.432 897 1 0 2.37379 0.254644 -175.85 - 70 270.493 1034 0 1 27.7356 14.0083 -204.45 - 70 422.427 968 0 0 29.6511 14.4815 -205.85 - 70 178.37 969 0 0 30.176 14.7512 -206.022 - 70 72.6995 877 3 0 2.17936 -4.10531 -115.85 - 70 143.69 876 3 0 2.22267 -4.25582 -115.909 - 70 203.55 875 3 0 2.23256 -4.50234 -116.053 - 70 47.8904 874 3 0 2.26566 -4.66669 -116.146 -Number of tracker digits in this event = 25 -Event: 71 -Number of tracker hits in this event = 15 - 71 151.762 897 5 1 0.416818 0.15508 -54.45 - 71 122.708 896 5 0 0.438693 0.162099 -55.85 - 71 95.2857 900 4 1 0.883987 0.291518 -84.45 - 71 119.934 897 4 0 0.909468 0.294764 -85.85 - 71 309.342 902 3 1 1.43171 0.381184 -114.45 - 71 572.223 897 3 0 1.45942 0.384821 -115.85 - 71 147.898 905 2 1 2.02565 0.457137 -144.45 - 71 146.501 898 2 0 2.05972 0.463362 -145.85 - 71 119.45 909 1 1 2.81643 0.593486 -174.45 - 71 139.981 898 1 0 2.85854 0.604758 -175.85 - 71 134.83 914 0 1 3.72361 0.822481 -204.45 - 71 116.634 899 0 0 3.7779 0.83692 -205.85 - 71 95.2296 597 1 0 0.918397 -60.0633 -175.905 - 71 178.174 901 3 1 1.15887 0.645163 -114.834 - 71 115.254 900 3 1 0.879409 0.660054 -114.654 +Number of tracker hits in this event = 14 + 64 137.42965 896 5 0 -0.068790293 0.11127065 -55.85 + 64 116.21024 895 4 1 -0.52174256 0.42837832 -84.45 + 64 570.26702 897 4 0 -0.54361471 0.44120725 -85.85 + 64 111.85956 893 3 1 -0.99282032 0.72148798 -114.45 + 64 323.8228 899 3 0 -1.0152071 0.73079048 -115.85 + 64 133.70904 890 2 1 -1.4826022 0.92445471 -144.45 + 64 113.90045 900 2 0 -1.5023784 0.9340513 -145.85 + 64 242.59661 888 1 1 -1.9011925 1.1051827 -174.45 + 64 111.57017 901 1 0 -1.9182222 1.1127894 -175.85 + 64 130.93224 886 0 1 -2.2654944 1.2784158 -204.45 + 64 226.34407 902 0 0 -2.2923824 1.2778919 -205.85 + 64 201.61474 41 9 0 49.548584 -171.92096 64.035558 + 64 109.85558 1149 9 1 50.667387 -172.00605 65.15 + 64 174.00268 1411 3 0 6.8101661 103.65198 -115.95096 Number of tracker digits in this event = 9 -Event: 72 -Number of tracker hits in this event = 7 - 72 130.488 896 5 1 0.0584294 -0.0654125 -54.45 - 72 133.583 896 4 1 0.163118 -0.167112 -84.45 - 72 142.131 897 3 1 0.3253 -0.140397 -114.45 - 72 143.638 898 2 1 0.455266 -0.104585 -144.45 - 72 109.182 898 1 1 0.594524 -0.0646008 -174.45 - 72 119.248 900 0 1 1.0161 0.380968 -204.45 - 72 151.347 897 0 0 1.03765 0.402278 -205.85 +Event: 65 +Number of tracker hits in this event = 12 + 65 124.07093 899 3 0 -0.20745118 0.74770356 -115.85 + 65 102.31694 902 2 0 -0.31645467 1.3850012 -145.85 + 65 204.19576 905 1 0 -0.26039138 2.0071496 -175.85 + 65 115.76336 911 0 0 -0.40753834 3.1812543 -205.85 + 65 151.13569 903 2 0 0.1824351 1.5107577 -145.85 + 65 138.79625 926 2 0 10.282241 6.2340516 -146.25 + 65 138.34182 945 2 1 9.9013957 6.4834243 -144.85 + 65 335.01369 1536 0 0 95.882992 128.74081 -206.02385 + 65 120.65763 1630 3 1 147.43992 107.818 -114.50971 + 65 188.83362 1631 3 1 147.55399 107.78978 -114.45 + 65 185.74646 950 0 0 36.774268 11.014216 -205.95856 + 65 136.50135 902 0 0 -0.06235779 1.2578412 -205.85 +Number of tracker digits in this event = 10 +Event: 66 +Number of tracker hits in this event = 9 + 66 153.55079 896 5 1 0.11472251 -0.11961973 -54.45 + 66 234.65381 896 4 1 0.15066135 -0.3294225 -84.45 + 66 147.51528 896 3 1 0.07571378 -0.41771377 -114.45 + 66 140.01902 896 2 1 0.086475659 -0.51814071 -144.45 + 66 111.27384 895 2 0 0.066695451 -0.4924994 -145.85 + 66 103.67878 896 1 0 -0.37103862 0.10279162 -175.85 + 66 112.7362 892 0 1 -1.1044746 0.66805934 -204.45 + 66 116.47287 899 0 0 -1.1292663 0.67850369 -205.85 + 66 217.57305 347 1 0 107.19572 -110.67512 -175.98046 Number of tracker digits in this event = 5 +Event: 67 +Number of tracker hits in this event = 8 + 67 108.86358 895 2 0 -0.10788884 -0.51595917 -145.85 + 67 296.50083 898 0 1 0.50370629 -1.7324831 -204.45 + 67 137.55352 889 0 0 0.52381581 -1.7853867 -205.85 + 67 555.56338 881 0 0 -2.0859552 -3.3056693 -205.85 + 67 444.50524 882 0 0 -3.0073984 -3.090679 -205.86032 + 67 145.52714 896 6 1 0.18585538 -0.05 -24.720349 + 67 51.922294 897 6 1 0.41339571 -0.23232079 -24.682161 + 67 59.368646 898 6 1 0.49851253 -0.35323177 -24.760563 +Number of tracker digits in this event = 5 +Event: 68 +Number of tracker hits in this event = 21 + 68 121.99702 896 4 0 -0.24994681 0.22006963 -85.85 + 68 126.69963 898 3 0 -0.44020809 0.51589657 -115.85 + 68 156.88362 894 2 1 -0.66314625 0.6191328 -144.45 + 68 295.35926 898 2 0 -0.67525851 0.63473211 -145.85 + 68 92.486327 893 1 1 -0.9638494 0.90581711 -174.45 + 68 225.90246 900 1 0 -0.96889001 0.92114855 -175.85 + 68 409.2436 893 0 1 -1.0443291 1.2097034 -204.45 + 68 224.25576 901 0 0 -1.0346857 1.2426187 -205.85 + 68 266.62623 902 0 0 -2.2875687 1.2870542 -205.85 + 68 129.92117 892 0 1 -1.0541388 1.215705 -204.45 + 68 136.23277 900 0 0 -0.94982438 0.91447087 -205.85 + 68 172.70481 904 0 0 -1.215435 1.6521841 -205.85 + 68 68.362803 905 0 0 -1.3223034 1.869924 -206.16516 + 68 338.77227 906 0 0 -1.2966517 2.0734173 -206.17367 + 68 101.31471 895 1 1 -0.48778954 0.87034118 -174.45 + 68 117.98441 900 2 1 0.93276051 -2.0089822 -144.45 + 68 111.29034 888 2 0 0.96253938 -2.036224 -145.85 + 68 112.97422 904 1 1 1.8476005 -2.7335308 -174.45 + 68 108.63044 884 1 0 1.9822891 -2.7829287 -175.85 + 68 114.31867 919 0 1 4.7591824 -4.0765014 -204.45 + 68 209.44509 878 0 0 5.024491 -4.0387508 -205.85 +Number of tracker digits in this event = 13 +Event: 69 +Number of tracker hits in this event = 7 + 69 134.77251 894 3 1 -0.65660425 -0.32293444 -114.45 + 69 139.81026 894 2 1 -0.83739246 -0.18082605 -144.45 + 69 138.52806 893 1 1 -0.90112311 0.52596736 -174.45 + 69 143.81075 898 1 0 -0.89518122 0.55305908 -175.85 + 69 104.66431 894 0 1 -0.76878022 0.92449155 -204.45 + 69 102.47528 900 0 0 -0.7618556 0.93719791 -205.85 + 69 34.572865 603 10 0 96.608775 -58.916353 94.075206 +Number of tracker digits in this event = 4 +Event: 70 +Number of tracker hits in this event = 5 + 70 112.59557 896 3 1 0.18038271 0.079186418 -114.45 + 70 114.2499 896 3 0 0.18980706 0.072246492 -115.85 + 70 116.50354 897 2 1 0.37989865 -0.079167015 -144.45 + 70 147.2279 898 1 1 0.50613458 -0.12691996 -174.45 + 70 123.05367 898 0 1 0.52527341 -0.21030505 -204.45 +Number of tracker digits in this event = 2 +Event: 71 +Number of tracker hits in this event = 10 + 71 211.62275 897 4 0 -0.24185817 0.29214845 -85.85 + 71 133.06813 898 3 0 -0.3786336 0.63590974 -115.85 + 71 134.56949 895 2 1 -0.50839761 1.150139 -144.45 + 71 205.84904 901 2 0 -0.51726109 1.1724554 -145.85 + 71 126.20258 894 1 1 -0.73941126 1.5668843 -174.45 + 71 232.39952 903 1 0 -0.75635183 1.5883309 -175.85 + 71 143.00189 892 0 1 -1.0917095 2.0626785 -204.45 + 71 93.953921 906 0 0 -1.1061273 2.0841644 -205.85 + 71 102.95721 899 5 0 -0.33661461 0.82521169 -55.85 + 71 80.481435 901 5 0 -0.38964146 1.0684274 -56.145915 +Number of tracker digits in this event = 7 +Event: 72 +Number of tracker hits in this event = 9 + 72 184.73784 895 3 0 -0.2451732 -0.63630423 -115.85 + 72 111.98955 893 2 0 -0.1149508 -0.89306365 -145.85 + 72 559.29293 892 1 0 0.053474534 -1.1797464 -175.85 + 72 299.76243 897 0 1 0.32367337 -1.3721582 -204.45 + 72 156.9351 891 0 0 0.33312984 -1.3838611 -205.85 + 72 195.05027 892 0 0 0.39538051 -1.1858443 -205.85 + 72 151.27592 896 4 1 0.05 -0.49627691 -84.574234 + 72 52.098187 897 4 1 0.37286506 -0.82256983 -84.786886 + 72 147.84276 893 4 0 -0.41778964 -0.9662959 -85.85 +Number of tracker digits in this event = 7 Event: 73 -Number of tracker hits in this event = 11 - 73 151.328 896 4 0 -0.135959 0.164017 -85.85 - 73 126.69 898 3 0 -0.0710581 0.572354 -115.85 - 73 270.731 901 2 0 -0.0814198 1.12251 -145.85 - 73 109.697 903 1 0 -0.245088 1.62509 -175.85 - 73 108.006 905 0 0 -0.180312 1.97972 -205.85 - 73 115.823 906 1 0 0.225102 2.09336 -175.85 - 73 121.36 932 0 1 7.43312 8.33172 -204.45 - 73 134.024 940 0 0 7.90102 9.03205 -205.85 - 73 155.197 904 1 0 -0.0684051 1.70285 -175.85 - 73 111.757 896 0 1 0.226195 2.4611 -204.45 - 73 124.829 908 0 0 0.211695 2.5117 -205.85 +Number of tracker hits in this event = 8 + 73 120.99453 896 5 1 0.072603613 -0.057182971 -54.45 + 73 142.50263 896 4 1 0.089248116 -0.20822895 -84.45 + 73 184.23695 896 3 1 0.16839679 -0.49473273 -114.45 + 73 118.53451 895 3 0 0.16322401 -0.51318071 -115.85 + 73 121.18975 896 2 1 0.062161016 -0.86810278 -144.45 + 73 158.78921 893 2 0 0.054650428 -0.8843301 -145.85 + 73 122.34804 891 1 0 -0.13587022 -1.2523622 -175.85 + 73 123.48978 890 0 0 -0.30030209 -1.6005603 -205.85 Number of tracker digits in this event = 7 Event: 74 -Number of tracker hits in this event = 16 - 74 107.197 896 5 1 0.0769843 0.152346 -54.45 - 74 137.838 896 5 0 0.122974 0.157494 -55.85 - 74 101.983 901 4 1 1.10028 0.233432 -84.45 - 74 100.575 896 4 0 1.15902 0.244796 -85.85 - 74 125.85 907 3 1 2.35206 0.446844 -114.45 - 74 96.7168 898 3 0 2.41693 0.460774 -115.85 - 74 124.455 914 2 1 3.75166 0.83775 -144.45 - 74 134.184 899 2 0 3.82508 0.84495 -145.85 - 74 133.824 921 1 1 5.23968 0.939501 -174.45 - 74 150.043 900 1 0 5.31872 0.931352 -175.85 - 74 122.774 930 0 1 6.91915 0.775876 -204.45 - 74 111.156 899 0 0 6.99711 0.763504 -205.85 - 74 85.2417 815 3 0 -24.9426 -16.6157 -116.063 - 74 37.4087 772 3 1 -25.2318 -16.9088 -114.85 - 74 35.5786 771 3 1 -25.2637 -16.9633 -114.796 - 74 238.705 817 3 0 -24.17 -16.1574 -115.85 -Number of tracker digits in this event = 8 -Event: 75 -Number of tracker hits in this event = 33 - 75 125.989 897 5 1 0.289114 0.0853713 -54.45 - 75 191.498 896 5 0 0.298335 0.10951 -55.85 - 75 193.22 897 4 1 0.36615 0.780609 -84.45 - 75 114.346 899 4 0 0.385502 0.802503 -85.85 - 75 227.446 899 3 1 0.758208 1.10247 -114.45 - 75 142.42 901 3 0 0.753133 1.13181 -115.85 - 75 98.4011 899 2 1 0.792389 1.7594 -144.45 - 75 107.425 904 2 0 0.802732 1.76401 -145.85 - 75 128.897 901 1 1 1.22622 1.86086 -174.45 - 75 129.409 904 1 0 1.21558 1.83816 -175.85 - 75 203.85 901 0 1 1.11752 1.26618 -204.45 - 75 124.744 902 0 0 1.13255 1.37151 -205.85 - 75 112.418 880 2 1 -3.52131 0.367796 -144.45 - 75 137.944 896 2 0 -3.77647 0.175849 -145.85 - 75 135.661 854 1 1 -8.82876 -3.36194 -174.45 - 75 104.751 880 1 0 -9.16662 -3.4583 -175.85 - 75 121.798 814 0 1 -16.7959 -6.10275 -204.45 - 75 99.5731 866 0 0 -17.1219 -6.2928 -205.85 - 75 147.072 297 2 0 -46.9128 -120.709 -146.25 - 75 371.408 661 2 1 -47.3535 -122.377 -144.85 - 75 166.225 660 2 1 -47.5384 -123.011 -144.531 - 75 138.056 659 2 1 -47.687 -123.102 -144.497 - 75 155.557 1151 3 1 51.0798 -40.1234 -114.818 - 75 290.431 1152 3 1 51.289 -40.1872 -114.708 - 75 60.0695 681 3 0 50.6333 -43.2855 -115.85 - 75 28.5815 1269 3 1 74.678 -60.7638 -114.85 - 75 202.987 588 3 0 76.4242 -61.9129 -115.85 - 75 126.219 1011 0 1 23.2098 1.07599 -204.682 - 75 121.802 1012 0 1 23.3251 1.14392 -204.639 - 75 382.414 964 5 0 72.7586 13.7756 -56.25 - 75 255.246 965 5 0 72.658 13.9707 -56.0102 - 75 13.789 966 5 0 72.7394 14.159 -56.0606 - 75 27.7816 896 0 0 -0.298003 0.05 -206.141 -Number of tracker digits in this event = 23 -Event: 76 -Number of tracker hits in this event = 8 - 76 110.638 896 5 0 -0.067064 0.0765658 -55.85 - 76 165.91 896 4 0 -0.0617915 0.234957 -85.85 - 76 150.83 897 3 0 -0.0549722 0.28941 -115.85 - 76 100.06 896 1 1 0.0696744 0.177628 -174.45 - 76 180.405 896 1 0 0.0731085 0.178002 -175.85 - 76 131.841 896 0 1 0.142679 0.181394 -204.45 - 76 183.703 896 0 0 0.149762 0.17898 -205.85 - 76 156.295 897 0 0 -0.05 0.41908 -206.201 +Number of tracker hits in this event = 7 + 74 126.59818 895 3 1 -0.55287379 -0.063893159 -114.45 + 74 217.73339 892 2 1 -1.1170364 -1.1662589 -144.45 + 74 145.37043 892 2 0 -1.1398688 -1.2155047 -145.85 + 74 161.00652 890 1 1 -1.5783072 -2.2416206 -174.45 + 74 121.43175 886 1 0 -1.6179514 -2.2763964 -175.85 + 74 157.24884 886 0 1 -2.413587 -2.9732357 -204.45 + 74 113.00357 883 0 0 -2.4575911 -3.007594 -205.85 Number of tracker digits in this event = 6 +Event: 75 +Number of tracker hits in this event = 50 + 75 196.24985 899 5 1 0.65920357 -0.47739868 -54.45 + 75 139.07693 895 5 0 0.68194824 -0.60529199 -55.85 + 75 110.2265 905 4 1 2.0192341 -2.7636694 -84.45 + 75 123.39886 884 4 0 2.0852834 -2.7827833 -85.85 + 75 138.49695 912 3 1 3.435343 -3.1194584 -114.45 + 75 122.54391 881 3 0 3.3589678 -3.2583399 -115.85 + 75 262.96976 906 2 1 2.1052318 -6.2400682 -144.45 + 75 131.98308 865 2 0 2.0564944 -6.4579662 -145.85 + 75 297.52225 902 1 1 1.3369974 -11.125887 -174.45 + 75 249.38125 840 1 0 1.1949859 -11.461515 -175.85 + 75 109.2684 892 0 1 -1.1984833 -18.323166 -204.45 + 75 129.31344 804 0 0 -1.4591899 -18.724981 -205.85 + 75 3.2509262 916 3 1 4.1531914 -4.2785722 -114.84701 + 75 46.114519 877 3 0 3.3711211 -4.2474149 -115.85 + 75 60.200658 876 3 0 3.3307283 -4.2545267 -115.85113 + 75 674.93649 926 1 1 6.1912063 -7.8082239 -174.51183 + 75 34.98704 925 1 1 6.0217475 -8.3563081 -174.55187 + 75 434.82549 921 0 1 5.2257928 4.5907922 -204.45 + 75 427.85204 924 0 0 1.1768662 5.7418904 -205.85 + 75 2.2921237 926 0 0 -0.05 6.1060671 -206.24561 + 75 195.34411 1000 0 0 -44.235216 20.943003 -206.25 + 75 156.66692 677 0 1 -44.214284 22.333853 -204.85 + 75 132.51887 922 0 0 4.6861676 5.326242 -205.85 + 75 120.06001 896 5 1 0.16370525 0.062498055 -54.45 + 75 120.00974 896 5 0 0.19182688 0.062961384 -55.85 + 75 134.57426 896 4 0 0.82048438 0.051344458 -85.85 + 75 151.08832 899 3 1 0.84212635 0.47253976 -114.45 + 75 132.29504 898 3 0 0.84367489 0.48559657 -115.85 + 75 109.83918 900 2 1 0.91151247 0.73739163 -144.45 + 75 112.04187 899 2 0 0.91390324 0.76081681 -145.85 + 75 166.38465 900 1 1 0.9062676 1.2336285 -174.45 + 75 111.22999 902 1 0 0.920311 1.2625721 -175.85 + 75 121.82272 901 0 1 1.1839446 1.8453113 -204.45 + 75 98.964536 905 0 0 1.1793305 1.9208633 -205.85 + 75 174.87038 417 1 1 -96.708495 35.974854 -174.53893 + 75 127.94788 896 4 1 0.14515661 -0.19726429 -84.45 + 75 241.15072 898 3 1 0.49799191 -0.17875473 -114.45 + 75 212.03012 1263 0 1 73.590699 8.873458 -204.45 + 75 12.275594 1262 0 1 73.375874 8.971356 -204.82919 + 75 51.786458 935 0 0 73.432698 7.9230248 -205.85 + 75 76.607804 934 0 0 73.410823 7.8128105 -205.87866 + 75 27.432219 933 0 0 73.403106 7.6450142 -205.88741 + 75 243.65428 1261 0 1 73.152659 7.3824561 -204.85 + 75 120.71905 896 3 0 0.47321909 0.077281079 -115.85 + 75 265.2565 912 2 1 3.3072135 5.8734927 -144.45 + 75 363.0822 916 2 0 2.590606 4.2007668 -145.85 + 75 212.72337 819 1 1 -15.74104 -16.054841 -174.45 + 75 173.33908 812 1 0 -16.573834 -17.2295 -175.85 + 75 140.57967 665 1 0 -32.332197 -46.633925 -176.25 + 75 110.52144 738 1 1 -31.901748 -46.326173 -174.85 +Number of tracker digits in this event = 34 +Event: 76 +Number of tracker hits in this event = 23 + 76 109.77959 895 3 1 -0.46789009 -0.20835252 -114.45 + 76 108.82253 893 2 1 -1.0112166 -0.43877148 -144.45 + 76 154.60471 892 1 1 -1.0918449 -0.65075932 -174.45 + 76 108.66524 894 1 0 -1.0883977 -0.6584759 -175.85 + 76 127.0148 893 0 1 -1.0356238 -0.83865492 -204.45 + 76 131.45369 894 0 0 -1.0316904 -0.8440018 -205.85 + 76 8.0292381 685 8 1 -42.637909 -153.69514 35.311635 + 76 41.006764 1307 5 1 82.398579 -51.805649 -54.665806 + 76 292.67951 1160 0 0 5.5912683 52.865493 -206.19575 + 76 335.2932 915 0 1 4.0077944 60.510961 -204.85 + 76 132.00661 1215 0 0 6.1891491 63.968695 -205.85 + 76 347.38725 1217 0 0 6.3114133 64.266392 -205.9123 + 76 298.92688 1218 0 0 6.119927 64.561925 -206.2105 + 76 93.195309 896 2 1 0.082738536 -1.4360749 -144.45 + 76 128.57953 892 2 0 -0.05 -1.068166 -145.8869 + 76 143.18583 883 1 1 -2.931819 7.3068343 -174.45 + 76 118.96519 935 1 0 -3.3131446 7.9602928 -175.85 + 76 263.75818 854 0 1 -8.8391544 20.978911 -204.45 + 76 221.1995 1005 0 0 -9.2231654 21.966046 -205.85 + 76 33.954762 1541 5 1 129.63638 1.3152012 -54.712898 + 76 143.53134 1004 0 0 -8.8328447 21.747951 -205.85 + 76 17.532584 1298 6 1 80.53789 108.13415 -24.85 + 76 201.6067 1438 6 0 80.063302 109.03768 -25.85 +Number of tracker digits in this event = 14 Event: 77 -Number of tracker hits in this event = 15 - 77 169.814 896 4 0 -0.175966 0.0643392 -85.85 - 77 111.972 896 3 0 -0.369948 0.151809 -115.85 - 77 399.11 893 2 1 -0.913004 0.832329 -144.45 - 77 113.874 900 2 0 -0.911085 0.880924 -145.85 - 77 116.449 893 1 1 -0.887902 1.94865 -174.45 - 77 155.318 905 1 0 -0.892763 2.01708 -175.85 - 77 645.268 893 0 1 -0.920331 3.47406 -204.45 - 77 113.293 913 0 0 -0.931547 3.53043 -205.85 - 77 97.3951 892 2 1 -1.21782 0.673786 -144.509 - 77 133.35 891 2 1 -1.32184 0.738598 -144.577 - 77 236.135 803 1 0 133.476 -18.9591 -176.221 - 77 167.344 908 0 1 2.58137 -3.38564 -204.45 - 77 181.03 880 0 0 2.70749 -3.61102 -205.85 - 77 119.455 896 1 0 -0.212783 0.181159 -175.85 - 77 112.712 902 0 0 -1.03812 1.32263 -205.85 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 11 + 77 150.18471 896 4 0 -0.10743738 0.063456123 -85.85 + 77 135.21944 896 3 0 -0.33374736 0.050740922 -115.85 + 77 321.61693 895 2 1 -0.53592625 0.092772079 -144.45 + 77 158.32917 896 2 0 -0.54609509 0.10381632 -145.85 + 77 102.49085 894 1 1 -0.73869599 0.33060141 -174.45 + 77 231.16528 897 1 0 -0.74756538 0.37092632 -175.85 + 77 122.93673 893 0 1 -0.9430786 1.201897 -204.45 + 77 104.68955 901 0 0 -0.95600899 1.2402847 -205.85 + 77 465.33364 484 0 0 38.589513 -82.669009 -206.17444 + 77 72.124687 1083 0 1 37.643843 -84.113499 -204.85 + 77 83.086092 475 0 0 37.925836 -84.485692 -205.85 +Number of tracker digits in this event = 7 Event: 78 -Number of tracker hits in this event = 30 - 78 98.0601 896 4 1 0.241643 -0.40391 -84.45 - 78 141.01 897 3 1 0.374908 -0.677496 -114.45 - 78 280.674 894 3 0 0.385349 -0.695308 -115.85 - 78 253.771 898 2 1 0.580754 -0.995744 -144.45 - 78 116.47 893 2 0 0.589341 -1.00721 -145.85 - 78 115.632 899 1 1 0.720383 -1.27437 -174.45 - 78 104.204 891 1 0 0.712569 -1.27633 -175.85 - 78 144.103 898 0 1 0.551347 -1.3439 -204.45 - 78 170.167 891 0 0 0.54482 -1.34397 -205.85 - 78 137.064 696 2 0 -0.279852 -40.2836 -146.25 - 78 105.501 895 2 1 -0.558222 -40.738 -144.85 - 78 128.812 745 2 0 8.49101 -30.5133 -146.25 - 78 142.265 940 2 1 9.03707 -30.6852 -144.85 - 78 202.78 941 2 1 9.20312 -30.6871 -144.45 - 78 345.403 942 2 1 9.37409 -30.8108 -144.826 - 78 98.578 943 2 1 9.47743 -30.6189 -144.65 - 78 503.227 896 5 0 0.369292 0.05 -56.0976 - 78 106.477 892 5 1 -1.06521 0.412424 -54.85 - 78 332.655 896 3 1 0.0744505 -0.452448 -114.45 - 78 421.814 895 3 0 0.0691473 -0.466747 -115.85 - 78 112.23 896 1 1 0.210981 -1.6793 -174.45 - 78 123.241 889 1 0 0.231845 -1.73179 -175.85 - 78 133.185 899 0 1 0.661146 -2.78625 -204.45 - 78 123.946 884 0 0 0.685649 -2.824 -205.85 - 78 120.633 904 2 1 1.83265 -3.37691 -144.45 - 78 142.705 879 2 0 2.19642 -3.72014 -145.85 - 78 263.05 940 1 1 8.92307 -10.1214 -174.45 - 78 169.927 850 1 0 9.68936 -9.55233 -175.85 - 78 242.947 1019 0 1 24.7581 2.59649 -204.45 - 78 154.833 913 0 0 25.6475 3.46144 -205.85 -Number of tracker digits in this event = 22 +Number of tracker hits in this event = 7 + 78 125.02263 899 3 0 -0.077654165 0.68513285 -115.85 + 78 116.30854 897 2 1 0.29284097 2.3210089 -144.45 + 78 149.8662 907 2 0 0.30745875 2.3928864 -145.85 + 78 137.55967 898 1 1 0.59419655 3.9270543 -174.45 + 78 134.04925 915 1 0 0.57411172 4.0193548 -175.85 + 78 117.12584 896 0 1 0.082780978 5.8277146 -204.45 + 78 106.39553 925 0 0 0.075016457 5.8963523 -205.85 +Number of tracker digits in this event = 4 Event: 79 -Number of tracker hits in this event = 9 - 79 208.544 896 3 1 0.0692955 0.361902 -114.45 - 79 114.658 897 3 0 0.0610846 0.389639 -115.85 - 79 151.764 900 2 0 -0.154424 1.03145 -145.85 - 79 106.047 905 1 0 -0.322283 1.87796 -175.85 - 79 123.31 914 0 0 -0.093334 3.70228 -205.85 - 79 154.658 895 1 1 -0.57754 1.28937 -174.45 - 79 142.418 902 1 0 -0.601455 1.30523 -175.85 - 79 112.61 892 0 1 -1.08513 1.61964 -204.45 - 79 134.91 903 0 0 -1.12681 1.64519 -205.85 +Number of tracker hits in this event = 14 + 79 143.05554 896 5 1 0.12401267 0.13634389 -54.45 + 79 297.00466 896 5 0 0.12758596 0.13747892 -55.85 + 79 97.603434 896 4 1 0.21031416 0.16829198 -84.45 + 79 142.06487 896 4 0 0.21695415 0.16930127 -85.85 + 79 113.08586 897 3 1 0.39845894 0.13479492 -114.45 + 79 90.471876 896 3 0 0.39743547 0.13284596 -115.85 + 79 108.35435 897 2 1 0.37515844 0.098319685 -144.45 + 79 112.17218 896 2 0 0.37060348 0.10508831 -145.85 + 79 109.8533 896 1 1 0.23800409 0.32110834 -174.45 + 79 150.19602 897 1 0 0.21435158 0.36774842 -175.85 + 79 108.92626 902 0 0 -0.31703355 1.3662699 -205.85 + 79 3.9985063 1228 2 1 66.510579 53.208702 -144.71624 + 79 301.28288 847 3 1 -10.12211 -0.29127022 -114.45 + 79 260.86572 845 3 1 -10.515545 0.57890916 -114.85 Number of tracker digits in this event = 6 Event: 80 -Number of tracker hits in this event = 13 - 80 273.511 896 5 1 0.0807606 0.0796914 -54.45 - 80 120.027 896 5 0 0.0879861 0.0717095 -55.85 - 80 118.567 896 4 1 0.223177 -0.0959318 -84.45 - 80 124.957 896 3 1 0.206617 -0.381562 -114.45 - 80 106.08 896 2 1 0.0738385 -0.502819 -144.45 - 80 112.895 895 2 0 0.063577 -0.504317 -145.85 - 80 126.258 895 1 0 -0.142978 -0.54853 -175.85 - 80 119.348 894 0 0 -0.373444 -0.727463 -205.85 - 80 10.6064 520 5 1 -75.4709 -98.3245 -54.7531 - 80 9.04209 672 0 1 -45.1948 97.2493 -204.793 - 80 25.5192 670 0 1 -45.5676 96.9378 -204.476 - 80 109.671 662 0 1 -47.0713 98.2936 -204.674 - 80 96.5139 1117 4 1 44.3495 -56.9664 -84.5879 -Number of tracker digits in this event = 4 -Event: 81 -Number of tracker hits in this event = 12 - 81 131.99 897 5 0 -0.179236 0.269946 -55.85 - 81 312.597 898 4 0 -0.347688 0.602121 -85.85 - 81 129.17 894 3 1 -0.678917 0.778351 -114.45 - 81 175.621 899 3 0 -0.694493 0.785899 -115.85 - 81 108.932 893 2 1 -0.996778 0.924998 -144.45 - 81 192.848 900 2 0 -1.01293 0.933723 -145.85 - 81 114.08 891 1 1 -1.29447 1.09307 -174.45 - 81 100.482 901 1 0 -1.32743 1.10738 -175.85 - 81 125.853 888 0 1 -2.02169 1.39004 -204.45 - 81 133.661 902 0 0 -2.05277 1.41235 -205.85 - 81 13.4877 1353 9 0 48.4585 92.1189 63.8641 - 81 34.4059 746 0 0 14.6358 -30.3177 -205.875 -Number of tracker digits in this event = 7 -Event: 82 -Number of tracker hits in this event = 20 - 82 133.979 896 2 1 0.192915 2.5831 -144.45 - 82 107.539 908 2 0 0.209167 2.62165 -145.85 - 82 110.917 897 1 1 0.425501 3.43554 -174.45 - 82 115.006 913 1 0 0.434734 3.48158 -175.85 - 82 163.512 898 0 1 0.644106 4.3716 -204.45 - 82 107.207 918 0 0 0.735262 4.45184 -205.85 - 82 300.917 896 4 1 0.126096 -0.226509 -84.45 - 82 120.175 897 3 1 0.340876 -0.167624 -114.45 - 82 86.1471 898 2 1 0.624294 -0.199733 -144.45 - 82 158.824 900 1 1 0.850833 -0.171195 -174.45 - 82 521.069 899 0 1 0.819671 -0.259272 -204.45 - 82 116.206 897 4 1 0.312794 -0.137238 -84.45 - 82 121.842 848 3 1 -10.029 -2.10761 -114.45 - 82 104.829 887 3 0 -10.5462 -2.25 -115.85 - 82 232.538 792 2 1 -21.2007 -5.23694 -144.45 - 82 128.608 871 2 0 -21.7304 -5.37966 -145.85 - 82 127.456 736 1 1 -32.4101 -8.26349 -174.45 - 82 143.282 856 1 0 -32.9411 -8.36939 -175.85 - 82 107.041 680 0 1 -43.6477 -10.3574 -204.45 - 82 147.303 846 0 0 -44.1508 -10.3765 -205.85 -Number of tracker digits in this event = 12 -Event: 83 -Number of tracker hits in this event = 16 - 83 163.218 895 4 1 -0.462761 -0.298455 -84.45 - 83 112.229 892 3 1 -1.13832 -0.430604 -114.45 - 83 109.407 895 3 0 -1.172 -0.473583 -115.85 - 83 104.235 888 2 1 -1.9998 -1.28398 -144.45 - 83 127.726 891 2 0 -2.00415 -1.31262 -145.85 - 83 165.416 886 1 1 -2.34449 -1.78213 -174.45 - 83 212.007 889 1 0 -2.36785 -1.82018 -175.85 - 83 419.736 883 0 1 -2.87969 -2.70601 -204.45 - 83 148.313 884 0 0 -2.92293 -2.7632 -205.85 - 83 138.468 885 0 0 -3.26002 -2.58393 -205.85 - 83 245.234 889 1 1 -1.78027 -0.132011 -174.45 - 83 121.693 892 0 1 -1.09971 -1.65243 -204.45 - 83 112.138 890 0 0 -1.06166 -1.6177 -205.85 - 83 97.7954 885 0 1 -2.56237 0.331577 -204.45 - 83 97.0278 897 0 0 -2.63147 0.279304 -205.85 - 83 128.036 748 2 0 10.0917 -29.8962 -146.124 -Number of tracker digits in this event = 10 -Event: 84 -Number of tracker hits in this event = 29 - 84 478.06 896 2 1 0.0559345 0.886131 -144.45 - 84 356.185 900 2 0 0.0615593 0.905398 -145.85 - 84 275.035 896 1 1 0.0697973 1.24847 -174.45 - 84 115.537 902 1 0 0.0713022 1.26418 -175.85 - 84 249.512 896 0 1 0.114519 1.61108 -204.45 - 84 334.534 903 0 0 0.147742 1.60669 -205.85 - 84 105.855 1088 4 0 14.7118 38.553 -85.8653 - 84 58.6674 1021 2 1 25.0513 75.6564 -144.709 - 84 437.788 911 1 1 3.19641 -0.310207 -174.45 - 84 130.432 895 1 0 3.20116 -0.597939 -175.85 - 84 110.032 910 0 1 3.04619 -10.3355 -204.45 - 84 138.915 843 0 0 3.05023 -11.0417 -205.85 - 84 396.345 891 1 0 5.97128 -1.36231 -175.85 - 84 104.219 895 1 1 -0.62604 1.48819 -174.45 - 84 192.443 901 1 0 -0.306817 1.20896 -175.85 - 84 123.299 929 0 1 6.73181 -3.21953 -204.45 - 84 314.316 880 0 0 7.55991 -3.45986 -205.85 - 84 10.9101 881 0 0 7.68037 -3.37193 -205.974 - 84 167.519 899 2 0 0.347544 0.754115 -145.85 - 84 147.925 927 1 1 6.26536 -2.27165 -174.45 - 84 210.37 884 1 0 6.39637 -2.66261 -175.85 - 84 108.994 924 0 1 5.84036 -9.53717 -204.45 - 84 113.354 849 0 0 5.85487 -9.69643 -205.85 - 84 43.2597 852 3 1 -9.16713 14.7181 -114.827 - 84 110.174 900 1 0 0.207535 1.0383 -175.85 - 84 254.242 897 0 1 0.288413 1.49854 -204.45 - 84 56.6721 895 0 1 -0.479276 0.863399 -204.476 - 84 175.024 896 6 1 0.05 -0.110871 -24.5782 - 84 213.183 892 6 0 0.932676 -1.1718 -25.85 -Number of tracker digits in this event = 18 -Event: 85 -Number of tracker hits in this event = 22 - 85 119.053 896 4 1 0.161371 0.0676423 -84.45 - 85 135.327 896 4 0 0.164066 0.063502 -85.85 - 85 124.353 901 2 1 1.08251 0.416692 -144.45 - 85 224.85 898 2 0 1.10424 0.488218 -145.85 - 85 104.56 903 1 1 1.63171 2.05057 -174.45 - 85 126.149 906 1 0 1.63324 2.16316 -175.85 - 85 142.128 904 0 1 1.72256 4.37671 -204.45 - 85 148.608 918 0 0 1.75961 4.49784 -205.85 - 85 50.2076 897 2 0 1.09362 0.425823 -146.137 - 85 204.56 896 5 0 0.575586 0.115634 -55.85 - 85 172.893 898 0 1 0.571497 0.176313 -204.45 - 85 129.256 896 0 0 1.35391 0.178058 -205.85 - 85 80.816 617 0 0 -29.4967 -56.242 -205.895 - 85 88.0753 616 0 0 -29.5303 -56.3059 -205.881 - 85 256.645 896 1 1 0.144236 0.130551 -174.45 - 85 102.619 896 1 0 0.227924 0.217387 -175.85 - 85 142.079 903 0 1 1.63302 2.00326 -204.45 - 85 144.054 906 0 0 1.69602 2.10785 -205.85 - 85 248.057 551 1 1 -69.2529 158.216 -174.688 - 85 202.02 552 1 1 -69.1659 158.329 -174.57 - 85 149.945 910 0 1 2.89649 -1.72572 -204.45 - 85 125.978 888 0 0 3.05763 -1.92387 -205.85 -Number of tracker digits in this event = 16 -Event: 86 Number of tracker hits in this event = 8 - 86 223.236 897 5 0 -0.127845 0.290312 -55.85 - 86 152.899 898 4 0 -0.25033 0.554248 -85.85 - 86 103.493 899 3 0 -0.37068 0.843769 -115.85 - 86 112.25 900 2 0 -0.426517 1.03715 -145.85 - 86 146.247 901 1 0 -0.413506 1.17377 -175.85 - 86 156.744 901 0 0 -0.182561 1.21674 -205.85 - 86 170.481 896 5 0 -0.0595092 0.247478 -56.077 - 86 81.3983 1103 6 0 -132.415 41.4689 -26.25 + 80 96.812427 899 2 1 0.75889044 -0.23671421 -144.45 + 80 130.38385 901 1 1 1.1351876 -0.35716553 -174.45 + 80 135.00978 902 0 1 1.3598574 -0.5202696 -204.45 + 80 236.99469 895 0 0 1.3644141 -0.52905537 -205.85 + 80 448.24724 903 0 1 1.5075622 -0.48340615 -204.45 + 80 33.78522 973 2 0 -64.24761 15.54666 -146.13874 + 80 117.68194 896 5 1 0.05 0.19831639 -54.604591 + 80 130.42958 896 5 0 0.50376713 0.19469554 -55.85 Number of tracker digits in this event = 5 -Event: 87 +Event: 81 +Number of tracker hits in this event = 36 + 81 177.68449 874 5 1 -4.7426598 -0.063026728 -54.45 + 81 113.08777 851 4 1 -9.4042241 -0.17196987 -84.45 + 81 121.65182 828 3 1 -13.891378 -0.28883204 -114.45 + 81 123.14916 806 2 1 -18.287787 -0.94164675 -144.45 + 81 213.68438 893 2 0 -18.462422 -0.98773246 -145.85 + 81 123.61098 788 1 1 -21.961238 -1.8638628 -174.45 + 81 157.71559 888 1 0 -22.145436 -1.9101063 -175.85 + 81 118.39402 768 0 1 -25.865115 -2.9417636 -204.45 + 81 175.65862 883 0 0 -26.055842 -2.9881097 -205.85 + 81 310.25791 760 0 1 -27.480546 -2.8817417 -204.45 + 81 125.14302 882 0 0 -27.66295 -3.0602537 -205.85 + 81 124.13376 884 0 0 -27.661351 -2.8374441 -205.85 + 81 320.37391 807 2 1 -18.201994 -0.90887 -144.45 + 81 126.54628 787 1 1 -22.113625 -1.354136 -174.45 + 81 132.41312 891 1 0 -22.3095 -1.3783318 -175.85 + 81 106.97919 766 0 1 -26.378508 -1.8958372 -204.45 + 81 133.17661 888 0 0 -26.595974 -1.9254236 -205.85 + 81 180.2856 894 2 0 -18.207535 -0.80575321 -145.85 + 81 253.27767 803 1 1 -19.000903 2.8165816 -174.45 + 81 104.17612 913 1 0 -18.870258 3.4596839 -175.85 + 81 193.71868 817 0 1 -16.142427 15.996554 -204.45 + 81 78.83584 981 0 0 -16.03823 17.135663 -205.85 + 81 243.9053 982 0 0 -16.010243 17.275169 -206.06848 + 81 20.822092 933 5 0 -75.508425 7.5178585 -55.986609 + 81 286.72236 842 3 1 -11.088324 -0.29960811 -114.45 + 81 338.61447 891 3 0 -8.2706922 -1.4271401 -115.85 + 81 350.54527 1012 2 1 23.380257 -14.187935 -144.45 + 81 109.20714 1016 2 1 24.1527 -14.182561 -144.81625 + 81 532.52471 828 2 0 28.151603 -13.938713 -145.85 + 81 284.78274 827 2 0 28.680547 -14.095823 -146.18871 + 81 72.336373 780 2 0 99.581842 -23.623909 -146.25 + 81 186.72823 781 2 0 99.493331 -23.432524 -146.12171 + 81 347.568 1388 2 1 99.122666 -22.805962 -144.85 + 81 7.6016575 826 2 0 28.714445 -14.255486 -146.21426 + 81 41.110098 835 2 0 26.239364 -12.480845 -145.85 + 81 166.2046 836 2 0 26.264109 -12.443994 -145.87876 +Number of tracker digits in this event = 26 +Event: 82 +Number of tracker hits in this event = 11 + 82 109.56718 895 2 1 -0.46537591 -0.45154258 -144.45 + 82 379.10671 895 2 0 -0.461131 -0.46570854 -145.85 + 82 271.5468 894 1 0 -0.35219728 -0.69586664 -175.85 + 82 107.42438 893 0 0 -0.069075821 -0.99349238 -205.85 + 82 209.95186 892 3 0 0.61042062 -1.2014674 -115.85 + 82 1.9539659 890 3 0 0.9819395 -1.5126524 -116.24549 + 82 97.150953 890 0 1 -1.5031218 -3.053398 -204.45 + 82 110.14462 882 0 0 -1.5759339 -3.1610665 -205.85 + 82 101.70338 899 1 1 0.72723194 -0.38728667 -174.45 + 82 111.96447 886 0 1 -2.3930362 -1.7536144 -204.45 + 82 111.97155 889 0 0 -2.4684243 -1.8452232 -205.85 +Number of tracker digits in this event = 3 +Event: 83 Number of tracker hits in this event = 6 - 87 104.521 896 2 0 -0.414695 0.139246 -145.85 - 87 123.966 895 1 1 -0.550769 0.296264 -174.45 - 87 118.734 897 1 0 -0.558076 0.307986 -175.85 - 87 91.1516 894 0 1 -0.711517 0.557282 -204.45 - 87 107.676 898 0 0 -0.716415 0.567851 -205.85 - 87 297.494 852 0 0 -12.0949 -9.07265 -206.25 + 83 111.04711 896 5 0 -0.057688165 0.1510084 -55.85 + 83 133.95139 897 4 0 -0.081845146 0.33482604 -85.85 + 83 109.97702 896 3 0 -0.37125199 0.1522238 -115.85 + 83 134.65934 895 2 1 -0.60458842 0.084673305 -144.45 + 83 98.408126 896 2 0 -0.61385374 0.079093499 -145.85 + 83 126.33914 893 0 1 -0.99219659 -0.12942683 -204.45 +Number of tracker digits in this event = 3 +Event: 84 +Number of tracker hits in this event = 18 + 84 115.76669 896 5 1 0.11295188 -0.12508473 -54.45 + 84 142.33487 896 4 1 0.064538364 -0.20898102 -84.45 + 84 115.25772 894 1 1 -0.73880495 -0.060125626 -174.45 + 84 103.80038 891 0 1 -1.3451103 0.18321103 -204.45 + 84 113.55488 896 0 0 -1.3867991 0.19571429 -205.85 + 84 193.70887 897 3 1 0.41325869 0.12963432 -114.45 + 84 175.6606 898 3 0 -0.16234998 0.62828138 -115.85 + 84 288.81046 844 2 1 -10.65544 9.2874624 -144.45 + 84 288.69717 958 2 0 -10.274053 12.478533 -145.85 + 84 189.77378 1029 1 1 26.651994 93.681937 -174.45 + 84 251.91769 1358 1 0 27.244764 93.113272 -175.85 + 84 107.13552 879 5 1 -3.7922498 1.5083439 -54.45 + 84 109.67233 901 5 0 -4.3229076 1.170834 -55.85 + 84 190.89401 823 4 1 -14.886053 -7.4599009 -84.45 + 84 92.591032 853 4 0 -16.186695 -8.8767159 -85.85 + 84 361.28389 852 4 0 -16.337215 -9.0934043 -86.053197 + 84 172.16628 693 3 1 -41.046339 -36.89475 -114.45 + 84 283.40166 704 3 0 -40.824265 -38.755186 -115.85 +Number of tracker digits in this event = 11 +Event: 85 +Number of tracker hits in this event = 32 + 85 110.22904 896 4 1 0.06461212 -0.10206049 -84.45 + 85 129.25824 897 3 1 0.35471213 0.065642145 -114.45 + 85 303.80286 896 3 0 0.37139602 0.082495413 -115.85 + 85 365.16511 899 2 1 0.76323181 0.44575002 -144.45 + 85 129.85042 898 2 0 0.78183027 0.463905 -145.85 + 85 268.1515 901 1 1 1.0930172 0.83788704 -174.45 + 85 112.40726 899 1 0 1.1047192 0.84952868 -175.85 + 85 169.0581 902 0 1 1.3516287 1.0672813 -204.45 + 85 253.0571 901 0 0 1.363629 1.0766462 -205.85 + 85 69.402479 1017 0 0 -55.129101 24.312921 -206.08304 + 85 203.40606 896 5 0 -0.055010424 0.05 -55.967139 + 85 182.65395 754 0 0 69.550185 -28.789184 -206.12321 + 85 173.54845 899 3 1 0.7728255 -0.49846633 -114.45 + 85 111.29009 895 3 0 1.0453495 -0.46572023 -115.85 + 85 125.12674 925 2 1 5.8798149 -0.62213765 -144.45 + 85 133.00342 894 2 0 6.2408571 -0.77523704 -145.85 + 85 134.30944 964 1 1 13.754691 -3.492367 -174.45 + 85 109.51127 880 1 0 14.263351 -3.5664953 -175.85 + 85 107.80915 1019 0 1 24.768759 -4.6664993 -204.45 + 85 128.8704 874 0 0 24.951631 -4.751205 -205.85 + 85 111.56323 898 3 1 0.62096651 -0.59561804 -114.45 + 85 107.65726 894 3 0 0.62433057 -0.66289646 -115.85 + 85 110.94638 887 2 0 0.75357474 -2.2337934 -145.85 + 85 309.94538 902 1 1 1.3106009 -2.948418 -174.45 + 85 109.60001 883 1 0 1.3655169 -2.8968024 -175.85 + 85 119.18725 909 0 1 2.729532 -1.2302519 -204.45 + 85 172.63322 893 0 0 2.7720747 -0.96264574 -205.85 + 85 172.59398 900 1 1 1.0142346 -2.940737 -174.6585 + 85 41.641201 899 1 1 0.66122365 -2.8288556 -174.47555 + 85 100.24364 896 6 0 0.36501048 0.12933129 -25.85 + 85 152.42367 907 5 1 2.3323972 6.1553247 -54.45 + 85 82.44613 910 5 1 2.8587551 6.0796015 -54.482735 +Number of tracker digits in this event = 18 +Event: 86 +Number of tracker hits in this event = 6 + 86 131.46844 896 4 1 0.11217638 -0.24164538 -84.45 + 86 120.58841 892 2 0 -0.24494273 -1.066637 -145.85 + 86 100.78768 895 1 1 -0.47572903 -1.7299109 -174.45 + 86 132.70508 889 1 0 -0.49341168 -1.7602242 -175.85 + 86 112.81975 893 0 1 -0.8710522 -2.3734385 -204.45 + 86 121.21895 886 0 0 -0.89650547 -2.4033816 -205.85 +Number of tracker digits in this event = 4 +Event: 87 +Number of tracker hits in this event = 9 + 87 103.38915 896 5 1 0.20629364 -0.077725402 -54.45 + 87 126.45316 898 4 1 0.50837576 -0.26748916 -84.45 + 87 135.162 901 3 1 1.0946754 -0.31088173 -114.45 + 87 108.91669 904 2 1 1.8016233 -0.19831561 -144.45 + 87 118.76354 908 1 1 2.4809207 -0.13911812 -174.45 + 87 115.54845 911 0 1 3.1293589 -0.34782908 -204.45 + 87 107.13878 958 1 0 -5.4494637 12.513241 -175.85 + 87 27.99119 871 1 1 -5.4411747 12.506616 -174.85 + 87 80.8778 870 1 1 -5.4581734 12.493122 -174.82703 Number of tracker digits in this event = 2 Event: 88 -Number of tracker hits in this event = 15 - 88 108.86 897 3 1 0.250743 0.569363 -114.45 - 88 154.899 898 3 0 0.266573 0.587041 -115.85 - 88 109.331 898 2 1 0.624176 0.950623 -144.45 - 88 122.925 900 2 0 0.636094 0.967998 -145.85 - 88 125.918 900 1 1 0.883847 1.2971 -174.45 - 88 120.514 902 1 0 0.894014 1.29727 -175.85 - 88 371.295 901 0 1 1.08025 1.31883 -204.45 - 88 109.487 902 0 0 1.07203 1.31566 -205.85 - 88 10.0395 1350 7 0 -156.778 91.5332 3.87217 - 88 279.087 903 0 0 1.18597 1.61744 -205.85 - 88 99.7455 1162 9 1 53.3864 40.4201 65.218 - 88 102.492 702 2 1 -39.2491 -18.9568 -144.452 - 88 165.832 701 2 1 -39.2633 -18.9852 -144.45 - 88 186.175 1098 1 1 40.5041 -88.3056 -174.696 - 88 140.977 1097 1 1 40.4434 -88.5906 -174.628 -Number of tracker digits in this event = 9 -Event: 89 -Number of tracker hits in this event = 0 +Number of tracker hits in this event = 2 + 88 111.88631 895 1 0 -0.34754846 -0.4521938 -175.85 + 88 64.443889 629 6 1 -53.781817 -84.544446 -24.540227 Number of tracker digits in this event = 0 -Event: 90 -Number of tracker hits in this event = 24 - 90 101.621 896 3 1 0.0914675 -0.132959 -114.45 - 90 119.91 898 2 1 0.564227 -0.259917 -144.45 - 90 101.195 901 1 1 1.23509 -0.927735 -174.45 - 90 357.141 893 1 0 1.26603 -0.955866 -175.85 - 90 97.2282 905 0 1 1.91741 -1.5461 -204.45 - 90 269.451 890 0 0 1.9481 -1.58545 -205.85 - 90 232.071 899 1 1 0.788963 -0.269959 -174.45 - 90 100.081 899 0 1 0.767863 -0.283597 -204.45 - 90 161.039 851 0 1 -9.33178 -0.250134 -204.85 - 90 208.422 903 1 0 -14.154 1.59289 -176.25 - 90 104.69 826 1 1 -14.3214 1.66698 -174.85 - 90 275.314 1041 2 0 18.5325 29.0608 -146.25 - 90 228.204 996 2 1 20.1714 30.3111 -144.85 - 90 102.145 900 1 1 1.02073 0.05 -174.701 - 90 443.245 904 1 0 3.13954 1.67903 -175.85 - 90 150.715 1210 1 0 115.988 63.0251 -176.25 - 90 109.31 1478 1 1 117.019 63.9498 -174.85 - 90 162.068 1479 1 1 117.16 64.0654 -174.701 - 90 488.3 896 1 1 0.137743 -0.230652 -174.45 - 90 154.948 869 0 1 -5.83926 1.37864 -204.45 - 90 303.516 901 0 0 -6.32546 1.08535 -205.85 - 90 187.72 1151 1 0 43.9107 51.1991 -176.25 - 90 202.392 1153 1 0 43.9542 51.6398 -175.869 - 90 4.26049 1156 1 0 43.7035 52.0538 -176.239 -Number of tracker digits in this event = 15 -Event: 91 +Event: 89 Number of tracker hits in this event = 7 - 91 181.679 896 5 1 0.0604168 -0.141783 -54.45 - 91 149.742 896 4 1 0.107841 -0.246004 -84.45 - 91 101.348 896 3 1 0.181581 -0.269503 -114.45 - 91 113.851 896 2 1 0.23534 -0.194857 -144.45 - 91 104.406 897 1 1 0.381746 -0.102404 -174.45 - 91 165.362 898 0 1 0.55034 -0.200974 -204.45 - 91 163.048 821 3 0 -94.0308 -15.3277 -116.073 -Number of tracker digits in this event = 4 -Event: 92 -Number of tracker hits in this event = 17 - 92 327.805 895 2 0 -0.0560177 -0.567406 -145.85 - 92 123.96 893 1 0 -0.149126 -0.9189 -175.85 - 92 104.37 892 0 0 -0.254691 -1.17599 -205.85 - 92 195.378 890 1 1 -1.46681 0.848591 -174.45 - 92 155.696 900 1 0 -1.524 0.886446 -175.85 - 92 231.978 886 0 1 -2.41475 1.69397 -204.45 - 92 287.952 904 0 0 -2.43984 1.74769 -205.85 - 92 94.7891 903 0 0 -2.50731 1.58842 -205.85 - 92 32.053 796 0 1 -20.3659 -48.1994 -204.683 - 92 274.164 895 1 1 -0.630509 -0.65994 -174.45 - 92 319.622 894 1 0 -0.608359 -0.660291 -175.85 - 92 107.777 893 0 0 -0.253262 -0.978287 -205.85 - 92 57.5843 896 2 1 0.0502041 -0.111693 -144.45 - 92 154.05 873 0 1 -4.99739 -4.11628 -204.45 - 92 164.571 876 0 0 -5.14553 -4.29482 -205.85 - 92 165.953 896 0 1 0.0913127 -0.698306 -204.45 - 92 110.187 894 0 0 0.0818177 -0.669395 -205.85 -Number of tracker digits in this event = 11 -Event: 93 -Number of tracker hits in this event = 12 - 93 141.012 896 5 1 0.0731985 -0.225459 -54.45 - 93 135.308 896 4 1 0.185321 -0.38538 -84.45 - 93 98.6788 897 3 1 0.327356 -0.398627 -114.45 - 93 134.605 898 2 1 0.497983 -0.383182 -144.45 - 93 132.493 899 1 1 0.796166 -0.597985 -174.45 - 93 117.86 895 1 0 0.789237 -0.621417 -175.85 - 93 107.682 899 0 1 0.67999 -1.18373 -204.45 - 93 105.183 892 0 0 0.662546 -1.20743 -205.85 - 93 60.8009 814 0 1 -16.6638 27.7754 -204.597 - 93 42.2272 871 0 1 -5.42983 18.4302 -204.585 - 93 107.156 225 9 1 -135.032 -76.2918 65.2045 - 93 160.406 224 9 1 -135.228 -76.2974 65.2688 + 89 98.846913 896 5 1 0.19709175 -0.073751289 -54.45 + 89 131.95643 897 4 1 0.3677715 -0.1882986 -84.45 + 89 176.86115 899 3 1 0.67327637 -0.23999917 -114.45 + 89 271.1736 900 2 1 1.0332027 -0.17064802 -144.45 + 89 140.82265 904 1 1 1.72611 -0.19762933 -174.45 + 89 163.48511 892 2 0 0.97287863 -1.0764982 -145.85 + 89 24.959609 891 2 0 0.92614592 -1.3968222 -146.19234 Number of tracker digits in this event = 5 +Event: 90 +Number of tracker hits in this event = 10 + 90 440.1933 897 4 1 0.3349052 0.25267337 -84.45 + 90 141.54205 897 4 0 0.35106677 0.26003283 -85.85 + 90 121.06523 899 3 1 0.68751568 0.40455637 -114.45 + 90 123.45297 897 3 0 0.70378279 0.41582126 -115.85 + 90 119.11352 900 2 1 1.0467272 0.65103068 -144.45 + 90 105.98581 899 2 0 1.0686129 0.66102235 -145.85 + 90 140.43468 903 1 1 1.4882583 0.87415603 -174.45 + 90 104.48966 900 1 0 1.5137274 0.88953784 -175.85 + 90 116.40444 905 0 1 2.0166837 1.2428088 -204.45 + 90 106.96618 902 0 0 2.0368171 1.2653745 -205.85 +Number of tracker digits in this event = 5 +Event: 91 +Number of tracker hits in this event = 1 + 91 119.02155 895 2 1 -0.48644176 -0.11376941 -144.45 +Number of tracker digits in this event = 0 +Event: 92 +Number of tracker hits in this event = 22 + 92 110.83812 896 4 0 -0.15162951 0.10997932 -85.85 + 92 96.523122 897 3 0 -0.24932423 0.27677738 -115.85 + 92 133.86737 898 1 1 0.50362422 0.51854766 -174.45 + 92 126.73615 898 1 0 0.52172391 0.51637797 -175.85 + 92 287.17255 900 0 1 0.90137778 0.50497552 -204.45 + 92 106.50475 898 0 0 0.92900124 0.511257 -205.85 + 92 153.01036 902 0 0 0.56750991 1.3956495 -205.85 + 92 166.29563 1078 0 0 -8.0950215 36.484603 -206.25 + 92 262.43081 865 0 1 -6.4877625 38.385807 -204.85 + 92 348.77092 868 0 1 -5.913435 38.968889 -204.45 + 92 121.35822 872 0 1 -5.0856687 39.599032 -204.69332 + 92 124.56454 898 2 0 -0.33713838 0.46056309 -145.85 + 92 146.26552 894 1 1 -0.83223219 1.6743197 -174.45 + 92 158.55148 907 1 0 -0.84303819 2.2603709 -175.85 + 92 131.25234 894 0 1 -0.78055511 15.561166 -204.45 + 92 110.1498 975 0 0 -0.40656712 15.861457 -205.85 + 92 145.99544 1204 3 1 61.675812 -121.97311 -114.54951 + 92 168.11431 298 3 0 54.159661 -120.51551 -116.15193 + 92 120.78465 899 2 0 -0.56241423 0.69955046 -145.85 + 92 407.31051 873 1 1 -4.9436888 6.1848105 -174.45 + 92 850.49691 929 1 0 -5.9695534 6.705645 -175.85 + 92 267.70503 893 0 1 -1.0368265 -0.27763847 -204.45 +Number of tracker digits in this event = 18 +Event: 93 +Number of tracker hits in this event = 15 + 93 345.19203 895 3 1 -0.46076332 -0.38677803 -114.45 + 93 115.49739 895 2 1 -0.60626428 -0.52013497 -144.45 + 93 109.45759 895 2 0 -0.60982041 -0.52581005 -145.85 + 93 116.46446 894 1 1 -0.69975087 -0.66147695 -174.45 + 93 127.73998 894 1 0 -0.70341843 -0.66173532 -175.85 + 93 119.15379 894 0 1 -0.76679641 -0.66540299 -204.45 + 93 115.34476 894 0 0 -0.7676314 -0.66253085 -205.85 + 93 155.29204 897 3 0 -0.62844074 0.44860686 -115.85 + 93 372.22433 893 1 1 -1.02231 -0.50651272 -174.45 + 93 123.35486 896 0 1 0.05 3.5197653 -204.49265 + 93 165.94819 914 0 0 0.54260642 3.7752033 -205.85 + 93 112.29792 895 1 0 -1.0247846 -0.56927349 -175.85 + 93 109.00851 893 0 1 -1.0385253 -2.1568846 -204.45 + 93 99.626048 886 0 0 -1.0465363 -2.3326124 -205.85 + 93 265.83075 895 4 0 0.39147388 -0.54488407 -85.85 +Number of tracker digits in this event = 7 Event: 94 Number of tracker hits in this event = 13 - 94 110.639 895 4 0 -0.254228 -0.62919 -85.85 - 94 124.473 893 3 0 -0.358643 -1.00178 -115.85 - 94 118.367 895 2 1 -0.468516 -1.2542 -144.45 - 94 174.729 891 2 0 -0.476114 -1.27257 -145.85 - 94 101.579 895 1 1 -0.619235 -1.6454 -174.45 - 94 103.937 889 1 0 -0.627522 -1.66561 -175.85 - 94 180.455 894 0 1 -0.8109 -2.06228 -204.45 - 94 149.611 887 0 0 -0.818019 -2.08163 -205.85 - 94 209.481 894 3 0 -0.254034 -0.769502 -115.927 - 94 62.1692 895 3 0 -0.140522 -0.616553 -116.108 - 94 200.809 1043 5 0 29.7419 29.604 -56.25 - 94 1.844 880 5 0 0.460278 -3.63813 -55.85 - 94 36.144 877 5 0 0.530269 -4.12081 -56.0394 -Number of tracker digits in this event = 6 + 94 369.06781 896 5 0 -0.1949195 0.073746137 -55.85 + 94 147.76761 895 4 1 -0.49505448 0.23851524 -84.45 + 94 102.77878 896 4 0 -0.51763822 0.24981457 -85.85 + 94 131.34022 893 3 1 -1.0158725 0.48890843 -114.45 + 94 470.53349 898 3 0 -1.0398434 0.51303483 -115.85 + 94 114.03253 890 2 1 -1.5506871 0.99190321 -144.45 + 94 137.04566 900 2 0 -1.5735425 1.0104123 -145.85 + 94 135.55292 888 1 1 -2.0221921 1.3913803 -174.45 + 94 130.67119 902 1 0 -2.0429109 1.420653 -175.85 + 94 145.67496 885 0 1 -2.4557002 2.0148363 -204.45 + 94 102.09074 906 0 0 -2.4755838 2.0513861 -205.85 + 94 250.67046 615 3 0 -158.86759 -56.494118 -116.15135 + 94 99.905265 889 6 0 -0.05 -1.6837335 -26.107972 +Number of tracker digits in this event = 9 Event: 95 -Number of tracker hits in this event = 9 - 95 140.05 895 3 0 -0.440455 -0.494134 -115.85 - 95 112.046 894 2 1 -0.701071 -0.588625 -144.45 - 95 96.257 895 2 0 -0.707462 -0.599043 -145.85 - 95 101.504 893 1 1 -0.861418 -0.83295 -174.45 - 95 146.606 894 1 0 -0.886745 -0.833803 -175.85 - 95 154.506 891 0 1 -1.41342 -0.821963 -204.45 - 95 330.197 894 0 0 -1.42942 -0.814205 -205.85 - 95 591.193 368 0 1 -106.391 48.7083 -204.626 - 95 64.6797 367 0 1 -106.645 48.639 -204.589 +Number of tracker hits in this event = 8 + 95 306.45468 896 3 1 0.095207172 0.067394525 -114.45 + 95 98.031129 896 3 0 0.091662753 0.068293919 -115.85 + 95 149.65299 892 1 1 -1.0903174 -0.72532052 -174.45 + 95 105.88275 894 1 0 -1.1445409 -0.68204216 -175.85 + 95 131.12363 108 3 0 -47.078079 -158.36538 -116.25 + 95 148.77995 660 3 1 -47.61589 -158.87037 -114.85 + 95 316.79226 127 4 1 -154.74168 32.2335 -84.833302 + 95 66.925979 932 0 0 41.737509 7.3351196 -206.05345 Number of tracker digits in this event = 5 Event: 96 Number of tracker hits in this event = 17 - 96 120.37 896 5 1 0.0617297 0.109641 -54.45 - 96 117.959 896 5 0 0.0616725 0.116098 -55.85 - 96 100.923 896 3 1 0.11251 0.463119 -114.45 - 96 110.182 898 3 0 0.117362 0.472781 -115.85 - 96 140.954 897 2 1 0.259473 0.707103 -144.45 - 96 126.526 899 2 0 0.267915 0.705147 -145.85 - 96 158.012 897 1 1 0.437673 0.649157 -174.45 - 96 138.079 898 1 0 0.436559 0.647242 -175.85 - 96 131.097 897 0 1 0.396328 0.59568 -204.45 - 96 442.301 898 0 0 0.405743 0.588982 -205.85 - 96 375.001 896 0 1 0.146674 0.486347 -204.45 - 96 47.1955 1277 0 0 50.8935 76.3068 -205.965 - 96 55.713 1287 0 1 78.3235 93.3225 -204.85 - 96 43.0815 1366 0 0 79.5821 94.726 -205.85 - 96 4.45339 1367 0 0 79.6674 94.7829 -205.864 - 96 166.239 1297 0 1 80.3183 94.0081 -204.85 - 96 214.078 1298 0 1 80.4728 93.8282 -204.694 -Number of tracker digits in this event = 10 + 96 111.76489 896 5 1 0.053783218 0.37930461 -54.45 + 96 98.814193 897 5 0 0.058913244 0.40817845 -55.85 + 96 123.4862 896 4 1 0.11553492 1.0069871 -84.45 + 96 136.10213 900 4 0 0.11481327 1.0370575 -85.85 + 96 130.37113 896 3 1 0.092265163 1.6500857 -114.45 + 96 108.93572 904 3 0 0.09842045 1.6753858 -115.85 + 96 116.97847 896 2 1 0.23166672 2.2028683 -144.45 + 96 113.98746 906 2 0 0.23924946 2.221021 -145.85 + 96 284.97085 897 1 1 0.40704764 2.5872841 -174.45 + 96 114.31324 908 1 0 0.42413223 2.6019452 -175.85 + 96 106.92603 899 0 1 0.74338092 2.9091153 -204.45 + 96 126.49564 910 0 0 0.754078 2.923172 -205.85 + 96 91.456669 785 1 0 107.49243 -22.453699 -176.2408 + 96 68.982267 1007 0 1 22.271573 2.8075054 -204.5635 + 96 97.860419 909 1 0 0.39058081 2.6768693 -175.85 + 96 452.13704 896 0 1 0.062574405 4.1482973 -204.45 + 96 104.04081 916 0 0 0.25773642 4.1475419 -205.85 +Number of tracker digits in this event = 6 Event: 97 -Number of tracker hits in this event = 6 - 97 123.468 895 2 1 -0.466611 -0.228391 -144.45 - 97 123.004 895 1 1 -0.636782 -0.375414 -174.45 - 97 109.248 895 0 1 -0.636169 -0.650073 -204.45 - 97 112.862 894 0 0 -0.634298 -0.666033 -205.85 - 97 20.2716 284 13 1 -123.15 -88.1665 185.51 - 97 36.7962 891 5 1 -1.41032 -3.38537 -54.85 -Number of tracker digits in this event = 2 -Event: 98 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 99 -Number of tracker hits in this event = 7 - 99 108.59 898 1 0 -0.0823389 0.457901 -175.85 - 99 127.04 898 0 0 -0.284543 0.581502 -205.85 - 99 43.9341 325 3 0 58.2414 -115.024 -115.972 - 99 44.0857 897 2 0 0.05 0.374442 -146.174 - 99 32.058 897 4 1 0.389165 0.0655075 -84.5519 - 99 160.298 887 3 1 -2.05751 -13.8544 -114.45 - 99 134.229 827 3 0 -1.18802 -14.0986 -115.85 +Number of tracker hits in this event = 4 + 97 210.99289 897 2 1 0.34487788 -0.062168402 -144.45 + 97 119.22959 898 1 1 0.58311329 -0.1798639 -174.45 + 97 145.25478 898 0 1 0.45040475 -0.27273735 -204.45 + 97 128.54625 896 4 1 0.19803881 -0.05 -84.643265 Number of tracker digits in this event = 3 +Event: 98 +Number of tracker hits in this event = 28 + 98 500.96933 898 5 1 0.52106054 -0.36760385 -54.45 + 98 390.23463 900 4 1 0.91787131 -0.61053766 -84.45 + 98 424.04898 895 4 0 0.92867458 -0.60900693 -85.85 + 98 146.54167 901 3 1 1.129561 -0.52361475 -114.45 + 98 141.54656 895 3 0 1.1354358 -0.5169782 -115.85 + 98 118.01956 902 2 1 1.2513993 -0.46433712 -144.45 + 98 241.67966 904 1 1 1.6906977 -0.18500678 -174.45 + 98 102.09728 905 0 1 2.0378551 0.41533272 -204.45 + 98 127.38577 898 0 0 2.0340599 0.45056909 -205.85 + 98 316.09637 899 4 1 0.80332966 -0.68788364 -84.709623 + 98 148.0042 908 2 1 2.5159501 20.422264 -144.45 + 98 117.33301 996 2 0 3.1393453 20.176028 -145.85 + 98 107.15425 977 1 1 16.335316 7.4054777 -174.45 + 98 163.10088 931 1 0 17.358649 7.2231008 -175.85 + 98 139.5417 855 3 1 -8.4572178 7.4167483 -114.45 + 98 52.544436 856 3 1 -8.2853277 7.5992985 -114.70922 + 98 230.95811 933 3 0 -8.371698 7.5451026 -115.85 + 98 368.79132 897 5 0 1.2262585 0.34612872 -55.85 + 98 283.73246 1013 4 1 23.602431 25.615825 -84.45 + 98 451.12995 1021 4 0 26.179828 25.200327 -85.85 + 98 143.44543 851 3 1 -9.320431 0.70406776 -114.45 + 98 155.06473 897 3 0 -10.231733 0.30314347 -115.85 + 98 121.91564 750 2 1 -29.506405 -6.9823386 -144.45 + 98 125.36865 861 2 0 -29.945855 -7.2502944 -145.85 + 98 222.49512 708 1 1 -37.958864 -0.93084894 -174.45 + 98 196.77647 897 1 0 -38.556011 0.41675112 -175.85 + 98 629.61937 636 0 1 -52.287049 27.154506 -204.45 + 98 158.14594 1015 0 0 -52.136725 24.035703 -205.85 +Number of tracker digits in this event = 23 +Event: 99 +Number of tracker hits in this event = 10 + 99 154.81861 896 4 0 -0.118016 0.19687537 -85.85 + 99 120.76086 896 3 0 -0.13102389 0.23290033 -115.85 + 99 112.15939 896 2 0 -0.18629505 0.19980693 -145.85 + 99 106.8558 897 1 0 -0.37696888 0.37756459 -175.85 + 99 186.97081 898 0 0 -0.43505957 0.4723148 -205.85 + 99 66.561129 1247 4 1 70.441614 -28.147391 -84.80467 + 99 362.44802 1241 2 0 0.69102169 69.099868 -146.23085 + 99 31.642843 1242 2 0 0.65448733 69.435565 -145.85 + 99 280.91606 1243 2 0 0.70310889 69.462748 -145.91306 + 99 135.75956 729 2 1 -33.659072 -90.0105 -144.66606 +Number of tracker digits in this event = 6 Run terminated. Run Summary Number of events processed : 100 - User=9.92s Real=24.91s Sys=0.04s + User=9.69s Real=10.71s Sys=0.11s End of Run File Tracks_2.dat /control/execute emlowe.mac @@ -3837,16 +4107,16 @@ File Tracks_2.dat /process/inactivate phot gamma /process/inactivate compt gamma /process/inactivate conv gamma -/process/activate LowEnergyIoni e- -/process/activate LowEnBrem e- -/process/inactivate eIoni e- -/process/inactivate eBrem e- +/process/activate LowEnergyIoni +/process/activate LowEnBrem +/process/inactivate eIoni +/process/inactivate eBrem /process/list Transportation, Decay, phot, compt conv, LowEnPhotoElec, LowEnCompton, LowEnConversion LowEnRayleigh, eBrem, eIoni, LowEnBrem - LowEnergyIoni, msc, annihil, MuIoni - MuBrems, MuPairProd,MuonMinusCaptureAtRest, hIoni + LowEnergyIoni, msc, annihil, muIoni + muBrems, muPairProd,MuonMinusCaptureAtRest, hIoni LElastic, PionPlusInelastic, PionMinusInelastic,PiMinusAbsorptionAtRest KaonPlusInelastic, KaonMinusInelastic, KaonZeroLInelastic, KaonZeroSInelastic ProtonInelastic,AntiProtonInelastic,AntiProtonAnnihilationAtRest, NeutronInelastic @@ -3859,1054 +4129,1192 @@ File Tracks_2.dat /gun/energy 1 GeV /gun/sourceType 2 /run/beamOn 100 + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Scintillator + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.3689452 keV e- 355.79082 keV e+ 347.13789 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Calorimeter + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : CesiumIodide + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 38.405229 keV e- 691.66869 keV e+ 658.43466 keV + Region(s) which use this couple : + Calorimeter + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Tracker + +Index : 5 used in the geometry : Yes recalculation needed : No + Material : Silicon + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 2.3033387 keV e- 120.42458 keV e+ 118.95119 keV + Region(s) which use this couple : + Tracker + +Index : 6 used in the geometry : Yes recalculation needed : No + Material : Tungsten + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 36.047857 keV e- 351.43773 keV e+ 334.55147 keV + Region(s) which use this couple : + Tracker + +==================================================================== + Start Run processing. Event: 0 -Number of tracker hits in this event = 2 - 0 128.421 895 1 1 -0.494223 -0.226073 -174.45 - 0 158.15 895 0 1 -0.494155 -0.217793 -204.45 -Number of tracker digits in this event = 2 -Event: 1 -Number of tracker hits in this event = 4 - 1 135.27 895 2 1 -0.589264 -0.130523 -144.45 - 1 112.204 894 1 1 -0.847444 -0.241311 -174.45 - 1 165.924 892 0 1 -1.15993 -0.453148 -204.45 - 1 211.608 895 0 0 -1.17462 -0.462533 -205.85 +Number of tracker hits in this event = 5 + 0 127.94911 897 0 1 0.26389134 0.60424215 -204.45 + 0 173.04161 898 0 0 0.27254043 0.61337405 -205.85 + 0 5.0479788 309 9 0 1.4883636 -118.17318 63.941806 + 0 310.50247 896 3 1 0.05 0.16751267 -114.50044 + 0 104.14974 1289 3 0 92.796285 78.73348 -116.25 Number of tracker digits in this event = 3 +Event: 1 +Number of tracker hits in this event = 17 + 1 136.05187 898 5 1 0.48944027 -0.5529811 -54.45 + 1 170.59383 895 5 0 0.51312576 -0.57278031 -55.85 + 1 133.8246 900 4 1 0.95343855 -0.96928955 -84.45 + 1 149.78877 893 4 0 0.96547287 -0.99097115 -85.85 + 1 100.16471 901 3 1 1.1762261 -1.3960275 -114.45 + 1 174.22475 891 3 0 1.1861985 -1.4130202 -115.85 + 1 142.70103 902 2 1 1.3832242 -1.753706 -144.45 + 1 151.03459 889 2 0 1.3963819 -1.766956 -145.85 + 1 117.59702 904 1 1 1.6977825 -1.9796386 -174.45 + 1 213.19964 888 1 0 1.7163699 -1.9841038 -175.85 + 1 104.13558 906 0 1 2.1129256 -2.0835951 -204.45 + 1 129.72975 887 0 0 2.1315521 -2.0843189 -205.85 + 1 2320.7318 877 0 0 -0.64672278 -4.1228563 -206.25 + 1 2585.4982 893 0 1 -0.94752182 -4.1998832 -204.85 + 1 5098.9242 884 1 0 -7.9719914 -2.7639696 -176.25 + 1 8789.9833 856 1 1 -8.3089235 -2.687642 -174.85 + 1 268.93164 1379 4 1 97.271949 -52.974085 -84.54079 +Number of tracker digits in this event = 14 Event: 2 Number of tracker hits in this event = 5 - 2 115.319 895 3 0 -0.0503658 -0.557224 -115.85 - 2 139.979 893 2 0 -0.184038 -0.863586 -145.85 - 2 130.05 892 1 0 -0.319896 -1.23277 -175.85 - 2 272.201 895 0 1 -0.506964 -1.58661 -204.45 - 2 138.256 890 0 0 -0.51997 -1.60745 -205.85 -Number of tracker digits in this event = 4 + 2 132.17421 895 3 0 -0.15107553 -0.49181071 -115.85 + 2 121.20443 894 2 0 -0.2809776 -0.79569764 -145.85 + 2 129.5512 892 1 0 -0.37650621 -1.1643516 -175.85 + 2 159.39065 895 0 1 -0.51070981 -1.6117993 -204.45 + 2 400.92691 890 0 0 -0.51299907 -1.6362741 -205.85 +Number of tracker digits in this event = 5 Event: 3 -Number of tracker hits in this event = 12 - 3 132.726 896 5 1 0.109189 0.101971 -54.45 - 3 327.618 896 5 0 0.11674 0.108051 -55.85 - 3 160.03 897 4 1 0.269989 0.23769 -84.45 - 3 116.458 896 4 0 0.279629 0.246121 -85.85 - 3 109.866 898 3 1 0.48086 0.402781 -114.45 - 3 115.54 897 3 0 0.487775 0.414296 -115.85 - 3 149.906 898 2 1 0.641321 0.653367 -144.45 - 3 208.094 899 2 0 0.652303 0.664901 -145.85 - 3 189.745 900 1 1 0.88764 0.915101 -174.45 - 3 132.952 900 1 0 0.901454 0.925343 -175.85 - 3 105.719 901 0 1 1.14622 1.13363 -204.45 - 3 149.31 901 0 0 1.15251 1.15112 -205.85 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 7 + 3 110.11287 894 3 1 -0.68711692 -0.37540231 -114.45 + 3 150.82061 893 2 1 -0.89043988 -0.51920014 -144.45 + 3 145.0677 895 2 0 -0.90601357 -0.52104016 -145.85 + 3 167.1632 892 1 1 -1.2212945 -0.58366625 -174.45 + 3 116.89047 895 1 0 -1.2396211 -0.58234767 -175.85 + 3 106.33301 890 0 1 -1.6257481 -0.55847512 -204.45 + 3 422.33067 895 0 0 -1.6412489 -0.55468977 -205.85 +Number of tracker digits in this event = 4 Event: 4 -Number of tracker hits in this event = 4 - 4 132.371 895 2 1 -0.493947 -0.148863 -144.45 - 4 117.299 895 1 1 -0.542648 -0.305457 -174.45 - 4 130.773 894 0 1 -0.685222 -0.487016 -204.45 - 4 104.572 895 0 0 -0.693697 -0.49232 -205.85 +Number of tracker hits in this event = 3 + 4 161.89129 896 3 1 0.16240828 -0.24483103 -114.45 + 4 115.50853 896 2 1 0.22614001 -0.31043191 -144.45 + 4 158.94951 896 1 1 0.1504835 -0.41111728 -174.45 Number of tracker digits in this event = 2 Event: 5 -Number of tracker hits in this event = 5 - 5 111.278 895 1 1 -0.537998 0.0600891 -174.45 - 5 215.39 896 1 0 -0.546023 0.0616765 -175.85 - 5 130.205 894 0 1 -0.701573 0.0898486 -204.45 - 5 125.253 896 0 0 -0.709625 0.0961204 -205.85 - 5 3263.58 523 4 0 -171.797 -74.8668 -85.9552 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 10 + 5 206.54783 896 4 1 0.099045345 0.05780111 -84.45 + 5 176.81341 896 4 0 0.10303272 0.059157398 -85.85 + 5 156.27755 896 3 1 0.1834416 0.081268895 -114.45 + 5 124.50199 896 3 0 0.18824191 0.084872515 -115.85 + 5 206.51946 897 2 1 0.2833231 0.16747122 -144.45 + 5 183.12339 896 2 0 0.29102496 0.16656105 -145.85 + 5 243.41857 898 1 1 0.46403984 0.14001479 -174.45 + 5 118.07724 896 1 0 0.46444225 0.14132686 -175.85 + 5 126.83579 898 0 1 0.45195899 0.17238339 -204.45 + 5 115.47255 896 0 0 0.44859602 0.17007746 -205.85 +Number of tracker digits in this event = 8 Event: 6 -Number of tracker hits in this event = 2 - 6 145.325 899 1 0 -0.0854959 0.710958 -175.85 - 6 121.59 899 0 0 -0.376422 0.804248 -205.85 -Number of tracker digits in this event = 2 -Event: 7 -Number of tracker hits in this event = 8 - 7 151.154 896 5 0 -0.113925 0.0640358 -55.85 - 7 98.5116 896 4 0 -0.355879 0.107292 -85.85 - 7 148.255 895 3 1 -0.634934 0.176528 -114.45 - 7 210.912 896 3 0 -0.644977 0.172819 -115.85 - 7 159.734 894 2 1 -0.842386 0.103248 -144.45 - 7 163.313 896 2 0 -0.850276 0.0956043 -145.85 - 7 222.217 893 1 1 -1.03058 -0.0820915 -174.45 - 7 109.21 891 0 1 -1.28033 -0.276995 -204.45 -Number of tracker digits in this event = 6 -Event: 8 Number of tracker hits in this event = 7 - 8 144.555 896 5 0 -0.0806463 0.198331 -55.85 - 8 146.5 897 4 0 -0.0919819 0.35044 -85.85 - 8 164.734 899 1 0 -0.0630747 0.838292 -175.85 - 8 125.979 901 0 0 -0.073225 1.11607 -205.85 - 8 123.344 896 6 1 0.05 0.0555397 -24.6505 - 8 128.667 897 6 0 1.14784 0.284192 -25.85 - 8 370.068 896 6 0 1.29515 0.222993 -25.9416 -Number of tracker digits in this event = 7 -Event: 9 + 6 172.70129 896 4 0 -0.095312961 0.063886107 -85.85 + 6 115.52177 896 3 0 -0.20577922 0.11689806 -115.85 + 6 163.73061 896 2 0 -0.44145554 0.1167465 -145.85 + 6 116.65607 895 1 1 -0.64027588 0.15103152 -174.45 + 6 200.25734 896 1 0 -0.65087416 0.15415029 -175.85 + 6 144.42346 893 0 1 -0.8526062 0.22060053 -204.45 + 6 130.27226 896 0 0 -0.8634983 0.2237811 -205.85 +Number of tracker digits in this event = 5 +Event: 7 +Number of tracker hits in this event = 10 + 7 148.90376 897 4 1 0.29551775 0.14145381 -84.45 + 7 161.73174 896 4 0 0.306946 0.14793964 -85.85 + 7 200.62005 898 3 1 0.54688514 0.29078929 -114.45 + 7 198.8607 897 3 0 0.55675368 0.2953041 -115.85 + 7 116.14792 899 2 1 0.74759809 0.38316666 -144.45 + 7 152.09622 897 2 0 0.75736789 0.38071636 -145.85 + 7 120.37516 900 1 1 0.98158829 0.30868025 -174.45 + 7 152.1141 897 1 0 0.9904222 0.30744768 -175.85 + 7 128.83376 901 0 1 1.1853804 0.28552869 -204.45 + 7 108.52515 897 0 0 1.1963968 0.28499155 -205.85 +Number of tracker digits in this event = 8 +Event: 8 Number of tracker hits in this event = 5 - 9 161.75 894 2 1 -0.714008 -0.277767 -144.45 - 9 123.217 893 1 1 -0.920596 -0.50669 -174.45 - 9 104.949 895 1 0 -0.930228 -0.518825 -175.85 - 9 143.294 892 0 1 -1.11948 -0.752585 -204.45 - 9 104.353 894 0 0 -1.12645 -0.76993 -205.85 + 8 138.09621 896 4 1 0.18820565 -0.081207194 -84.45 + 8 131.96354 896 3 1 0.14221069 -0.13967452 -114.45 + 8 132.92854 897 2 1 0.25774818 -0.10627753 -144.45 + 8 127.19091 897 1 1 0.32526785 -0.097516494 -174.45 + 8 121.10636 897 0 1 0.37460042 -0.088110484 -204.45 +Number of tracker digits in this event = 5 +Event: 9 +Number of tracker hits in this event = 6 + 9 132.88677 895 2 1 -0.54843905 -0.45476363 -144.45 + 9 154.84842 895 2 0 -0.55563939 -0.46243536 -145.85 + 9 113.58464 894 1 1 -0.68969069 -0.63047431 -174.45 + 9 115.08585 895 1 0 -0.69173483 -0.63645641 -175.85 + 9 167.83498 894 0 1 -0.75783767 -0.76390045 -204.45 + 9 117.87752 894 0 0 -0.75903864 -0.7659895 -205.85 Number of tracker digits in this event = 3 Event: 10 Number of tracker hits in this event = 8 - 10 136.507 896 5 1 0.0698299 0.100415 -54.45 - 10 188.801 896 5 0 0.0700472 0.101891 -55.85 - 10 161.308 896 4 1 0.0640623 0.127856 -84.45 - 10 121.207 896 4 0 0.0656096 0.13122 -85.85 - 10 137.852 896 3 1 0.0887549 0.191191 -114.45 - 10 127.757 896 3 0 0.0890644 0.193688 -115.85 - 10 149.317 896 2 1 0.0901539 0.225332 -144.45 - 10 144.417 896 2 0 0.0874152 0.227118 -145.85 -Number of tracker digits in this event = 8 + 10 179.86864 896 4 1 0.15066844 -0.14359632 -84.45 + 10 146.49898 896 3 1 0.24290878 -0.39110302 -114.45 + 10 148.40968 897 2 1 0.2790275 -0.65307145 -144.45 + 10 157.0095 894 2 0 0.27633919 -0.66630992 -145.85 + 10 117.97108 896 1 1 0.1993793 -0.95581916 -174.45 + 10 114.17255 893 1 0 0.19757536 -0.97283458 -175.85 + 10 133.56372 896 0 1 0.1688957 -1.3430039 -204.45 + 10 117.35945 891 0 0 0.16456155 -1.3586592 -205.85 +Number of tracker digits in this event = 5 Event: 11 -Number of tracker hits in this event = 6 - 11 128.427 896 5 1 0.0522151 -0.060934 -54.45 - 11 115.285 896 4 1 0.0986374 -0.0866572 -84.45 - 11 143.681 896 3 1 0.18904 -0.196905 -114.45 - 11 121.64 897 2 1 0.261519 -0.307087 -144.45 - 11 210.544 897 1 1 0.268769 -0.360452 -174.45 - 11 110.861 897 0 1 0.400249 -0.289692 -204.45 -Number of tracker digits in this event = 4 -Event: 12 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 13 -Number of tracker hits in this event = 11 - 13 174.096 896 4 1 0.146586 0.148419 -84.45 - 13 145.558 896 4 0 0.152817 0.154158 -85.85 - 13 139.9 897 3 1 0.295994 0.260781 -114.45 - 13 174.112 897 3 0 0.307398 0.263805 -115.85 - 13 148.459 898 2 1 0.554761 0.323251 -144.45 - 13 121.347 897 2 0 0.566695 0.331502 -145.85 - 13 151.793 899 1 1 0.789316 0.519904 -174.45 - 13 119.969 898 1 0 0.802016 0.528775 -175.85 - 13 133.982 900 0 1 1.04924 0.682739 -204.45 - 13 474.4 901 0 1 1.05064 0.684265 -204.685 - 13 108.596 899 0 0 1.05782 0.691087 -205.85 -Number of tracker digits in this event = 9 -Event: 14 -Number of tracker hits in this event = 11 - 14 378.704 896 4 1 0.228735 -0.0805754 -84.45 - 14 125.489 897 3 1 0.26029 -0.249461 -114.45 - 14 230.376 897 2 1 0.349546 -0.355947 -144.45 - 14 487.609 897 1 1 0.40069 -0.487604 -174.45 - 14 190.317 895 1 0 0.403835 -0.492939 -175.85 - 14 137.895 898 0 1 0.465307 -0.609291 -204.45 - 14 317.392 895 0 0 0.467284 -0.613353 -205.85 - 14 64.0969 898 1 1 0.479787 -0.541988 -174.85 - 14 18.5675 870 4 0 1.32536 -5.62567 -85.85 - 14 122.991 869 4 0 1.32696 -5.65302 -85.85 - 14 8.85567 896 6 1 0.0645881 -0.05 -24.7343 -Number of tracker digits in this event = 8 -Event: 15 -Number of tracker hits in this event = 4 - 15 131.502 895 2 1 -0.55511 -0.322134 -144.45 - 15 135.125 895 1 1 -0.48706 -1.21507 -174.45 - 15 138.653 891 1 0 -0.483661 -1.25657 -175.85 - 15 118.959 887 0 0 -0.434525 -2.14055 -205.85 -Number of tracker digits in this event = 3 -Event: 16 Number of tracker hits in this event = 3 - 16 146.412 895 1 1 -0.464049 -0.383973 -174.45 - 16 153.946 894 0 1 -0.679441 -0.551433 -204.45 - 16 147.28 895 0 0 -0.692563 -0.569499 -205.85 -Number of tracker digits in this event = 3 -Event: 17 -Number of tracker hits in this event = 3 - 17 134.796 896 1 0 -0.139202 0.143146 -175.85 - 17 166.841 897 0 0 -0.22626 0.337354 -205.85 - 17 47.4615 896 6 1 0.0650163 0.05 -24.6201 + 11 144.20961 896 2 0 -0.33755155 0.12766889 -145.85 + 11 291.99852 897 1 0 -0.32454611 0.27703819 -175.85 + 11 112.5843 898 0 0 -0.33469281 0.52105358 -205.85 Number of tracker digits in this event = 2 -Event: 18 -Number of tracker hits in this event = 13 - 18 161.95 896 5 1 0.11809 0.136132 -54.45 - 18 137.178 896 5 0 0.119698 0.139695 -55.85 - 18 132.804 896 4 1 0.128833 0.218599 -84.45 - 18 127.085 896 4 0 0.130053 0.220699 -85.85 - 18 111.181 896 3 1 0.15345 0.264798 -114.45 - 18 167.448 897 3 0 0.156158 0.266716 -115.85 - 18 113.062 896 2 1 0.234014 0.308448 -144.45 - 18 259.991 897 2 0 0.239975 0.30727 -145.85 - 18 113.77 897 1 1 0.370284 0.28853 -174.45 - 18 183.564 897 1 0 0.377116 0.28757 -175.85 - 18 173.536 898 0 1 0.532728 0.282993 -204.45 - 18 148.115 897 0 0 0.541239 0.284593 -205.85 - 18 98.8131 896 2 0 0.212867 0.19083 -146.03 -Number of tracker digits in this event = 9 -Event: 19 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 20 -Number of tracker hits in this event = 11 - 20 192.009 896 4 1 0.108824 -0.233871 -84.45 - 20 144.392 896 3 1 0.12497 -0.462436 -114.45 - 20 146.26 895 3 0 0.124314 -0.47258 -115.85 - 20 186.724 896 2 1 0.131495 -0.656214 -144.45 - 20 120.728 894 2 0 0.130202 -0.659019 -145.85 - 20 137.122 896 1 1 0.103278 -0.713101 -174.45 - 20 104.369 894 1 0 0.104127 -0.720079 -175.85 - 20 155.982 896 0 1 0.134648 -0.855918 -204.45 - 20 138.039 893 0 0 0.124486 -0.860966 -205.85 - 20 117.989 906 5 0 -0.270483 2.17543 -55.85 - 20 137.966 907 5 0 -0.329153 2.26055 -55.8652 -Number of tracker digits in this event = 9 -Event: 21 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 22 -Number of tracker hits in this event = 11 - 22 177.46 896 5 1 0.115818 -0.140195 -54.45 - 22 146.614 897 4 1 0.278007 -0.444249 -84.45 - 22 345.917 895 4 0 0.283049 -0.458616 -85.85 - 22 125.128 897 3 1 0.413282 -0.763958 -114.45 - 22 109.991 894 3 0 0.419439 -0.777204 -115.85 - 22 119.952 898 2 1 0.558991 -1.05401 -144.45 - 22 123.706 892 2 0 0.564212 -1.06264 -145.85 - 22 369.414 899 1 1 0.661884 -1.2508 -174.45 - 22 148.756 891 1 0 0.666511 -1.2617 -175.85 - 22 101.193 899 0 1 0.756695 -1.49516 -204.45 - 22 124.667 890 0 0 0.760119 -1.50659 -205.85 -Number of tracker digits in this event = 8 -Event: 23 -Number of tracker hits in this event = 10 - 23 131.948 896 4 1 0.07479 0.0773817 -84.45 - 23 112.219 896 4 0 0.0756129 0.0827281 -85.85 - 23 126.285 896 3 1 0.117887 0.218107 -114.45 - 23 145.599 896 3 0 0.123109 0.225799 -115.85 - 23 105.78 896 2 1 0.232134 0.382225 -144.45 - 23 410.883 897 2 0 0.237159 0.391565 -145.85 - 23 127.674 897 1 1 0.347412 0.575808 -174.45 - 23 147.573 898 1 0 0.348631 0.587282 -175.85 - 23 208.722 897 0 1 0.436401 0.850408 -204.45 - 23 154.578 900 0 0 0.439546 0.860727 -205.85 -Number of tracker digits in this event = 8 -Event: 24 +Event: 12 +Number of tracker hits in this event = 14 + 12 132.10478 896 4 1 0.079693555 0.26700416 -84.45 + 12 128.94901 897 4 0 0.08281076 0.27165559 -85.85 + 12 350.53789 896 3 1 0.14283528 0.36268332 -114.45 + 12 123.67106 897 3 0 0.14191987 0.36802647 -115.85 + 12 136.77555 896 2 1 0.11862465 0.47034803 -144.45 + 12 143.9011 898 2 0 0.11765901 0.47211322 -145.85 + 12 182.46818 896 1 1 0.097877486 0.51608755 -174.45 + 12 150.99216 898 1 0 0.0998122 0.5115759 -175.85 + 12 164.61517 896 0 1 0.12043852 0.4084731 -204.45 + 12 152.9009 897 0 0 0.14005973 0.40543002 -205.85 + 12 87.779804 903 3 0 0.94704982 1.5964827 -115.85 + 12 89.022542 904 3 0 1.0908068 1.7469835 -115.90199 + 12 261.2893 905 3 0 1.1278747 1.8809527 -115.87643 + 12 91.685376 906 3 0 1.1973097 2.0588467 -115.95458 +Number of tracker digits in this event = 11 +Event: 13 +Number of tracker hits in this event = 15 + 13 96.12174 896 3 1 0.24146653 -0.092707345 -114.45 + 13 104.13475 897 2 1 0.26089273 -0.18849323 -144.45 + 13 115.45326 896 1 1 0.23158852 -0.3120793 -174.45 + 13 5266.6151 896 1 0 0.12429506 0.05 -176.19941 + 13 4633.9764 918 1 1 4.6116164 -1.0491064 -174.85 + 13 40.745147 925 1 1 5.8505775 -1.2394674 -174.45392 + 13 3496.4347 901 1 0 0.42841569 1.0700186 -175.9469 + 13 876.82407 905 1 0 0.53055319 1.8729736 -175.86273 + 13 8746.0749 907 1 1 2.2527014 13.321127 -174.85 + 13 10559.813 908 1 1 2.4840439 14.78964 -174.74718 + 13 408.17099 988 0 1 18.450708 -71.269702 -204.45 + 13 344.67466 525 0 0 19.192034 -74.566065 -205.85 + 13 594.43848 178 6 1 -144.37148 128.48849 -24.629792 + 13 256.92731 889 0 1 -1.7123992 6.7789453 -204.45 + 13 263.18748 931 0 0 -1.8060764 7.128928 -205.85 +Number of tracker digits in this event = 11 +Event: 14 +Number of tracker hits in this event = 5 + 14 169.5436 896 4 1 0.23267651 -0.057623837 -84.45 + 14 152.99632 898 3 1 0.48529048 -0.075823038 -114.45 + 14 156.2034 899 2 1 0.76780578 -0.24293237 -144.45 + 14 210.2196 901 1 1 1.0620371 -0.26511015 -174.45 + 14 177.50742 902 0 1 1.3463702 -0.22890499 -204.45 +Number of tracker digits in this event = 5 +Event: 15 Number of tracker hits in this event = 8 - 24 156.143 896 5 1 0.0736154 -0.139582 -54.45 - 24 168.287 896 4 1 0.143514 -0.181216 -84.45 - 24 316.567 896 3 1 0.219497 -0.282748 -114.45 - 24 236.428 896 2 1 0.235364 -0.429745 -144.45 - 24 143.731 896 1 1 0.197942 -0.508025 -174.45 - 24 217.02 895 1 0 0.194573 -0.51224 -175.85 - 24 145.537 896 0 1 0.124845 -0.584048 -204.45 - 24 113.336 895 0 0 0.124003 -0.588208 -205.85 -Number of tracker digits in this event = 7 + 15 122.46591 896 3 1 0.066490011 -0.66441131 -114.45 + 15 114.24847 894 3 0 0.068528941 -0.67955899 -115.85 + 15 179.97915 896 2 1 0.091115933 -0.96004968 -144.45 + 15 117.42193 893 2 0 0.095468758 -0.97490859 -145.85 + 15 200.03639 896 1 1 0.1659578 -1.2853484 -174.45 + 15 148.23963 891 1 0 0.17025304 -1.2992549 -175.85 + 15 112.85373 897 0 1 0.2510339 -1.5728595 -204.45 + 15 119.60959 890 0 0 0.24780487 -1.591953 -205.85 +Number of tracker digits in this event = 4 +Event: 16 +Number of tracker hits in this event = 4 + 16 123.45545 899 2 1 0.76669697 -0.16758843 -144.45 + 16 140.93187 900 1 1 0.99891727 -0.33303834 -174.45 + 16 393.10575 902 0 1 1.3832049 -0.77802305 -204.45 + 16 131.61879 894 0 0 1.4036606 -0.79633576 -205.85 +Number of tracker digits in this event = 4 +Event: 17 +Number of tracker hits in this event = 7 + 17 113.29296 896 5 1 0.12447278 0.13257602 -54.45 + 17 144.51403 896 5 0 0.12503918 0.12474055 -55.85 + 17 109.98031 896 4 1 0.13430744 -0.05 -84.456716 + 17 134.55484 896 3 1 0.12126812 -0.34104004 -114.45 + 17 151.62266 896 2 1 0.05201842 -0.70107468 -144.45 + 17 149.35722 893 1 0 -0.088293589 -1.030405 -175.85 + 17 123.22802 890 0 0 -0.46180275 -1.4528839 -205.85 +Number of tracker digits in this event = 5 +Event: 18 +Number of tracker hits in this event = 6 + 18 131.2299 896 5 0 -0.11553954 0.064858321 -55.85 + 18 106.12618 896 4 0 -0.1256046 0.12530145 -85.85 + 18 136.666 896 3 0 -0.12928407 0.2367822 -115.85 + 18 122.28774 897 2 0 -0.13960277 0.39733352 -145.85 + 18 161.87656 898 1 0 -0.14878599 0.45050816 -175.85 + 18 119.13965 898 0 0 -0.26381479 0.64421009 -205.85 +Number of tracker digits in this event = 4 +Event: 19 +Number of tracker hits in this event = 3 + 19 108.16964 897 3 0 -0.076656884 0.27630666 -115.85 + 19 132.92058 898 2 0 -0.085962043 0.45178077 -145.85 + 19 170.90762 898 1 0 -0.083384617 0.61840465 -175.85 +Number of tracker digits in this event = 2 +Event: 20 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 21 +Number of tracker hits in this event = 6 + 21 138.33924 901 2 1 1.193492 0.193573 -144.45 + 21 132.34466 896 2 0 1.2197371 0.20531632 -145.85 + 21 137.62865 904 1 1 1.7494863 0.44188701 -174.45 + 21 132.79225 898 1 0 1.7752898 0.46399466 -175.85 + 21 131.22611 907 0 1 2.2902749 0.91153854 -204.45 + 21 136.30891 900 0 0 2.3157331 0.93431244 -205.85 +Number of tracker digits in this event = 6 +Event: 22 +Number of tracker hits in this event = 9 + 22 135.32516 896 5 0 -0.093821592 0.11680516 -55.85 + 22 115.76778 896 4 0 -0.21852703 0.095422917 -85.85 + 22 138.26703 896 3 0 -0.3833843 0.12041685 -115.85 + 22 110.37167 895 2 1 -0.50708008 0.14569334 -144.45 + 22 118.24826 896 2 0 -0.51559598 0.14859785 -145.85 + 22 145.06871 894 1 1 -0.68423328 0.21311793 -174.45 + 22 138.68523 896 1 0 -0.68938121 0.2096406 -175.85 + 22 158.17821 894 0 1 -0.78440294 0.16537314 -204.45 + 22 116.36058 896 0 0 -0.78953005 0.16249032 -205.85 +Number of tracker digits in this event = 5 +Event: 23 +Number of tracker hits in this event = 5 + 23 127.09884 896 4 0 -0.05451329 0.1329277 -85.85 + 23 152.18627 896 3 0 -0.11330595 0.15585109 -115.85 + 23 380.85829 897 2 0 -0.11662449 0.31273126 -145.85 + 23 162.62852 897 1 0 -0.18138469 0.41670382 -175.85 + 23 123.8545 899 0 0 -0.12267161 0.71470349 -205.85 +Number of tracker digits in this event = 5 +Event: 24 +Number of tracker hits in this event = 11 + 24 133.15307 895 4 1 -0.52751924 -0.66933977 -84.45 + 24 142.38915 894 4 0 -0.54628819 -0.69714688 -85.85 + 24 118.83389 893 3 1 -0.93646133 -1.2651943 -114.45 + 24 173.09133 891 3 0 -0.95753978 -1.2860434 -115.85 + 24 121.94636 891 2 1 -1.3762152 -1.7073127 -144.45 + 24 206.78748 889 2 0 -1.3971189 -1.7197216 -145.85 + 24 121.65063 889 1 1 -1.8472205 -1.9917399 -174.45 + 24 131.09461 888 1 0 -1.8737609 -2.0073034 -175.85 + 24 118.99365 886 0 1 -2.4169252 -2.3059039 -204.45 + 24 282.00095 886 0 0 -2.4433763 -2.3235599 -205.85 + 24 151.87101 890 2 0 -1.4269681 -1.5993773 -146.05382 +Number of tracker digits in this event = 9 Event: 25 Number of tracker hits in this event = 7 - 25 116.687 898 2 1 0.555375 0.140757 -144.45 - 25 120.827 896 2 0 0.569426 0.150689 -145.85 - 25 130.404 900 1 1 0.867793 0.339119 -174.45 - 25 126.106 897 1 0 0.884508 0.352739 -175.85 - 25 317.217 901 0 1 1.23084 0.619105 -204.45 - 25 129.872 898 0 0 1.24345 0.634805 -205.85 - 25 279.741 902 0 1 1.43152 0.660959 -204.754 -Number of tracker digits in this event = 6 + 25 120.56039 896 3 0 -0.42984623 0.17922876 -115.85 + 25 124.76417 894 2 1 -0.71301846 0.25913066 -144.45 + 25 159.53988 897 2 0 -0.72961962 0.265101 -145.85 + 25 155.85903 892 1 1 -1.0760295 0.40225602 -174.45 + 25 124.95987 897 1 0 -1.1020353 0.39282795 -175.85 + 25 138.35791 890 0 1 -1.6433102 0.19975367 -204.45 + 25 130.25936 896 0 0 -1.6662299 0.18807755 -205.85 +Number of tracker digits in this event = 7 Event: 26 -Number of tracker hits in this event = 2 - 26 158.108 896 3 1 0.0587125 -0.242314 -114.45 - 26 123.466 896 2 1 0.0554403 -0.283532 -144.45 -Number of tracker digits in this event = 2 +Number of tracker hits in this event = 5 + 26 148.71691 896 3 1 0.10450464 -0.50184653 -114.45 + 26 190.81526 895 3 0 0.10242962 -0.51058116 -115.85 + 26 13.433485 896 2 1 0.050095716 -0.69321919 -144.45 + 26 155.43912 896 0 1 0.056043158 -0.77696793 -204.45 + 26 123.45558 894 0 0 0.054199999 -0.77501799 -205.85 +Number of tracker digits in this event = 4 Event: 27 Number of tracker hits in this event = 7 - 27 126.681 896 4 1 0.0508459 -0.168019 -84.45 - 27 156.629 896 3 1 0.0679555 -0.200343 -114.45 - 27 168.209 896 2 1 0.0950762 -0.117581 -144.45 - 27 10.0227 896 1 1 0.17202 0.05 -174.821 - 27 122.079 896 1 0 0.176367 0.0583074 -175.85 - 27 179.046 897 0 1 0.299958 0.285353 -204.45 - 27 137.51 897 0 0 0.309076 0.297624 -205.85 + 27 277.06925 895 1 1 -0.52308434 -0.064976265 -174.45 + 27 130.37707 896 0 0 -0.95268018 0.05 -205.89592 + 27 7955.6414 864 0 0 18.884652 -6.6539541 -206.25 + 27 5617.3849 997 0 1 20.293281 -6.6696211 -204.85 + 27 131.85414 894 5 0 -0.19994447 -0.70857162 -55.85 + 27 274.5177 896 5 1 0.05 -0.13109795 -54.725384 + 27 48.590855 897 5 1 0.25646525 -0.19590365 -54.690382 Number of tracker digits in this event = 6 Event: 28 -Number of tracker hits in this event = 6 - 28 118.939 896 4 1 0.0510907 0.213924 -84.45 - 28 152.077 896 4 0 0.0523338 0.223862 -85.85 - 28 115.167 896 3 1 0.0666098 0.440786 -114.45 - 28 107.266 897 3 0 0.0628845 0.448103 -115.85 - 28 114.998 899 1 0 -0.143303 0.702206 -175.85 - 28 135.488 900 0 0 -0.248834 0.851942 -205.85 -Number of tracker digits in this event = 2 +Number of tracker hits in this event = 7 + 28 245.14896 896 4 1 0.063260784 -0.14333484 -84.45 + 28 128.91971 896 3 1 0.1560651 -0.13981846 -114.45 + 28 142.60316 896 2 1 0.13910041 -0.40948429 -144.45 + 28 113.83931 896 1 1 0.11640333 -0.59945248 -174.45 + 28 131.21857 895 1 0 0.11501435 -0.60999928 -175.85 + 28 127.00972 896 0 1 0.076410957 -0.82493546 -204.45 + 28 149.2298 894 0 0 0.075551843 -0.84145205 -205.85 +Number of tracker digits in this event = 6 Event: 29 -Number of tracker hits in this event = 7 - 29 346.696 895 3 1 -0.507371 -0.325499 -114.45 - 29 192.51 894 2 1 -0.82877 -0.449249 -144.45 - 29 166.42 895 2 0 -0.841219 -0.460128 -145.85 - 29 231.149 892 1 1 -1.08336 -0.705921 -174.45 - 29 347.313 894 1 0 -1.09437 -0.713711 -175.85 - 29 115.439 891 0 1 -1.30711 -0.868413 -204.45 - 29 124.763 893 0 0 -1.31388 -0.875779 -205.85 -Number of tracker digits in this event = 6 +Number of tracker hits in this event = 4 + 29 194.34893 896 4 1 0.068564163 -0.19354278 -84.45 + 29 221.11826 896 3 1 0.10162677 -0.42895728 -114.45 + 29 152.24632 896 2 1 0.10129602 -0.69268116 -144.45 + 29 162.22853 894 2 0 0.097108695 -0.70075176 -145.85 +Number of tracker digits in this event = 4 Event: 30 -Number of tracker hits in this event = 3 - 30 113.463 896 2 0 -0.0549394 0.178292 -145.85 - 30 139.332 897 1 0 -0.117592 0.275491 -175.85 - 30 166.45 897 0 0 -0.236723 0.412362 -205.85 -Number of tracker digits in this event = 2 -Event: 31 -Number of tracker hits in this event = 6 - 31 126.881 896 4 0 -0.216582 0.121053 -85.85 - 31 226.256 896 3 0 -0.290911 0.170847 -115.85 - 31 175.901 896 2 0 -0.268234 0.163713 -145.85 - 31 234.129 896 1 0 -0.221162 0.243001 -175.85 - 31 106.908 898 0 0 -0.260205 0.502709 -205.85 - 31 210.038 897 3 0 -0.382772 0.314854 -116.195 -Number of tracker digits in this event = 5 -Event: 32 Number of tracker hits in this event = 7 - 32 192.579 896 4 1 0.173767 -0.107377 -84.45 - 32 153.941 897 3 1 0.408593 -0.110781 -114.45 - 32 131.408 900 1 1 0.93766 0.125318 -174.45 - 32 164.609 896 1 0 0.944351 0.130733 -175.85 - 32 201.211 901 0 1 1.08187 0.251209 -204.45 - 32 340.668 897 0 0 1.08724 0.257507 -205.85 - 32 36.7854 899 2 1 0.6603 0.05 -144.597 + 30 119.99705 896 3 1 0.178869 -0.25851146 -114.45 + 30 120.08389 897 2 1 0.31283484 -0.4544801 -144.45 + 30 127.06859 895 2 0 0.32206313 -0.46652124 -145.85 + 30 159.52892 898 1 1 0.53268459 -0.7115365 -174.45 + 30 120.02594 894 1 0 0.5404709 -0.72254467 -175.85 + 30 154.89872 899 0 1 0.69149941 -0.96365999 -204.45 + 30 163.33952 893 0 0 0.70049006 -0.97423154 -205.85 Number of tracker digits in this event = 6 +Event: 31 +Number of tracker hits in this event = 3 + 31 131.30453 896 4 1 0.11614748 0.069433425 -84.45 + 31 222.68725 896 4 0 0.11682362 0.066964501 -85.85 + 31 140.44785 896 2 1 0.10854525 -0.061769388 -144.45 +Number of tracker digits in this event = 3 +Event: 32 +Number of tracker hits in this event = 3 + 32 2310.0832 896 4 1 0.05 0.18220074 -84.610685 + 32 2667.5508 900 4 0 0.65872885 0.96921549 -85.85 + 32 3518.5882 901 4 0 0.75293611 1.1091069 -86.058378 +Number of tracker digits in this event = 3 Event: 33 -Number of tracker hits in this event = 14 - 33 118.335 896 5 1 0.0988059 -0.117056 -54.45 - 33 138.899 896 4 1 0.231646 -0.325764 -84.45 - 33 133.682 897 3 1 0.297925 -0.576082 -114.45 - 33 171.69 895 3 0 0.298493 -0.58876 -115.85 - 33 192.564 897 2 1 0.300978 -0.842226 -144.45 - 33 113.727 893 2 0 0.304299 -0.850036 -145.85 - 33 310.064 897 1 1 0.362304 -0.987896 -174.45 - 33 103.61 893 1 0 0.357271 -0.992652 -175.85 - 33 107.333 897 0 1 0.260274 -1.10064 -204.45 - 33 151.849 892 0 0 0.257825 -1.10122 -205.85 - 33 13.5278 587 0 0 68.4076 -62.0731 -206.25 - 33 113.442 1559 0 1 133.337 -118.898 -204.45 - 33 61.2642 1560 0 1 133.389 -118.873 -204.49 - 33 153.889 1175 9 1 55.8937 -133.509 65.3873 +Number of tracker hits in this event = 8 + 33 154.78282 896 4 1 0.085495673 -0.22130142 -84.45 + 33 127.87939 896 3 1 0.10849304 -0.35419037 -114.45 + 33 108.74985 896 2 1 0.1354707 -0.51105831 -144.45 + 33 124.52197 895 2 0 0.13591758 -0.52064363 -145.85 + 33 132.95667 896 1 1 0.15767493 -0.70240377 -174.45 + 33 178.19155 894 1 0 0.16131192 -0.70972183 -175.85 + 33 132.10524 896 0 1 0.2207932 -0.85511967 -204.45 + 33 126.31617 893 0 0 0.2239799 -0.8574002 -205.85 Number of tracker digits in this event = 7 Event: 34 -Number of tracker hits in this event = 6 - 34 117.8 896 3 0 -0.208596 0.245377 -115.85 - 34 113.618 897 2 0 -0.358249 0.345583 -145.85 - 34 183.264 895 1 1 -0.523265 0.546705 -174.45 - 34 120.06 898 1 0 -0.541117 0.555029 -175.85 - 34 130.748 893 0 1 -0.894119 0.726857 -204.45 - 34 160.357 899 0 0 -0.912128 0.731659 -205.85 -Number of tracker digits in this event = 4 -Event: 35 -Number of tracker hits in this event = 4 - 35 115.877 896 3 1 0.230193 -0.0826808 -114.45 - 35 132.723 897 2 1 0.26192 -0.0672394 -144.45 - 35 115.485 897 0 1 0.266577 0.137103 -204.45 - 35 146.658 896 0 0 0.271039 0.150276 -205.85 -Number of tracker digits in this event = 2 -Event: 36 -Number of tracker hits in this event = 10 - 36 326.474 896 4 0 -0.137464 0.245406 -85.85 - 36 162.124 897 3 0 -0.165132 0.317072 -115.85 - 36 600.261 898 2 0 -0.259799 0.48173 -145.85 - 36 115.062 899 1 0 -0.456195 0.677555 -175.85 - 36 131.539 895 0 1 -0.63006 0.975431 -204.45 - 36 157.857 900 0 0 -0.639703 0.987507 -205.85 - 36 190.865 1167 1 0 -128.303 54.4015 -176.25 - 36 184.033 252 1 1 -129.665 55.5354 -174.85 - 36 126.325 1212 2 0 -126.637 63.2596 -146.25 - 36 143.543 268 2 1 -126.387 63.4029 -144.85 -Number of tracker digits in this event = 9 -Event: 37 -Number of tracker hits in this event = 7 - 37 216.863 896 4 0 -0.238361 0.0562714 -85.85 - 37 148.664 897 3 0 -0.410043 0.280739 -115.85 - 37 140.856 899 2 0 -0.414926 0.658362 -145.85 - 37 112.856 895 1 1 -0.492649 0.981221 -174.45 - 37 120.582 900 1 0 -0.489107 0.991281 -175.85 - 37 139.156 901 0 0 -0.442375 1.1944 -205.85 - 37 112.681 896 6 1 0.05 -0.0609978 -24.587 -Number of tracker digits in this event = 5 -Event: 38 -Number of tracker hits in this event = 6 - 38 153.753 894 2 1 -0.760513 0.200409 -144.45 - 38 148.205 896 2 0 -0.769724 0.209369 -145.85 - 38 207.203 893 1 1 -0.948899 0.395863 -174.45 - 38 118.021 897 1 0 -0.956412 0.407062 -175.85 - 38 133.41 892 0 1 -1.11986 0.631322 -204.45 - 38 137.023 898 0 0 -1.12456 0.643697 -205.85 -Number of tracker digits in this event = 5 -Event: 39 -Number of tracker hits in this event = 7 - 39 111.92 895 2 0 -0.146194 -0.562257 -145.85 - 39 141.007 894 1 0 -0.290428 -0.75181 -175.85 - 39 118.08 895 0 1 -0.459287 -0.964118 -204.45 - 39 135.554 893 0 0 -0.462285 -0.974115 -205.85 - 39 295.377 1033 6 0 -26.5247 27.5254 -26.25 - 39 214.357 1034 6 0 -26.8719 27.6967 -26.1757 - 39 100.525 1103 6 0 -8.71044 41.4908 -26.25 -Number of tracker digits in this event = 4 -Event: 40 -Number of tracker hits in this event = 4 - 40 240.89 897 3 0 -0.144022 0.277982 -115.85 - 40 130.305 897 2 0 -0.272224 0.360495 -145.85 - 40 130.039 897 1 0 -0.404632 0.383116 -175.85 - 40 139.876 897 0 0 -0.428826 0.314162 -205.85 -Number of tracker digits in this event = 4 -Event: 41 -Number of tracker hits in this event = 6 - 41 143.066 896 5 1 0.17095 -0.058638 -54.45 - 41 126.843 898 4 1 0.46787 -0.0888897 -84.45 - 41 212.55 899 3 1 0.738284 -0.213066 -114.45 - 41 115.438 900 2 1 0.898932 -0.130899 -144.45 - 41 289.984 578 5 0 -71.7953 -64.0469 -56.25 - 41 109.14 577 5 0 -71.8541 -64.1431 -56.234 -Number of tracker digits in this event = 4 -Event: 42 -Number of tracker hits in this event = 12 - 42 120.028 896 5 1 0.0850108 0.0883018 -54.45 - 42 176.868 896 5 0 0.089244 0.0967314 -55.85 - 42 111.19 896 4 1 0.171352 0.272177 -84.45 - 42 166.27 897 4 0 0.1748 0.284972 -85.85 - 42 127.603 896 3 1 0.226524 0.560605 -114.45 - 42 133.575 898 3 0 0.233774 0.575028 -115.85 - 42 156.785 897 2 1 0.369443 0.863164 -144.45 - 42 130.279 900 2 0 0.370155 0.876293 -145.85 - 42 118.067 897 1 1 0.381889 1.14575 -174.45 - 42 134.062 901 1 0 0.378512 1.15764 -175.85 - 42 146.483 897 0 1 0.313253 1.39421 -204.45 - 42 329.769 902 0 0 0.312479 1.40409 -205.85 +Number of tracker hits in this event = 11 + 34 130.98349 897 5 1 0.35988145 -0.20049525 -54.45 + 34 120.33766 899 4 1 0.6565423 -0.4228683 -84.45 + 34 103.58795 900 3 1 1.0325818 -0.66147789 -114.45 + 34 136.95959 894 3 0 1.047762 -0.66712041 -115.85 + 34 165.16571 902 2 1 1.3384121 -0.80746711 -144.45 + 34 218.28518 894 2 0 1.3553625 -0.81594623 -145.85 + 34 190.37893 904 1 1 1.6809451 -0.98335738 -174.45 + 34 130.95904 893 1 0 1.6920182 -0.99117085 -175.85 + 34 179.56036 905 0 1 1.9175162 -1.1621981 -204.45 + 34 160.90031 892 0 0 1.9290831 -1.1639759 -205.85 + 34 120.91311 411 13 1 -97.839616 -111.00158 185.47193 Number of tracker digits in this event = 10 -Event: 43 -Number of tracker hits in this event = 6 - 43 87.2349 911 3 0 1.12074 3.11159 -115.85 - 43 85.5519 912 3 0 1.15697 3.25169 -115.944 - 43 413.382 913 3 0 1.20746 3.45739 -115.86 - 43 8.3898 932 3 1 7.26311 -3.31859 -114.45 - 43 49.1681 895 3 0 0.507903 -0.554748 -115.85 - 43 408.207 894 3 0 0.593125 -0.665279 -115.919 -Number of tracker digits in this event = 2 -Event: 44 +Event: 35 +Number of tracker hits in this event = 8 + 35 132.38434 897 4 1 0.31969355 -0.1241526 -84.45 + 35 126.26918 898 3 1 0.49640646 -0.18002563 -114.45 + 35 141.74256 898 2 1 0.63929906 -0.22313654 -144.45 + 35 131.80163 899 1 1 0.83273794 -0.44058216 -174.45 + 35 288.62391 895 1 0 0.84342455 -0.45326329 -175.85 + 35 529.13847 901 0 1 1.0735501 -0.68069363 -204.45 + 35 128.87389 894 0 0 1.0867234 -0.68922988 -205.85 + 35 254.69474 900 0 1 0.92538399 -0.69089248 -204.73995 +Number of tracker digits in this event = 8 +Event: 36 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 37 +Number of tracker hits in this event = 9 + 37 131.1265 896 3 1 0.081452359 -0.20655025 -114.45 + 37 142.65039 896 2 1 0.13892538 -0.38432867 -144.45 + 37 137.283 896 1 1 0.18683306 -0.63360925 -174.45 + 37 280.03233 895 1 0 0.18845648 -0.64446576 -175.85 + 37 173.52899 896 0 1 0.21847592 -0.88251982 -204.45 + 37 124.44408 893 0 0 0.22296047 -0.89473496 -205.85 + 37 268.68871 627 3 0 -74.423082 -54.17054 -116.05705 + 37 47.497495 626 3 0 -74.487279 -54.291462 -115.9606 + 37 70.318218 896 5 1 0.05 0.092241608 -54.579998 +Number of tracker digits in this event = 7 +Event: 38 +Number of tracker hits in this event = 4 + 38 151.31783 895 3 0 -0.24946259 -0.61040205 -115.85 + 38 129.98915 893 2 0 -0.23044308 -0.9169387 -145.85 + 38 116.71681 891 1 0 -0.15078742 -1.3071069 -175.85 + 38 155.20414 889 0 0 -0.10758391 -1.7264508 -205.85 +Number of tracker digits in this event = 3 +Event: 39 Number of tracker hits in this event = 3 - 44 124.399 897 2 0 0.336132 0.411982 -145.85 - 44 75.0437 898 2 0 0.469871 0.639108 -146.085 - 44 330.12 782 2 0 -6.84277 -23.1594 -146.25 -Number of tracker digits in this event = 2 -Event: 45 -Number of tracker hits in this event = 5 - 45 141.647 895 2 1 -0.554901 -0.361903 -144.45 - 45 126.513 894 1 1 -0.832567 -0.616476 -174.45 - 45 153.44 895 1 0 -0.835958 -0.6282 -175.85 - 45 132.915 893 0 1 -0.921582 -0.866775 -204.45 - 45 156.021 893 0 0 -0.929784 -0.878261 -205.85 -Number of tracker digits in this event = 5 -Event: 46 + 39 128.6399 896 2 1 0.095150024 -0.19581996 -144.45 + 39 149.62464 897 1 1 0.25947362 -0.20333098 -174.45 + 39 134.28203 898 0 1 0.48905211 -0.24292537 -204.45 +Number of tracker digits in this event = 3 +Event: 40 Number of tracker hits in this event = 7 - 46 117.835 896 4 1 0.100796 -0.0822673 -84.45 - 46 130.566 896 3 1 0.155163 -0.124886 -114.45 - 46 143.596 896 2 1 0.24924 -0.122076 -144.45 - 46 135.216 897 1 1 0.265228 -0.113029 -174.45 - 46 72.5918 903 5 0 -1.65892 1.64583 -55.85 - 46 143.18 904 5 0 -1.70781 1.76761 -55.9224 - 46 273.633 905 5 0 -1.83598 1.88071 -55.9464 + 40 201.52877 896 5 0 -0.10796111 0.1020601 -55.85 + 40 169.27576 897 4 0 -0.23702572 0.3632541 -85.85 + 40 141.87245 899 3 0 -0.3378436 0.6674045 -115.85 + 40 130.01355 900 2 0 -0.34458285 0.93974567 -145.85 + 40 179.31125 901 1 0 -0.29069869 1.1142023 -175.85 + 40 105.24862 902 0 0 -0.20913508 1.3075237 -205.85 + 40 15.670025 818 5 0 -33.214393 -15.943375 -56.25 Number of tracker digits in this event = 5 -Event: 47 -Number of tracker hits in this event = 5 - 47 117.563 895 2 0 -0.430542 -0.56787 -145.85 - 47 133.093 895 1 1 -0.617775 -0.769154 -174.45 - 47 151.326 894 1 0 -0.632714 -0.77762 -175.85 - 47 161.418 893 0 1 -0.924503 -0.965986 -204.45 - 47 120.115 893 0 0 -0.939955 -0.969449 -205.85 -Number of tracker digits in this event = 4 -Event: 48 -Number of tracker hits in this event = 18 - 48 142.593 896 4 0 0.0536454 0.113109 -85.85 - 48 141.894 896 3 1 0.173848 0.225179 -114.45 - 48 277.458 896 3 0 0.182257 0.223777 -115.85 - 48 118.261 897 2 1 0.338834 0.154389 -144.45 - 48 106.623 896 2 0 0.348894 0.151377 -145.85 - 48 126.961 898 1 1 0.534814 0.0866001 -174.45 - 48 146.207 896 1 0 0.543583 0.0839957 -175.85 - 48 108.37 443 1 0 -103.316 -91.4658 -176.112 - 48 162.021 381 1 1 -103.82 -92.2908 -174.85 - 48 40.925 975 0 1 16.0136 -154.696 -204.84 - 48 188.273 928 1 0 1.92239 6.5158 -176.25 - 48 15.0174 927 1 0 1.94265 6.38835 -175.896 - 48 499.587 908 1 1 2.64053 4.88483 -174.85 - 48 352.392 909 1 1 2.6902 4.69011 -174.518 - 48 77.6862 910 1 1 2.86128 4.39052 -174.499 - 48 315.347 1047 1 0 -57.5883 30.3732 -176.25 - 48 246.545 597 1 1 -60.2396 31.2513 -174.85 - 48 51.9481 897 3 0 0.224274 0.263234 -116.193 -Number of tracker digits in this event = 11 -Event: 49 -Number of tracker hits in this event = 5 - 49 119.962 892 2 1 -1.07066 0.141546 -144.45 - 49 103.279 896 2 0 -1.0335 0.190207 -145.85 - 49 140.175 901 1 0 -0.237421 1.23431 -175.85 - 49 118.097 898 0 1 0.525737 2.11873 -204.45 - 49 112.052 906 0 0 0.565965 2.16728 -205.85 +Event: 41 +Number of tracker hits in this event = 8 + 41 239.90821 896 5 0 -0.10947341 0.10478975 -55.85 + 41 139.37069 897 4 0 -0.18610793 0.36912484 -85.85 + 41 176.0491 899 3 0 -0.27225919 0.66466347 -115.85 + 41 110.5429 900 2 0 -0.35629024 0.9755189 -145.85 + 41 133.33038 902 1 1 1.3844445 2.0236915 -174.45 + 41 131.48318 906 1 0 1.4695559 2.0778165 -175.85 + 41 266.43232 911 0 1 3.2035809 3.1822751 -204.45 + 41 129.75268 911 0 0 3.2843045 3.2364905 -205.85 +Number of tracker digits in this event = 7 +Event: 42 +Number of tracker hits in this event = 3 + 42 122.6339 897 2 1 0.38597742 -0.1072073 -144.45 + 42 139.66096 896 1 1 0.23977887 -0.19215961 -174.45 + 42 155.50393 896 0 1 0.15862555 -0.28471769 -204.45 +Number of tracker digits in this event = 3 +Event: 43 +Number of tracker hits in this event = 1 + 43 128.03022 896 2 0 -0.22389821 0.051721534 -145.85 Number of tracker digits in this event = 1 +Event: 44 +Number of tracker hits in this event = 9 + 44 203.60079 883 3 1 -2.9348619 1.7170441 -114.45 + 44 131.73368 904 3 0 -3.0602329 1.8055624 -115.85 + 44 112.15555 870 2 1 -5.6225959 3.6109903 -144.45 + 44 141.21434 914 2 0 -5.7603333 3.7109087 -145.85 + 44 153.16796 855 1 1 -8.577793 5.7366059 -174.45 + 44 148.41216 924 1 0 -8.7121828 5.8339514 -175.85 + 44 94.20955 841 0 1 -11.445333 7.8300181 -204.45 + 44 87.211861 840 0 1 -11.468085 7.8466708 -204.68819 + 44 178.32965 935 0 0 -11.580692 7.9286437 -205.85 +Number of tracker digits in this event = 6 +Event: 45 +Number of tracker hits in this event = 12 + 45 144.90774 895 4 1 -0.56670325 -0.36598503 -84.45 + 45 175.64425 893 3 1 -0.95926021 -0.48728847 -114.45 + 45 118.08063 895 3 0 -0.97850027 -0.4943973 -115.85 + 45 146.00981 891 2 1 -1.3540189 -0.63392636 -144.45 + 45 146.22224 895 2 0 -1.3727509 -0.6433147 -145.85 + 45 295.87047 889 1 1 -1.7642108 -0.82390908 -174.45 + 45 155.44487 894 1 0 -1.7805752 -0.82828208 -175.85 + 45 240.22272 887 0 1 -2.112622 -0.90531179 -204.45 + 45 125.24468 893 0 0 -2.1269038 -0.9098455 -205.85 + 45 92.101933 886 0 1 -2.3782572 -0.87371582 -204.52367 + 45 103.90819 885 0 1 -2.5757511 -0.91168781 -204.66623 + 45 107.43144 884 0 1 -2.6763572 -0.93612007 -204.58734 +Number of tracker digits in this event = 8 +Event: 46 +Number of tracker hits in this event = 4 + 46 159.45628 896 4 1 0.22755785 0.068895962 -84.45 + 46 122.20281 896 4 0 0.23616794 0.065933605 -85.85 + 46 121.00885 898 1 1 0.536185 -0.092873696 -174.45 + 46 157.69504 898 0 1 0.55086417 -0.15573709 -204.45 +Number of tracker digits in this event = 4 +Event: 47 +Number of tracker hits in this event = 2 + 47 123.40891 896 3 0 -0.11044642 0.17257119 -115.85 + 47 130.89644 895 0 0 -0.059466321 -0.55882047 -205.85 +Number of tracker digits in this event = 2 +Event: 48 +Number of tracker hits in this event = 8 + 48 138.05046 896 3 1 0.081031456 0.38628599 -114.45 + 48 116.42882 897 3 0 0.080137889 0.39890654 -115.85 + 48 289.55448 896 2 1 0.065505749 0.66464967 -144.45 + 48 207.18869 899 2 0 0.065259718 0.67692734 -145.85 + 48 121.91672 896 1 1 0.070122923 0.9189426 -174.45 + 48 82.11965 900 1 0 0.053407403 0.93450234 -175.85 + 48 174.6949 902 0 0 -0.33336487 1.2697858 -205.85 + 48 8.4985049 898 2 0 0.083949366 0.64446514 -146.24546 +Number of tracker digits in this event = 5 +Event: 49 +Number of tracker hits in this event = 6 + 49 100.65716 896 3 0 -0.26885036 0.084580508 -115.85 + 49 126.95326 896 2 0 -0.39184202 0.14574202 -145.85 + 49 177.3174 895 1 1 -0.54593639 0.16375182 -174.45 + 49 129.99071 896 1 0 -0.56057233 0.16794137 -175.85 + 49 208.33682 893 0 1 -0.88864544 0.27035903 -204.45 + 49 132.72446 897 0 0 -0.90140097 0.27640614 -205.85 +Number of tracker digits in this event = 5 Event: 50 -Number of tracker hits in this event = 5 - 50 119.774 896 4 1 0.176019 -0.141293 -84.45 - 50 148.79 897 3 1 0.4305 -0.16345 -114.45 - 50 224.612 899 2 1 0.721146 -0.135828 -144.45 - 50 39.6763 264 6 1 -127.209 -108.657 -24.85 - 50 138.728 896 6 0 -0.167991 0.05 -25.9775 +Number of tracker hits in this event = 4 + 50 121.99792 894 1 1 -0.73525075 -0.39432304 -174.45 + 50 156.10726 892 0 1 -1.1137186 -0.42360525 -204.45 + 50 155.84697 895 2 1 -0.51761381 -0.32312287 -144.65453 + 50 95.475299 902 3 0 2.7535099 1.2943469 -115.85 Number of tracker digits in this event = 3 Event: 51 -Number of tracker hits in this event = 10 - 51 244.106 896 4 1 0.0638553 0.183941 -84.45 - 51 143.405 896 4 0 0.0731955 0.192196 -85.85 - 51 218.2 897 3 1 0.259071 0.357081 -114.45 - 51 141.793 897 3 0 0.266519 0.363476 -115.85 - 51 154.552 897 2 1 0.436464 0.468823 -144.45 - 51 158.557 898 2 0 0.441917 0.476052 -145.85 - 51 125.172 898 1 1 0.563675 0.62132 -174.45 - 51 135.893 898 1 0 0.566117 0.628429 -175.85 - 51 117.931 898 0 1 0.586795 0.775527 -204.45 - 51 134.585 899 0 0 0.588893 0.779148 -205.85 -Number of tracker digits in this event = 9 +Number of tracker hits in this event = 6 + 51 113.64253 896 2 1 0.12222524 0.13870479 -144.45 + 51 175.59866 896 2 0 0.12512633 0.1465279 -145.85 + 51 197.21836 896 1 1 0.18194749 0.31384431 -174.45 + 51 129.53608 897 1 0 0.18713706 0.32074591 -175.85 + 51 132.97141 897 0 1 0.2918285 0.45496555 -204.45 + 51 201.0582 898 0 0 0.29749066 0.45884397 -205.85 +Number of tracker digits in this event = 5 Event: 52 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 6 + 52 192.60777 896 3 1 0.22316986 0.23490866 -114.45 + 52 131.87176 896 3 0 0.22410374 0.24401801 -115.85 + 52 123.74863 896 2 1 0.22218571 0.41529044 -144.45 + 52 144.69474 897 2 0 0.20909726 0.42534247 -145.85 + 52 146.86951 899 1 0 -0.14856884 0.67174362 -175.85 + 52 125.00402 900 0 0 -0.45081132 0.92815044 -205.85 +Number of tracker digits in this event = 6 Event: 53 -Number of tracker hits in this event = 1 - 53 140.304 897 3 1 0.305889 -0.0602008 -114.45 -Number of tracker digits in this event = 1 -Event: 54 -Number of tracker hits in this event = 4 - 54 150.394 896 4 0 -0.0595916 0.0969633 -85.85 - 54 143.083 896 3 0 -0.0770815 0.101454 -115.85 - 54 120.539 896 1 0 -0.0502797 0.221799 -175.85 - 54 113.657 897 0 0 -0.155182 0.257817 -205.85 -Number of tracker digits in this event = 3 -Event: 55 -Number of tracker hits in this event = 9 - 55 129.729 896 5 1 0.054019 -0.0627238 -54.45 - 55 119.733 896 4 1 0.225576 -0.177641 -84.45 - 55 127.799 897 3 1 0.351342 -0.411737 -114.45 - 55 173.016 898 2 1 0.564025 -0.680677 -144.45 - 55 115.613 894 2 0 0.576332 -0.693712 -145.85 - 55 134.953 899 1 1 0.820775 -0.959124 -174.45 - 55 126.427 893 1 0 0.835489 -0.974029 -175.85 - 55 132.028 901 0 1 1.15054 -1.27401 -204.45 - 55 418.139 891 0 0 1.16524 -1.29189 -205.85 -Number of tracker digits in this event = 7 -Event: 56 -Number of tracker hits in this event = 9 - 56 202.42 896 5 0 -0.119917 0.0503235 -55.85 - 56 140.751 896 4 0 -0.237658 0.0795586 -85.85 - 56 144.149 896 3 0 -0.441128 0.150153 -115.85 - 56 154.806 894 2 1 -0.689608 0.275422 -144.45 - 56 145.863 897 2 0 -0.702224 0.284134 -145.85 - 56 146.84 893 1 1 -0.944838 0.466699 -174.45 - 56 126.118 898 1 0 -0.960273 0.475756 -175.85 - 56 180.284 891 0 1 -1.276 0.68951 -204.45 - 56 118.4 899 0 0 -1.29258 0.700976 -205.85 -Number of tracker digits in this event = 8 -Event: 57 -Number of tracker hits in this event = 11 - 57 182.748 896 5 0 -0.0509891 0.113276 -55.85 - 57 169.264 896 4 1 0.104599 0.174507 -84.45 - 57 119.848 896 4 0 0.113297 0.17893 -85.85 - 57 138.202 897 3 1 0.293695 0.25856 -114.45 - 57 199.491 897 3 0 0.29894 0.260693 -115.85 - 57 119.131 897 2 1 0.389349 0.299043 -144.45 - 57 130.259 897 2 0 0.391832 0.306636 -145.85 - 57 243.366 898 1 1 0.454578 0.482559 -174.45 - 57 142.475 898 1 0 0.457352 0.487476 -175.85 - 57 129.93 898 0 1 0.510661 0.588 -204.45 - 57 114.217 898 0 0 0.513842 0.590595 -205.85 -Number of tracker digits in this event = 8 -Event: 58 Number of tracker hits in this event = 10 - 58 126.307 896 5 0 -0.116713 0.0769107 -55.85 - 58 128.679 896 4 0 -0.321498 0.138502 -85.85 - 58 123.341 895 3 1 -0.582549 0.240305 -114.45 - 58 116.485 896 3 0 -0.590785 0.243512 -115.85 - 58 151.543 894 2 1 -0.762245 0.299502 -144.45 - 58 127.087 897 2 0 -0.771709 0.302111 -145.85 - 58 132.6 893 1 1 -0.976716 0.381857 -174.45 - 58 213.088 897 1 0 -0.985925 0.382806 -175.85 - 58 148.276 892 0 1 -1.18728 0.390457 -204.45 - 58 147.974 897 0 0 -1.19467 0.394115 -205.85 + 53 160.44775 896 5 1 0.065231174 -0.063401954 -54.45 + 53 145.53422 896 4 1 0.1961946 -0.24565306 -84.45 + 53 115.70776 897 3 1 0.28897752 -0.56286074 -114.45 + 53 188.98591 895 3 0 0.29229974 -0.57906533 -115.85 + 53 128.93523 897 2 1 0.36507842 -0.93840244 -144.45 + 53 129.1452 893 2 0 0.36609579 -0.95507132 -145.85 + 53 279.62741 897 1 1 0.3663812 -1.2706674 -174.45 + 53 127.6703 891 1 0 0.36880294 -1.2848711 -175.85 + 53 145.4332 897 0 1 0.41909747 -1.5978737 -204.45 + 53 135.69122 890 0 0 0.42007123 -1.6092412 -205.85 Number of tracker digits in this event = 9 -Event: 59 +Event: 54 Number of tracker hits in this event = 8 - 59 149.915 896 3 1 0.117692 0.284263 -114.45 - 59 136.155 897 3 0 0.125087 0.290579 -115.85 - 59 774.444 897 2 1 0.290524 0.413041 -144.45 - 59 144.193 897 2 0 0.300799 0.418516 -145.85 - 59 134.491 898 1 1 0.528305 0.538075 -174.45 - 59 169.527 898 1 0 0.535754 0.542686 -175.85 - 59 129.447 899 0 1 0.69899 0.650228 -204.45 - 59 128.741 899 0 0 0.706293 0.659417 -205.85 + 54 147.46107 896 4 1 0.13421172 -0.22684194 -84.45 + 54 144.5743 896 3 1 0.18229107 -0.43060408 -114.45 + 54 153.75591 897 2 1 0.26302538 -0.66290099 -144.45 + 54 130.34836 894 2 0 0.26701082 -0.67734696 -145.85 + 54 145.73723 897 1 1 0.36035702 -0.95846718 -174.45 + 54 121.60546 893 1 0 0.36417066 -0.96762571 -175.85 + 54 165.47358 897 0 1 0.43659462 -1.1373798 -204.45 + 54 188.62739 892 0 0 0.42959622 -1.1474992 -205.85 +Number of tracker digits in this event = 8 +Event: 55 +Number of tracker hits in this event = 11 + 55 152.74092 896 4 1 0.088137435 0.22966422 -84.45 + 55 147.7519 896 4 0 0.067164942 0.24432961 -85.85 + 55 141.00165 898 3 0 -0.38364411 0.56079529 -115.85 + 55 212.3539 894 2 1 -0.78371379 0.8139077 -144.45 + 55 126.00189 899 2 0 -0.81360104 0.82658272 -145.85 + 55 114.90024 891 1 1 -1.4275712 1.0902854 -174.45 + 55 157.9221 901 1 0 -1.4586869 1.0985274 -175.85 + 55 225.06489 887 0 1 -2.0603604 1.2705508 -204.45 + 55 127.70969 902 0 0 -2.0900613 1.2787639 -205.85 + 55 138.54659 903 4 0 0.93765621 1.5289158 -85.85 + 55 83.124405 904 4 0 1.0313223 1.6745553 -85.931272 +Number of tracker digits in this event = 9 +Event: 56 +Number of tracker hits in this event = 3 + 56 118.76072 896 4 0 -0.11042112 0.054595911 -85.85 + 56 126.13035 896 3 0 -0.14011171 0.082805674 -115.85 + 56 209.93001 896 0 0 0.27298155 0.05312767 -205.85 +Number of tracker digits in this event = 2 +Event: 57 +Number of tracker hits in this event = 7 + 57 201.19272 896 5 1 0.13587182 0.075315348 -54.45 + 57 134.37462 896 5 0 0.14188031 0.076310698 -55.85 + 57 158.75085 896 4 1 0.24581101 0.081459188 -84.45 + 57 181.73523 896 4 0 0.2544534 0.081101413 -85.85 + 57 146.4374 898 2 1 0.60962301 -0.071604416 -144.45 + 57 177.30599 899 1 1 0.83425882 -0.20622634 -174.45 + 57 195.9439 900 0 1 0.98950588 -0.37284224 -204.45 +Number of tracker digits in this event = 7 +Event: 58 +Number of tracker hits in this event = 9 + 58 111.05875 896 5 1 0.12289403 -0.10637041 -54.45 + 58 98.791006 896 4 1 0.066010822 -0.19403186 -84.45 + 58 122.31439 896 3 1 0.13430669 -0.42086658 -114.45 + 58 145.04363 897 2 1 0.26403816 -0.71731203 -144.45 + 58 165.14716 894 2 0 0.27381321 -0.73526653 -145.85 + 58 214.44841 898 1 1 0.46798947 -1.091692 -174.45 + 58 133.40572 892 1 0 0.47494405 -1.1121535 -175.85 + 58 170.80609 899 0 1 0.6534878 -1.5129373 -204.45 + 58 147.71371 890 0 0 0.66199737 -1.5352535 -205.85 +Number of tracker digits in this event = 7 +Event: 59 +Number of tracker hits in this event = 11 + 59 119.50291 897 4 1 0.35490954 0.098287916 -84.45 + 59 132.77585 896 4 0 0.36831365 0.10120096 -85.85 + 59 141.50661 898 3 1 0.6287377 0.16120354 -114.45 + 59 110.08204 896 3 0 0.64426346 0.16566778 -115.85 + 59 290.01609 900 2 1 0.94514004 0.26431442 -144.45 + 59 197.47023 897 2 0 0.96069744 0.27874767 -145.85 + 59 209.47319 902 1 1 1.2962357 0.58366611 -174.45 + 59 314.13704 898 1 0 1.3130769 0.59922933 -175.85 + 59 147.90378 904 0 1 1.6612615 0.9221084 -204.45 + 59 531.92145 900 0 0 1.6796471 0.93915894 -205.85 + 59 68.034233 901 0 0 2.0983223 1.0826564 -206.10546 Number of tracker digits in this event = 8 Event: 60 -Number of tracker hits in this event = 17 - 60 158.239 895 5 1 -0.544266 -0.479164 -54.45 - 60 127.269 895 5 0 -0.569793 -0.506391 -55.85 - 60 365.932 892 4 1 -1.09585 -1.05149 -84.45 - 60 113.536 892 4 0 -1.12216 -1.07963 -85.85 - 60 141.05 889 3 1 -1.67282 -1.64895 -114.45 - 60 106.191 889 3 0 -1.69893 -1.678 -115.85 - 60 182.559 887 2 1 -2.23515 -2.26822 -144.45 - 60 232.111 886 2 0 -2.26132 -2.29761 -145.85 - 60 323.134 884 1 1 -2.79103 -2.90778 -174.45 - 60 151.792 883 1 0 -2.8157 -2.93652 -175.85 - 60 125.28 881 0 1 -3.29658 -3.52865 -204.45 - 60 128.724 880 0 0 -3.31672 -3.56012 -205.85 - 60 141.374 886 1 1 -2.27645 -3.02336 -174.452 - 60 129.374 889 1 1 -1.77259 -3.10286 -174.471 - 60 220.83 891 1 1 -1.33896 -2.95219 -174.476 - 60 204.42 892 1 1 -1.13303 -2.99858 -174.458 - 60 201.244 893 1 1 -1.0029 -3.0108 -174.501 -Number of tracker digits in this event = 15 +Number of tracker hits in this event = 9 + 60 143.63498 895 3 1 -0.4953507 -0.55686133 -114.45 + 60 113.95823 895 3 0 -0.51196486 -0.56620996 -115.85 + 60 156.87957 893 2 1 -0.86532756 -0.7545112 -144.45 + 60 129.84898 894 2 0 -0.88436605 -0.76144632 -145.85 + 60 112.98051 891 1 1 -1.290182 -0.90184266 -174.45 + 60 145.03189 893 1 0 -1.3094468 -0.90598859 -175.85 + 60 117.89366 889 0 1 -1.6956608 -0.984449 -204.45 + 60 123.12704 893 0 0 -1.7222104 -0.99366893 -205.85 + 60 52.605433 896 5 1 0.05 -0.14851172 -54.778328 +Number of tracker digits in this event = 5 Event: 61 -Number of tracker hits in this event = 1 - 61 105.4 896 3 1 0.05 -0.112503 -114.747 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 7 + 61 126.84345 896 4 1 0.12789683 -0.09072659 -84.45 + 61 123.10708 896 3 1 0.19822666 -0.17898098 -114.45 + 61 153.91227 897 2 1 0.35906487 -0.34180078 -144.45 + 61 118.38069 898 1 1 0.46283972 -0.57720131 -174.45 + 61 128.20723 895 1 0 0.47029993 -0.58925646 -175.85 + 61 155.5805 898 0 1 0.62399017 -0.84614485 -204.45 + 61 140.99097 893 0 0 0.63095842 -0.8589598 -205.85 +Number of tracker digits in this event = 6 Event: 62 Number of tracker hits in this event = 8 - 62 102.221 895 3 1 -0.498097 -0.260427 -114.45 - 62 153.233 895 2 1 -0.610236 -0.302919 -144.45 - 62 118.007 894 1 1 -0.760276 -0.308323 -174.45 - 62 496.213 894 0 1 -0.819375 -0.317304 -204.45 - 62 59.552 897 0 0 -1.53741 0.26062 -205.85 - 62 125.844 896 0 0 -1.57637 0.221616 -205.925 - 62 76.2235 1539 2 0 7.97322 129.344 -146.25 - 62 299.248 1540 2 0 7.98719 129.455 -146.184 -Number of tracker digits in this event = 4 + 62 123.89415 896 3 1 0.24138081 0.0570384 -114.45 + 62 215.52865 896 3 0 0.2482672 0.061429505 -115.85 + 62 121.86895 897 2 1 0.38108083 0.16069308 -144.45 + 62 112.89612 896 2 0 0.38682154 0.17085322 -145.85 + 62 147.73804 898 1 1 0.49691028 0.38690175 -174.45 + 62 112.17177 897 1 0 0.50239809 0.40147567 -175.85 + 62 133.43414 898 0 1 0.61076815 0.70025091 -204.45 + 62 116.77887 899 0 0 0.61199868 0.71903801 -205.85 +Number of tracker digits in this event = 5 Event: 63 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 64 -Number of tracker hits in this event = 11 - 64 229.642 896 5 1 0.136162 -0.128129 -54.45 - 64 133.325 897 4 1 0.256061 -0.297945 -84.45 - 64 134.48 898 3 1 0.511659 -0.508521 -114.45 - 64 115.061 895 3 0 0.524927 -0.510747 -115.85 - 64 141.962 899 2 1 0.79601 -0.563888 -144.45 - 64 140.182 895 2 0 0.812009 -0.561693 -145.85 - 64 149.493 901 1 1 1.12079 -0.531793 -174.45 - 64 147.331 895 1 0 1.13352 -0.532662 -175.85 - 64 123.004 902 0 1 1.37508 -0.547962 -204.45 - 64 120.429 895 0 0 1.38914 -0.556109 -205.85 - 64 169.001 891 5 0 -0.293338 -1.31843 -55.85 -Number of tracker digits in this event = 10 -Event: 65 -Number of tracker hits in this event = 3 - 65 114.783 899 2 0 -0.0727324 0.670403 -145.85 - 65 116.776 900 1 0 -0.118369 0.921078 -175.85 - 65 124.778 900 0 0 -0.106708 1.01478 -205.85 -Number of tracker digits in this event = 1 -Event: 66 -Number of tracker hits in this event = 2 - 66 135.296 903 1 1 1.53102 -0.0636398 -174.45 - 66 187.637 904 0 1 1.81815 -0.15757 -204.45 -Number of tracker digits in this event = 2 -Event: 67 -Number of tracker hits in this event = 7 - 67 131.157 896 5 1 0.0783589 0.105405 -54.45 - 67 157.187 896 5 0 0.0765189 0.110148 -55.85 - 67 153.677 897 2 0 -0.0798747 0.303605 -145.85 - 67 317.137 896 1 1 0.0692383 0.28692 -174.45 - 67 151.215 897 1 0 0.0741596 0.28926 -175.85 - 67 174.9 896 0 1 0.194614 0.348622 -204.45 - 67 162.768 897 0 0 0.200109 0.348899 -205.85 -Number of tracker digits in this event = 7 -Event: 68 -Number of tracker hits in this event = 1 - 68 157.255 894 0 0 -0.315294 -0.697981 -205.85 -Number of tracker digits in this event = 1 -Event: 69 -Number of tracker hits in this event = 4 - 69 123.752 897 3 0 -0.0992464 0.372076 -115.85 - 69 117.859 898 2 0 -0.196504 0.589852 -145.85 - 69 138.225 900 1 0 -0.19 0.860397 -175.85 - 69 140.962 901 0 0 -0.230403 1.21308 -205.85 +Number of tracker hits in this event = 5 + 63 139.19069 897 1 1 0.33171663 0.11709819 -174.45 + 63 171.90112 896 1 0 0.34189975 0.11506792 -175.85 + 63 100.52361 898 0 1 0.54391824 0.078208158 -204.45 + 63 527.5068 896 0 0 0.55074679 0.07755587 -205.85 + 63 104.89598 897 0 0 0.4506956 0.28295197 -206.24035 Number of tracker digits in this event = 3 +Event: 64 +Number of tracker hits in this event = 12 + 64 121.46752 896 5 1 0.17557195 0.075260823 -54.45 + 64 114.67365 896 5 0 0.1851169 0.080601566 -55.85 + 64 102.31758 897 4 1 0.40231769 0.17896203 -84.45 + 64 156.41838 896 4 0 0.41347169 0.18337217 -85.85 + 64 124.3318 899 3 1 0.65693092 0.27878858 -114.45 + 64 125.0016 897 3 0 0.66791138 0.28595415 -115.85 + 64 141.7345 900 2 1 0.88693195 0.43917271 -144.45 + 64 106.26456 897 2 0 0.89971931 0.44660062 -145.85 + 64 128.9123 901 1 1 1.1436632 0.59468558 -174.45 + 64 174.5073 898 1 0 1.1542133 0.59618004 -175.85 + 64 109.29346 902 0 1 1.3550468 0.61197439 -204.45 + 64 102.98451 898 0 0 1.3699115 0.61520973 -205.85 +Number of tracker digits in this event = 7 +Event: 65 +Number of tracker hits in this event = 13 + 65 195.39792 896 4 1 0.11356988 -0.18010852 -84.45 + 65 224.35305 896 3 1 0.22468611 -0.25884954 -114.45 + 65 362.86975 897 2 1 0.29476524 -0.40773879 -144.45 + 65 181.97845 897 1 1 0.34236194 -0.50916155 -174.45 + 65 181.93851 895 1 0 0.34407336 -0.51329706 -175.85 + 65 391.55025 897 0 1 0.3678643 -0.57721665 -204.45 + 65 122.27883 895 0 0 0.36236079 -0.57700934 -205.85 + 65 148.24529 906 0 0 -1.9421963 2.13164 -205.85 + 65 82.071265 887 0 1 -2.1340891 1.1383354 -204.85 + 65 66.943354 888 0 1 -2.0483392 1.0969086 -204.83994 + 65 42.683942 902 0 0 -2.7948285 1.4388309 -205.85 + 65 147.51805 895 2 0 -0.12762413 -0.64065427 -145.85 + 65 41.906249 896 2 1 0.23605198 -0.44306304 -144.47246 +Number of tracker digits in this event = 9 +Event: 66 +Number of tracker hits in this event = 7 + 66 135.08345 896 5 0 0.077157683 0.051379004 -55.85 + 66 135.42931 896 4 1 0.14201971 0.1256003 -84.45 + 66 213.36569 896 4 0 0.14463816 0.12549572 -85.85 + 66 153.18798 896 3 1 0.20856752 0.089221368 -114.45 + 66 121.57449 896 3 0 0.2115062 0.084344522 -115.85 + 66 200.59084 897 1 1 0.43849727 -0.14948671 -174.45 + 66 163.01771 898 0 1 0.54373268 -0.26303387 -204.45 +Number of tracker digits in this event = 7 +Event: 67 +Number of tracker hits in this event = 17 + 67 133.12445 896 5 1 0.05859348 -0.075365492 -54.45 + 67 134.13929 896 4 1 0.16892759 -0.16475667 -84.45 + 67 124.91291 897 3 1 0.43776485 -0.25695757 -114.45 + 67 155.22611 898 2 1 0.54933303 -0.28963074 -144.45 + 67 239.48794 898 1 1 0.57013177 -0.24236575 -174.45 + 67 189.88701 896 1 0 -0.080543436 0.13492593 -175.85 + 67 260.32918 831 0 1 -13.333493 7.8637175 -204.45 + 67 170.08926 936 0 0 -13.986229 8.2292253 -205.85 + 67 3314.4759 1150 2 0 -67.089331 50.927306 -146.25 + 67 3907.9754 545 2 1 -70.466631 53.431614 -144.85 + 67 4129.3041 1375 3 0 -132.29344 96.466847 -116.25 + 67 4304.6991 224 3 1 -135.27599 98.558578 -114.85 + 67 88.575175 1174 1 1 55.823345 -21.535792 -174.71265 + 67 53.905229 689 0 0 152.24726 -41.667711 -205.92831 + 67 43.424561 1659 0 1 153.34293 -40.403055 -204.85 + 67 59.966751 1660 0 1 153.35081 -40.355198 -204.82229 + 67 128.24581 688 0 0 158.2075 -42.034077 -205.85 +Number of tracker digits in this event = 13 +Event: 68 +Number of tracker hits in this event = 8 + 68 109.68473 896 3 1 0.11567444 0.11039005 -114.45 + 68 325.73268 896 3 0 0.11895312 0.10876006 -115.85 + 68 120.4889 896 2 1 0.20147724 0.093265556 -144.45 + 68 144.03135 896 2 0 0.20651799 0.09294644 -145.85 + 68 128.64925 897 1 1 0.30668982 0.098146797 -174.45 + 68 121.04491 896 1 0 0.31282014 0.10192999 -175.85 + 68 161.92211 897 0 1 0.43969532 0.18139533 -204.45 + 68 141.81149 896 0 0 0.44810472 0.18427054 -205.85 +Number of tracker digits in this event = 7 +Event: 69 +Number of tracker hits in this event = 8 + 69 150.48607 896 3 1 0.054256529 0.43636458 -114.45 + 69 178.96919 897 3 0 0.054992186 0.44003644 -115.85 + 69 127.32029 896 2 1 0.066227534 0.50928099 -144.45 + 69 132.74534 898 2 0 0.067337578 0.51131661 -145.85 + 69 126.22048 896 1 1 0.085265611 0.56297901 -174.45 + 69 173.80922 898 1 0 0.090212921 0.56948578 -175.85 + 69 133.21996 896 0 1 0.19502522 0.6970797 -204.45 + 69 155.25493 899 0 0 0.20162507 0.70813749 -205.85 +Number of tracker digits in this event = 8 Event: 70 -Number of tracker hits in this event = 1 - 70 175.669 899 1 1 0.845872 -0.102708 -174.45 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 8 + 70 127.00402 896 5 1 0.10200611 0.079612825 -54.45 + 70 151.8919 896 5 0 0.10249969 0.085024683 -55.85 + 70 130.58246 896 4 1 0.098975903 0.1938435 -84.45 + 70 120.58236 896 4 0 0.088667388 0.18703675 -85.85 + 70 160.01908 896 3 0 -0.14049971 0.05151187 -115.85 + 70 153.56911 895 1 1 -0.52745406 -0.28645399 -174.45 + 70 121.86774 894 0 1 -0.78156905 -0.51641747 -204.45 + 70 117.14284 895 0 0 -0.79190375 -0.52773945 -205.85 +Number of tracker digits in this event = 7 Event: 71 Number of tracker hits in this event = 8 - 71 148.478 897 3 1 0.264156 -0.32166 -114.45 - 71 123.393 897 2 1 0.447944 -0.543839 -144.45 - 71 274.945 895 2 0 0.456319 -0.558906 -145.85 - 71 129.833 898 1 1 0.639044 -0.897465 -174.45 - 71 195.528 893 1 0 0.646944 -0.915194 -175.85 - 71 367.43 899 0 1 0.7872 -1.28117 -204.45 - 71 139.162 891 0 0 0.792791 -1.29811 -205.85 - 71 284.782 898 0 1 0.568258 -1.78704 -204.723 -Number of tracker digits in this event = 8 -Event: 72 -Number of tracker hits in this event = 8 - 72 141.319 896 4 1 0.0665885 -0.187444 -84.45 - 72 248.875 896 2 1 0.121882 -0.405222 -144.45 - 72 143.362 896 1 1 0.168197 -0.484544 -174.45 - 72 125.686 895 1 0 0.177198 -0.486486 -175.85 - 72 121.863 897 0 1 0.371962 -0.509075 -204.45 - 72 111.497 895 0 0 0.381811 -0.511011 -205.85 - 72 56.831 885 2 0 0.946547 -2.50659 -145.85 - 72 182.388 897 2 1 0.266132 -2.56044 -144.85 -Number of tracker digits in this event = 6 -Event: 73 -Number of tracker hits in this event = 5 - 73 203.546 896 2 0 -0.401404 0.197731 -145.85 - 73 113.242 895 1 1 -0.593296 0.381423 -174.45 - 73 141.969 897 1 0 -0.597978 0.395077 -175.85 - 73 268.21 894 0 1 -0.702018 0.687407 -204.45 - 73 157.515 899 0 0 -0.71128 0.706721 -205.85 + 71 324.08523 899 2 1 0.70611058 0.10314498 -144.45 + 71 106.83403 896 2 0 0.71794342 0.1093462 -145.85 + 71 118.80753 900 1 1 0.96955033 0.22858841 -174.45 + 71 103.7761 896 1 0 0.98897021 0.23240437 -175.85 + 71 161.93516 902 0 1 1.3996499 0.31002548 -204.45 + 71 158.29363 897 0 0 1.4157954 0.31680554 -205.85 + 71 22.270694 962 0 0 -80.462899 13.290277 -205.96553 + 71 291.15578 892 2 1 -1.2045343 91.300741 -144.85 Number of tracker digits in this event = 4 +Event: 72 +Number of tracker hits in this event = 3 + 72 140.14036 896 2 0 -0.21885948 0.093721502 -145.85 + 72 153.43596 896 1 0 -0.2345053 0.17190308 -175.85 + 72 127.94702 897 0 0 -0.19943227 0.28394535 -205.85 +Number of tracker digits in this event = 3 +Event: 73 +Number of tracker hits in this event = 17 + 73 133.72415 895 1 0 -0.14444004 -0.54065151 -175.85 + 73 156.01777 893 0 0 -0.10385694 -0.93306516 -205.85 + 73 110.47424 896 6 1 0.087471665 -0.05 -24.554432 + 73 13.939334 897 6 1 0.31620154 -0.21131342 -24.840162 + 73 149.75524 888 6 0 1.6383603 -1.8705544 -25.85 + 73 169.00111 887 6 0 1.7945102 -2.1544308 -26.206221 + 73 30.167199 885 6 0 1.7481149 -2.4882669 -25.902605 + 73 245.00147 903 6 1 1.4994896 -3.6131451 -24.85 + 73 41.703836 904 6 1 1.8083852 -3.7876464 -24.799763 + 73 61.054044 869 6 0 1.1713698 -5.8047978 -25.85 + 73 384.88509 868 6 0 1.0651944 -5.9122653 -25.919214 + 73 130.10968 652 5 1 -49.11715 14.046817 -54.503986 + 73 100.22977 650 5 1 -49.51901 14.065257 -54.674054 + 73 44.748458 972 5 0 -51.171683 15.423201 -55.85 + 73 73.261494 973 5 0 -51.261567 15.545787 -55.863883 + 73 250.73099 974 5 0 -51.196208 15.677832 -55.936186 + 73 96.614184 975 5 0 -51.342147 15.873698 -56.125925 +Number of tracker digits in this event = 8 Event: 74 Number of tracker hits in this event = 2 - 74 133.89 896 1 0 -0.358219 0.0581098 -175.85 - 74 128.092 896 0 0 -0.304104 0.225817 -205.85 -Number of tracker digits in this event = 2 + 74 157.72623 895 1 0 -0.17229067 -0.53572345 -175.85 + 74 101.4647 894 0 0 -0.25332348 -0.75127007 -205.85 +Number of tracker digits in this event = 1 Event: 75 -Number of tracker hits in this event = 5 - 75 125.898 896 4 0 -0.0683514 0.176135 -85.85 - 75 111.896 897 2 0 -0.0626765 0.406117 -145.85 - 75 125.435 898 1 0 -0.100148 0.572302 -175.85 - 75 174.903 899 0 0 -0.0620459 0.703111 -205.85 - 75 50.0973 896 0 1 0.05 0.639637 -204.774 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 10 + 75 143.53429 896 4 1 0.16519923 0.11226641 -84.45 + 75 124.35138 896 4 0 0.17141681 0.11883392 -85.85 + 75 139.33931 897 3 1 0.29758167 0.21659548 -114.45 + 75 163.83348 896 3 0 0.30477431 0.2244342 -115.85 + 75 134.35728 897 2 1 0.42006854 0.36003337 -144.45 + 75 118.59931 897 2 0 0.42657699 0.37119561 -145.85 + 75 128.31436 898 1 1 0.54042303 0.5932493 -174.45 + 75 105.58632 898 1 0 0.54328585 0.60607257 -175.85 + 75 168.23644 898 0 1 0.6087862 0.85063329 -204.45 + 75 127.9213 900 0 0 0.60882688 0.86434305 -205.85 +Number of tracker digits in this event = 8 Event: 76 -Number of tracker hits in this event = 8 - 76 186.893 896 5 1 0.150843 0.06628 -54.45 - 76 181.824 896 5 0 0.158788 0.0676586 -55.85 - 76 133.308 897 4 1 0.34194 0.109171 -84.45 - 76 102.072 896 4 0 0.354984 0.113446 -85.85 - 76 114.079 898 3 1 0.594167 0.189158 -114.45 - 76 141.794 896 3 0 0.604407 0.182323 -115.85 - 76 112.111 901 1 1 1.05184 -0.168213 -174.45 - 76 471.956 902 0 1 1.43222 -0.282567 -204.45 -Number of tracker digits in this event = 5 +Number of tracker hits in this event = 9 + 76 157.05995 896 5 1 0.1196168 -0.079998761 -54.45 + 76 123.30624 897 4 1 0.35085627 -0.15476545 -84.45 + 76 227.70579 898 3 1 0.62468765 -0.27071337 -114.45 + 76 112.53171 900 2 1 0.91068312 -0.54747713 -144.45 + 76 139.99269 895 2 0 0.92153724 -0.56059294 -145.85 + 76 111.68586 901 1 1 1.1515267 -0.83898728 -174.45 + 76 117.7267 894 1 0 1.1599361 -0.84963837 -175.85 + 76 203.09782 902 0 1 1.3328488 -1.0403689 -204.45 + 76 126.70079 892 0 0 1.3454463 -1.0520566 -205.85 +Number of tracker digits in this event = 6 Event: 77 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 3 + 77 159.10749 894 1 0 0.052050218 -0.77368292 -175.85 + 77 124.8378 896 0 1 0.20675806 -0.90465641 -204.45 + 77 124.29905 893 0 0 0.21386976 -0.90869755 -205.85 +Number of tracker digits in this event = 3 Event: 78 -Number of tracker hits in this event = 7 - 78 208.138 896 4 0 0.105065 0.0500625 -85.85 - 78 156.445 896 3 1 0.191854 0.0820173 -114.45 - 78 277.198 896 3 0 0.194076 0.0839516 -115.85 - 78 130.479 896 2 1 0.239184 0.110491 -144.45 - 78 136.726 896 2 0 0.238226 0.109194 -145.85 - 78 131.24 896 1 1 0.209925 0.095776 -174.45 - 78 115.428 896 1 0 0.206006 0.091608 -175.85 -Number of tracker digits in this event = 6 -Event: 79 -Number of tracker hits in this event = 40 - 79 134.209 893 1 1 -0.915939 -0.53297 -174.45 - 79 131.949 895 1 0 -0.935912 -0.535913 -175.85 - 79 2457.15 846 1 0 0.585957 -10.4487 -176.25 - 79 340.638 932 1 0 8.21043 7.25893 -176.25 - 79 352.187 939 1 1 8.6802 7.64154 -174.85 - 79 332.69 968 2 0 16.4235 14.519 -146.25 - 79 326.306 979 2 1 16.8087 14.8706 -144.85 - 79 326.491 1003 3 0 30.1806 21.4882 -116.25 - 79 359.96 1049 3 1 30.8325 21.8024 -114.85 - 79 401.864 1030 4 0 46.4779 26.9064 -86.25 - 79 355.544 1132 4 1 47.2778 27.1675 -84.85 - 79 412.562 1076 5 0 59.8833 36.1317 -56.25 - 79 499.104 1198 5 1 60.5083 36.5946 -54.85 - 79 455.737 1115 6 0 73.6392 43.94 -26.25 - 79 589.903 1267 6 1 74.3179 44.2799 -24.85 - 79 570.574 1143 7 0 84.8057 49.5373 3.75 - 79 668.745 1322 7 1 85.3289 49.7896 5.15 - 79 868.754 1171 8 0 89.9079 55.122 33.75 - 79 917.95 1344 8 1 90.1798 55.3486 35.15 - 79 2473.93 1232 9 0 95.8615 67.3644 63.75 - 79 179.654 1330 9 0 146.491 87.0156 63.75 - 79 165.637 1627 9 1 146.916 87.9293 65.15 - 79 213.225 1393 10 0 155.917 99.9807 93.75 - 79 27.4288 1674 10 1 156.339 100.548 95.15 - 79 96.5474 1675 10 1 156.367 100.585 95.241 - 79 139.885 1442 11 0 166.57 109.843 123.75 - 79 117.609 1728 11 1 167.054 110.317 125.15 - 79 148.411 1729 11 1 167.173 110.434 125.511 - 79 34.5905 1514 12 0 164.742 124.337 153.75 - 79 268.908 1515 12 0 164.732 124.396 153.872 - 79 142.926 1716 12 1 164.559 124.989 155.15 - 79 102.556 1560 13 0 164.645 133.436 183.75 - 79 99.6885 1716 13 1 164.656 133.825 185.15 - 79 218.325 1591 14 0 164.603 139.737 213.75 - 79 178.823 1716 14 1 164.613 140.043 215.15 - 79 350.747 1516 12 0 164.623 124.727 153.987 - 79 73.5143 1195 5 1 59.8658 37.1782 -54.85 - 79 183.269 1194 5 1 59.8355 37.2336 -54.7716 - 79 426.638 891 0 1 -1.42615 -0.634737 -204.45 - 79 288.534 894 0 0 -1.91322 -0.849094 -205.85 -Number of tracker digits in this event = 33 -Event: 80 -Number of tracker hits in this event = 7 - 80 891.485 896 0 1 0.101812 5.5883 -204.45 - 80 874.513 925 0 0 0.064489 5.97947 -205.85 - 80 309.195 66 4 0 112.668 -166.894 -86.25 - 80 314.271 1465 4 1 114.525 -169.423 -84.85 - 80 41.9665 1468 4 1 114.975 -170.018 -84.5059 - 80 628.691 903 0 1 1.61412 4.40496 -204.45 - 80 651.459 918 0 0 1.64001 4.64474 -205.85 -Number of tracker digits in this event = 6 -Event: 81 -Number of tracker hits in this event = 4 - 81 128.868 897 3 1 0.345736 -0.0743865 -114.45 - 81 144.635 898 2 1 0.468981 -0.207927 -144.45 - 81 152.06 898 1 1 0.598116 -0.259799 -174.45 - 81 134.758 898 0 1 0.60134 -0.165541 -204.45 +Number of tracker hits in this event = 5 + 78 132.86134 896 4 0 -0.072805412 0.077000833 -85.85 + 78 123.28469 896 3 0 -0.17136607 0.1295222 -115.85 + 78 142.13479 896 2 0 -0.25012601 0.14241774 -145.85 + 78 116.56391 896 1 0 -0.38912517 0.070168214 -175.85 + 78 136.05105 895 0 1 -0.4830195 -0.16202009 -204.45 Number of tracker digits in this event = 4 +Event: 79 +Number of tracker hits in this event = 6 + 79 125.25979 895 2 1 -0.4543899 -0.57493818 -144.45 + 79 220.8751 895 2 0 -0.47255194 -0.58550471 -145.85 + 79 118.17719 894 1 1 -0.83772852 -0.78916105 -174.45 + 79 133.98111 894 1 0 -0.85807371 -0.79652668 -175.85 + 79 101.86292 891 0 1 -1.3050147 -0.93850571 -204.45 + 79 122.72271 893 0 0 -1.3272406 -0.94438041 -205.85 +Number of tracker digits in this event = 4 +Event: 80 +Number of tracker hits in this event = 4 + 80 122.4446 894 3 0 -0.16199966 -0.69786456 -115.85 + 80 109.89523 893 2 0 -0.17616777 -0.90502335 -145.85 + 80 174.85243 892 1 0 -0.24501804 -1.0868077 -175.85 + 80 160.66373 891 0 0 -0.22809488 -1.3435004 -205.85 +Number of tracker digits in this event = 3 +Event: 81 +Number of tracker hits in this event = 6 + 81 114.61351 896 2 1 0.21926745 0.17947969 -144.45 + 81 162.33228 896 2 0 0.21720616 0.19028329 -145.85 + 81 112.54069 896 1 1 0.16567064 0.41678427 -174.45 + 81 116.8301 897 1 0 0.16580326 0.43237932 -175.85 + 81 167.80108 896 0 1 0.16510337 0.76352315 -204.45 + 81 104.16029 899 0 0 0.16244051 0.78028838 -205.85 +Number of tracker digits in this event = 2 Event: 82 Number of tracker hits in this event = 6 - 82 129.9 896 5 0 -0.0572587 0.0756055 -55.85 - 82 264.42 896 4 0 -0.201173 0.058069 -85.85 - 82 161.835 896 3 0 -0.0943112 0.120599 -115.85 - 82 167.798 896 2 1 0.0683605 0.196841 -144.45 - 82 218.498 896 2 0 0.0814817 0.187688 -145.85 - 82 135.403 898 0 1 0.640549 -0.239974 -204.45 + 82 186.42098 896 4 0 -0.10718754 0.23813832 -85.85 + 82 133.91634 897 3 0 -0.18307976 0.40380221 -115.85 + 82 216.83155 898 2 0 -0.30824831 0.54469055 -145.85 + 82 137.1164 899 1 0 -0.43243993 0.66878248 -175.85 + 82 124.15579 895 0 1 -0.52389055 0.85356225 -204.45 + 82 153.50036 900 0 0 -0.52658918 0.8641522 -205.85 Number of tracker digits in this event = 6 Event: 83 -Number of tracker hits in this event = 2 - 83 161.178 896 2 1 0.0862877 -0.199679 -144.45 - 83 143.783 896 1 1 0.0926272 -0.0642666 -174.45 -Number of tracker digits in this event = 2 +Number of tracker hits in this event = 35 + 83 134.81454 896 4 0 -0.096561764 0.12863604 -85.85 + 83 728.95731 885 4 0 -14.437322 -2.5003664 -86.25 + 83 631.14808 822 4 1 -15.150816 -2.6309917 -84.85 + 83 462.1806 871 5 0 -29.02227 -5.4482381 -56.25 + 83 440.71221 870 5 0 -29.138331 -5.4718677 -56.010423 + 83 622.14634 749 5 1 -29.700402 -5.5882 -54.85 + 83 756.2834 856 6 0 -43.878155 -8.3800121 -26.25 + 83 747.63936 675 6 1 -44.566357 -8.5191247 -24.85 + 83 678.75694 842 7 0 -58.421823 -11.129158 3.75 + 83 655.17546 602 7 1 -59.105303 -11.260047 5.15 + 83 798.45037 828 8 0 -73.313722 -13.988798 33.75 + 83 730.43688 528 8 1 -74.01279 -14.127297 35.15 + 83 861.78941 813 9 0 -87.828599 -17.037508 63.75 + 83 815.00311 455 9 1 -88.50379 -17.183486 65.15 + 83 17.580852 454 9 1 -88.691888 -17.224547 65.540138 + 83 923.6437 801 10 0 -102.25608 -19.372972 93.75 + 83 314.6411 386 10 1 -102.93058 -19.483062 95.15 + 83 569.27122 385 10 1 -103.00896 -19.496025 95.312559 + 83 1079.8016 791 11 0 -116.66226 -21.314779 123.75 + 83 739.8198 314 11 1 -117.33374 -21.400896 125.15 + 83 851.1859 781 12 0 -131.56558 -23.267036 153.75 + 83 863.37388 239 12 1 -132.26315 -23.354748 155.15 + 83 847.0901 776 13 0 -147.28024 -24.399102 183.75 + 83 892.02631 160 13 1 -148.01396 -24.451365 185.15 + 83 904.82559 769 14 0 -162.82375 -25.689198 213.75 + 83 948.94916 82 14 1 -163.55046 -25.742452 215.15 + 83 808.98956 902 3 0 -0.58001552 1.2644321 -115.85 + 83 687.57929 866 2 1 -6.2779903 25.663094 -144.45 + 83 819.90046 1030 2 0 -6.5176486 26.978592 -145.85 + 83 918.23678 839 1 1 -11.769203 53.448648 -174.45 + 83 253.62406 1168 1 0 -12.059201 54.642775 -175.85 + 83 687.32734 1169 1 0 -12.085375 54.751727 -175.97668 + 83 837.67589 807 0 1 -18.145545 79.258082 -204.45 + 83 869.83521 1298 0 0 -18.511304 80.49604 -205.85 + 83 67.893548 838 1 1 -11.861856 53.612076 -174.57038 +Number of tracker digits in this event = 33 Event: 84 -Number of tracker hits in this event = 5 - 84 139.832 894 3 1 -0.811653 -0.12094 -114.45 - 84 115.7 892 1 1 -1.12906 0.128439 -174.45 - 84 203.357 896 1 0 -1.13617 0.137884 -175.85 - 84 119.107 891 0 1 -1.28545 0.325574 -204.45 - 84 270.759 897 0 0 -1.29064 0.335281 -205.85 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 6 + 84 136.20469 892 3 1 -1.1452951 0.056497189 -114.45 + 84 108.73997 890 2 1 -1.5409262 -0.1618141 -144.45 + 84 127.29661 889 1 1 -1.8348826 -0.32667173 -174.45 + 84 119.76979 887 0 1 -2.2070928 -0.60241572 -204.45 + 84 469.26576 895 0 0 -2.2207997 -0.61513904 -205.85 + 84 189.405 896 3 0 -1.14595 0.05 -116.231 +Number of tracker digits in this event = 4 Event: 85 Number of tracker hits in this event = 2 - 85 207.095 895 1 0 -0.251931 -0.535152 -175.85 - 85 137.86 894 0 0 -0.385729 -0.839401 -205.85 + 85 163.90381 896 1 1 0.15655749 0.057407062 -174.45 + 85 123.47668 896 0 1 0.0754593 -0.091166465 -204.45 Number of tracker digits in this event = 2 Event: 86 -Number of tracker hits in this event = 7 - 86 135.96 896 5 0 -0.0904203 0.0877069 -55.85 - 86 147.131 896 4 0 -0.190359 0.14941 -85.85 - 86 206.345 897 3 0 -0.176973 0.30832 -115.85 - 86 118.903 896 1 1 0.113879 0.727878 -174.45 - 86 192.721 899 1 0 0.123322 0.738467 -175.85 - 86 124.542 897 0 1 0.341249 0.952704 -204.45 - 86 149.844 900 0 0 0.350402 0.962991 -205.85 -Number of tracker digits in this event = 6 -Event: 87 -Number of tracker hits in this event = 10 - 87 393.351 896 5 0 -0.150151 0.1271 -55.85 - 87 133.42 897 4 0 -0.354785 0.250755 -85.85 - 87 128.875 895 3 1 -0.558141 0.330755 -114.45 - 87 115.634 897 3 0 -0.565466 0.331559 -115.85 - 87 114.292 894 2 1 -0.721564 0.335838 -144.45 - 87 153.894 897 2 0 -0.730251 0.333865 -145.85 - 87 199.734 893 1 1 -0.914833 0.285036 -174.45 - 87 125.549 897 1 0 -0.926154 0.283451 -175.85 - 87 365.982 892 0 1 -1.13903 0.265618 -204.45 - 87 137.169 897 0 0 -1.1529 0.266683 -205.85 -Number of tracker digits in this event = 8 -Event: 88 -Number of tracker hits in this event = 13 - 88 228.096 896 5 1 0.229874 0.232425 -54.45 - 88 140.211 896 5 0 0.245055 0.241624 -55.85 - 88 126.071 898 4 1 0.546152 0.426687 -84.45 - 88 128.393 897 4 0 0.556056 0.436358 -85.85 - 88 143.892 899 3 1 0.728604 0.641312 -114.45 - 88 107.078 899 3 0 0.73933 0.653249 -115.85 - 88 127.472 900 2 1 0.967024 0.963017 -144.45 - 88 232.554 900 2 0 0.982377 0.979566 -145.85 - 88 214.419 902 1 1 1.29539 1.32455 -174.45 - 88 150.08 902 1 0 1.31153 1.34107 -175.85 - 88 119.953 904 0 1 1.66606 1.67784 -204.45 - 88 127.22 904 0 0 1.67519 1.69206 -205.85 - 88 12.0981 899 2 0 0.982432 0.76342 -146.223 -Number of tracker digits in this event = 10 -Event: 89 -Number of tracker hits in this event = 9 - 89 134.027 896 5 1 0.0622275 0.0904298 -54.45 - 89 157.819 896 5 0 0.0642449 0.0886991 -55.85 - 89 158.737 896 4 1 0.0887241 0.0637511 -84.45 - 89 166.579 896 4 0 0.0924751 0.057747 -85.85 - 89 166.628 896 3 1 0.192471 -0.0792256 -114.45 - 89 156.347 897 2 1 0.387835 -0.152455 -144.45 - 89 129.463 898 1 1 0.526843 -0.275508 -174.45 - 89 227.673 898 0 1 0.622212 -0.452651 -204.45 - 89 220.219 895 0 0 0.62768 -0.462082 -205.85 -Number of tracker digits in this event = 9 -Event: 90 -Number of tracker hits in this event = 4 - 90 139.74 896 1 1 0.168724 -0.456601 -174.45 - 90 130.732 895 1 0 0.180036 -0.461233 -175.85 - 90 122.367 897 0 1 0.423466 -0.544951 -204.45 - 90 142.848 895 0 0 0.434473 -0.551459 -205.85 -Number of tracker digits in this event = 4 -Event: 91 -Number of tracker hits in this event = 7 - 91 137.717 896 4 0 -0.286372 0.0937911 -85.85 - 91 118.144 896 3 0 -0.444333 0.0777457 -115.85 - 91 161.044 894 1 1 -0.762549 -0.195323 -174.45 - 91 159.92 893 0 1 -0.957336 -0.33323 -204.45 - 91 287.126 1037 1 0 10.2625 28.2674 -176.25 - 91 10.2007 1038 1 0 10.2944 28.6255 -175.881 - 91 197.912 946 1 1 10.2087 29.1824 -174.85 +Number of tracker hits in this event = 8 + 86 115.83322 896 4 1 0.084470158 -0.20398338 -84.45 + 86 146.97534 896 3 1 0.13731675 -0.28616162 -114.45 + 86 115.28501 896 2 1 0.10188386 -0.70240015 -144.45 + 86 123.6913 894 2 0 0.10318968 -0.7253575 -145.85 + 86 134.94666 896 1 1 0.12631776 -1.1815548 -174.45 + 86 125.6181 892 1 0 0.12491043 -1.2025713 -175.85 + 86 165.67282 896 0 1 0.10509827 -1.662282 -204.45 + 86 111.29306 889 0 0 0.090971715 -1.674 -205.85 Number of tracker digits in this event = 5 -Event: 92 +Event: 87 +Number of tracker hits in this event = 11 + 87 147.13066 896 5 1 0.07993935 -0.057632424 -54.45 + 87 127.0909 896 4 1 0.12442314 -0.15872509 -84.45 + 87 137.69645 896 3 1 0.12263591 -0.20485388 -114.45 + 87 156.41141 896 2 1 0.054210758 -0.26226058 -144.45 + 87 194.86823 877 6 0 -1.7266921 -4.2188854 -26.25 + 87 174.95138 885 6 1 -2.4865438 -5.5696611 -24.85 + 87 77.552446 886 6 1 -2.3310189 -5.6963793 -24.668794 + 87 107.23913 887 6 1 -2.0904294 -5.7805107 -24.652305 + 87 41.706274 888 6 1 -2.0033712 -5.7970952 -24.788098 + 87 62.028752 902 6 0 -0.264962 1.2994005 -25.85 + 87 159.50265 884 6 1 -2.7226284 9.325999 -24.85 +Number of tracker digits in this event = 7 +Event: 88 +Number of tracker hits in this event = 8 + 88 117.33457 896 3 1 0.094274037 0.53883852 -114.45 + 88 145.81295 898 3 0 0.10155881 0.53966872 -115.85 + 88 140.70152 896 2 1 0.24903966 0.54698568 -144.45 + 88 133.89366 898 2 0 0.24756125 0.55103812 -145.85 + 88 165.58353 896 1 1 0.21982858 0.64183152 -174.45 + 88 122.52167 898 1 0 0.21345227 0.648517 -175.85 + 88 113.90918 896 0 1 0.083782247 0.78242243 -204.45 + 88 117.84818 899 0 0 0.08177998 0.79529563 -205.85 +Number of tracker digits in this event = 5 +Event: 89 Number of tracker hits in this event = 3 - 92 187.679 896 5 1 0.0623491 -0.129858 -54.45 - 92 282.078 896 1 0 -0.199235 0.12411 -175.85 - 92 179.631 898 0 0 -0.125135 0.465727 -205.85 + 89 142.35802 896 3 0 -0.12833373 0.088018015 -115.85 + 89 191.3304 896 2 0 -0.2512277 0.15877994 -145.85 + 89 139.72841 896 1 0 -0.36436495 0.11881114 -175.85 +Number of tracker digits in this event = 3 +Event: 90 +Number of tracker hits in this event = 9 + 90 261.85831 896 4 0 -0.29655494 0.14497232 -85.85 + 90 110.5252 896 3 0 -0.39945237 0.24370294 -115.85 + 90 126.64851 895 2 1 -0.50106238 0.31282203 -144.45 + 90 286.1313 897 2 0 -0.51358994 0.31722646 -145.85 + 90 147.20844 894 1 1 -0.76726224 0.41987297 -174.45 + 90 190.4907 897 1 0 -0.77940645 0.42853293 -175.85 + 90 193.45939 893 0 1 -1.0091824 0.62576759 -204.45 + 90 221.84918 898 0 0 -1.0246426 0.63425035 -205.85 + 90 39.579958 899 0 0 -1.1300289 0.6734829 -205.95636 +Number of tracker digits in this event = 7 +Event: 91 +Number of tracker hits in this event = 2 + 91 129.02198 895 1 1 -0.61321005 -0.10920674 -174.45 + 91 127.90467 893 0 1 -0.85496291 -0.16636991 -204.45 +Number of tracker digits in this event = 2 +Event: 92 +Number of tracker hits in this event = 4 + 92 169.12072 896 3 1 0.16823146 -0.090019779 -114.45 + 92 136.37252 896 2 1 0.11688032 -0.07660289 -144.45 + 92 138.36631 897 3 1 0.25009872 0.14572007 -114.58109 + 92 90.217094 898 3 1 0.4534686 0.26366431 -114.46002 Number of tracker digits in this event = 3 Event: 93 -Number of tracker hits in this event = 15 - 93 117.301 896 3 1 0.103178 0.310923 -114.45 - 93 122.229 897 3 0 0.107599 0.320462 -115.85 - 93 145.704 896 2 1 0.182396 0.521202 -144.45 - 93 134.27 898 2 0 0.190013 0.52077 -145.85 - 93 112.047 897 1 1 0.360463 0.484398 -174.45 - 93 114.926 898 1 0 0.359511 0.489654 -175.85 - 93 144.089 897 0 1 0.338177 0.584496 -204.45 - 93 139.321 898 0 0 0.33897 0.58956 -205.85 - 93 4041.35 1130 0 0 -5.14888 47.0109 -206.25 - 93 3730.2 1133 0 0 -5.20987 47.4591 -206.099 - 93 3615.63 1134 0 0 -5.26168 47.8043 -205.96 - 93 10122.6 870 0 1 -5.52631 50.3155 -204.85 - 93 612.734 452 1 0 -80.8356 -89.1155 -176.023 - 93 290.8 1667 6 1 154.919 -45.9363 -24.45 - 93 347.828 1668 6 1 155.105 -46.176 -24.5386 -Number of tracker digits in this event = 12 +Number of tracker hits in this event = 5 + 93 237.89425 896 4 0 -0.13840791 0.14094947 -85.85 + 93 137.75551 896 3 0 -0.095247235 0.24520912 -115.85 + 93 95.931571 897 2 0 -0.15203625 0.32822588 -145.85 + 93 120.86054 898 1 0 -0.23360514 0.4681785 -175.85 + 93 132.02882 898 0 0 -0.25594483 0.46294423 -205.85 +Number of tracker digits in this event = 4 Event: 94 -Number of tracker hits in this event = 6 - 94 144.123 896 4 1 0.0969463 -0.090503 -84.45 - 94 133.878 896 3 1 0.135634 -0.143456 -114.45 - 94 125.342 896 2 1 0.201737 -0.196468 -144.45 - 94 159.777 896 1 1 0.181799 -0.394917 -174.45 - 94 126.01 897 0 1 0.251904 -0.837331 -204.45 - 94 114.909 893 0 0 0.250878 -0.860284 -205.85 -Number of tracker digits in this event = 5 +Number of tracker hits in this event = 3 + 94 128.4494 896 3 1 0.11263909 -0.33387297 -114.45 + 94 124.46284 895 1 1 -0.59479775 -0.22350653 -174.45 + 94 139.29229 893 0 1 -1.0413838 -0.10910124 -204.45 +Number of tracker digits in this event = 3 Event: 95 -Number of tracker hits in this event = 13 - 95 122.731 898 4 1 0.462746 -0.458492 -84.45 - 95 166.702 895 4 0 0.489005 -0.477341 -85.85 - 95 130.253 900 3 1 1.01463 -0.883058 -114.45 - 95 124.073 893 3 0 1.03879 -0.902795 -115.85 - 95 137.504 903 2 1 1.57068 -1.30295 -144.45 - 95 478.823 891 2 0 1.59556 -1.32453 -145.85 - 95 150.527 906 1 1 2.10935 -1.74242 -174.45 - 95 354.181 889 1 0 2.1345 -1.76822 -175.85 - 95 180.13 908 0 1 2.6302 -2.30639 -204.45 - 95 163.376 886 0 0 2.6546 -2.33653 -205.85 - 95 99.2991 890 1 0 2.09528 -1.64306 -176.25 - 95 62.7811 891 1 0 2.17516 -1.38787 -176.156 - 95 273.883 892 1 0 2.24841 -1.24515 -176.183 -Number of tracker digits in this event = 11 +Number of tracker hits in this event = 8 + 95 199.11666 896 3 0 -0.38921557 0.070781159 -115.85 + 95 117.26309 895 2 1 -0.60759639 0.19064934 -144.45 + 95 151.32607 896 2 0 -0.61341513 0.18855104 -145.85 + 95 153.21662 894 1 1 -0.74004176 0.1536309 -174.45 + 95 140.37688 896 1 0 -0.74799322 0.14916352 -175.85 + 95 58.971838 900 5 0 -0.86223017 1.0376724 -55.85 + 95 76.342786 901 5 0 -0.9088479 1.2262272 -55.927916 + 95 149.57807 902 5 0 -0.84984578 1.2915982 -56.102741 +Number of tracker digits in this event = 5 Event: 96 -Number of tracker hits in this event = 1 - 96 153.433 896 1 0 -0.0628295 0.0589317 -175.85 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 3 + 96 144.08776 895 1 0 -0.15241922 -0.6071924 -175.85 + 96 245.55657 894 0 0 -0.13306497 -0.82807641 -205.85 + 96 249.17302 873 1 0 13.666716 -4.8704923 -176.25 +Number of tracker digits in this event = 3 Event: 97 -Number of tracker hits in this event = 14 - 97 118.279 896 5 1 0.0703716 0.0636796 -54.45 - 97 107.342 896 5 0 0.0768128 0.0677378 -55.85 - 97 171.382 896 4 1 0.199323 0.125886 -84.45 - 97 108.314 896 4 0 0.210698 0.131598 -85.85 - 97 122.57 897 3 1 0.443842 0.249957 -114.45 - 97 212.443 897 3 0 0.452893 0.259171 -115.85 - 97 235.751 899 2 1 0.655761 0.478925 -144.45 - 97 150.652 898 2 0 0.661465 0.491596 -145.85 - 97 135.534 899 1 1 0.761384 0.743433 -174.45 - 97 299.101 899 1 0 0.762702 0.754344 -175.85 - 97 123.448 899 0 1 0.807275 0.998147 -204.45 - 97 205.705 900 0 0 0.796372 1.01765 -205.85 - 97 96.4711 899 0 0 -0.175043 0.842362 -205.85 - 97 153.964 898 2 1 0.619805 0.425161 -144.744 -Number of tracker digits in this event = 10 -Event: 98 -Number of tracker hits in this event = 9 - 98 216.071 896 5 1 0.0639643 -0.0516728 -54.45 - 98 115.772 896 4 1 0.130981 -0.138688 -84.45 - 98 126.699 897 3 1 0.414638 -0.32163 -114.45 - 98 119.186 898 2 1 0.532326 -0.629005 -144.45 - 98 121.147 895 2 0 0.534426 -0.644508 -145.85 - 98 230.191 898 1 1 0.564041 -0.946594 -174.45 - 98 132.804 893 1 0 0.566832 -0.963495 -175.85 - 98 126.665 898 0 1 0.639186 -1.30896 -204.45 - 98 113.416 891 0 0 0.645963 -1.32403 -205.85 +Number of tracker hits in this event = 7 + 97 142.37914 896 4 1 0.084912685 0.063927888 -84.45 + 97 165.73214 896 4 0 0.079228793 0.064664351 -85.85 + 97 167.58099 896 3 0 -0.053921987 0.093801441 -115.85 + 97 222.54609 896 2 0 -0.20779148 0.20486056 -145.85 + 97 339.08731 897 1 0 -0.255859 0.26577437 -175.85 + 97 106.3555 897 0 0 -0.3142181 0.36643504 -205.85 + 97 132.51122 897 2 0 -0.17677705 0.31611456 -146.08813 Number of tracker digits in this event = 6 +Event: 98 +Number of tracker hits in this event = 6 + 98 123.0123 896 3 1 0.20027871 -0.087648163 -114.45 + 98 116.35001 897 2 1 0.27473705 -0.26025917 -144.45 + 98 126.33628 902 1 1 1.3500132 0.075558514 -174.45 + 98 113.68651 896 1 0 1.3977332 0.096868695 -175.85 + 98 140.57479 907 0 1 2.3643116 0.53161587 -204.45 + 98 174.21986 898 0 0 2.4130395 0.55896036 -205.85 +Number of tracker digits in this event = 4 Event: 99 -Number of tracker hits in this event = 2 - 99 134.072 890 4 0 0.884225 -1.4852 -85.85 - 99 49.7913 895 5 0 0.313212 -0.512851 -56.0044 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 3 + 99 125.86985 896 2 1 0.2044063 -0.16607606 -144.45 + 99 126.74728 897 1 1 0.42771551 -0.16652186 -174.45 + 99 110.23017 898 0 1 0.51525694 -0.19383997 -204.45 +Number of tracker digits in this event = 2 Run terminated. Run Summary Number of events processed : 100 - User=2.23s Real=5.64s Sys=0.02s + User=2.07s Real=2.14s Sys=0.03s End of Run File Tracks_3.dat /gun/particle gamma /gun/energy 1 GeV /gun/sourceType 2 /run/beamOn 100 + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Scintillator + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.3689452 keV e- 355.79082 keV e+ 347.13789 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Calorimeter + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : CesiumIodide + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 38.405229 keV e- 691.66869 keV e+ 658.43466 keV + Region(s) which use this couple : + Calorimeter + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Tracker + +Index : 5 used in the geometry : Yes recalculation needed : No + Material : Silicon + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 2.3033387 keV e- 120.42458 keV e+ 118.95119 keV + Region(s) which use this couple : + Tracker + +Index : 6 used in the geometry : Yes recalculation needed : No + Material : Tungsten + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 36.047857 keV e- 351.43773 keV e+ 334.55147 keV + Region(s) which use this couple : + Tracker + +==================================================================== + Start Run processing. Event: 0 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 1 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 2 -Number of tracker hits in this event = 5 - 2 150.487 896 0 0 -0.0688822 0.0917452 -205.85 - 2 118.15 895 1 1 -0.48803 0.189116 -174.45 - 2 162.658 896 1 0 -0.524303 0.228814 -175.85 - 2 204.305 891 0 1 -1.38856 1.05044 -204.45 - 2 108.615 901 0 0 -1.38195 1.06179 -205.85 -Number of tracker digits in this event = 3 -Event: 3 Number of tracker hits in this event = 2 - 3 123.57 896 0 1 0.067583 -0.358148 -204.45 - 3 146.982 892 0 0 -0.139157 -1.20717 -205.85 + 0 186.32951 896 1 1 0.15326283 -0.52713473 -174.45 + 0 122.21761 895 1 0 0.13789564 -0.53747459 -175.85 Number of tracker digits in this event = 2 +Event: 1 +Number of tracker hits in this event = 3 + 1 172.32074 676 1 0 46.54189 -44.360329 -176.25 + 1 172.53307 1122 1 1 45.346317 -44.491834 -174.85 + 1 9.0947245 1120 1 1 45.042896 -44.50833 -174.49066 +Number of tracker digits in this event = 2 +Event: 2 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 3 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 4 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 7 + 4 18.32857 766 0 0 3.372475 -26.319569 -205.88351 + 4 32.40395 1082 0 1 37.447489 -23.093763 -204.85 + 4 1.7849781 1083 0 1 37.524458 -23.0873 -204.84565 + 4 97.345807 779 0 0 40.399011 -23.72884 -205.85 + 4 174.28779 1109 0 1 42.681984 -23.723509 -204.85 + 4 151.59701 444 0 0 -143.51851 -91.188133 -206.25 + 4 163.28417 177 0 1 -144.57235 -90.82111 -204.85 +Number of tracker digits in this event = 3 Event: 5 -Number of tracker hits in this event = 11 - 5 323.445 896 0 1 0.0515799 0.0517913 -204.45 - 5 273.358 896 0 0 0.0512145 0.0598221 -205.85 - 5 112.985 891 0 0 -0.381296 -1.26022 -205.85 - 5 54.2227 890 0 0 -0.404057 -1.59431 -206.107 - 5 130.133 904 1 0 -0.830153 1.67056 -175.85 - 5 146.442 905 1 0 -0.971893 1.93913 -176.201 - 5 248.39 952 1 0 9.41193 11.2855 -176.25 - 5 102.657 899 1 0 -2.0197 0.848883 -175.85 - 5 150.895 901 1 0 -2.31429 1.13892 -175.959 - 5 276.188 903 1 0 -2.5172 1.45851 -175.958 - 5 104.513 895 1 1 -0.490471 0.0809155 -174.772 -Number of tracker digits in this event = 7 +Number of tracker hits in this event = 2 + 5 13.98433 1464 6 0 -92.690874 114.18929 -26.25 + 5 204.13769 780 2 1 -23.632908 93.780679 -144.68659 +Number of tracker digits in this event = 1 Event: 6 -Number of tracker hits in this event = 8 - 6 112.291 901 1 1 1.19784 0.351475 -174.45 - 6 112.274 897 1 0 1.24298 0.429315 -175.85 - 6 260.76 906 0 1 2.24297 1.99746 -204.45 - 6 140.195 906 0 0 2.3008 2.10914 -205.85 - 6 59.2944 907 0 1 2.38936 1.78416 -204.75 - 6 125.388 908 0 0 1.48869 2.46657 -205.85 - 6 319.401 909 0 0 1.40047 2.67523 -205.935 - 6 144.193 895 3 0 -0.523064 -0.469398 -115.85 -Number of tracker digits in this event = 5 +Number of tracker hits in this event = 1 + 6 130.68212 1246 3 1 70.074974 81.443881 -114.79716 +Number of tracker digits in this event = 1 Event: 7 -Number of tracker hits in this event = 16 - 7 108.573 900 3 1 0.872273 -0.871135 -114.45 - 7 341.851 893 3 0 0.836226 -0.989627 -115.85 - 7 148.466 896 2 1 0.105023 -3.03762 -144.45 - 7 210.7 890 1 1 -1.55965 -4.82788 -174.45 - 7 120.515 873 1 0 -1.5677 -4.9248 -175.85 - 7 98.9698 888 0 1 -1.89346 -6.90983 -204.45 - 7 130.751 863 0 0 -1.81353 -6.99427 -205.85 - 7 253.725 881 0 1 -3.32752 -6.88028 -204.45 - 7 137.641 861 0 0 -3.56585 -7.257 -205.85 - 7 127.762 896 1 1 0.11325 -0.179463 -174.45 - 7 112.772 896 0 1 0.162834 -0.632769 -204.45 - 7 130.793 894 0 0 0.179936 -0.656164 -205.85 - 7 155.397 896 1 0 -0.24534 0.217251 -175.85 - 7 109.667 892 0 1 -1.20623 2.22361 -204.45 - 7 150.541 907 0 0 -1.29565 2.35998 -205.85 - 7 142.802 896 2 0 -0.0744004 0.115288 -145.85 -Number of tracker digits in this event = 12 +Number of tracker hits in this event = 7 + 7 143.56683 896 2 1 0.061546487 0.2795962 -144.45 + 7 138.75898 897 2 0 0.068869578 0.29031368 -145.85 + 7 123.81816 896 1 1 0.22519017 0.90811008 -174.45 + 7 163.79149 900 1 0 0.23213481 0.95422603 -175.85 + 7 100.0903 897 0 1 0.32789549 1.8483781 -204.45 + 7 212.67209 905 0 0 0.32864054 1.8921151 -205.85 + 7 135.56814 56 0 1 -168.86391 30.05511 -204.546 +Number of tracker digits in this event = 6 Event: 8 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 13 + 8 143.87619 896 4 1 0.078456661 -0.14487625 -84.45 + 8 102.53798 892 3 1 -1.0842618 -0.68019088 -114.45 + 8 241.7935 895 3 0 -1.1394466 -0.64911542 -115.85 + 8 108.43825 886 2 1 -2.4214515 -0.22673357 -144.45 + 8 247.58647 878 1 1 -3.9738578 -0.43005308 -174.45 + 8 169.69593 881 0 1 -3.2585914 1.050282 -204.45 + 8 114.09509 901 0 0 -3.2232079 1.0775739 -205.85 + 8 109.15695 895 1 0 -4.1852034 -0.47150096 -175.85 + 8 120.58909 863 0 1 -6.9533469 -1.0558469 -204.45 + 8 206.03808 894 0 0 -7.0873726 -0.76098786 -205.85 + 8 52.879532 894 3 0 -1.0237501 -0.72816357 -116.08506 + 8 9.9003682 1149 4 0 123.49846 50.693942 -86.25 + 8 5.6148097 1150 4 0 124.04201 50.918037 -86.128249 +Number of tracker digits in this event = 6 Event: 9 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 @@ -4914,116 +5322,80 @@ Event: 10 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 11 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 12 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 13 -Number of tracker hits in this event = 19 - 13 139.009 898 3 1 0.596852 -0.483554 -114.45 - 13 149.172 895 3 0 0.625629 -0.505688 -115.85 - 13 113.215 901 2 1 1.23391 -0.975376 -144.45 - 13 149.204 893 2 0 1.26798 -0.990771 -145.85 - 13 122.967 905 1 1 1.96702 -1.31215 -174.45 - 13 159.565 891 1 0 2.00127 -1.33981 -175.85 - 13 191.65 908 0 1 2.50945 -1.84204 -204.45 - 13 128.925 888 0 0 2.54281 -1.87494 -205.85 - 13 8.65089 997 2 0 68.3482 20.2743 -145.85 - 13 71.5624 896 3 0 0.571544 0.249742 -115.85 - 13 492.149 897 3 0 0.500786 0.35111 -115.946 - 13 111.624 897 3 1 0.270005 0.339197 -114.45 - 13 121.032 897 2 1 0.343363 0.590949 -144.45 - 13 153.055 898 2 0 0.334803 0.60501 -145.85 - 13 133.051 896 1 1 0.159655 0.884405 -174.45 - 13 101.128 900 1 0 0.155039 0.88125 -175.85 - 13 143.424 896 0 1 0.15424 0.784989 -204.45 - 13 152.925 899 0 0 0.123334 0.823491 -205.85 - 13 19.2672 909 0 1 2.70156 -24.3679 -204.454 -Number of tracker digits in this event = 13 -Event: 14 -Number of tracker hits in this event = 2 - 14 197.036 716 1 1 -36.4201 -12.6948 -174.802 - 14 156.282 715 1 1 -36.5302 -12.7468 -174.45 +Number of tracker hits in this event = 3 + 11 120.39979 895 0 1 -0.45272896 -0.053176232 -204.45 + 11 265.35464 382 7 0 -174.27519 -103.56727 3.75 + 11 65.488364 383 7 0 -175.20039 -103.50036 3.7585174 Number of tracker digits in this event = 2 +Event: 12 +Number of tracker hits in this event = 1 + 12 218.53501 96 9 0 -128.26797 -160.75274 64.020969 +Number of tracker digits in this event = 1 +Event: 13 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 14 +Number of tracker hits in this event = 4 + 14 119.22343 896 1 1 0.15004599 0.27133536 -174.45 + 14 113.12829 897 1 0 0.17119307 0.28744634 -175.85 + 14 127.80877 898 0 1 0.57241735 0.64599345 -204.45 + 14 100.57906 898 0 0 0.60979446 0.64833611 -205.85 +Number of tracker digits in this event = 1 Event: 15 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 16 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 3 + 16 138.64031 896 1 0 -0.2074997 0.17899411 -175.85 + 16 155.88866 895 0 1 -0.46129589 0.42516656 -204.45 + 16 138.47773 897 0 0 -0.46967628 0.44091308 -205.85 +Number of tracker digits in this event = 3 Event: 17 -Number of tracker hits in this event = 5 - 17 101.223 896 1 1 0.161344 0.228872 -174.45 - 17 135.938 897 1 0 0.195672 0.264967 -175.85 - 17 121.446 900 0 1 0.894864 0.933359 -204.45 - 17 142.262 900 0 0 0.878802 0.936647 -205.85 - 17 144.525 896 0 1 0.086272 -0.0530669 -204.45 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 10 + 17 124.07239 896 4 0 -0.11022283 0.082908901 -85.85 + 17 128.18764 899 3 0 -0.17865126 0.66542085 -115.85 + 17 122.57611 902 2 0 -0.27568564 1.3254736 -145.85 + 17 157.85548 895 1 1 -0.59004099 1.8075589 -174.45 + 17 89.89591 904 1 0 -0.58966554 1.8345257 -175.85 + 17 143.17279 895 0 1 -0.55487342 2.4189729 -204.45 + 17 174.13856 907 0 0 -0.54972674 2.4232319 -205.85 + 17 1.8285 874 1 0 -72.048271 -4.6906787 -176.25 + 17 56.2875 877 1 0 -72.400185 -4.1088135 -175.91002 + 17 90.461718 551 3 1 -69.269979 72.587406 -114.85 +Number of tracker digits in this event = 6 Event: 18 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 19 -Number of tracker hits in this event = 1 - 19 104.575 1302 2 1 81.2763 -69.2907 -144.85 +Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 20 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 21 -Number of tracker hits in this event = 5 - 21 135.844 283 2 0 33.8435 -123.449 -146.25 - 21 250.877 281 2 0 33.7437 -123.752 -146.148 - 21 515.467 1062 2 1 33.3289 -124.786 -144.85 - 21 16.6977 1789 0 0 -144.435 179.323 -205.85 - 21 234.927 254 1 1 -129.18 153.755 -174.766 -Number of tracker digits in this event = 4 -Event: 22 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 +Event: 22 +Number of tracker hits in this event = 11 + 22 228.80525 897 5 0 -0.1776388 0.44741455 -55.85 + 22 118.52497 895 4 1 -0.59459929 1.3894741 -84.45 + 22 157.80029 902 4 0 -0.62672936 1.4299921 -85.85 + 22 139.39529 892 3 1 -1.2201898 2.0713856 -114.45 + 22 109.77606 905 3 0 -1.2760854 2.0279861 -115.85 + 22 113.37573 886 2 1 -2.4022104 1.0942157 -144.45 + 22 115.38814 901 2 0 -2.504158 1.0575086 -145.85 + 22 111.61303 873 1 1 -4.9001339 0.58210653 -174.45 + 22 149.29079 898 1 0 -4.9994659 0.50743047 -175.85 + 22 105.9153 862 0 1 -7.0826798 -1.0671817 -204.45 + 22 125.48459 892 0 0 -7.15527 -1.1426071 -205.85 +Number of tracker digits in this event = 5 Event: 23 -Number of tracker hits in this event = 40 - 23 363.016 895 0 1 -0.457482 -0.160062 -204.45 - 23 95.3993 900 0 0 -0.319268 0.959059 -205.85 - 23 123.928 901 0 0 -0.241483 1.05137 -206.174 - 23 276.718 894 0 1 -0.652379 1.1567 -204.701 - 23 180.628 50 4 1 -170.059 168.677 -84.5201 - 23 65.1581 49 4 1 -170.151 168.809 -84.492 - 23 174.471 814 0 0 7.44329 -16.8234 -206.25 - 23 290.469 935 0 1 7.96288 -17.8073 -204.85 - 23 317.799 637 1 0 11.5605 -52.0934 -176.25 - 23 168.48 954 1 1 11.7041 -53.695 -174.85 - 23 179.918 545 2 0 17.8032 -70.4601 -146.25 - 23 187.427 986 2 1 18.1192 -71.186 -144.85 - 23 182.203 495 3 0 28.2797 -80.5176 -116.25 - 23 107.684 1039 3 1 28.7822 -80.9194 -114.85 - 23 202.382 472 4 0 56.2843 -85.1744 -86.25 - 23 165.626 1184 4 1 57.7572 -85.3762 -84.85 - 23 241.72 425 5 0 71.2605 -95.0693 -56.25 - 23 128.479 1255 5 1 71.9498 -95.4712 -54.85 - 23 126.344 400 6 0 80.8371 -99.9711 -26.25 - 23 169.066 1302 6 1 81.2698 -100.221 -24.85 - 23 115.106 421 7 0 93.0845 -95.9098 3.75 - 23 158.782 1362 7 1 93.7582 -95.6245 5.15 - 23 157.043 443 8 0 114.159 -91.4401 33.75 - 23 127.933 1468 8 1 115.136 -91.2762 35.15 - 23 195.04 477 9 0 138.108 -84.1107 63.75 - 23 181.709 1589 9 1 139.288 -83.656 65.15 - 23 172.928 571 10 0 164.769 -65.3977 93.75 - 23 169.604 1722 10 1 165.897 -64.5972 95.15 - 23 37.515 559 10 0 163.774 -67.8344 93.75 - 23 9.3903 936 0 1 8.06648 -18.0052 -204.572 - 23 209.765 896 4 0 -0.301524 0.224407 -85.85 - 23 117.982 892 3 1 -1.14227 0.77867 -114.45 - 23 106.028 899 3 0 -1.2977 0.809917 -115.85 - 23 121.387 876 2 1 -4.30621 1.59614 -144.45 - 23 106.09 904 2 0 -4.50401 1.72697 -145.85 - 23 109.444 856 1 1 -8.41748 4.03307 -174.45 - 23 105.016 916 1 0 -8.56622 4.21067 -175.85 - 23 98.6385 839 0 1 -11.7849 7.90354 -204.45 - 23 139.926 936 0 0 -11.9342 8.08163 -205.85 - 23 223.642 897 4 0 -0.163265 0.315612 -86.1 -Number of tracker digits in this event = 28 +Number of tracker hits in this event = 4 + 23 137.95226 894 1 1 -0.78349056 0.41715413 -174.45 + 23 115.07121 897 1 0 -0.81148593 0.43241926 -175.85 + 23 116.61597 891 0 1 -1.4240056 0.74535538 -204.45 + 23 136.73625 899 0 0 -1.4580684 0.75440526 -205.85 +Number of tracker digits in this event = 2 Event: 24 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 @@ -5031,249 +5403,254 @@ Event: 25 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 26 -Number of tracker hits in this event = 1 - 26 121.805 680 4 1 -43.5675 117.865 -84.5973 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 10 + 26 222.67869 896 3 1 0.24622597 -0.089795274 -114.45 + 26 118.50486 896 1 1 0.12388827 -0.30537758 -174.45 + 26 135.25187 895 0 0 -0.10937343 -0.63979989 -205.85 + 26 62.011355 897 3 1 0.30384192 -0.051041101 -114.65564 + 26 143.52457 900 2 1 0.95952343 0.12898404 -144.45 + 26 149.23481 896 2 0 1.3118608 0.20072188 -145.85 + 26 259.40008 933 1 1 7.5501291 2.9137044 -174.45 + 26 223.83674 900 1 0 9.0750182 0.90946382 -175.85 + 26 274.66173 1092 0 1 39.32826 -50.804571 -204.45 + 26 105.56711 642 0 0 39.525567 -51.104858 -205.85 +Number of tracker digits in this event = 7 Event: 27 -Number of tracker hits in this event = 8 - 27 110.308 897 1 1 0.26027 2.26992 -174.45 - 27 127.56 907 1 0 0.284125 2.32629 -175.85 - 27 144.776 898 0 1 0.640327 3.42648 -204.45 - 27 126.763 913 0 0 0.706409 3.49064 -205.85 - 27 227.41 691 1 1 -41.3701 -14.5872 -174.835 - 27 91.2825 690 1 1 -41.4762 -14.6814 -174.782 - 27 100.947 896 1 1 0.104161 -0.11268 -174.45 - 27 117.817 896 0 1 0.141426 -0.0973877 -204.45 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 1 + 27 67.424526 1128 12 0 -40.782458 46.487815 153.78728 +Number of tracker digits in this event = 0 Event: 28 -Number of tracker hits in this event = 3 - 28 125.343 911 0 1 3.13658 2.22694 -204.45 - 28 147.309 907 0 0 3.24203 2.39677 -205.85 - 28 209.457 277 4 1 -124.587 -85.1489 -84.6635 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 29 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 3 + 29 144.92897 895 1 1 -0.61692812 0.095384387 -174.45 + 29 126.57628 886 0 1 -2.3969283 -1.1979702 -204.45 + 29 100.36692 891 0 0 -2.5036982 -1.2767024 -205.85 +Number of tracker digits in this event = 2 Event: 30 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 6 + 30 123.70712 896 2 1 0.12940935 0.13443584 -144.45 + 30 145.00593 896 2 0 0.19199868 0.1342821 -145.85 + 30 98.390821 902 1 1 1.3267649 0.54750592 -174.45 + 30 108.47996 899 1 0 1.4013899 0.66223688 -175.85 + 30 137.87629 910 0 1 3.0182184 3.0977097 -204.45 + 30 98.241332 912 0 0 3.0686138 3.2797101 -205.85 +Number of tracker digits in this event = 3 Event: 31 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 32 -Number of tracker hits in this event = 26 - 32 135.345 895 3 1 -0.594105 -0.253808 -114.45 - 32 292.625 893 2 1 -0.949913 -0.373132 -144.45 - 32 115.403 890 1 1 -1.48056 -0.468017 -174.45 - 32 123.945 895 1 0 -1.50349 -0.485686 -175.85 - 32 108.187 888 0 1 -1.96286 -0.850778 -204.45 - 32 196.877 893 0 0 -1.97922 -0.871643 -205.85 - 32 130.897 1163 1 0 -69.3312 53.5416 -176.186 - 32 114.537 1164 1 0 -69.5388 53.7073 -175.918 - 32 228.975 546 1 1 -70.3102 55.6818 -174.85 - 32 142.705 1176 1 0 -70.3712 56.111 -175.85 - 32 111.809 897 5 1 0.426737 1.13618 -54.45 - 32 140.44 901 5 0 0.469484 1.15207 -55.85 - 32 103.418 902 4 1 1.32156 1.43079 -84.45 - 32 125.51 902 4 0 1.40018 1.4402 -85.85 - 32 349.428 911 3 1 3.15911 1.40092 -114.45 - 32 110.524 903 3 0 3.228 1.45496 -115.85 - 32 185.466 918 2 1 4.57835 2.6437 -144.45 - 32 117.34 908 2 0 4.65591 2.5985 -145.85 - 32 110.762 926 1 1 6.09944 1.63015 -174.45 - 32 191.243 903 1 0 6.1342 1.59715 -175.85 - 32 121.213 930 0 1 7.01904 0.871696 -204.45 - 32 134.523 900 0 0 7.03026 0.856231 -205.85 - 32 560.359 612 0 0 -41.5604 -57.1805 -206.25 - 32 292.741 677 0 1 -44.1285 -60.5634 -204.85 - 32 147.686 568 1 0 -70.6304 -65.9896 -176.25 - 32 173.192 539 1 1 -71.7858 -65.9426 -174.85 -Number of tracker digits in this event = 18 -Event: 33 -Number of tracker hits in this event = 14 - 33 174.308 898 5 1 0.581033 0.559839 -54.45 - 33 121.857 898 5 0 0.568775 0.564859 -55.85 - 33 124.303 897 4 1 0.265263 0.750451 -84.45 - 33 116.119 899 4 0 0.235139 0.694914 -85.85 - 33 103.007 892 2 0 -0.373318 -1.13681 -145.85 - 33 125.967 892 1 1 -1.19598 -1.15421 -174.45 - 33 151.896 892 1 0 -1.19985 -1.17041 -175.85 - 33 115.848 891 0 1 -1.25568 -1.40931 -204.45 - 33 85.8749 891 0 0 -1.28624 -1.4468 -205.85 - 33 179.9 890 0 0 -1.29165 -1.45294 -206.061 - 33 109.034 896 3 0 -0.0940587 0.161255 -115.85 - 33 132.094 897 2 0 -0.133072 0.280595 -145.85 - 33 208.365 897 1 0 -0.141805 0.364011 -175.85 - 33 109.237 897 0 0 -0.321389 0.363032 -205.85 -Number of tracker digits in this event = 8 -Event: 34 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 35 Number of tracker hits in this event = 2 - 35 44.7157 1044 0 0 -8.44404 29.8014 -206.25 - 35 365.034 1045 0 0 -8.47379 29.9159 -206.182 + 31 17.018998 277 4 0 2.2742638 -124.59374 -85.914888 + 31 161.50083 908 4 1 2.5711339 -124.67661 -84.85 Number of tracker digits in this event = 1 +Event: 32 +Number of tracker hits in this event = 2 + 32 164.33313 887 0 1 -2.166947 -5.1784114 -204.45 + 32 143.39837 869 0 0 -3.0154758 -5.8155232 -205.85 +Number of tracker digits in this event = 2 +Event: 33 +Number of tracker hits in this event = 11 + 33 149.10831 895 4 1 -0.48066288 -1.0530603 -84.45 + 33 125.93399 892 4 0 -0.50561957 -1.1044929 -85.85 + 33 172.08289 892 3 1 -1.0646737 -2.1744904 -114.45 + 33 102.93419 887 3 0 -1.0930793 -2.2226119 -115.85 + 33 189.10364 889 2 1 -1.6708573 -3.2734358 -144.45 + 33 114.38161 881 2 0 -1.704514 -3.3159453 -145.85 + 33 111.47531 886 1 1 -2.3953308 -4.1947864 -174.45 + 33 141.47119 877 1 0 -2.4319448 -4.2382399 -175.85 + 33 127.56185 882 0 1 -3.152267 -5.2432221 -204.45 + 33 123.26803 871 0 0 -3.1920756 -5.2924399 -205.85 + 33 107.36596 1465 2 1 114.38172 -9.2927913 -144.82251 +Number of tracker digits in this event = 7 +Event: 34 +Number of tracker hits in this event = 9 + 34 134.07755 1232 3 0 -18.242315 67.372634 -116.25 + 34 165.95067 810 3 1 -17.556283 67.084628 -114.85 + 34 114.6248 938 0 1 8.6046173 45.853543 -204.56609 + 34 8.0961571 939 0 1 8.7681159 45.779361 -204.83726 + 34 104.02324 1132 0 0 9.877529 47.29911 -205.85 + 34 58.066869 1133 0 0 9.9415148 47.483542 -205.85031 + 34 28.486487 951 0 1 11.226049 49.639122 -204.85 + 34 27.249498 952 0 1 11.262071 49.659971 -204.84776 + 34 87.074635 1142 0 0 12.427291 49.447862 -205.85 +Number of tracker digits in this event = 2 +Event: 35 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 36 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 37 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 12 + 37 142.15158 896 3 1 0.15803289 0.14917419 -114.45 + 37 222.39088 896 3 0 0.171733 0.16686993 -115.85 + 37 138.33748 898 2 1 0.57106246 0.64925395 -144.45 + 37 157.94303 899 2 0 0.60263488 0.67010708 -145.85 + 37 161.65293 902 1 1 1.2689609 1.1111872 -174.45 + 37 141.85386 901 1 0 1.3134738 1.15323 -175.85 + 37 102.55965 905 0 1 1.9518901 1.8391002 -204.45 + 37 193.60347 905 0 0 2.1225076 1.9004462 -205.85 + 37 183.92221 643 0 0 -30.278273 -50.896234 -206.25 + 37 190.35849 642 0 0 -30.248247 -51.12074 -206.18284 + 37 129.15114 750 0 1 -29.634238 -50.69386 -204.85 + 37 82.555725 649 0 0 -29.392174 -49.838122 -205.85 +Number of tracker digits in this event = 10 Event: 38 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 39 -Number of tracker hits in this event = 20 - 39 124.83 894 1 1 -0.711506 -0.390089 -174.45 - 39 120.11 891 0 1 -1.3115 -0.457807 -204.45 - 39 374.107 895 0 0 -1.3315 -0.45247 -205.85 - 39 124.887 899 2 1 0.830654 -0.101215 -144.45 - 39 234.432 903 1 1 1.59499 -0.246102 -174.45 - 39 316.472 908 0 1 2.45379 -0.447479 -204.45 - 39 117.118 897 1 0 1.31882 0.255846 -175.85 - 39 129.34 1110 1 0 2.25722 42.939 -176.25 - 39 69.9251 1112 1 0 2.22482 43.2545 -175.934 - 39 163.965 902 1 1 1.28376 44.3442 -174.85 - 39 149.559 900 1 1 0.936991 44.4732 -174.653 - 39 143.946 899 1 1 0.671419 44.4299 -174.499 - 39 47.3638 898 1 1 0.533833 44.4894 -174.736 - 39 246.778 1121 1 0 -0.191824 45.0597 -175.85 - 39 151.678 1122 1 0 -0.388373 45.2971 -175.996 - 39 309.832 907 0 1 2.37376 -0.397305 -204.45 - 39 107.339 893 0 0 2.38054 -0.875719 -205.85 - 39 227.009 905 1 1 1.94205 -0.366315 -174.45 - 39 139.283 894 0 0 2.64163 -0.662895 -205.85 - 39 131.1 864 0 1 -6.76741 -0.624939 -204.45 -Number of tracker digits in this event = 16 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 40 -Number of tracker hits in this event = 23 - 40 123.922 897 2 1 0.331703 -0.14038 -144.45 - 40 131.546 898 1 1 0.540962 -0.152323 -174.45 - 40 222.999 1281 1 0 87.4566 77.1281 -176.25 - 40 201.453 1321 1 1 85.0822 76.9631 -174.85 - 40 17.8819 1318 1 1 84.4807 76.8217 -174.48 - 40 422.802 1369 9 0 157.3 95.2081 63.9146 - 40 292.607 1368 9 0 157.015 95.0634 64.1213 - 40 145.783 896 3 0 -0.263815 0.100435 -115.85 - 40 340.708 894 2 1 -0.719602 0.984488 -144.45 - 40 121.213 900 2 0 -0.70939 1.01028 -145.85 - 40 156.649 895 1 1 -0.573325 2.38568 -174.45 - 40 99.2196 908 1 0 -0.580011 2.50542 -175.85 - 40 136.066 895 0 1 -0.576932 5.38423 -204.45 - 40 116.412 923 0 0 -0.584141 5.51996 -205.85 - 40 5.73617 893 2 1 -0.89363 1.25593 -144.847 - 40 38.8698 904 2 0 1.65097 1.83066 -145.85 - 40 36.9622 905 2 0 1.71925 1.87615 -145.879 - 40 232.232 903 2 1 1.56508 2.73702 -144.85 - 40 263.955 891 1 1 -1.38959 0.410052 -174.45 - 40 116.198 900 1 0 -1.07187 0.962777 -175.85 - 40 150.585 974 1 0 14.8594 15.7129 -176.25 - 40 270.918 971 1 1 15.178 15.5393 -174.85 - 40 179.735 897 1 0 -0.746221 0.402909 -175.85 -Number of tracker digits in this event = 16 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 41 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 42 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 43 -Number of tracker hits in this event = 2 - 43 125.628 656 1 0 -22.875 -48.2604 -176.087 - 43 13.179 657 1 0 -22.9552 -48.2381 -176.182 -Number of tracker digits in this event = 1 -Event: 44 -Number of tracker hits in this event = 1 - 44 161.089 1110 2 1 42.882 2.31584 -144.538 -Number of tracker digits in this event = 1 -Event: 45 Number of tracker hits in this event = 10 - 45 170.242 891 3 1 -1.26729 -0.0693427 -114.45 - 45 154.936 881 2 1 -3.33843 -0.269896 -144.45 - 45 113.304 867 1 1 -6.1215 -0.206986 -174.45 - 45 106.616 854 0 1 -8.6914 -0.96748 -204.45 - 45 328.709 893 0 0 -8.78422 -0.942298 -205.85 - 45 68.3017 891 1 1 -1.42776 -1.88418 -174.707 - 45 118.164 888 1 0 -1.48056 -1.86989 -175.85 - 45 17.2945 889 1 0 -1.50959 -1.8439 -176.209 - 45 30.0676 895 1 0 0.05 -0.628651 -176.145 - 45 284.717 897 0 1 0.267396 -0.908508 -204.45 -Number of tracker digits in this event = 4 + 41 136.08039 897 3 1 0.29605949 -0.13507641 -114.45 + 41 125.63611 903 2 1 1.6348084 -0.056141389 -144.45 + 41 102.72494 913 0 1 3.5206904 0.21394104 -204.45 + 41 120.93476 896 0 0 3.5716128 0.24173549 -205.85 + 41 126.40956 1700 3 1 161.37542 74.797583 -114.72019 + 41 198.47017 1699 3 1 161.31029 74.702725 -114.56217 + 41 85.548395 929 0 1 6.7185354 -35.001079 -204.72944 + 41 58.565457 928 0 1 6.6493606 -35.060701 -204.81817 + 41 92.954311 717 0 0 7.7824328 -36.227325 -205.85 + 41 158.20921 895 4 0 -0.82481739 -0.4744573 -85.945062 +Number of tracker digits in this event = 6 +Event: 42 +Number of tracker hits in this event = 6 + 42 105.48658 898 2 1 0.48480362 0.42042185 -144.45 + 42 119.28666 897 2 0 0.51434831 0.44526323 -145.85 + 42 93.044504 901 1 1 1.1528218 0.92291925 -174.45 + 42 195.81164 900 1 0 1.2058189 0.95498015 -175.85 + 42 118.04292 907 0 1 2.3083676 1.5431909 -204.45 + 42 106.0617 903 0 0 2.3566198 1.5769867 -205.85 +Number of tracker digits in this event = 1 +Event: 43 +Number of tracker hits in this event = 9 + 43 142.67741 904 3 0 -0.10568699 1.8429371 -115.85 + 43 153.53538 916 2 0 -0.59795666 4.1240338 -145.85 + 43 120.26529 860 1 1 -7.558526 11.465854 -174.45 + 43 143.91065 953 1 0 -7.9748629 11.646452 -175.85 + 43 195.25606 820 0 1 -15.645301 15.595656 -204.45 + 43 131.76463 968 0 0 -16.083675 14.594918 -205.85 + 43 87.857763 924 1 0 -0.56429313 5.7418604 -175.90579 + 43 140.81463 900 0 1 0.87759176 8.663913 -204.45 + 43 120.6553 940 0 0 1.311622 8.8990398 -205.85 +Number of tracker digits in this event = 8 +Event: 44 +Number of tracker hits in this event = 8 + 44 105.34916 895 2 1 -0.60324926 0.5480641 -144.45 + 44 117.38228 898 2 0 -0.62282974 0.5874977 -145.85 + 44 107.36688 893 1 1 -0.98188604 1.3036163 -174.45 + 44 164.80495 902 1 0 -1.0034344 1.3450954 -175.85 + 44 148.88389 891 0 1 -1.4067859 2.2380298 -204.45 + 44 128.28582 907 0 0 -1.440197 2.2878247 -205.85 + 44 4.5488198 915 2 0 1.0507042 3.8705473 -145.85 + 44 44.689406 918 2 0 1.4055091 4.5834312 -146.15295 +Number of tracker digits in this event = 3 +Event: 45 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 46 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 47 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 7 + 47 132.87016 896 3 0 -0.16165761 0.096015015 -115.85 + 47 360.41919 896 2 0 -0.081651502 0.21617586 -145.85 + 47 117.14093 897 0 1 0.40635416 -0.23982076 -204.45 + 47 188.70057 897 2 0 -0.088810726 0.28968038 -145.85 + 47 125.13061 902 1 1 1.3975447 2.804631 -174.45 + 47 137.78532 906 1 0 1.1588258 2.0809088 -175.85 + 47 107.7617 236 1 1 -132.7541 7.2599974 -174.82986 +Number of tracker digits in this event = 5 Event: 48 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 12 + 48 130.59513 896 3 1 0.20923021 0.086706396 -114.45 + 48 118.45711 896 3 0 0.23074069 0.093096763 -115.85 + 48 122.02402 898 2 1 0.5812631 0.24503123 -144.45 + 48 201.79083 897 2 0 0.61062134 0.26700512 -145.85 + 48 125.85382 901 1 1 1.2360524 0.72131214 -174.45 + 48 277.27846 899 1 0 1.2643116 0.73026367 -175.85 + 48 136.9523 904 0 1 1.7374969 0.95142939 -204.45 + 48 133.93269 900 0 0 1.7766978 0.96462597 -205.85 + 48 172.42725 516 3 0 38.820588 -76.388748 -116.18824 + 48 41.646324 906 3 0 0.54367728 2.1803451 -115.85 + 48 15.270635 897 3 1 0.44795278 1.1977989 -114.85 + 48 38.976619 898 3 1 0.45000196 1.1970589 -114.84139 +Number of tracker digits in this event = 8 Event: 49 -Number of tracker hits in this event = 32 - 49 129.858 900 4 1 1.00008 -0.522525 -84.45 - 49 136.622 895 4 0 1.05981 -0.526543 -85.85 - 49 134.08 907 3 1 2.35815 -0.544904 -114.45 - 49 139.286 895 3 0 2.46041 -0.478856 -115.85 - 49 214.189 919 2 1 4.70305 0.785791 -144.45 - 49 161.277 900 2 0 4.75935 0.857256 -145.85 - 49 131.906 924 1 1 5.71316 2.0981 -174.45 - 49 119.05 906 1 0 5.85645 2.1538 -175.85 - 49 105.031 938 0 1 8.50216 3.38735 -204.45 - 49 113.472 913 0 0 8.62215 3.46267 -205.85 - 49 130.387 1595 7 1 140.522 -25.77 5.33944 - 49 205.74 1596 7 1 140.64 -25.7922 5.45159 - 49 87.3922 899 3 0 2.35029 0.6964 -115.85 - 49 213.112 900 3 0 2.35697 0.889408 -115.875 - 49 117.301 901 3 0 2.39601 1.12782 -116.248 - 49 234.935 902 3 0 2.36878 1.31446 -115.994 - 49 95.7745 903 3 0 2.32709 1.47017 -116.113 - 49 10.4836 863 3 0 3.32296 -7.0318 -115.85 - 49 1.8285 860 3 0 3.38623 -7.45638 -115.944 - 49 47.1709 875 3 0 4.50101 -4.64847 -116.038 - 49 122.36 895 0 1 -0.570078 -0.381229 -204.45 - 49 438.715 660 0 0 -130.405 -47.5287 -206.25 - 49 66.5665 658 0 0 -131.862 -47.9052 -205.881 - 49 339.907 118 0 1 -156.532 -46.4879 -204.85 - 49 19.0267 111 0 1 -157.782 -46.3721 -204.826 - 49 738.673 669 0 0 -159.222 -45.7882 -205.85 - 49 248.984 671 0 0 -160.387 -45.4332 -205.85 - 49 147.571 107 0 1 -158.609 -44.3447 -204.85 - 49 126.56 109 0 1 -158.268 -44.2733 -204.554 - 49 208.918 110 0 1 -158.104 -43.944 -204.574 - 49 455.696 675 0 0 -157.706 -44.4732 -205.85 - 49 107.2 670 0 0 -159.677 -45.6255 -206.141 -Number of tracker digits in this event = 20 +Number of tracker hits in this event = 23 + 49 98.289325 896 4 1 0.12931775 0.14596335 -84.45 + 49 163.21098 896 4 0 0.14317765 0.12936506 -85.85 + 49 342.4426 897 3 1 0.36568242 -0.2873026 -114.45 + 49 110.88616 892 2 0 -0.075302713 -1.1319732 -145.85 + 49 127.02776 894 1 1 -0.75937871 -1.8373867 -174.45 + 49 160.99802 888 1 0 -0.79498574 -1.8640041 -175.85 + 49 110.49054 890 0 1 -1.518575 -2.3746258 -204.45 + 49 120.62769 886 0 0 -1.5524503 -2.3950934 -205.85 + 49 323.30846 1247 5 0 -41.41244 70.295441 -56.25 + 49 488.38733 704 5 1 -38.68292 73.070809 -54.85 + 49 224.70567 1392 6 0 -1.8830184 99.78327 -26.25 + 49 70.911131 896 6 1 0.05 101.08954 -24.617182 + 49 237.56573 1310 7 0 6.1651619 82.903752 3.75 + 49 134.0532 928 7 1 6.4674092 81.945078 5.15 + 49 566.38649 1050 8 0 101.65837 30.864505 33.75 + 49 352.26997 1416 8 1 104.74218 28.72682 35.15 + 49 505.18461 1420 8 1 105.47822 27.909212 35.55 + 49 6.2831728 1417 8 1 104.7906 28.350486 35.152123 + 49 279.69518 1037 8 0 99.456509 28.421962 34.15 + 49 165.58518 1038 8 0 99.094924 28.45991 34.140119 + 49 319.877 722 8 0 167.16423 -35.09454 33.75 + 49 60.203594 896 5 1 0.05672102 -0.05 -54.708962 + 49 140.13731 894 5 0 0.367079 -0.67809851 -55.85 +Number of tracker digits in this event = 17 Event: 50 -Number of tracker hits in this event = 1 - 50 6.72241 1204 2 0 -77.9313 61.7066 -146.25 +Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 51 -Number of tracker hits in this event = 5 - 51 82.3279 892 0 0 -0.640291 -1.24997 -205.85 - 51 343.606 891 0 0 -0.752474 -1.3812 -205.885 - 51 62.5417 890 0 0 -0.884634 -1.4654 -205.864 - 51 285.19 896 0 1 0.0589309 -0.05 -204.483 - 51 371.269 887 0 0 2.64137 -2.24339 -205.85 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 11 + 51 113.22055 897 2 1 0.39715741 0.30832499 -144.45 + 51 118.41352 897 2 0 0.42667712 0.34949383 -145.85 + 51 149.15155 901 1 1 1.0749804 1.155636 -174.45 + 51 133.6552 901 1 0 1.1095257 1.1867544 -175.85 + 51 199.37656 904 0 1 1.7333553 1.6643756 -204.45 + 51 100.93827 904 0 0 1.7413808 1.6910356 -205.85 + 51 216.84095 1207 0 0 -11.604222 62.313492 -205.98864 + 51 148.12834 1208 0 0 -11.633296 62.529433 -205.90466 + 51 241.97652 908 0 0 0.75248448 2.5457394 -205.85 + 51 125.52208 1120 0 0 9.1964133 44.902817 -206.25 + 51 11.472328 1121 0 0 9.3552192 45.234626 -206.23191 +Number of tracker digits in this event = 7 Event: 52 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 53 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 54 -Number of tracker hits in this event = 3 - 54 68.5997 905 0 0 -1.17123 1.85176 -205.85 - 54 224.936 890 0 1 -1.45761 1.73893 -204.85 - 54 122.837 891 0 1 -1.37634 1.79754 -204.656 -Number of tracker digits in this event = 2 -Event: 55 -Number of tracker hits in this event = 3 - 55 46.0762 870 0 0 -26.8717 -5.51538 -206.25 - 55 104.597 732 3 0 -42.5721 -33.234 -116.25 - 55 283.679 731 3 0 -42.7 -33.2816 -116.138 +Number of tracker hits in this event = 4 + 52 105.21236 895 1 1 -0.5365407 0.95929907 -174.45 + 52 148.04722 900 1 0 -0.56693307 1.0064277 -175.85 + 52 119.75111 892 0 1 -1.1300866 1.914963 -204.45 + 52 115.12781 905 0 0 -1.1482153 1.9843096 -205.85 Number of tracker digits in this event = 1 +Event: 53 +Number of tracker hits in this event = 5 + 53 106.32692 637 0 0 -62.518037 -52.133249 -205.88867 + 53 146.58362 1343 1 0 92.087395 89.524241 -176.25 + 53 124.89607 1342 1 0 91.802724 89.42119 -176.12654 + 53 349.70522 1266 1 0 134.67705 74.173308 -176.25 + 53 68.485006 1652 14 1 151.84704 -7.21831 215.15 +Number of tracker digits in this event = 3 +Event: 54 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 55 +Number of tracker hits in this event = 8 + 55 133.92309 895 3 1 -0.46192501 -0.87094919 -114.45 + 55 113.10275 893 3 0 -0.47508986 -0.89702929 -115.85 + 55 115.79821 894 2 1 -0.74436874 -1.4164403 -144.45 + 55 182.22427 891 2 0 -0.74602817 -1.4427009 -145.85 + 55 178.56609 894 1 1 -0.79517422 -2.0066033 -174.45 + 55 126.6853 888 1 0 -0.78691801 -2.0262295 -175.85 + 55 115.54388 895 0 1 -0.54445362 -2.4714953 -204.45 + 55 121.18783 885 0 0 -0.52688533 -2.4944857 -205.85 +Number of tracker digits in this event = 5 Event: 56 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 @@ -5281,228 +5658,173 @@ Event: 57 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 58 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 59 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 -Event: 60 -Number of tracker hits in this event = 4 - 60 115.825 898 1 1 0.527226 -0.225737 -174.45 - 60 225.077 900 0 1 0.97651 0.590134 -204.45 - 60 152.557 898 0 0 0.990608 0.646679 -205.85 - 60 109.848 897 0 1 0.44965 -0.113649 -204.45 +Number of tracker hits in this event = 3 + 58 201.64971 992 2 1 19.26586 100.66554 -144.82897 + 58 106.78774 991 2 1 19.223461 100.75629 -144.79167 + 58 150.17611 1391 2 0 16.691701 99.6636 -145.85 Number of tracker digits in this event = 2 +Event: 59 +Number of tracker hits in this event = 15 + 59 123.26847 897 2 1 0.26730552 0.3836628 -144.45 + 59 118.51144 897 2 0 0.2764675 0.37306233 -145.85 + 59 110.55245 898 1 1 0.49974208 0.14887434 -174.45 + 59 117.73629 896 1 0 0.50126513 0.18513012 -175.85 + 59 124.64722 898 0 1 0.47484873 0.92589293 -204.45 + 59 115.31145 900 0 0 0.47396702 0.97337916 -205.85 + 59 115.01754 1039 5 0 -2.7424686 28.728644 -56.25 + 59 227.78856 883 5 1 -2.8874516 27.915647 -54.85 + 59 195.78245 938 6 0 -37.240862 8.482584 -26.25 + 59 376.66961 696 6 1 -40.343879 6.8630543 -24.85 + 59 138.22734 937 7 0 -8.377897 8.2610813 3.75 + 59 92.52638 936 7 0 -7.9717306 8.2393487 3.9353904 + 59 393.74458 862 7 1 -7.0761846 6.220605 5.15 + 59 471.13283 861 7 1 -7.2755741 5.6033616 5.55 + 59 36.205444 722 1 1 -35.11563 -127.58041 -174.47921 +Number of tracker digits in this event = 8 +Event: 60 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 61 -Number of tracker hits in this event = 1 - 61 119.087 898 0 0 -0.324157 0.498356 -205.85 +Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 62 -Number of tracker hits in this event = 22 - 62 116.687 896 5 1 0.0656426 0.0831356 -54.45 - 62 110.757 896 5 0 0.0793353 0.0892319 -55.85 - 62 147.112 897 4 1 0.425648 0.187391 -84.45 - 62 127.233 896 4 0 0.438249 0.208126 -85.85 - 62 164.474 898 3 1 0.646944 0.669356 -114.45 - 62 369.942 899 3 0 0.653383 0.702482 -115.85 - 62 185.842 899 2 1 0.77499 1.36325 -144.45 - 62 117.034 902 2 0 0.784758 1.40024 -145.85 - 62 225.471 900 1 1 0.956361 2.1685 -174.45 - 62 147.095 906 1 0 0.96166 2.20806 -175.85 - 62 106.613 900 0 1 0.991993 2.85397 -204.45 - 62 286.774 910 0 0 0.959286 2.87644 -205.85 - 62 2.3771 899 1 1 0.79421 2.30463 -174.846 - 62 75.9408 910 1 0 0.17763 2.93818 -175.85 - 62 246.936 911 1 0 0.111133 3.06052 -175.987 - 62 149.65 912 1 0 -0.373219 3.26146 -176.089 - 62 3.13943 913 1 0 0.643984 3.48046 -175.85 - 62 379.356 892 2 0 -0.43403 -1.15875 -145.85 - 62 143.14 891 1 1 -1.42002 -1.83824 -174.45 - 62 392.488 888 1 0 -1.45837 -1.89645 -175.85 - 62 121.095 886 0 1 -2.40791 -2.73923 -204.45 - 62 97.752 884 0 0 -2.45038 -2.77505 -205.85 -Number of tracker digits in this event = 14 +Number of tracker hits in this event = 4 + 62 133.86068 898 0 1 0.47499901 -0.28035521 -204.45 + 62 108.87715 900 1 0 -0.24097044 1.0115826 -175.85 + 62 47.013179 896 0 1 0.05 2.984737 -204.68154 + 62 114.02884 910 0 0 0.13306954 3.0157297 -205.85 +Number of tracker digits in this event = 1 Event: 63 -Number of tracker hits in this event = 19 - 63 87.264 898 3 1 0.457149 -0.223693 -114.45 - 63 121.956 904 2 1 1.72916 -0.237833 -144.45 - 63 240.297 912 1 1 3.39771 -1.0099 -174.45 - 63 134.152 893 1 0 3.51039 -1.00477 -175.85 - 63 211.201 924 0 1 5.67087 -0.97528 -204.45 - 63 114.457 893 0 0 5.76511 -0.970413 -205.85 - 63 148.246 896 3 0 0.0507533 0.176218 -115.85 - 63 119.184 896 2 1 0.120246 0.278589 -144.45 - 63 246.389 897 2 0 0.138457 0.277639 -145.85 - 63 117.465 898 1 1 0.490442 0.25944 -174.45 - 63 231.584 896 1 0 0.505653 0.249897 -175.85 - 63 105.335 899 0 1 0.832599 0.097147 -204.45 - 63 115.315 896 0 0 0.852337 0.0947938 -205.85 - 63 58.116 1103 4 0 -76.8182 41.6234 -86.25 - 63 144.841 896 1 1 0.157439 0.181292 -174.45 - 63 130.461 896 0 1 0.0624912 0.393325 -204.45 - 63 170.09 899 1 0 -0.126799 0.824456 -175.85 - 63 114.584 900 0 0 -0.268293 0.935133 -205.85 - 63 6.86638 1300 2 0 -56.2981 81.0231 -146.25 -Number of tracker digits in this event = 10 -Event: 64 -Number of tracker hits in this event = 1 - 64 8.2116 1326 10 1 86.094 0.0555094 95.3346 -Number of tracker digits in this event = 0 -Event: 65 -Number of tracker hits in this event = 16 - 65 122.144 896 4 0 -0.0867669 0.172344 -85.85 - 65 139.635 897 3 0 -0.115967 0.38912 -115.85 - 65 157.397 894 2 1 -0.810009 0.965392 -144.45 - 65 99.1166 900 2 0 -0.84184 0.981662 -145.85 - 65 213.553 890 1 1 -1.50798 1.32152 -174.45 - 65 105.715 902 1 0 -1.5565 1.37787 -175.85 - 65 142.817 885 0 1 -2.5807 2.55602 -204.45 - 65 123.349 908 0 0 -2.61057 2.58698 -205.85 - 65 81.4649 1202 0 0 1.33149 61.4081 -206.25 - 65 101.802 896 5 0 -0.0855966 0.0715093 -55.85 - 65 137.552 891 2 1 -1.38546 -1.59985 -144.45 - 65 165.747 889 2 0 -1.44305 -1.66344 -145.85 - 65 112.626 884 1 1 -2.67884 -2.66989 -174.45 - 65 110.061 884 1 0 -2.69047 -2.74008 -175.85 - 65 113.014 882 0 1 -3.15432 -4.2002 -204.45 - 65 93.5122 876 0 0 -3.23528 -4.32652 -205.85 -Number of tracker digits in this event = 8 -Event: 66 -Number of tracker hits in this event = 2 - 66 9.98703 1623 11 1 146.076 -64.3152 125.15 - 66 52.8029 1468 7 1 115.133 -88.8483 5.15 -Number of tracker digits in this event = 0 -Event: 67 Number of tracker hits in this event = 5 - 67 152.903 895 2 0 -0.703756 -0.471958 -145.85 - 67 120.967 823 1 1 -15.0101 -9.71949 -174.45 - 67 128.946 847 1 0 -15.5258 -10.1865 -175.85 - 67 171.841 766 0 1 -26.304 -19.8099 -204.45 - 67 130.868 793 0 0 -26.2034 -20.946 -205.85 + 63 283.88295 519 8 0 95.730775 -75.755649 34.021291 + 63 593.16756 560 8 0 100.25025 -67.508414 33.75 + 63 33.889186 634 1 1 -52.845622 23.82367 -174.59121 + 63 153.36459 1052 2 0 -35.439594 31.302118 -146.25 + 63 136.87272 725 2 1 -34.607362 31.517399 -144.85 +Number of tracker digits in this event = 4 +Event: 64 +Number of tracker hits in this event = 7 + 64 113.55767 896 3 1 0.076968801 -0.17362713 -114.45 + 64 167.13209 896 1 0 -0.18415852 0.15854211 -175.85 + 64 131.77744 897 0 0 -0.2249683 0.3651892 -205.85 + 64 211.61117 207 8 0 67.631354 -138.69307 33.821602 + 64 16.808374 205 8 0 67.81211 -139.01755 34.085645 + 64 327.37239 1234 8 1 67.749562 -138.19265 35.15 + 64 234.12807 1233 8 1 67.636723 -137.75752 35.281161 Number of tracker digits in this event = 5 +Event: 65 +Number of tracker hits in this event = 3 + 65 172.47915 711 3 0 -36.816052 -37.255123 -116.25 + 65 98.388323 712 3 1 -37.115011 -37.445848 -114.85 + 65 84.495584 579 5 0 -92.860377 -63.702863 -56.25 +Number of tracker digits in this event = 1 +Event: 66 +Number of tracker hits in this event = 7 + 66 120.41073 896 5 0 -0.32940329 0.05126389 -55.85 + 66 104.41002 893 3 1 -0.85488434 -0.14592567 -114.45 + 66 126.44484 893 2 1 -0.94841552 -0.29053614 -144.45 + 66 174.5014 893 1 1 -1.004091 -0.5008374 -174.45 + 66 205.87011 895 1 0 -1.0376783 -0.52487618 -175.85 + 66 146.2839 889 0 1 -1.730663 -1.00267 -204.45 + 66 103.89903 893 0 0 -1.7726351 -1.0314985 -205.85 +Number of tracker digits in this event = 5 +Event: 67 +Number of tracker hits in this event = 7 + 67 104.90521 896 3 1 0.14595255 -0.20567186 -114.45 + 67 130.06649 894 1 1 -0.7470646 -0.95703739 -174.45 + 67 112.48032 893 1 0 -0.73098284 -1.023058 -175.85 + 67 149.09213 896 0 1 0.20363983 -2.404499 -204.45 + 67 112.39767 885 0 0 0.35133705 -2.5111364 -205.85 + 67 116.30283 891 0 1 -1.4115437 -1.7356102 -204.45 + 67 102.62355 891 0 0 -1.746689 -1.3762756 -205.85 +Number of tracker digits in this event = 2 Event: 68 -Number of tracker hits in this event = 29 - 68 119.248 898 4 1 0.514677 -0.229088 -84.45 - 68 136.871 904 3 1 1.81707 -1.10849 -114.45 - 68 123.932 892 3 0 1.89375 -1.16216 -115.85 - 68 112.532 912 2 1 3.28487 -2.64714 -144.45 - 68 249.173 884 2 0 3.32947 -2.72639 -145.85 - 68 478.047 915 1 1 3.90023 -4.29334 -174.45 - 68 190.446 876 1 0 3.97563 -4.37963 -175.85 - 68 144.588 924 0 1 5.65681 -6.08614 -204.45 - 68 101.409 867 0 0 5.74639 -6.12292 -205.85 - 68 107.867 874 1 0 3.96998 -4.76332 -175.85 - 68 398.055 920 0 1 4.96278 -14.4779 -204.45 - 68 127.849 825 0 0 5.3076 -14.4581 -205.85 - 68 108.252 875 1 0 3.56287 -4.5855 -175.85 - 68 131.183 888 0 1 -1.99552 -13.388 -204.45 - 68 193.276 831 0 0 -2.4795 -13.3723 -205.85 - 68 41.9974 830 0 0 -2.49215 -13.46 -206.068 - 68 465.096 916 0 1 4.23236 -1.4517 -204.45 - 68 257.539 914 0 1 3.7328 -0.805058 -204.652 - 68 221.473 912 0 1 3.44085 -0.82942 -204.476 - 68 330.504 913 0 1 3.46112 -0.81903 -204.458 - 68 129.44 915 0 1 3.99278 -0.672536 -204.459 - 68 131.455 896 1 0 -0.129812 0.232641 -175.85 - 68 203.133 896 0 0 -0.293026 0.226154 -205.85 - 68 46.6617 898 1 0 -0.0575377 0.630567 -175.85 - 68 135.837 904 0 1 1.7284 10.4876 -204.45 - 68 139.835 953 0 0 0.926645 11.4631 -205.85 - 68 133.262 897 1 0 -0.109102 0.258803 -175.85 - 68 163.213 897 0 0 -0.345976 0.306738 -205.85 - 68 269.244 1593 5 0 31.9999 140.079 -56.0235 -Number of tracker digits in this event = 22 +Number of tracker hits in this event = 1 + 68 11.910852 743 0 1 -31.041035 -95.360363 -204.85 +Number of tracker digits in this event = 0 Event: 69 +Number of tracker hits in this event = 7 + 69 286.81939 896 4 1 0.066451043 0.18179603 -84.45 + 69 145.50974 896 4 0 0.068411601 0.19993538 -85.85 + 69 123.57505 896 0 1 0.23778788 1.4817027 -204.45 + 69 258.69095 903 0 0 0.24340462 1.4822135 -205.85 + 69 112.65669 803 2 0 49.182377 -18.972814 -146.04282 + 69 173.70925 802 2 0 49.160877 -19.081192 -145.96203 + 69 128.29708 897 0 1 0.29526155 1.6069258 -204.45 +Number of tracker digits in this event = 6 +Event: 70 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 -Event: 70 -Number of tracker hits in this event = 20 - 70 151.833 896 4 0 -0.0709377 0.0915535 -85.85 - 70 127.013 899 3 0 -0.175635 0.712903 -115.85 - 70 155.796 891 2 1 -1.25382 -15.7062 -144.45 - 70 120.136 817 2 0 -1.13052 -16.224 -145.85 - 70 306.84 881 1 1 -3.26667 -26.5043 -174.45 - 70 423.426 744 1 0 -4.5853 -30.7584 -175.85 - 70 198.439 691 0 1 -41.2833 -145.287 -204.45 - 70 272.677 168 0 0 -42.4503 -146.402 -205.85 - 70 30.9789 724 0 1 -34.8267 -48.848 -204.85 - 70 306.685 893 0 1 -0.915059 1.83544 -204.45 - 70 105.008 904 0 0 -0.916619 1.84314 -205.85 - 70 131.769 907 0 0 -0.252533 2.38356 -205.85 - 70 130.259 896 5 1 0.0835882 0.05 -54.5713 - 70 103.741 896 1 0 -0.216637 0.0773285 -175.85 - 70 123.915 895 0 1 -0.460751 0.22321 -204.45 - 70 125.025 896 0 0 -0.469569 0.228166 -205.85 - 70 73.2096 896 1 1 0.05 0.175854 -174.712 - 70 116.419 903 1 0 0.136611 1.53087 -175.85 - 70 148.168 904 1 0 0.0678368 1.79806 -176.135 - 70 370.288 902 1 0 0.158243 1.44921 -176.047 -Number of tracker digits in this event = 15 Event: 71 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 72 -Number of tracker hits in this event = 19 - 72 39.0107 896 4 1 0.0536702 0.107817 -84.45 - 72 116.445 894 3 1 -0.681291 0.0691015 -114.45 - 72 150.056 896 3 0 -0.729123 0.0569122 -115.85 - 72 194.479 889 2 1 -1.76827 -0.163161 -144.45 - 72 118.93 882 1 1 -3.06548 -0.475466 -174.45 - 72 119.65 895 1 0 -3.14928 -0.457855 -175.85 - 72 138.072 873 0 1 -4.87221 -0.17378 -204.45 - 72 146.307 893 4 1 -0.857217 0.662651 -84.45 - 72 129.913 899 4 0 -0.898678 0.745328 -85.85 - 72 130.559 892 3 1 -1.14359 2.45531 -114.45 - 72 108.232 908 3 0 -1.0663 2.63073 -115.85 - 72 111.223 897 2 1 0.407078 6.4636 -144.45 - 72 196.653 928 2 0 0.441237 6.57019 -145.85 - 72 192.76 903 1 1 1.51656 7.46358 -174.45 - 72 102.416 933 1 0 1.62777 7.49297 -175.85 - 72 114.734 916 0 1 4.05186 7.68415 -204.45 - 72 98.3132 934 0 0 4.16852 7.70181 -205.85 - 72 142.812 929 2 0 0.544927 6.65335 -146.022 - 72 70.1409 1212 1 1 63.297 -8.97101 -174.85 -Number of tracker digits in this event = 9 +Number of tracker hits in this event = 17 + 72 99.591333 896 5 0 -0.13415585 0.19031901 -55.85 + 72 108.41233 899 4 0 -0.27947476 0.6949082 -85.85 + 72 121.02718 900 3 0 -0.44519771 0.97392869 -115.85 + 72 97.938458 895 2 1 -0.54680714 1.1161181 -144.45 + 72 177.48453 901 2 0 -0.56615836 1.1328679 -145.85 + 72 95.292718 893 1 1 -1.0187038 1.4799984 -174.45 + 72 157.7511 903 1 0 -1.0369426 1.4964105 -175.85 + 72 116.35648 891 0 1 -1.3839404 1.8155191 -204.45 + 72 120.57552 904 0 0 -1.3917296 1.8202689 -205.85 + 72 183.01806 1688 6 0 156.6156 159.12371 -26.25 + 72 121.11599 1674 6 1 156.16187 159.42566 -24.85 + 72 148.58097 901 3 0 -0.56854165 1.0569278 -115.85 + 72 108.96664 878 2 1 -3.8608116 2.7348106 -144.45 + 72 120.94612 908 2 0 -4.0973598 2.6026411 -145.85 + 72 105.76169 850 1 1 -9.4717295 -0.15371008 -174.45 + 72 161.9332 840 0 1 -11.53135 -5.9680712 -204.45 + 72 173.91078 868 0 0 -12.35777 -5.9456008 -205.85 +Number of tracker digits in this event = 10 Event: 73 -Number of tracker hits in this event = 1 - 73 28.0823 1100 0 1 40.9058 57.3279 -204.85 +Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 74 -Number of tracker hits in this event = 1 - 74 7.29161 621 3 1 -55.3921 -12.6324 -114.85 +Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 75 -Number of tracker hits in this event = 3 - 75 202.503 565 0 1 -66.5028 -48.4029 -204.628 - 75 92.1568 564 0 1 -66.6933 -48.4698 -204.455 - 75 250.463 606 2 1 -58.377 111.19 -144.671 -Number of tracker digits in this event = 2 -Event: 76 Number of tracker hits in this event = 1 - 76 62.0121 284 9 0 -93.6296 -123.284 63.75 + 75 113.46166 896 0 1 0.23399208 -0.11110044 -204.45 +Number of tracker digits in this event = 0 +Event: 76 +Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 77 -Number of tracker hits in this event = 2 - 77 9.89873 1008 1 0 -9.67057 22.5547 -175.869 - 77 157.711 858 1 1 -7.91454 22.1026 -174.85 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 9 + 77 111.10383 896 4 1 0.090016071 0.31285085 -84.45 + 77 148.53599 897 4 0 0.089542748 0.31241949 -85.85 + 77 105.96889 896 3 1 0.052099946 0.28607719 -114.45 + 77 114.44565 897 3 0 0.051162256 0.28624676 -115.85 + 77 139.82357 896 2 1 0.062611636 0.32062694 -144.45 + 77 118.99947 897 2 0 0.062285144 0.32924989 -145.85 + 77 109.6944 896 0 1 0.17289266 0.77387912 -204.45 + 77 105.87874 899 0 0 0.18623571 0.78414785 -205.85 + 77 124.66832 901 0 0 -0.065536875 1.1910896 -205.85 +Number of tracker digits in this event = 3 Event: 78 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 2 + 78 127.91228 1109 2 1 42.827681 -51.305444 -144.53404 + 78 60.831282 1110 2 1 42.87435 -51.395972 -144.54284 +Number of tracker digits in this event = 1 Event: 79 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 5 + 79 178.61068 896 2 1 0.10121204 -0.44282466 -144.45 + 79 98.726259 895 2 0 0.095314939 -0.46113167 -145.85 + 79 108.32266 893 1 0 -0.15732813 -0.88366848 -175.85 + 79 138.44845 890 0 0 -0.39651356 -1.5734482 -205.85 + 79 83.112821 891 0 0 0.05 -1.3048011 -205.94802 +Number of tracker digits in this event = 2 Event: 80 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 81 -Number of tracker hits in this event = 5 - 81 212.279 896 1 1 0.224694 -0.0599936 -174.45 - 81 130.539 897 0 1 0.318227 -0.182036 -204.45 - 81 110.506 891 0 1 -1.2578 0.0621988 -204.45 - 81 98.7548 896 0 0 -1.35538 0.119108 -205.85 - 81 122.17 778 0 0 76.5355 -23.8715 -206.168 -Number of tracker digits in this event = 3 +Number of tracker hits in this event = 3 + 81 138.24373 897 0 1 0.26921011 -0.11582279 -204.45 + 81 237.44271 896 1 0 0.15992066 0.05 -176.01767 + 81 1.5513357 897 1 0 0.48797681 0.32686081 -176.24291 +Number of tracker digits in this event = 2 Event: 82 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 @@ -5510,105 +5832,105 @@ Event: 83 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 84 -Number of tracker hits in this event = 8 - 84 246.147 895 4 0 0.231252 -0.498839 -85.85 - 84 127.257 897 3 1 0.405105 -0.331949 -114.45 - 84 174.507 906 2 1 2.2003 -0.449865 -144.45 - 84 144.139 895 2 0 2.21106 -0.468313 -145.85 - 84 125.001 908 1 1 2.6094 -1.0228 -174.45 - 84 131.876 893 1 0 2.68166 -1.04167 -175.85 - 84 128.864 917 0 1 4.27593 -1.56815 -204.45 - 84 180.524 890 0 0 4.44596 -1.57191 -205.85 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 85 -Number of tracker hits in this event = 8 - 85 155.835 895 0 0 -0.368892 -0.536958 -205.85 - 85 71.7805 528 2 1 -73.935 -45.3602 -144.85 - 85 175.407 896 2 1 0.0827381 0.0798923 -144.45 - 85 106.113 896 2 0 0.0921399 0.0858806 -145.85 - 85 145.563 897 1 1 0.268358 0.263236 -174.45 - 85 238.542 897 1 0 0.290206 0.266834 -175.85 - 85 102.886 899 0 1 0.755393 0.328867 -204.45 - 85 137.434 897 0 0 0.769993 0.333997 -205.85 -Number of tracker digits in this event = 5 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 86 -Number of tracker hits in this event = 1 - 86 260.786 195 4 0 -31.4801 -141.051 -86.2269 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 11 + 86 117.08899 892 3 1 -1.2281192 0.065741648 -114.45 + 86 131.05378 896 3 0 -1.2967359 0.074277755 -115.85 + 86 119.83409 884 2 1 -2.7615054 0.2547622 -144.45 + 86 111.47825 897 2 0 -2.840644 0.25986422 -145.85 + 86 126.7173 875 1 1 -4.5106928 0.29772519 -174.45 + 86 123.44328 897 1 0 -4.5740296 0.34364217 -175.85 + 86 232.87109 868 0 1 -5.8982706 1.2566252 -204.45 + 86 137.59988 902 0 0 -6.0006153 1.2547113 -205.85 + 86 143.98366 331 1 1 -113.8351 -125.11563 -174.74353 + 86 12.192813 529 0 1 -73.839385 -30.83584 -204.48376 + 86 98.958078 869 0 1 -5.8197067 1.3308531 -204.56136 +Number of tracker digits in this event = 6 Event: 87 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 88 -Number of tracker hits in this event = 0 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 11 + 88 102.86204 896 1 1 0.083891727 -0.086844988 -174.45 + 88 105.6633 896 0 1 0.2297099 -0.24544111 -204.45 + 88 176.99366 381 4 0 50.863174 -103.93909 -86.25 + 88 349.56557 1153 4 1 51.534911 -104.76684 -84.85 + 88 142.4624 286 5 0 58.639778 -122.87252 -56.25 + 88 147.39498 1188 5 1 58.606937 -123.4208 -54.85 + 88 469.80993 1316 1 0 157.07559 84.147616 -176.25 + 88 206.26906 1020 1 0 153.14483 24.904055 -176.25 + 88 186.27731 1021 1 0 152.7602 25.062745 -175.9939 + 88 99.170882 1656 1 1 152.69328 25.187028 -174.85 + 88 24.441595 1317 1 0 157.43549 84.269801 -176.19376 +Number of tracker digits in this event = 7 Event: 89 -Number of tracker hits in this event = 2 - 89 10.8597 810 8 0 94.9243 -17.6358 34.15 - 89 9.6919 720 8 0 94.3011 -35.6173 34.15 -Number of tracker digits in this event = 0 +Number of tracker hits in this event = 17 + 89 145.63981 897 4 0 -0.085182134 0.28851172 -85.85 + 89 123.66446 896 3 0 -0.084802019 0.15329441 -115.85 + 89 121.97701 897 1 1 0.26145493 0.19096446 -174.45 + 89 115.66935 896 1 0 0.26764435 0.19435754 -175.85 + 89 205.96374 897 0 1 0.42287119 0.33124387 -204.45 + 89 107.44594 897 0 0 0.43188889 0.33961451 -205.85 + 89 156.66069 895 5 0 -0.20838141 -0.46612821 -55.85 + 89 108.89246 873 4 1 -5.0067524 -10.952202 -84.45 + 89 119.24199 841 4 0 -5.1437667 -11.261391 -85.85 + 89 114.78514 852 3 1 -9.2344159 -17.030017 -114.45 + 89 168.66115 812 3 0 -9.6678306 -17.162936 -115.85 + 89 117.2 807 2 1 -18.067137 -19.147107 -144.45 + 89 123.38464 801 2 0 -18.576864 -19.281852 -145.85 + 89 139.67331 759 1 1 -27.803011 -22.289743 -174.45 + 89 134.62363 785 1 0 -28.274808 -22.477045 -175.85 + 89 133.27837 725 0 1 -34.605816 -27.799689 -204.45 + 89 136.41304 762 0 0 -34.365477 -27.22098 -205.85 +Number of tracker digits in this event = 11 Event: 90 -Number of tracker hits in this event = 11 - 90 20.4957 982 3 1 17.2747 33.4091 -114.85 - 90 330.039 101 8 0 27.1961 -159.806 33.75 - 90 173.241 1025 8 1 25.9213 -160.452 35.15 - 90 197.006 177 9 0 3.72918 -144.652 63.75 - 90 218.418 905 9 1 2.01257 -143.654 65.15 - 90 563.613 902 9 1 1.41044 -143.312 65.55 - 90 159.12 411 1 1 -97.9471 -64.5886 -174.515 - 90 136.176 903 9 1 1.49837 -143.222 65.3243 - 90 2.23923 172 8 0 147.96 -145.55 33.75 - 90 100.58 618 4 0 28.8972 -56.0216 -86.25 - 90 147.798 1041 4 1 29.2159 -55.9979 -84.85 -Number of tracker digits in this event = 8 -Event: 91 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 +Event: 91 +Number of tracker hits in this event = 10 + 91 443.86341 895 3 1 -0.6222183 -0.20567808 -114.45 + 91 171.90659 892 2 1 -1.1296961 -0.32286571 -144.45 + 91 99.546855 889 1 1 -1.819565 0.42217462 -174.45 + 91 103.6098 898 1 0 -1.8330169 0.46552633 -175.85 + 91 119.42401 887 0 1 -2.2357508 1.2230152 -204.45 + 91 139.45754 902 0 0 -2.233744 1.2962184 -205.85 + 91 125.65752 889 2 1 -1.8218799 1.1446793 -144.45 + 91 26.863685 896 2 0 -1.2203171 0.11938266 -145.85 + 91 177.07658 964 1 1 13.659657 -18.462039 -174.45 + 91 182.60041 801 1 0 12.105797 -19.297806 -175.85 +Number of tracker digits in this event = 6 Event: 92 -Number of tracker hits in this event = 12 - 92 122.335 896 0 1 0.209595 0.281033 -204.45 - 92 236.888 897 0 0 0.224921 0.303239 -205.85 - 92 162.732 935 3 0 -100.012 7.98894 -116.132 - 92 83.4806 396 3 1 -100.871 8.06876 -114.85 - 92 175.525 395 3 1 -100.968 8.07062 -114.729 - 92 68.91 394 3 1 -101.165 8.03542 -114.713 - 92 111.126 882 0 1 -3.09408 -5.9196 -204.45 - 92 111.555 867 0 0 -3.36757 -6.0744 -205.85 - 92 130.654 896 2 1 0.0837752 -0.0898862 -144.45 - 92 196.629 898 1 1 0.491341 0.322623 -174.45 - 92 123.594 897 1 0 0.44582 0.314339 -175.85 - 92 136.821 894 0 1 -0.719696 0.378106 -204.45 -Number of tracker digits in this event = 8 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 93 -Number of tracker hits in this event = 7 - 93 388.757 896 0 1 0.0929611 -0.52289 -204.45 - 93 113.452 895 0 0 0.0753411 -0.501826 -205.85 - 93 45.2495 897 0 1 0.263659 -0.386523 -204.605 - 93 118.312 896 0 0 -0.139649 0.0940366 -205.85 - 93 205.144 671 0 0 -21.5674 -45.4074 -206.101 - 93 254.495 670 0 0 -21.6132 -45.6322 -205.85 - 93 215.369 669 0 0 -21.7 -45.7608 -205.892 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 Event: 94 -Number of tracker hits in this event = 11 - 94 105.776 896 1 1 0.116361 0.362461 -174.45 - 94 125.763 897 1 0 0.137915 0.344842 -175.85 - 94 24.5074 1632 3 1 147.817 -81.0633 -114.85 - 94 52.1579 898 0 1 0.620673 -0.05 -204.65 - 94 76.1291 406 2 0 -32.3156 -98.9213 -146.25 - 94 406.193 405 2 0 -32.5233 -99.0369 -146.126 - 94 20.8567 404 2 0 -32.9791 -99.3168 -145.913 - 94 207.905 403 2 0 -33.002 -99.3501 -145.85 - 94 55.4097 1000 13 1 20.897 80.6866 185.55 - 94 29.6783 1777 6 0 -68.1304 176.838 -26.25 - 94 161.707 896 0 0 0.219582 0.130821 -205.85 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 2 + 94 143.89676 896 0 1 0.11364056 0.059107909 -204.45 + 94 102.27608 896 0 0 0.15426298 0.068162278 -205.85 +Number of tracker digits in this event = 1 Event: 95 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 96 -Number of tracker hits in this event = 1 - 96 338.602 1630 4 0 -10.3115 147.371 -86.0632 -Number of tracker digits in this event = 1 +Number of tracker hits in this event = 10 + 96 24.94894 896 3 1 0.050089929 -0.12079014 -114.45 + 96 139.32375 895 1 0 -0.30590286 -0.4700627 -175.85 + 96 103.80027 634 3 0 -12.505212 -52.747008 -116.10206 + 96 280.68159 835 3 1 -12.634266 -51.963004 -114.85 + 96 308.46893 834 3 1 -12.758123 -51.865275 -114.72049 + 96 217.27334 886 0 0 -1.3192443 -2.3841129 -205.85 + 96 1046.26 135 0 0 -46.374393 -153.05419 -206.25 + 96 112.64779 121 0 0 -47.184577 -155.77035 -205.96259 + 96 463.72161 652 0 1 -49.243891 -158.73552 -204.85 + 96 36.485363 544 2 1 -70.665256 -32.641379 -144.56721 +Number of tracker digits in this event = 6 Event: 97 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 @@ -5616,1770 +5938,1778 @@ Event: 98 Number of tracker hits in this event = 0 Number of tracker digits in this event = 0 Event: 99 -Number of tracker hits in this event = 16 - 99 127.827 896 2 1 0.183709 -0.127917 -144.45 - 99 153.57 896 1 1 0.2283 -0.32082 -174.45 - 99 119.672 896 0 1 0.193538 -0.561871 -204.45 - 99 122.87 895 0 0 0.195481 -0.57376 -205.85 - 99 5.10307 896 3 1 0.0719955 -0.0517977 -114.845 - 99 35.5301 944 3 0 -8.83583 9.73607 -115.85 - 99 45.8105 862 3 1 -7.15619 10.4743 -114.85 - 99 201.705 896 4 0 -0.513542 0.0772743 -85.85 - 99 135.147 881 3 1 -3.30927 0.375534 -114.45 - 99 129.157 898 3 0 -3.58059 0.521536 -115.85 - 99 113.587 853 2 1 -8.88801 3.72452 -144.45 - 99 136.647 915 2 0 -9.21433 3.93671 -145.85 - 99 127.311 816 1 1 -16.2685 8.47749 -174.45 - 99 111.015 938 1 0 -16.8672 8.58164 -175.85 - 99 158.874 757 0 1 -28.1389 11.4477 -204.45 - 99 121.364 953 0 0 -28.4543 11.4501 -205.85 -Number of tracker digits in this event = 10 +Number of tracker hits in this event = 2 + 99 123.81776 896 0 0 -0.21507699 0.096878933 -205.85 + 99 124.06985 1008 4 0 -67.773405 22.505394 -85.938708 +Number of tracker digits in this event = 2 Run terminated. Run Summary Number of events processed : 100 - User=55.36s Real=138.79s Sys=0.03s + User=19.21s Real=19.25s Sys=0.02s End of Run File Tracks_4.dat /gun/particle e- /gun/energy 1 GeV /gun/sourceType 2 /run/beamOn 100 + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Scintillator + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.3689452 keV e- 355.79082 keV e+ 347.13789 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Calorimeter + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : CesiumIodide + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 38.405229 keV e- 691.66869 keV e+ 658.43466 keV + Region(s) which use this couple : + Calorimeter + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + Tracker + +Index : 5 used in the geometry : Yes recalculation needed : No + Material : Silicon + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 2.3033387 keV e- 120.42458 keV e+ 118.95119 keV + Region(s) which use this couple : + Tracker + +Index : 6 used in the geometry : Yes recalculation needed : No + Material : Tungsten + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 36.047857 keV e- 351.43773 keV e+ 334.55147 keV + Region(s) which use this couple : + Tracker + +==================================================================== + Start Run processing. Event: 0 -Number of tracker hits in this event = 18 - 0 117.786 896 5 0 -0.105033 0.113794 -55.85 - 0 137.971 896 4 0 -0.220459 0.221181 -85.85 - 0 119.034 897 3 0 -0.354461 0.35186 -115.85 - 0 167.967 898 2 0 -0.391231 0.464596 -145.85 - 0 143.064 904 1 0 -0.319999 1.67112 -175.85 - 0 276.039 909 0 0 -0.250713 2.78297 -205.85 - 0 144.14 1206 4 0 -30.43 62.1015 -86.25 - 0 118.844 746 4 1 -30.3455 62.4418 -84.85 - 0 47.2572 1207 4 0 -30.4456 62.2546 -85.85 - 0 252.075 744 4 1 -30.7196 63.1723 -84.85 - 0 70.4416 745 4 1 -30.6256 63.336 -84.7271 - 0 11.8052 584 0 0 40.0644 -62.6983 -206.25 - 0 1.8285 1149 0 1 50.6764 -69.4552 -204.45 - 0 63.067 1148 0 1 50.6244 -69.4759 -204.625 - 0 223.823 895 1 1 -0.470699 0.458632 -174.45 - 0 213.656 898 1 0 -0.455557 0.472028 -175.85 - 0 108.33 900 0 0 -0.206637 0.937769 -205.85 - 0 180.33 874 0 1 -4.83139 3.21242 -204.45 -Number of tracker digits in this event = 9 +Number of tracker hits in this event = 11 + 0 106.17021 896 5 0 -0.11764831 0.065780315 -55.85 + 0 163.47046 896 4 0 -0.25449269 0.23098417 -85.85 + 0 114.76137 894 3 1 -0.69592142 0.55201932 -114.45 + 0 115.45447 898 3 0 -0.6860933 0.5437226 -115.85 + 0 49.890719 903 2 0 -0.31035153 1.6441781 -145.85 + 0 206.797 904 2 0 -0.31391546 1.7608957 -145.98759 + 0 233.92262 899 1 1 0.70144578 25.296455 -174.45 + 0 149.44844 1022 1 0 -0.27213516 25.316304 -175.85 + 0 132.30958 797 0 1 -20.053632 25.016809 -204.45 + 0 129.33367 1017 0 0 -20.404365 24.422245 -205.85 + 0 56.235814 905 2 0 -0.29784884 1.8573097 -146.02284 +Number of tracker digits in this event = 6 Event: 1 -Number of tracker hits in this event = 15 - 1 153.592 896 4 0 -0.0902698 0.122456 -85.85 - 1 103.028 901 2 1 1.11431 3.65104 -144.45 - 1 127.505 915 2 0 1.23764 3.92499 -145.85 - 1 104.945 916 1 1 4.1294 10.0372 -174.45 - 1 112.209 947 1 0 4.14599 10.3491 -175.85 - 1 231.208 915 0 1 4.00454 16.9712 -204.45 - 1 106.294 981 0 0 4.06296 17.1747 -205.85 - 1 112.841 774 4 1 -24.838 -24.2158 -84.8037 - 1 675.746 896 0 1 0.120448 0.650416 -204.45 - 1 369.34 899 0 0 0.116283 0.665156 -205.85 - 1 113.796 897 1 0 -0.0752406 0.397929 -175.85 - 1 110.988 894 0 1 -0.825078 0.663033 -204.45 - 1 125.836 897 0 1 0.263466 0.276268 -204.712 - 1 38.9969 884 0 0 -1.76661 -2.79723 -206.211 - 1 191.857 894 6 0 0.573817 -0.661907 -25.85 -Number of tracker digits in this event = 7 +Number of tracker hits in this event = 18 + 1 113.89287 895 4 1 -0.51193867 -0.63728073 -84.45 + 1 173.6147 894 4 0 -0.53780842 -0.67950753 -85.85 + 1 105.80787 893 3 1 -1.0345129 -1.6181664 -114.45 + 1 16.577177 892 3 1 -1.0547475 -1.6450339 -114.83416 + 1 128.83165 889 3 0 -1.1114215 -1.7182497 -115.85 + 1 145.463 884 2 1 -2.8330037 -3.9969771 -144.45 + 1 119.05298 877 2 0 -2.9605191 -4.14697 -145.85 + 1 121.98343 870 1 1 -5.6047356 -7.0866999 -174.45 + 1 113.14951 862 1 0 -5.7398983 -7.1569428 -175.85 + 1 179.99614 855 0 1 -8.6451198 -8.4492888 -204.45 + 1 141.27649 855 0 0 -8.8543001 -8.4593684 -205.85 + 1 191.35274 894 3 0 -1.1270936 -0.80354896 -115.85 + 1 96.944493 895 3 0 -1.1441428 -0.60848039 -115.93661 + 1 157.06848 888 1 1 -1.8611539 -2.8322887 -174.45 + 1 171.17577 885 1 0 -1.6063744 -2.6091563 -175.85 + 1 123.65436 890 0 1 -1.5196915 0.065153337 -204.45 + 1 199.94981 896 0 0 -1.5622805 0.090002807 -205.85 + 1 28.6095 850 0 0 -26.157104 -9.472447 -206.25 +Number of tracker digits in this event = 11 Event: 2 -Number of tracker hits in this event = 10 - 2 147.675 896 4 0 -0.192601 0.0863086 -85.85 - 2 102.291 896 3 0 -0.289217 0.21571 -115.85 - 2 219.403 897 2 0 -0.318313 0.308175 -145.85 - 2 115.09 896 1 0 0.0985581 0.0908008 -175.85 - 2 128.514 892 0 1 -1.09167 3.52181 -204.45 - 2 133.194 915 0 0 -1.2958 3.97432 -205.85 - 2 92.6103 918 1 0 -2.13447 4.56891 -175.85 - 2 83.1718 919 1 0 -2.21683 4.81811 -175.94 - 2 148.438 921 1 0 -2.17305 5.10358 -175.973 - 2 226.439 50 3 0 120.547 -170.111 -115.993 -Number of tracker digits in this event = 6 -Event: 3 -Number of tracker hits in this event = 13 - 3 112.156 896 5 1 0.0580036 0.100829 -54.45 - 3 117.265 896 5 0 0.0582281 0.108446 -55.85 - 3 278.005 896 4 1 0.0770809 0.266964 -84.45 - 3 119.981 897 4 0 0.0819556 0.268483 -85.85 - 3 121.088 896 3 1 0.198522 0.25089 -114.45 - 3 203.704 896 3 0 0.199553 0.245504 -115.85 - 3 101.14 896 2 1 0.191458 0.128391 -144.45 - 3 110.317 896 2 0 0.192685 0.127823 -145.85 - 3 143.014 896 1 1 0.214766 0.116149 -174.45 - 3 125.525 896 1 0 0.214065 0.118436 -175.85 - 3 152.244 896 0 1 0.203025 0.174473 -204.45 - 3 103.423 896 0 0 0.201725 0.174247 -205.85 - 3 191.989 899 0 0 0.956202 0.683138 -205.85 -Number of tracker digits in this event = 7 -Event: 4 -Number of tracker hits in this event = 21 - 4 110.859 896 4 0 0.0533879 0.144213 -85.85 - 4 204.133 896 3 1 0.20183 0.263719 -114.45 - 4 107.649 897 3 0 0.203411 0.266052 -115.85 - 4 138.328 896 2 1 0.224679 0.325384 -144.45 - 4 115.11 897 2 0 0.229138 0.335552 -145.85 - 4 122.948 897 1 1 0.351263 0.534863 -174.45 - 4 95.0426 898 1 0 0.361371 0.544569 -175.85 - 4 158.892 898 0 1 0.583361 0.749684 -204.45 - 4 125.218 899 0 0 0.598297 0.758772 -205.85 - 4 44.0071 896 5 0 -0.05 0.0851197 -56.1411 - 4 68.7049 920 5 0 -67.9342 4.94011 -56.25 - 4 310.258 921 5 0 -68.0369 5.0531 -56.1856 - 4 56.8332 922 5 0 -68.3224 5.26146 -56.0082 - 4 29.1617 896 1 1 0.157422 0.229616 -174.45 - 4 77.5692 894 1 0 -0.512461 -0.848694 -175.85 - 4 234.603 892 1 0 -0.440987 -1.06891 -176.043 - 4 212.641 891 1 0 -0.456149 -1.44666 -176.194 - 4 155.104 890 1 0 -0.186426 -1.54497 -176.15 - 4 107.791 897 1 0 -0.164386 0.382661 -175.85 - 4 154.653 880 0 1 -3.50242 3.98616 -204.45 - 4 136.234 917 0 0 -3.95344 4.2532 -205.85 -Number of tracker digits in this event = 11 -Event: 5 -Number of tracker hits in this event = 11 - 5 103.428 892 4 1 -1.05339 0.708721 -84.45 - 5 114.051 899 4 0 -1.03281 0.775198 -85.85 - 5 124.018 895 3 1 -0.630518 2.17084 -114.45 - 5 170.89 907 3 0 -0.596032 2.26112 -115.85 - 5 271.931 896 2 1 0.10771 4.02981 -144.45 - 5 148.001 916 2 0 0.15708 4.05859 -145.85 - 5 137.374 902 1 1 1.41227 4.7517 -174.45 - 5 201.923 919 1 0 1.50923 4.69188 -175.85 - 5 117.728 912 0 1 3.41707 3.20105 -204.45 - 5 172.719 911 0 0 3.48227 3.21368 -205.85 - 5 195.8 1174 9 0 -23.683 55.6735 64.0561 -Number of tracker digits in this event = 8 -Event: 6 -Number of tracker hits in this event = 16 - 6 117.948 895 4 0 -0.278263 -0.488221 -85.85 - 6 121.448 893 3 0 -0.359135 -0.987515 -115.85 - 6 177.431 893 2 1 -0.874413 -1.96131 -144.45 - 6 141.074 888 2 0 -0.888922 -2.00974 -145.85 - 6 119.054 892 1 1 -1.1613 -3.09139 -174.45 - 6 120.209 882 1 0 -1.17361 -3.13297 -175.85 - 6 110.999 891 0 1 -1.41119 -4.00658 -204.45 - 6 210.775 878 0 0 -1.41335 -4.04949 -205.85 - 6 3.86178 931 3 0 117.365 7.09715 -115.85 - 6 84.7175 1482 3 1 117.902 8.0832 -114.73 - 6 112.667 1483 3 1 117.976 8.12843 -114.753 - 6 23.2279 888 0 0 -0.503227 -2.04474 -205.85 - 6 125.849 896 0 1 0.230831 -5.83631 -204.45 - 6 106.3 870 0 0 0.464807 -5.47321 -205.85 - 6 142.158 877 0 1 -4.12771 -2.18479 -204.45 - 6 172.011 886 0 0 -3.30191 -2.26628 -205.85 -Number of tracker digits in this event = 8 -Event: 7 -Number of tracker hits in this event = 7 - 7 203.814 895 2 0 -0.121471 -0.573938 -145.85 - 7 303.313 894 1 0 -0.255443 -0.757338 -175.85 - 7 123.353 894 0 0 -0.363599 -0.66385 -205.85 - 7 194.634 896 3 1 0.05 -0.305185 -114.811 - 7 113.856 893 1 0 -0.336896 -0.865909 -175.85 - 7 150.235 882 0 1 -3.07675 5.47049 -204.45 - 7 149.642 928 0 0 -3.53905 6.55418 -205.85 -Number of tracker digits in this event = 6 -Event: 8 -Number of tracker hits in this event = 6 - 8 119.76 896 3 0 -0.120041 0.103876 -115.85 - 8 138.701 897 2 0 -0.146403 0.317419 -145.85 - 8 128.185 898 1 0 -0.194396 0.575337 -175.85 - 8 187.22 899 0 0 -0.377115 0.809663 -205.85 - 8 89.7577 1537 10 1 128.896 -32.2166 95.4379 - 8 114.166 1538 10 1 128.959 -32.1974 95.4961 -Number of tracker digits in this event = 3 -Event: 9 -Number of tracker hits in this event = 8 - 9 96.2911 897 3 0 -0.0613007 0.406387 -115.85 - 9 108.317 896 2 1 0.0593032 0.800172 -144.45 - 9 142.392 899 2 0 0.0591947 0.828031 -145.85 - 9 96.7138 896 1 1 0.105137 1.46576 -174.45 - 9 128.163 903 1 0 0.111715 1.51098 -175.85 - 9 374.539 896 0 1 0.228601 2.42604 -204.45 - 9 107.246 908 0 0 0.23901 2.45479 -205.85 - 9 370.486 1140 5 1 48.9671 -61.7363 -54.6191 -Number of tracker digits in this event = 4 -Event: 10 -Number of tracker hits in this event = 8 - 10 158.52 898 2 1 0.620613 0.798848 -144.45 - 10 142.188 900 2 0 0.477101 0.855491 -145.85 - 10 121.376 878 1 1 -3.85907 1.25025 -174.45 - 10 119.354 902 1 0 -4.02997 1.41024 -175.85 - 10 195.376 864 0 1 -6.76491 5.35894 -204.45 - 10 103.106 924 0 0 -6.71227 5.76951 -205.85 - 10 28.5266 896 5 0 -0.0830216 0.05 -56.1549 - 10 232.23 897 5 0 0.177888 0.284382 -55.85 -Number of tracker digits in this event = 5 -Event: 11 -Number of tracker hits in this event = 10 - 11 151.127 894 2 1 -0.747894 -0.525272 -144.45 - 11 124.326 895 2 0 -0.759325 -0.533984 -145.85 - 11 180.086 893 1 1 -0.999509 -0.7236 -174.45 - 11 120.796 894 1 0 -1.00806 -0.736523 -175.85 - 11 95.41 892 0 1 -1.18918 -0.99949 -204.45 - 11 106.035 893 0 0 -1.19763 -1.0088 -205.85 - 11 245.438 565 7 0 -119.589 -66.4728 3.75 - 11 121.516 297 7 1 -120.607 -66.272 5.15 - 11 121.446 296 7 1 -120.846 -66.1122 5.33536 - 11 88.7639 295 7 1 -120.992 -66.2512 5.54043 -Number of tracker digits in this event = 7 -Event: 12 -Number of tracker hits in this event = 2 - 12 119.903 897 1 1 0.326047 -0.0749649 -174.45 - 12 121.584 896 0 1 0.174528 -0.220155 -204.45 -Number of tracker digits in this event = 1 -Event: 13 -Number of tracker hits in this event = 5 - 13 173.33 896 3 0 -0.202626 0.0703376 -115.85 - 13 351.281 895 1 1 -0.559331 -0.124392 -174.45 - 13 148.269 894 0 1 -0.764269 -0.134408 -204.45 - 13 17.6233 893 0 1 -1.02333 -45.2175 -204.515 - 13 76.8232 1396 6 1 100.602 52.7887 -24.85 -Number of tracker digits in this event = 3 -Event: 14 -Number of tracker hits in this event = 18 - 14 121.687 896 5 1 0.0886624 -0.0586995 -54.45 - 14 106.318 896 4 1 0.0857997 -0.261208 -84.45 - 14 99.5773 896 2 1 0.110543 -0.800545 -144.45 - 14 112.765 894 2 0 0.113951 -0.811712 -145.85 - 14 111.895 897 1 1 0.279367 -0.981342 -174.45 - 14 137.579 893 1 0 0.284006 -0.988635 -175.85 - 14 149.87 897 0 1 0.353732 -1.13794 -204.45 - 14 102.332 892 0 0 0.337624 -1.14797 -205.85 - 14 118.827 1306 3 1 82.1502 -94.015 -114.6 - 14 184.116 1307 3 1 82.2643 -94.0525 -114.45 - 14 185.356 1304 3 1 81.7331 -93.8496 -114.553 - 14 5.92077 1302 3 1 81.2508 -93.6155 -114.466 - 14 86.1841 1305 6 0 -7.17383 82.0393 -26.074 - 14 215.564 1306 6 0 -7.23058 82.1236 -26.0021 - 14 122.682 886 6 0 0.589913 -2.38151 -25.85 - 14 109.805 884 6 0 0.630734 -2.68705 -25.9173 - 14 235.017 885 6 0 0.84792 -2.46127 -25.913 - 14 292.58 900 6 1 0.91166 -2.08973 -24.85 -Number of tracker digits in this event = 9 -Event: 15 -Number of tracker hits in this event = 13 - 15 119.038 896 5 0 -0.0521136 0.0876833 -55.85 - 15 132.72 896 3 1 0.0807015 0.455226 -114.45 - 15 124.901 898 3 0 0.0856335 0.461446 -115.85 - 15 116.203 896 2 1 0.223279 0.614419 -144.45 - 15 243.544 898 2 0 0.232584 0.626342 -145.85 - 15 159.28 898 1 1 0.450005 0.853162 -174.45 - 15 167.874 900 1 0 0.453221 0.864512 -175.85 - 15 113.498 898 0 1 0.472667 1.12102 -204.45 - 15 119.366 901 0 0 0.474138 1.14388 -205.85 - 15 16.5233 899 2 0 0.268358 0.766805 -146.22 - 15 110.072 897 1 1 0.401566 0.882318 -174.576 - 15 209.595 887 6 0 -0.698872 -2.16367 -25.85 - 15 0.881894 885 6 0 -0.956633 -2.56269 -26.2465 -Number of tracker digits in this event = 6 -Event: 16 -Number of tracker hits in this event = 9 - 16 115.802 896 4 0 0.0501826 0.0896605 -85.85 - 16 266.85 896 2 1 0.123735 -0.175976 -144.45 - 16 277.01 895 1 0 -0.173694 -0.548393 -175.85 - 16 161.575 893 0 0 -0.369346 -0.90864 -205.85 - 16 101.321 896 2 0 0.414814 0.05 -145.927 - 16 135.368 921 1 1 5.23954 4.44126 -174.45 - 16 141.749 918 1 0 5.59775 4.60255 -175.85 - 16 133.068 956 0 1 12.1598 8.3614 -204.45 - 16 132.916 938 0 0 12.7528 8.59157 -205.85 -Number of tracker digits in this event = 7 -Event: 17 -Number of tracker hits in this event = 13 - 17 109.719 896 5 0 -0.0785075 0.0687623 -55.85 - 17 166.067 896 4 0 -0.234181 0.172438 -85.85 - 17 98.8364 898 3 0 -0.155997 0.490381 -115.85 - 17 105.137 896 1 1 0.20696 0.708592 -174.45 - 17 120.957 899 1 0 0.213001 0.712686 -175.85 - 17 134.212 897 0 1 0.313922 0.780156 -204.45 - 17 106.512 899 0 0 0.321714 0.789179 -205.85 - 17 127.426 1634 1 0 -50.4799 148.211 -176.104 - 17 120.446 404 3 1 -99.1637 -12.3073 -114.728 - 17 193.754 895 4 0 0.288091 -0.486476 -85.85 - 17 197.142 894 4 0 0.480052 -0.719034 -86.25 - 17 156.424 898 4 1 0.496364 -0.930468 -84.85 - 17 5.77321 896 6 1 0.05 0.0556331 -24.4776 -Number of tracker digits in this event = 8 -Event: 18 -Number of tracker hits in this event = 30 - 18 238.638 896 3 0 -0.200266 0.143218 -115.85 - 18 115.571 896 2 1 0.0553384 0.396016 -144.45 - 18 871.452 897 2 0 0.0636518 0.404189 -145.85 - 18 700.978 896 1 1 0.220933 0.578906 -174.45 - 18 295.719 898 1 0 0.213663 0.556645 -175.85 - 18 122.748 896 0 0 -0.0710796 0.115324 -205.85 - 18 129.93 897 1 1 0.288031 0.0521768 -174.45 - 18 204.851 956 0 1 12.2418 9.76906 -204.45 - 18 61.0584 948 0 0 13.7397 10.6004 -205.85 - 18 125.015 949 0 0 13.8501 10.6597 -205.946 - 18 49.3749 895 1 0 -0.663308 -0.502918 -176.095 - 18 561.993 656 1 0 65.4676 -48.2986 -176.25 - 18 111.82 898 4 0 -0.282133 0.474124 -85.85 - 18 490.103 986 4 0 -25.1477 18.1135 -86.25 - 18 140.193 769 4 1 -25.6894 18.418 -84.85 - 18 154.462 987 4 0 -25.5471 18.3398 -85.9736 - 18 421.884 902 2 0 -5.09995 1.44141 -146.076 - 18 549.107 847 2 1 -10.2116 7.42856 -144.85 - 18 483.335 843 2 1 -10.9367 8.41395 -144.798 - 18 83.6662 839 2 1 -11.7147 9.08851 -144.598 - 18 199.634 944 2 0 -10.1697 9.73865 -145.85 - 18 67.8695 945 2 0 -9.64136 9.90978 -146.227 - 18 208.945 1153 2 0 166.055 51.5742 -146.25 - 18 273.161 1152 2 0 166.469 51.4488 -146.101 - 18 366.895 838 2 0 -8.86521 -11.963 -145.85 - 18 137.785 835 2 0 -9.55618 -12.4981 -145.916 - 18 321.082 842 2 1 -11.2473 -13.7401 -144.85 - 18 38.3019 894 3 1 -0.82598 -0.05 -114.741 - 18 108.294 893 3 1 -0.881941 -0.08503 -114.714 - 18 121.592 892 3 1 -1.058 -0.140949 -114.622 -Number of tracker digits in this event = 22 -Event: 19 -Number of tracker hits in this event = 10 - 19 135.968 896 4 1 0.211517 0.149402 -84.45 - 19 116.562 896 4 0 0.216311 0.155442 -85.85 - 19 125.136 897 3 1 0.310668 0.266081 -114.45 - 19 123.328 897 3 0 0.315447 0.285008 -115.85 - 19 111.128 897 2 1 0.432653 0.682284 -144.45 - 19 121.156 899 2 0 0.432039 0.697769 -145.85 - 19 131.28 897 1 1 0.445772 0.998091 -174.45 - 19 122.519 900 1 0 0.447947 1.01304 -175.85 - 19 98.3535 898 0 1 0.490352 1.35057 -204.45 - 19 92.9935 902 0 0 0.493084 1.34762 -205.85 -Number of tracker digits in this event = 6 -Event: 20 -Number of tracker hits in this event = 31 - 20 113.314 896 5 0 -0.228026 0.0926134 -55.85 - 20 136.05 897 4 0 -0.438577 0.254061 -85.85 - 20 247.349 893 3 1 -0.858639 0.324584 -114.45 - 20 106.305 897 3 0 -0.880381 0.324151 -115.85 - 20 110.193 891 2 1 -1.33651 0.295726 -144.45 - 20 125.897 897 2 0 -1.35455 0.293667 -145.85 - 20 88.7386 889 1 1 -1.70552 0.213392 -174.45 - 20 142.74 896 1 0 -1.70965 0.204249 -175.85 - 20 149.657 897 5 0 -0.478321 0.405972 -55.85 - 20 162.805 892 4 1 -1.24384 1.06265 -84.45 - 20 104.612 901 4 0 -1.29848 1.08991 -85.85 - 20 441.333 886 3 1 -2.34915 1.70206 -114.45 - 20 101.853 904 3 0 -2.38224 1.69274 -115.85 - 20 189.619 882 2 1 -3.13938 1.37306 -144.45 - 20 122.138 902 2 0 -3.22921 1.37443 -145.85 - 20 123.098 873 1 1 -4.99069 1.49613 -174.45 - 20 97.5143 903 1 0 -5.03289 1.50799 -175.85 - 20 124.948 869 0 1 -5.81871 1.90714 -204.45 - 20 108.685 905 0 0 -5.85034 1.94758 -205.85 - 20 246.435 880 1 1 -3.56533 3.06974 -174.45 - 20 419.429 911 1 0 -3.64443 3.06672 -175.85 - 20 221.455 871 0 1 -5.2853 3.10555 -204.45 - 20 122.87 911 0 0 -5.24813 3.22269 -205.85 - 20 110.093 910 0 1 2.93231 4.74547 -204.45 - 20 118.067 920 0 0 3.22693 4.95722 -205.85 - 20 129.563 897 5 1 0.357982 -0.257719 -54.45 - 20 123.706 906 4 1 2.21693 2.95488 -84.45 - 20 122.054 910 4 0 2.37206 3.01189 -85.85 - 20 143.92 917 3 1 4.40332 0.778116 -114.45 - 20 116.798 898 3 0 3.91319 0.470871 -115.85 - 20 35.1236 896 6 0 0.05 0.070519 -25.8754 -Number of tracker digits in this event = 19 -Event: 21 -Number of tracker hits in this event = 11 - 21 104.448 896 4 1 0.0738773 -0.290862 -84.45 - 21 106.783 897 3 1 0.336734 -0.534556 -114.45 - 21 128.23 895 3 0 0.347679 -0.53659 -115.85 - 21 158.981 898 2 1 0.580483 -0.54771 -144.45 - 21 113.273 895 2 0 0.5933 -0.543953 -145.85 - 21 147.553 899 1 1 0.849187 -0.478868 -174.45 - 21 118.827 895 1 0 0.863758 -0.481864 -175.85 - 21 241.759 901 0 1 1.13548 -0.548516 -204.45 - 21 109.073 895 0 0 1.14894 -0.557883 -205.85 - 21 152.487 1685 8 0 139.661 158.378 33.8142 - 21 163.812 892 0 0 0.921075 -1.17567 -205.85 -Number of tracker digits in this event = 6 -Event: 22 -Number of tracker hits in this event = 13 - 22 114.062 896 5 1 0.15875 0.0803373 -54.45 - 22 153.576 896 5 0 0.158974 0.0860169 -55.85 - 22 138.507 896 4 1 0.147921 0.213587 -84.45 - 22 133.443 896 4 0 0.144608 0.229602 -85.85 - 22 155.77 896 3 1 0.0744268 0.596064 -114.45 - 22 334.715 898 3 0 0.0622547 0.603313 -115.85 - 22 115.162 899 2 0 -0.228323 0.761562 -145.85 - 22 179.663 895 1 1 -0.561797 0.659665 -174.45 - 22 107.152 898 1 0 -0.579669 0.642557 -175.85 - 22 102.094 893 0 1 -0.984626 0.252345 -204.45 - 22 137.962 896 0 0 -0.992135 0.229177 -205.85 - 22 34.6173 897 2 0 0.05 0.412334 -146.116 - 22 26.0267 935 1 0 -11.3151 8.01756 -176.25 -Number of tracker digits in this event = 7 -Event: 23 -Number of tracker hits in this event = 35 - 23 150.97 896 4 1 0.242222 0.302779 -84.45 - 23 127.693 897 4 0 0.256343 0.312595 -85.85 - 23 114.888 898 3 1 0.581089 0.518853 -114.45 - 23 115.853 898 3 0 0.597919 0.544335 -115.85 - 23 127.339 900 2 1 0.92168 1.07346 -144.45 - 23 156.371 901 2 0 0.942924 1.10898 -145.85 - 23 111.197 902 1 1 1.34795 1.83654 -174.45 - 23 106.101 905 1 0 1.3675 1.86896 -175.85 - 23 207.928 904 0 1 1.76366 2.53189 -204.45 - 23 101.04 908 0 0 1.78673 2.55983 -205.85 - 23 129.425 901 0 1 1.2443 1.40858 -204.45 - 23 230.984 902 0 0 1.22549 1.42709 -205.85 - 23 119.696 902 0 1 1.28104 1.41701 -204.45 - 23 203.189 904 0 0 1.78585 1.66057 -205.85 - 23 115.779 887 5 0 -0.610102 -2.23636 -55.85 - 23 155.648 879 4 1 -3.65503 -9.19753 -84.45 - 23 154.496 853 4 0 -4.60053 -8.87441 -85.85 - 23 173.451 754 3 1 -28.7264 -2.09306 -114.45 - 23 174.231 882 3 0 -27.7104 -3.17036 -115.85 - 23 483.517 862 2 1 -7.12062 -23.3724 -144.45 - 23 1029.43 754 2 0 0.681725 -28.6505 -145.85 - 23 7.68637 747 2 0 3.16131 -30.209 -146.246 - 23 107.048 893 5 1 -0.989301 0.752587 -54.45 - 23 163.98 899 5 0 -1.02191 0.748145 -55.85 - 23 190.763 887 4 1 -2.16898 0.891065 -84.45 - 23 185.719 898 4 0 -2.2563 0.543224 -85.85 - 23 160.05 867 3 1 -6.12413 -6.12349 -114.45 - 23 91.8521 862 3 0 -6.09608 -7.15585 -115.85 - 23 73.791 861 3 0 -6.09669 -7.30347 -116.05 - 23 136.142 873 2 1 -5.03224 -25.7683 -144.45 - 23 136.875 765 2 0 -5.19958 -26.6252 -145.85 - 23 153.524 851 1 1 -9.30804 -45.2005 -174.45 - 23 122.583 667 1 0 -9.12965 -46.0691 -175.85 - 23 109.161 871 0 1 -5.39232 -64.8985 -204.45 - 23 116.916 573 0 0 -5.29679 -64.8852 -205.85 -Number of tracker digits in this event = 22 -Event: 24 -Number of tracker hits in this event = 18 - 24 47.2178 896 5 1 0.0995902 0.0506219 -54.45 - 24 329.563 897 2 1 0.397194 0.336557 -144.45 - 24 117.086 897 2 0 0.405319 0.348448 -145.85 - 24 227.936 898 1 1 0.529395 0.531991 -174.45 - 24 311.139 898 1 0 0.521237 0.547084 -175.85 - 24 117.523 898 0 1 0.479086 1.01098 -204.45 - 24 108.696 900 0 0 0.50708 1.00519 -205.85 - 24 233.947 897 3 1 0.280542 0.135593 -114.45 - 24 111.05 896 3 0 0.286104 0.137535 -115.85 - 24 111.906 896 2 0 0.401471 0.166536 -145.85 - 24 154.504 896 1 0 0.51941 0.239799 -175.85 - 24 124.824 899 0 1 0.705269 0.262521 -204.45 - 24 126.182 897 0 0 0.716219 0.260858 -205.85 - 24 97.3664 329 4 1 -114.305 21.0834 -84.85 - 24 179.135 897 3 0 -0.205526 0.323552 -115.85 - 24 114.055 1082 3 0 -50.0627 37.4152 -116.25 - 24 323.08 1084 3 0 -50.1354 37.6868 -116.13 - 24 25.7352 1085 3 0 -50.4872 38.0099 -116.204 -Number of tracker digits in this event = 9 -Event: 25 -Number of tracker hits in this event = 8 - 25 119.426 896 3 1 0.195522 -0.0606096 -114.45 - 25 337.12 896 2 1 0.128079 -0.168807 -144.45 - 25 105.732 896 1 1 0.0528475 -0.342303 -174.45 - 25 46.9841 940 0 0 -39.3806 8.88192 -206.25 - 25 18.0619 889 1 1 -1.66986 6.14327 -174.45 - 25 120.371 898 1 1 0.564775 -3.88438 -174.45 - 25 32.0092 897 1 1 0.385579 -3.94451 -174.773 - 25 119.444 876 1 0 -0.168031 -4.26992 -175.85 -Number of tracker digits in this event = 2 -Event: 26 -Number of tracker hits in this event = 6 - 26 234.71 896 3 1 0.0630012 -0.0850475 -114.45 - 26 107.749 896 2 1 0.0694087 -0.197897 -144.45 - 26 117.131 896 1 1 0.0599689 -0.26967 -174.45 - 26 144.924 894 3 0 1.54129 -0.735148 -115.85 - 26 122.1 893 3 0 1.8964 -0.955881 -115.942 - 26 301.535 1484 3 0 97.4798 118.184 -116.095 -Number of tracker digits in this event = 4 -Event: 27 -Number of tracker hits in this event = 9 - 27 124.36 896 3 1 0.0888433 0.580734 -114.45 - 27 431.873 898 3 0 0.0909105 0.585649 -115.85 - 27 188.499 896 2 1 0.163965 0.688222 -144.45 - 27 124.686 899 2 0 0.16666 0.691766 -145.85 - 27 114.878 896 1 1 0.204016 0.767025 -174.45 - 27 109.839 899 1 0 0.210096 0.769975 -175.85 - 27 137.431 897 0 1 0.338784 0.835839 -204.45 - 27 150.779 899 0 0 0.353115 0.846723 -205.85 - 27 24.9834 899 3 0 0.357502 0.681589 -115.949 -Number of tracker digits in this event = 6 -Event: 28 -Number of tracker hits in this event = 9 - 28 132.974 897 4 1 0.253975 -0.270347 -84.45 - 28 146.84 898 3 1 0.634375 -0.426213 -114.45 - 28 101.109 900 2 1 1.00161 -0.65021 -144.45 - 28 123.705 894 2 0 1.01884 -0.659001 -145.85 - 28 111.4 902 1 1 1.38335 -0.828409 -174.45 - 28 199.388 894 1 0 1.40282 -0.829938 -175.85 - 28 226.796 904 0 1 1.7909 -0.859313 -204.45 - 28 104.548 893 0 0 1.80774 -0.861047 -205.85 - 28 183.905 892 0 0 3.09913 -1.10787 -205.85 -Number of tracker digits in this event = 6 -Event: 29 -Number of tracker hits in this event = 22 - 29 133.237 896 4 1 0.102193 0.10126 -84.45 - 29 184.322 896 4 0 0.107241 0.109425 -85.85 - 29 136.719 896 3 1 0.176861 0.288792 -114.45 - 29 94.2474 897 3 0 0.183339 0.296528 -115.85 - 29 116.422 897 2 1 0.289541 0.462134 -144.45 - 29 133.545 898 2 0 0.2934 0.47408 -145.85 - 29 98.3234 897 1 1 0.38765 0.733403 -174.45 - 29 257.601 899 1 0 0.39357 0.745516 -175.85 - 29 111.682 898 0 1 0.557224 0.976816 -204.45 - 29 175.231 900 0 0 0.56381 0.993489 -205.85 - 29 126.834 916 1 1 4.05335 -3.30384 -174.45 - 29 158.523 879 1 0 4.10008 -3.65222 -175.85 - 29 103.882 919 0 1 4.81788 -8.52907 -204.45 - 29 180.963 854 0 0 5.66226 -8.65573 -205.85 - 29 209.074 408 0 0 -65.4481 -98.4121 -206.25 - 29 772.549 406 0 0 -65.7932 -98.8554 -206.207 - 29 25.1731 401 0 0 -67.7035 -99.7894 -205.88 - 29 86.5781 548 0 1 -69.9129 -101.477 -204.85 - 29 13.3418 547 0 1 -70.1379 -101.641 -204.789 - 29 122.21 392 0 0 -70.5229 -101.686 -205.85 - 29 113.661 894 0 1 -0.737674 1.26975 -204.45 - 29 124.362 902 0 0 -0.802726 1.34325 -205.85 -Number of tracker digits in this event = 13 -Event: 30 -Number of tracker hits in this event = 7 - 30 104.842 898 4 0 -0.219827 0.563712 -85.85 - 30 119.229 900 3 0 -0.316849 0.976861 -115.85 - 30 175.027 902 2 0 -0.265458 1.26704 -145.85 - 30 108.627 896 1 1 0.112173 1.32523 -174.45 - 30 107.156 902 1 0 0.116961 1.30723 -175.85 - 30 120.254 897 0 1 0.334811 0.869735 -204.45 - 30 190.297 900 0 0 0.361173 0.862387 -205.85 -Number of tracker digits in this event = 3 -Event: 31 -Number of tracker hits in this event = 3 - 31 125.833 899 0 1 0.684665 0.0961389 -204.45 - 31 143.206 896 0 0 0.709922 0.101373 -205.85 - 31 36.0346 954 1 0 60.2317 11.7971 -176.25 -Number of tracker digits in this event = 2 -Event: 32 -Number of tracker hits in this event = 26 - 32 126.361 896 3 1 0.22531 -1.42239 -114.45 - 32 126.014 891 3 0 0.238955 -1.44044 -115.85 - 32 107.799 898 2 1 0.518083 -1.78868 -144.45 - 32 178.205 889 2 0 0.530346 -1.80635 -145.85 - 32 119.021 899 1 1 0.795755 -2.16294 -174.45 - 32 130.206 887 1 0 0.807887 -2.19182 -175.85 - 32 135.363 900 0 1 1.04169 -2.79225 -204.45 - 32 241.045 884 0 0 1.05127 -2.81574 -205.85 - 32 38.2084 883 0 0 1.11469 -2.89591 -206.079 - 32 38.7511 893 4 0 -0.05 -0.988652 -86.0095 - 32 32.443 896 5 1 0.05 -0.529432 -54.7434 - 32 158.766 893 5 0 0.524493 -0.994781 -55.85 - 32 156.846 765 5 0 -3.17383 -26.5513 -56.25 - 32 123.338 879 5 1 -3.75733 -26.7939 -54.85 - 32 115.524 575 5 0 35.3331 -64.5516 -56.25 - 32 112.057 574 5 0 35.5975 -64.7253 -56.1478 - 32 5.26472 573 5 0 35.772 -64.917 -55.864 - 32 104.054 1080 5 1 37.0225 -65.6976 -54.85 - 32 108.513 1081 5 1 37.1744 -65.8135 -54.832 - 32 107.008 1082 5 1 37.4119 -65.9006 -54.8305 - 32 188.086 1083 5 1 37.5391 -66.0641 -54.8391 - 32 157.631 1084 5 1 37.6582 -66.182 -54.7946 - 32 233.486 393 8 0 -40.3316 -101.365 33.75 - 32 236.447 701 8 1 -39.3557 -102.155 35.15 - 32 34.5821 642 1 0 34.1033 -51.0717 -176.25 - 32 68.5961 1091 1 1 39.1455 -54.8255 -174.45 -Number of tracker digits in this event = 13 -Event: 33 -Number of tracker hits in this event = 18 - 33 214.726 896 5 1 0.139874 -0.0510926 -54.45 - 33 126.065 900 4 1 0.951532 -0.722357 -84.45 - 33 105.309 894 4 0 0.992599 -0.752728 -85.85 - 33 146.351 904 3 1 1.834 -1.33773 -114.45 - 33 127.099 891 3 0 1.87847 -1.36041 -115.85 - 33 133.835 909 2 1 2.78987 -1.84708 -144.45 - 33 142.509 888 2 0 2.83779 -1.87187 -145.85 - 33 704.324 914 1 1 3.81431 -2.38847 -174.45 - 33 235.086 886 1 0 3.86447 -2.41899 -175.85 - 33 126.245 920 0 1 4.93185 -3.03046 -204.45 - 33 118.235 883 0 0 4.96539 -3.04701 -205.85 - 33 12.9687 615 6 1 -56.499 45.175 -24.4721 - 33 118.472 916 1 1 4.21365 -1.14319 -174.512 - 33 512.004 918 1 1 4.5171 -0.90035 -174.749 - 33 321.654 919 1 1 4.72597 0.05 -174.697 - 33 51.0881 897 0 1 0.322657 0.13904 -204.45 - 33 364.277 898 0 1 0.4986 -0.05 -204.744 - 33 136.184 902 0 1 1.30537 -0.884089 -204.844 -Number of tracker digits in this event = 13 -Event: 34 -Number of tracker hits in this event = 7 - 34 151.06 895 3 0 -0.367736 -0.504595 -115.85 - 34 93.3491 895 2 1 -0.63287 -0.85955 -144.45 - 34 128.53 893 2 0 -0.646107 -0.875321 -145.85 - 34 106.921 893 1 1 -0.93223 -1.19833 -174.45 - 34 165.878 892 1 0 -0.95073 -1.21123 -175.85 - 34 106.973 891 0 1 -1.32984 -1.48116 -204.45 - 34 177.445 890 0 0 -1.34984 -1.49473 -205.85 -Number of tracker digits in this event = 4 -Event: 35 -Number of tracker hits in this event = 15 - 35 120.105 896 5 1 0.138527 0.0912407 -54.45 - 35 120.187 896 5 0 0.146858 0.092229 -55.85 - 35 105.377 897 4 1 0.306732 0.102867 -84.45 - 35 156.331 896 4 0 0.315432 0.100512 -85.85 - 35 123.969 900 1 1 0.907458 -0.10016 -174.45 - 35 460.182 901 0 1 1.18502 -0.226901 -204.45 - 35 121.136 1076 2 0 -151.956 36.1512 -146.058 - 35 98.1851 136 2 1 -152.846 36.4236 -144.85 - 35 94.369 135 2 1 -153.09 36.4667 -144.702 - 35 97.0516 962 9 1 13.2881 19.085 65.15 - 35 103.301 969 9 0 18.6287 14.7502 63.871 - 35 88.9415 992 9 1 19.4156 14.8853 65.15 - 35 525.667 994 9 1 19.6539 14.8086 65.3365 - 35 113.426 895 0 0 1.35443 -0.554233 -205.85 - 35 263.251 899 0 0 3.37089 0.798868 -205.85 -Number of tracker digits in this event = 8 -Event: 36 -Number of tracker hits in this event = 30 - 36 140.503 896 5 1 0.0659544 -0.333305 -54.45 - 36 418.577 896 4 1 0.232592 -0.769018 -84.45 - 36 138.234 894 4 0 0.234719 -0.786076 -85.85 - 36 121.773 897 3 1 0.291109 -1.15095 -114.45 - 36 109.581 892 3 0 0.295331 -1.16943 -115.85 - 36 124.73 897 2 1 0.392288 -1.5463 -144.45 - 36 120.089 890 2 0 0.407982 -1.55568 -145.85 - 36 152.269 899 1 1 0.65715 -1.75132 -174.45 - 36 122.135 889 1 0 0.648112 -1.76878 -175.85 - 36 107.554 897 0 1 0.419302 -2.16075 -204.45 - 36 204.619 887 0 0 0.416823 -2.17818 -205.85 - 36 299.751 856 0 0 15.1412 -8.44237 -206.25 - 36 208.172 855 0 0 15.1923 -8.4616 -206.008 - 36 114.571 781 0 1 -23.4343 33.3772 -204.85 - 36 160.704 896 6 0 -0.0906626 0.143919 -25.85 - 36 92.8262 1245 6 0 90.15 69.9934 -26.1694 - 36 452.879 889 4 1 -1.69244 -1.53553 -84.45 - 36 449.843 893 4 1 -0.922007 -1.01766 -84.609 - 36 823.05 898 4 1 0.605992 0.05 -84.6823 - 36 1474 907 4 1 2.41472 1.38385 -84.4797 - 36 180.65 920 4 0 7.81276 4.94829 -85.85 - 36 456.733 922 4 0 8.25742 5.29389 -86.0284 - 36 148.42 1298 3 1 80.4862 48.7563 -114.45 - 36 179.751 1141 3 0 81.7158 49.1764 -115.85 - 36 77.8329 1427 2 1 106.927 56.5372 -144.45 - 36 199.433 1428 2 1 107.146 56.6456 -144.667 - 36 165.153 1183 2 0 108.4 57.4818 -145.85 - 36 61.1573 1429 2 1 107.167 56.6171 -144.54 - 36 44.3882 933 4 0 10.3996 7.54224 -85.85 - 36 160.022 893 5 0 0.05 -1.02476 -55.9478 -Number of tracker digits in this event = 23 -Event: 37 -Number of tracker hits in this event = 14 - 37 153.768 896 4 1 0.0762028 0.104887 -84.45 - 37 102.918 896 4 0 0.0773582 0.119541 -85.85 - 37 116.153 896 3 1 0.114376 0.413634 -114.45 - 37 127.057 897 3 0 0.112754 0.429567 -115.85 - 37 162.267 896 2 1 0.0759367 0.749228 -144.45 - 37 177.326 899 2 0 0.0799339 0.772947 -145.85 - 37 223.481 896 1 1 0.175493 1.25078 -174.45 - 37 91.8944 902 1 0 0.173864 1.26738 -175.85 - 37 116.942 896 0 1 0.122833 1.62053 -204.45 - 37 115.023 903 0 0 0.113947 1.63827 -205.85 - 37 176.459 903 1 0 0.296698 1.61771 -175.85 - 37 147.336 913 0 1 3.58385 12.8757 -204.45 - 37 117.341 963 0 0 3.34338 13.5495 -205.85 - 37 9.48406 898 2 0 -0.0721757 0.635488 -146.046 -Number of tracker digits in this event = 7 -Event: 38 Number of tracker hits in this event = 19 - 38 104.317 901 4 1 1.18 -1.74262 -84.45 - 38 120.36 887 4 0 1.62379 -2.08809 -85.85 - 38 180.81 952 3 1 11.2548 -8.82454 -114.45 - 38 201.037 847 3 0 11.2324 -10.1581 -115.85 - 38 184.573 900 2 1 0.859577 -54.483 -144.45 - 38 246.325 616 2 0 0.418851 -56.295 -145.85 - 38 187.556 835 1 1 -12.6432 -95.5716 -174.45 - 38 211.065 412 1 0 -12.116 -97.6374 -175.85 - 38 432.873 878 0 1 -3.95681 -138.71 -204.45 - 38 306.792 881 0 1 -3.38077 -140.084 -204.825 - 38 88.6576 882 0 1 -3.13718 -140.177 -204.85 - 38 508.219 883 0 1 -2.86816 -140.079 -204.807 - 38 118.056 884 0 1 -2.70778 -140.066 -204.624 - 38 196.768 955 1 1 11.978 -54.5484 -174.545 - 38 226.851 623 1 0 11.7714 -54.9371 -175.85 - 38 94.6501 624 1 0 12.0401 -54.7791 -176.054 - 38 363.393 622 1 0 12.1648 -55.0749 -175.955 - 38 95.2671 407 0 1 -98.7414 -3.52353 -204.499 - 38 109.911 406 0 1 -98.796 -3.51958 -204.598 -Number of tracker digits in this event = 13 -Event: 39 -Number of tracker hits in this event = 35 - 39 202.411 896 5 1 0.0660631 0.0659489 -54.45 - 39 156.742 896 5 0 0.0710779 0.0722555 -55.85 - 39 333.04 896 4 1 0.169287 0.176273 -84.45 - 39 106.081 896 4 0 0.155833 0.207832 -85.85 - 39 197.4 900 3 0 -0.15036 0.997081 -115.85 - 39 199.626 896 2 1 0.094071 1.52411 -144.45 - 39 136.998 905 2 0 -0.103171 1.97541 -145.85 - 39 132.22 875 1 1 -4.54751 9.56092 -174.45 - 39 108.248 943 1 0 -4.20363 9.49229 -175.85 - 39 260.752 854 0 1 -8.74181 22.1173 -204.45 - 39 154.559 1006 0 0 -9.61754 22.0688 -205.85 - 39 115.957 892 4 0 0.139505 -1.16828 -85.85 - 39 157.066 902 3 1 1.26547 -0.321745 -114.45 - 39 123.159 906 2 1 2.23249 1.53715 -144.45 - 39 338.81 904 2 0 2.37889 1.6529 -145.85 - 39 157.38 918 1 1 4.47846 3.74975 -174.45 - 39 124.247 915 1 0 4.53725 3.88345 -175.85 - 39 140.734 922 0 1 5.44462 6.25867 -204.45 - 39 144.808 927 0 0 5.76238 6.2991 -205.85 - 39 144.778 987 2 0 14.7632 18.2744 -146.25 - 39 172.104 961 2 1 13.2034 18.412 -144.85 - 39 367.887 959 2 1 12.7913 18.2367 -144.74 - 39 295.763 957 2 1 12.3907 18.2873 -144.727 - 39 238.371 958 2 1 12.5272 18.6107 -144.679 - 39 119.082 895 4 1 -0.510255 1.79119 -84.45 - 39 157.424 904 4 0 -0.388505 1.84524 -85.85 - 39 133.897 906 3 1 2.24877 3.21451 -114.45 - 39 123.369 913 3 0 2.32355 3.52479 -115.85 - 39 363.948 911 2 1 3.11221 10.1986 -144.45 - 39 33.8254 947 2 0 2.91841 10.443 -145.85 - 39 239.223 948 2 0 2.90301 10.4632 -145.966 - 39 185.855 894 1 1 -0.821239 14.9185 -174.45 - 39 116.748 970 1 0 -1.11003 14.9089 -175.85 - 39 125.363 871 0 1 -5.41546 13.805 -204.45 - 39 150.183 965 0 0 -6.04316 13.8905 -205.85 -Number of tracker digits in this event = 29 -Event: 40 -Number of tracker hits in this event = 9 - 40 104.958 896 3 1 0.0967734 -0.350898 -114.45 - 40 128.314 896 2 1 0.0731968 -0.381113 -144.45 - 40 136.28 896 1 1 0.175595 -0.362529 -174.45 - 40 94.0972 897 0 1 0.347916 -0.351166 -204.45 - 40 45.1195 144 3 1 -151.204 48.9648 -114.85 - 40 113.755 1100 9 1 41.0413 -168.958 65.4753 - 40 1.21035 744 0 0 3.97568 -30.7257 -206.25 - 40 1.8285 742 0 0 4.0146 -31.0547 -206.085 - 40 25.2676 741 0 0 3.33381 -31.2847 -206.071 -Number of tracker digits in this event = 2 -Event: 41 -Number of tracker hits in this event = 17 - 41 94.382 897 0 1 0.266717 -1.03792 -204.45 - 41 211.142 892 0 0 0.252664 -1.05545 -205.85 - 41 97.6486 893 0 0 0.176262 -1.02319 -206.144 - 41 1.8285 841 0 0 -0.314189 -11.354 -206.25 - 41 113.483 840 0 0 -0.329699 -11.5745 -205.878 - 41 143.003 839 0 0 -0.327002 -11.6521 -205.85 - 41 109.999 901 1 1 1.05463 -0.751886 -174.45 - 41 135.223 894 1 0 0.899478 -0.832307 -175.85 - 41 107.224 881 0 1 -3.3571 -2.31842 -204.45 - 41 123.233 884 0 0 -3.6167 -2.75859 -205.85 - 41 183.366 894 1 1 -0.716008 1.59042 -174.45 - 41 146.457 899 1 0 -1.75121 0.729656 -175.85 - 41 196.53 898 1 0 -1.9501 0.545532 -176.104 - 41 279.418 817 0 1 -16.1426 -13.6015 -204.45 - 41 208.776 821 0 0 -17.7632 -15.329 -205.85 - 41 378.403 820 0 0 -17.9291 -15.4687 -205.979 - 41 213.642 897 1 0 -1.96223 0.336965 -176.225 + 2 290.59326 894 3 1 -0.76942227 -0.59749085 -114.45 + 2 110.69225 895 3 0 -0.79068591 -0.62316009 -115.85 + 2 166.19871 892 2 1 -1.2221848 -1.1616057 -144.45 + 2 93.016769 892 2 0 -1.249616 -1.1950273 -145.85 + 2 127.55633 889 1 1 -1.8212557 -1.8988217 -174.45 + 2 124.13674 888 1 0 -1.8551838 -1.9421153 -175.85 + 2 108.29765 885 0 1 -2.540175 -2.8232821 -204.45 + 2 134.84662 883 0 0 -2.5817299 -2.8620623 -205.85 + 2 12.529806 1462 3 0 124.63175 113.81495 -115.86896 + 2 160.59255 1518 3 1 124.97148 114.48848 -114.85 + 2 336.90921 893 3 1 -0.86639084 -0.32375303 -114.64874 + 2 351.64843 851 3 0 -19.558702 -9.2711646 -116.25 + 2 228.21493 805 3 1 -18.537836 -10.629055 -114.85 + 2 41.756018 807 3 1 -18.244347 -10.89825 -114.50041 + 2 59.483 803 2 1 -18.902552 -3.6000781 -144.45 + 2 109.34981 895 3 1 -0.58419691 -0.44997077 -114.6926 + 2 202.94404 893 1 1 -0.9447033 -0.18184676 -174.45 + 2 103.99498 927 0 1 6.4150979 -8.1634545 -204.45 + 2 127.3684 858 0 0 7.0233483 -7.998844 -205.85 Number of tracker digits in this event = 11 -Event: 42 -Number of tracker hits in this event = 3 - 42 6.67837 1477 6 0 18.5581 116.945 -26.25 - 42 10.3924 1478 6 0 18.5592 116.951 -26.2475 - 42 30.681 966 6 0 42.7746 14.0961 -26.25 -Number of tracker digits in this event = 0 -Event: 43 -Number of tracker hits in this event = 8 - 43 118.456 896 5 0 -0.125508 0.082003 -55.85 - 43 145.069 896 4 0 -0.215285 0.213214 -85.85 - 43 118.809 897 3 0 -0.234002 0.359022 -115.85 - 43 186.125 898 2 0 -0.238579 0.53586 -145.85 - 43 131.3 898 1 0 -0.227884 0.62831 -175.85 - 43 117.184 899 0 0 -0.224846 0.77392 -205.85 - 43 176.818 216 6 0 -28.4061 -136.93 -26.177 - 43 149.574 215 6 0 -28.4154 -136.973 -26.1227 -Number of tracker digits in this event = 5 -Event: 44 -Number of tracker hits in this event = 12 - 44 190.049 894 2 0 -0.121528 -0.753753 -145.85 - 44 104.22 892 1 0 -0.254468 -1.17403 -175.85 - 44 120.178 890 0 0 -0.41261 -1.64107 -205.85 - 44 204.598 1375 4 0 -110.728 96.4069 -86.25 - 44 293.269 345 4 1 -110.982 94.9394 -84.85 - 44 171.248 895 0 1 -0.511922 1.10453 -204.811 - 44 142.689 886 0 0 0.64853 -2.25702 -205.85 - 44 126.161 883 0 0 24.4448 -3.02721 -206.25 - 44 79.058 882 0 0 24.5559 -3.09169 -206.056 - 44 295.821 603 0 0 41.5834 -58.9898 -206.25 - 44 86.442 655 8 0 85.6486 -48.6238 34.0413 - 44 214.491 1326 8 1 86.0554 -49.3467 35.15 -Number of tracker digits in this event = 9 -Event: 45 -Number of tracker hits in this event = 7 - 45 111.129 896 3 1 0.102578 0.0793237 -114.45 - 45 98.6345 896 3 0 0.114071 0.0786031 -115.85 - 45 121.286 897 2 1 0.344049 0.0679961 -144.45 - 45 157.01 896 2 0 0.357594 0.0682133 -145.85 - 45 122.309 898 1 1 0.64885 0.0965104 -174.45 - 45 125.698 896 1 0 0.659321 0.0872936 -175.85 - 45 104.616 899 0 1 0.843412 -0.0959515 -204.45 -Number of tracker digits in this event = 4 -Event: 46 +Event: 3 +Number of tracker hits in this event = 22 + 3 106.79076 896 5 1 0.11547401 0.1204087 -54.45 + 3 117.21143 896 5 0 0.11348347 0.12973575 -55.85 + 3 108.19991 896 4 1 0.10078711 0.32642588 -84.45 + 3 134.86208 897 4 0 0.10166199 0.33949911 -85.85 + 3 127.33236 896 3 1 0.10650489 0.64674361 -114.45 + 3 379.51377 899 3 0 0.099890375 0.66580584 -115.85 + 3 105.81192 901 2 0 -0.08076196 1.0640435 -145.85 + 3 131.25603 895 1 1 -0.61412897 0.88015056 -174.45 + 3 111.7563 900 1 0 -0.65147725 0.86350979 -175.85 + 3 118.8868 891 0 1 -1.4198259 0.53836409 -204.45 + 3 180.11503 898 0 0 -1.4554935 0.52867123 -205.85 + 3 149.66642 897 3 1 0.35406336 0.37640932 -114.45 + 3 175.62524 898 3 0 0.50295276 0.58601737 -115.85 + 3 115.57762 912 2 1 3.2545111 3.2870418 -144.45 + 3 114.01312 913 2 0 3.0518048 3.6327647 -145.85 + 3 113.91189 888 1 1 -1.9672266 10.556619 -174.45 + 3 168.94532 950 1 0 -1.774469 11.026255 -175.85 + 3 447.10709 916 0 1 4.1314674 23.382611 -204.45 + 3 122.07219 1015 0 0 4.7112392 23.996436 -205.85 + 3 235.15827 915 0 1 4.017176 23.421275 -204.73295 + 3 139.27239 911 2 1 3.1597257 3.3345966 -144.45 + 3 149.39856 915 2 0 3.2883663 3.9328383 -145.85 +Number of tracker digits in this event = 13 +Event: 4 Number of tracker hits in this event = 10 - 46 117.548 896 3 1 0.104694 0.175559 -114.45 - 46 122.54 896 3 0 0.111349 0.181007 -115.85 - 46 200.667 897 2 1 0.289693 0.327124 -144.45 - 46 111.783 897 2 0 0.300312 0.33575 -145.85 - 46 107.537 898 1 1 0.498543 0.51128 -174.45 - 46 133.127 898 1 0 0.516804 0.530418 -175.85 - 46 111.174 900 0 1 0.860321 0.900398 -204.45 - 46 111.143 900 0 0 0.872781 0.918219 -205.85 - 46 59.8593 39 2 0 99.2071 -172.292 -146.25 - 46 400.444 38 2 0 99.2796 -172.375 -146.236 + 4 107.29314 896 4 1 0.099837543 -0.21551293 -84.45 + 4 128.88236 896 3 1 0.068842459 -0.46909988 -114.45 + 4 113.50958 895 3 0 0.067228705 -0.47577327 -115.85 + 4 310.29519 896 2 1 0.069401779 -0.56772789 -144.45 + 4 326.5845 895 2 0 0.06706298 -0.57036723 -145.85 + 4 128.16498 896 1 1 0.078323743 -0.55990404 -174.45 + 4 125.76606 895 1 0 0.077606855 -0.57380484 -175.85 + 4 10.105734 1198 4 0 12.542028 60.537679 -86.25 + 4 190.74908 1584 3 0 43.79716 138.16892 -115.86803 + 4 133.80436 1585 3 0 43.966073 138.46461 -115.88369 +Number of tracker digits in this event = 7 +Event: 5 +Number of tracker hits in this event = 17 + 5 132.35151 897 4 1 0.33231934 -0.35932357 -84.45 + 5 127.81001 899 3 1 0.66834318 -0.59057053 -114.45 + 5 133.72148 895 3 0 0.67878962 -0.60502436 -115.85 + 5 108.12474 900 2 1 0.90846289 -0.91080914 -144.45 + 5 97.436832 893 2 0 0.91039596 -0.92362431 -145.85 + 5 195.33637 900 1 1 0.94249551 -1.1496596 -174.45 + 5 126.10792 892 1 0 0.9385784 -1.1604561 -175.85 + 5 117.6491 900 0 1 0.85320446 -1.3583997 -204.45 + 5 154.82794 891 0 0 0.84635063 -1.3604756 -205.85 + 5 158.44516 217 2 0 0.38481149 -136.55449 -146.25 + 5 12.340656 219 2 0 0.34041897 -136.25184 -145.9237 + 5 189.76276 888 5 0 -0.37249605 -1.9108186 -55.85 + 5 152.93597 886 5 0 -0.58301742 -2.2782173 -56.174268 + 5 121.96033 892 5 1 -1.233725 -4.826932 -54.85 + 5 143.5857 891 5 1 -1.2590618 -5.2394789 -54.834243 + 5 564.99486 890 5 1 -1.4612263 -5.4926088 -54.73233 + 5 53.17574 889 5 1 -1.6667379 -5.5905133 -54.643749 +Number of tracker digits in this event = 12 +Event: 6 +Number of tracker hits in this event = 25 + 6 110.60144 896 4 1 0.10101005 -0.38143678 -84.45 + 6 210.52312 897 3 1 0.28883836 -0.79017026 -114.45 + 6 112.3587 894 3 0 0.29641916 -0.80184543 -115.85 + 6 129.31114 897 2 1 0.43343913 -1.0478947 -144.45 + 6 112.63991 892 2 0 0.43879169 -1.051518 -145.85 + 6 124.08412 898 1 1 0.56411851 -1.1222102 -174.45 + 6 112.23252 892 1 0 0.56560844 -1.1345864 -175.85 + 6 516.67107 898 0 1 0.58270532 -1.4048623 -204.45 + 6 118.39447 891 0 0 0.58290806 -1.4138304 -205.85 + 6 144.87088 448 2 1 -89.910058 -62.738816 -144.45 + 6 87.932213 580 2 0 -90.05 -63.554135 -146.10427 + 6 283.81608 190 2 0 -5.2895383 -142.06906 -146.25 + 6 51.175978 187 2 0 -5.8827763 -142.69327 -145.88284 + 6 181.04407 862 2 1 -7.1026402 -143.27385 -144.85 + 6 250.93521 860 2 1 -7.560702 -143.47088 -144.48503 + 6 187.63735 859 2 1 -7.7766904 -143.93889 -144.69316 + 6 327.86098 856 2 1 -8.2557201 -144.04655 -144.81746 + 6 217.15634 857 2 1 -8.1389266 -144.26295 -144.72455 + 6 110.8635 858 2 1 -7.9538214 -144.37402 -144.63243 + 6 115.20251 176 2 0 -7.9686929 -144.8655 -145.85 + 6 19.834249 175 2 0 -7.8958891 -144.96099 -145.89395 + 6 73.548947 897 0 1 0.43485031 -1.6994828 -204.64274 + 6 21.427661 899 0 1 0.72646439 -1.4073927 -204.59866 + 6 102.46956 896 0 0 -1.6775624 0.090215516 -205.85 + 6 136.89935 896 1 1 0.05 -0.66668471 -174.61493 +Number of tracker digits in this event = 12 +Event: 7 +Number of tracker hits in this event = 17 + 7 110.72911 896 5 1 0.07547383 0.095831792 -54.45 + 7 123.28288 896 5 0 0.078576824 0.10846991 -55.85 + 7 131.91146 896 4 1 0.12338289 0.35705415 -84.45 + 7 177.02295 897 4 0 0.13849556 0.37051492 -85.85 + 7 127.07411 897 3 1 0.44242913 0.68577705 -114.45 + 7 115.82135 899 3 0 0.46642575 0.70122148 -115.85 + 7 174.69005 900 2 1 0.97645257 1.0044571 -144.45 + 7 99.012862 900 2 0 1.0106641 1.0259165 -145.85 + 7 116.9489 904 1 1 1.7443492 1.4428156 -174.45 + 7 218.07397 903 1 0 1.7948569 1.4673304 -175.85 + 7 188.26955 908 0 1 2.6283783 2.058271 -204.45 + 7 207.43636 906 0 0 2.6445446 2.1016445 -205.85 + 7 233.31016 905 0 0 2.5761367 1.8592954 -205.90017 + 7 25.724064 910 0 0 10.620507 2.9410441 -205.85 + 7 167.83075 952 0 1 11.281093 4.1863814 -204.85 + 7 26.614741 744 3 1 -30.792864 -168.06553 -114.53303 + 7 3.5349815 1469 8 1 115.28297 107.56954 35.539675 +Number of tracker digits in this event = 10 +Event: 8 +Number of tracker hits in this event = 10 + 8 153.37312 899 4 1 0.81106774 0.079640567 -84.45 + 8 207.84299 896 4 0 0.85400168 0.083763873 -85.85 + 8 106.19971 905 3 1 1.8877718 0.25316336 -114.45 + 8 113.45994 896 3 0 1.9197733 0.21675705 -115.85 + 8 109.25218 907 2 1 2.3156783 -0.20374345 -144.45 + 8 215.9216 911 1 1 3.0893306 0.2280445 -174.45 + 8 104.14629 897 1 0 3.0997653 0.30197979 -175.85 + 8 100.60886 912 0 1 3.381541 1.8907053 -204.45 + 8 123.51627 905 0 0 3.4465091 2.0195982 -205.85 + 8 12.12114 896 1 0 0.068104166 0.06876965 -175.90359 +Number of tracker digits in this event = 4 +Event: 9 +Number of tracker hits in this event = 11 + 9 123.43894 897 5 1 0.32799813 -0.16873403 -54.45 + 9 155.31053 893 4 0 -0.19975578 -0.8654586 -85.85 + 9 100.41735 895 3 1 -0.45381704 -2.4186807 -114.45 + 9 315.1589 885 3 0 -0.47476976 -2.5208994 -115.85 + 9 127.6605 892 2 1 -1.2334005 -4.386498 -144.45 + 9 128.46167 875 2 0 -1.3414823 -4.4707513 -145.85 + 9 123.33915 880 1 1 -3.5283432 -6.3055847 -174.45 + 9 109.66305 866 1 0 -3.6168131 -6.377267 -175.85 + 9 101.35972 871 0 1 -5.3007134 -8.537972 -204.45 + 9 383.09404 855 0 0 -5.3730105 -8.6356837 -205.85 + 9 63.1287 854 0 0 -5.2579773 -8.7353569 -205.97263 +Number of tracker digits in this event = 7 +Event: 10 +Number of tracker hits in this event = 17 + 10 112.84665 898 3 1 0.512068 -0.3700999 -114.45 + 10 97.586014 898 2 1 0.56462778 -0.58832601 -144.45 + 10 307.31283 895 2 0 0.56030101 -0.60161928 -145.85 + 10 129.79994 898 1 1 0.53268162 -0.7823375 -174.45 + 10 107.89612 894 1 0 0.53670919 -0.79784775 -175.85 + 10 115.29815 899 0 1 0.67938098 -1.1305956 -204.45 + 10 148.65583 892 0 0 0.67128026 -1.1451446 -205.85 + 10 122.42796 904 2 1 1.8367422 -0.41454201 -144.45 + 10 151.68311 909 1 1 2.6624595 -2.0506633 -174.45 + 10 145.36667 887 1 0 2.6773465 -2.1364672 -175.85 + 10 113.19026 908 0 1 2.5125999 -3.6279313 -204.45 + 10 163.58967 879 0 0 2.4325889 -3.6533955 -205.85 + 10 111.17391 850 0 0 -2.6464128 -9.5954586 -206.25 + 10 107.60714 878 0 1 -3.9652825 -9.8860787 -204.85 + 10 309.24005 877 0 1 -4.1991324 -9.8572889 -204.65428 + 10 330.14743 875 0 1 -4.4973017 -9.8950399 -204.56096 + 10 125.68423 873 0 1 -4.9030411 -9.7231732 -204.67275 +Number of tracker digits in this event = 10 +Event: 11 +Number of tracker hits in this event = 9 + 11 147.50158 894 2 1 -0.82797132 -0.12108663 -144.45 + 11 192.21076 891 1 1 -1.3877965 -0.37585038 -174.45 + 11 186.6507 887 0 1 -2.127407 -0.49458445 -204.45 + 11 116.97292 895 0 0 -2.1470189 -0.50000178 -205.85 + 11 123.84886 896 2 1 0.21362588 -0.30603354 -144.45 + 11 109.64957 902 1 1 1.416411 -2.4918319 -174.45 + 11 125.60916 885 1 0 1.6168415 -2.5467034 -175.85 + 11 109.78728 928 0 1 6.5841484 -3.6291353 -204.45 + 11 103.45499 879 0 0 6.8058255 -3.6788382 -205.85 +Number of tracker digits in this event = 5 +Event: 12 +Number of tracker hits in this event = 15 + 12 131.3747 896 5 0 -0.23809615 0.068263417 -55.85 + 12 99.585749 895 4 1 -0.55023058 -0.12592436 -84.45 + 12 128.93579 893 3 1 -0.93537171 -0.42558657 -114.45 + 12 115.76066 891 2 1 -1.3504293 -0.70581428 -144.45 + 12 114.63651 894 2 0 -1.3776171 -0.72620013 -145.85 + 12 135.77881 888 1 1 -1.9005065 -1.1171798 -174.45 + 12 109.08772 892 1 0 -1.9212504 -1.1423081 -175.85 + 12 335.45598 886 0 1 -2.3703702 -1.6424576 -204.45 + 12 131.06633 889 0 0 -2.3845185 -1.6598066 -205.85 + 12 33.811805 1022 1 1 25.390962 6.6793227 -174.85 + 12 36.111195 536 11 0 74.199227 -72.431981 123.75 + 12 90.673334 535 11 0 74.182962 -72.500047 123.87209 + 12 203.6511 534 11 0 74.273478 -72.726483 123.95181 + 12 64.471989 533 11 0 74.30851 -72.851093 123.90541 + 12 154.01526 896 6 0 0.05 0.084705549 -26.165295 +Number of tracker digits in this event = 7 +Event: 13 +Number of tracker hits in this event = 9 + 13 140.72754 896 5 1 0.068708007 -0.062097288 -54.45 + 13 111.95217 896 4 1 0.17246102 -0.23554875 -84.45 + 13 124.01904 896 3 1 0.092222248 -0.47425299 -114.45 + 13 123.12785 895 3 0 0.092683144 -0.47381789 -115.85 + 13 125.94609 896 2 1 0.11719353 -0.44257815 -144.45 + 13 110.54743 897 1 1 0.37388943 -0.39687122 -174.45 + 13 140.38692 898 0 1 0.62499312 -0.56056778 -204.45 + 13 134.20818 895 0 0 0.64448774 -0.57782337 -205.85 + 13 408.15749 895 2 0 -0.05 -0.58750881 -145.97935 +Number of tracker digits in this event = 7 +Event: 14 +Number of tracker hits in this event = 15 + 14 125.61343 896 5 1 0.18525503 -0.080885967 -54.45 + 14 181.87538 896 4 1 0.16570331 -0.17736662 -84.45 + 14 161.87662 894 2 0 -0.29361601 -0.78038354 -145.85 + 14 313.10921 895 1 1 -0.51344487 -1.1267433 -174.45 + 14 108.8788 892 1 0 -0.52327033 -1.1511488 -175.85 + 14 689.03773 894 0 1 -0.72882448 -1.6435488 -204.45 + 14 105.90878 889 0 0 -0.70772987 -1.6538112 -205.85 + 14 118.58796 893 1 0 -0.65267309 -0.97926094 -175.85 + 14 279.47809 876 0 1 -4.4471915 -12.931783 -204.45 + 14 292.23864 844 0 0 -3.3817396 -10.700227 -205.85 + 14 253.84072 849 0 0 -3.0174934 -9.8419268 -206.25 + 14 84.083373 893 0 1 -0.96099851 -8.2104401 -204.85 + 14 209.18771 896 0 1 0.05 -7.6341534 -204.5205 + 14 256.98546 860 0 0 1.8618571 -7.5349478 -205.85 + 14 74.466188 895 0 1 -0.57782797 -8.1042539 -204.59301 +Number of tracker digits in this event = 10 +Event: 15 +Number of tracker hits in this event = 3 + 15 124.23419 896 5 1 0.065628923 -0.08093216 -54.45 + 15 113.22025 895 1 1 -0.55079935 -0.085352171 -174.45 + 15 130.38565 896 0 0 -0.66503885 0.054689466 -205.85 +Number of tracker digits in this event = 2 +Event: 16 +Number of tracker hits in this event = 20 + 16 24.150031 895 4 1 -0.51703869 -0.05 -84.830996 + 16 123.08005 895 4 0 -0.88366989 -0.57446291 -85.85 + 16 178.45723 817 3 1 -16.11303 -17.14761 -114.45 + 16 278.43676 809 3 0 -17.505571 -17.827162 -115.85 + 16 198.22598 691 2 1 -41.44331 -31.661134 -144.45 + 16 210.00183 731 2 0 -42.04747 -33.429666 -145.85 + 16 111.0846 608 1 1 -57.895935 -60.241185 -174.45 + 16 181.86769 597 1 0 -57.420972 -60.052583 -175.85 + 16 140.53183 681 0 1 -43.336387 -56.492866 -204.45 + 16 190.91668 617 0 0 -44.207245 -56.130018 -205.85 + 16 558.15936 667 0 0 -72.927559 -46.096995 -206.25 + 16 365.7846 528 0 1 -73.883309 -45.722747 -204.85 + 16 177.54697 527 0 1 -74.142536 -45.595171 -204.45 + 16 4.6828713 529 0 1 -73.830689 -45.892816 -204.83214 + 16 41.628467 666 0 0 -73.557886 -46.259249 -206.19048 + 16 84.640244 668 0 0 -73.043796 -46.038963 -206.24553 + 16 116.64236 888 0 1 -1.8827634 1.5401371 -204.45 + 16 307.14307 903 0 0 -1.8971279 1.5518989 -205.85 + 16 278.84496 902 0 0 -2.0141176 1.3418837 -205.87712 + 16 87.427429 901 0 0 -1.9044787 1.2166824 -205.86977 +Number of tracker digits in this event = 13 +Event: 17 +Number of tracker hits in this event = 10 + 17 119.22626 896 5 0 -0.10628207 0.058378563 -55.85 + 17 99.806437 894 3 1 -0.67349233 0.9022497 -114.45 + 17 110.54211 900 3 0 -0.68181391 0.88497195 -115.85 + 17 109.78128 893 2 1 -0.95589391 0.37878894 -144.45 + 17 150.24876 896 2 0 -1.0928 0.23430523 -145.85 + 17 104.22495 879 1 1 -3.736675 -2.7039852 -174.45 + 17 305.51101 884 1 0 -3.8977672 -2.8162538 -175.85 + 17 116.09589 863 0 1 -6.918059 -5.3790484 -204.45 + 17 172.51783 870 0 0 -7.2961131 -5.5630026 -205.85 + 17 117.6361 883 1 0 -3.9081362 -2.905326 -176.10811 +Number of tracker digits in this event = 3 +Event: 18 +Number of tracker hits in this event = 16 + 18 196.61172 896 5 0 -0.089265049 0.16091207 -55.85 + 18 147.02573 898 4 0 -0.27424626 0.47143631 -85.85 + 18 115.18544 895 3 1 -0.46370267 0.82328292 -114.45 + 18 175.90993 899 3 0 -0.4704688 0.84022804 -115.85 + 18 122.04473 895 2 1 -0.64635432 1.143884 -144.45 + 18 119.24474 901 2 0 -0.65636757 1.1545043 -145.85 + 18 91.694047 893 1 1 -0.88746414 1.3530775 -174.45 + 18 137.45295 902 1 0 -0.90389446 1.3695044 -175.85 + 18 225.09827 892 0 1 -1.223328 1.7001209 -204.45 + 18 132.44046 904 0 0 -1.2374049 1.7192688 -205.85 + 18 333.32037 275 4 0 -82.560659 -125.00869 -86.25 + 18 35.924698 273 4 0 -82.449115 -125.5309 -85.880842 + 18 240.85411 484 4 1 -82.72641 -128.47912 -84.85 + 18 139.19571 486 4 1 -82.338973 -125.92553 -84.85 + 18 114.36383 894 1 1 -0.82374809 1.3429401 -174.45 + 18 113.31973 901 1 0 -1.2870243 1.1774772 -175.85 +Number of tracker digits in this event = 10 +Event: 19 +Number of tracker hits in this event = 16 + 19 101.03518 896 4 1 0.12111446 -0.067149328 -84.45 + 19 238.29097 896 3 1 0.11193886 -0.29234168 -114.45 + 19 149.45741 896 1 1 0.13526004 -0.84023325 -174.45 + 19 103.22507 894 1 0 0.14228862 -0.84794241 -175.85 + 19 140.47302 897 0 1 0.26715833 -0.98906616 -204.45 + 19 257.61025 893 0 0 0.28476553 -0.99986947 -205.85 + 19 83.74891 1038 0 0 64.012184 28.556712 -206.07963 + 19 272.8217 1215 0 1 63.915944 28.912167 -204.85 + 19 141.64536 1214 0 1 63.741947 28.750451 -204.49676 + 19 152.84434 895 2 1 -0.58269345 -0.73974929 -144.45 + 19 277.73449 891 2 0 0.20839401 -1.4084386 -145.85 + 19 161.11849 890 2 0 0.40297657 -1.5384038 -146.1866 + 19 168.87615 982 1 1 17.281462 -14.087702 -174.45 + 19 172.50257 821 1 0 18.312114 -15.44923 -175.85 + 19 183.97749 1064 0 1 33.74864 -40.412314 -204.45 + 19 186.58613 687 0 0 34.183048 -42.121162 -205.85 +Number of tracker digits in this event = 13 +Event: 20 +Number of tracker hits in this event = 8 + 20 120.33253 897 2 1 0.40835834 0.27267136 -144.45 + 20 105.75806 896 2 0 0.43995843 0.23575936 -145.85 + 20 211.3716 901 1 1 1.103513 -0.52696825 -174.45 + 20 131.04939 895 1 0 1.1353075 -0.57697748 -175.85 + 20 132.03987 903 0 1 1.5787478 -1.5666171 -204.45 + 20 148.95069 890 0 0 1.5865396 -1.5929738 -205.85 + 20 0.15155 853 2 1 -8.9585313 -68.351384 -144.45 + 20 69.11785 852 2 1 -9.1332046 -68.47428 -144.71133 +Number of tracker digits in this event = 5 +Event: 21 +Number of tracker hits in this event = 9 + 21 116.87108 897 5 1 0.33574646 -0.07078879 -54.45 + 21 159.06326 899 4 1 0.70957651 -0.11818496 -84.45 + 21 182.03763 901 3 1 1.2139975 -0.19261293 -114.45 + 21 139.78884 904 2 1 1.8140667 0.082677344 -144.45 + 21 148.61558 896 2 0 1.8381067 0.10760485 -145.85 + 21 127.82575 907 1 1 2.3221904 0.62613991 -174.45 + 21 145.0421 899 1 0 2.3452859 0.65028312 -175.85 + 21 136.46163 909 0 1 2.8286563 1.0764664 -204.45 + 21 125.83118 901 0 0 2.843422 1.0886535 -205.85 +Number of tracker digits in this event = 8 +Event: 22 +Number of tracker hits in this event = 19 + 22 147.67537 896 5 1 0.14139209 -0.1201353 -54.45 + 22 200.72239 896 4 1 0.16001641 -0.23837352 -84.45 + 22 125.42028 896 3 1 0.17526419 -0.49813221 -114.45 + 22 117.21378 895 3 0 0.17851913 -0.51810804 -115.85 + 22 151.76794 896 2 1 0.2412323 -0.95679202 -144.45 + 22 118.60617 893 2 0 0.23885888 -0.9771318 -145.85 + 22 124.64082 896 1 1 0.19366704 -1.3821054 -174.45 + 22 210.97813 891 1 0 0.19433362 -1.4066898 -175.85 + 22 102.7094 896 0 1 0.19762772 -1.8731166 -204.45 + 22 114.60674 888 0 0 0.20623223 -1.8853126 -205.85 + 22 82.734813 1328 0 1 86.644426 13.312903 -204.69586 + 22 406.47294 858 5 1 -7.9185919 -6.3445331 -54.45 + 22 179.02035 866 5 0 -8.181891 -6.3857951 -55.85 + 22 172.56059 836 4 1 -12.395284 -7.8719123 -84.45 + 22 102.54063 859 4 0 -13.101228 -7.767261 -85.85 + 22 131.27319 760 3 1 -27.516171 -6.3166821 -114.45 + 22 138.73451 863 3 0 -28.361847 -7.0119238 -115.85 + 22 155.53986 688 2 1 -41.878212 -16.02058 -144.45 + 22 213.75495 813 2 0 -43.441405 -16.926225 -145.85 +Number of tracker digits in this event = 13 +Event: 23 +Number of tracker hits in this event = 7 + 23 130.31347 896 5 0 0.05186268 0.068028087 -55.85 + 23 136.61918 897 4 1 0.28323096 0.071951427 -84.45 + 23 125.49535 896 4 0 0.28578217 0.06804303 -85.85 + 23 116.49363 900 1 1 0.93073112 0.15940731 -174.45 + 23 148.48166 896 1 0 0.94004766 0.1613594 -175.85 + 23 114.88977 901 0 1 1.1259068 0.22980543 -204.45 + 23 135.43188 896 0 0 1.148449 0.23991491 -205.85 +Number of tracker digits in this event = 5 +Event: 24 +Number of tracker hits in this event = 17 + 24 111.89969 896 5 1 0.15089073 0.075023053 -54.45 + 24 207.44066 896 5 0 0.16368649 0.078168097 -55.85 + 24 127.4813 897 4 1 0.39076367 0.15430461 -84.45 + 24 238.72077 896 4 0 0.40344485 0.1552943 -85.85 + 24 157.14002 899 3 1 0.6649842 0.1590829 -114.45 + 24 161.73605 896 3 0 0.68551652 0.1582933 -115.85 + 24 416.73133 901 2 1 1.135972 0.16740694 -144.45 + 24 237.97224 896 2 0 1.1676337 0.17118303 -145.85 + 24 119.78829 904 1 1 1.844788 0.22405895 -174.45 + 24 110.47872 896 1 0 1.8802701 0.22182878 -175.85 + 24 92.974111 908 0 1 2.6474588 0.23983845 -204.45 + 24 5.7680748 909 0 1 2.6579155 0.24006799 -204.83485 + 24 107.67081 896 0 0 2.6853733 0.24161831 -205.85 + 24 142.88203 867 1 1 -6.1036652 0.10015664 -174.45 + 24 150.06641 897 1 0 -6.892429 0.3825734 -175.85 + 24 162.77823 784 0 1 -22.6992 6.437576 -204.45 + 24 155.59923 930 0 0 -23.730016 6.9177673 -205.85 +Number of tracker digits in this event = 11 +Event: 25 +Number of tracker hits in this event = 9 + 25 149.80751 896 3 1 0.14510321 0.084547911 -114.45 + 25 162.53783 896 3 0 0.14580103 0.081924303 -115.85 + 25 242.49308 896 2 0 0.16256972 0.053423329 -145.85 + 25 127.10641 897 1 1 0.30465726 0.14735818 -174.45 + 25 127.7575 896 1 0 0.28051937 0.17680096 -175.85 + 25 109.06439 899 0 0 -0.095747176 0.71063789 -205.85 + 25 174.09727 897 2 0 -0.096899459 0.25746423 -145.93751 + 25 4.8336319 121 5 1 -155.81638 26.847432 -54.464901 + 25 207.54506 1117 4 0 -95.131309 44.355929 -85.957558 +Number of tracker digits in this event = 7 +Event: 26 +Number of tracker hits in this event = 43 + 26 108.73506 896 4 0 -0.41124023 0.22248325 -85.85 + 26 124.79863 894 3 1 -0.84584029 0.71052066 -114.45 + 26 124.32465 899 3 0 -0.86339094 0.73328865 -115.85 + 26 141.54617 892 2 1 -1.2143937 1.2228279 -144.45 + 26 125.63825 901 2 0 -1.2303594 1.242859 -145.85 + 26 128.40147 890 1 1 -1.5297681 1.681672 -174.45 + 26 114.89659 904 1 0 -1.5446128 1.7006656 -175.85 + 26 387.49503 889 0 1 -1.8272661 2.0719057 -204.45 + 26 127.05341 906 0 0 -1.838787 2.0967333 -205.85 + 26 259.00886 891 0 1 -1.3213874 2.0563437 -204.76325 + 26 26.963357 894 0 1 -0.81403439 2.1244657 -204.50083 + 26 90.843018 898 2 0 -1.4242351 0.58370158 -145.95035 + 26 137.10118 895 5 1 -0.56228804 -8.4401646 -54.45 + 26 157.98927 854 5 0 -0.4035523 -8.8470718 -55.85 + 26 149.3827 913 4 1 3.4688469 -17.604681 -84.45 + 26 129.35749 805 4 0 3.3230208 -18.490154 -85.85 + 26 212.59769 893 3 1 -0.99018099 -35.593613 -114.45 + 26 152.67902 718 3 0 -0.52097092 -35.918421 -115.85 + 26 274.30542 866 2 1 -6.3428383 -48.842505 -144.45 + 26 215.89746 642 2 0 -6.0019651 -51.175587 -145.85 + 26 234.78411 640 2 0 -5.9486847 -51.620683 -146.13133 + 26 439.70346 899 1 1 0.71853767 -113.56859 -174.45 + 26 1703.5198 904 1 1 1.8427633 -114.244 -174.51022 + 26 43.611964 923 1 1 5.6034227 -116.55389 -174.85 + 26 466.0259 924 1 1 5.7023817 -116.62364 -174.82943 + 26 279.12143 929 1 1 6.7459376 -117.26483 -174.6021 + 26 502.40343 210 2 0 107.0204 -137.9656 -146.25 + 26 342.96352 1443 2 1 110.04857 -138.44562 -144.85 + 26 175.07698 1448 2 1 111.06484 -138.4214 -144.45 + 26 264.28865 205 2 0 111.82751 -139.01406 -145.85 + 26 143.6911 1444 2 1 110.20923 -138.53707 -144.67323 + 26 1.8285 1447 2 1 110.88414 -138.37586 -144.85 + 26 23.284452 1449 2 1 111.17265 -138.40423 -144.74351 + 26 162.65807 931 1 1 7.0723215 -117.46205 -174.78147 + 26 37.940006 932 1 1 7.4201573 -117.32827 -174.79191 + 26 79.656133 362 1 0 -11.532442 -107.56231 -175.85 + 26 101.93208 363 1 0 -11.633597 -107.51586 -175.85307 + 26 34.161671 778 1 1 -24.019602 -110.3737 -174.85 + 26 203.06467 777 1 1 -24.068265 -110.38394 -174.84209 + 26 98.351239 319 1 0 5.5638268 -116.28265 -175.85 + 26 320.57299 903 1 1 1.6095288 -114.65043 -174.45 + 26 142.12427 416 1 0 6.1705227 -96.870238 -175.92996 + 26 26.74373 415 1 0 6.1690337 -96.993163 -176.23376 +Number of tracker digits in this event = 30 +Event: 27 +Number of tracker hits in this event = 10 + 27 377.63237 896 5 0 -0.079091605 0.19127643 -55.85 + 27 126.66681 897 4 1 0.43474306 0.55108032 -84.45 + 27 97.31018 898 4 0 0.39658091 0.50727161 -85.85 + 27 107.31894 880 2 1 -3.4559819 -0.39905331 -144.45 + 27 179.27457 871 1 1 -5.3527579 2.9834185 -174.45 + 27 140.11831 911 1 0 -5.3684392 3.2463706 -175.85 + 27 163.50705 874 0 1 -4.6591857 7.8360309 -204.45 + 27 137.32577 935 0 0 -4.4003931 7.8961686 -205.85 + 27 133.57233 1217 6 0 -55.611606 64.347459 -26.25 + 27 118.86191 620 6 1 -55.514349 63.847451 -24.85 +Number of tracker digits in this event = 7 +Event: 28 +Number of tracker hits in this event = 10 + 28 137.02253 896 5 1 0.087496184 0.16684138 -54.45 + 28 124.24987 896 5 0 0.093271592 0.18207538 -55.85 + 28 355.05064 896 4 1 0.22926743 0.51163174 -84.45 + 28 124.78536 898 4 0 0.23659443 0.52490664 -85.85 + 28 122.18426 897 3 1 0.4033101 0.80520522 -114.45 + 28 172.17298 899 3 0 0.38149376 0.84099418 -115.85 + 28 139.1708 903 2 0 -0.078925153 1.5806805 -145.85 + 28 173.47283 906 1 0 -0.26630734 2.1394799 -175.85 + 28 120.8465 895 0 1 -0.63806927 2.7566437 -204.45 + 28 97.461996 909 0 0 -0.65750206 2.7876018 -205.85 +Number of tracker digits in this event = 9 +Event: 29 +Number of tracker hits in this event = 11 + 29 102.36097 896 5 1 0.05940603 0.055588068 -54.45 + 29 111.46648 896 5 0 0.064498396 0.060411042 -55.85 + 29 309.64668 896 4 1 0.1738455 0.14936737 -84.45 + 29 106.03453 896 4 0 0.16910294 0.15632503 -85.85 + 29 98.911924 896 3 1 0.072997632 0.24862376 -114.45 + 29 126.96447 897 3 0 0.068222264 0.25518497 -115.85 + 29 127.10039 897 1 0 -0.08826065 0.37369853 -175.85 + 29 171.22385 897 0 0 -0.19521097 0.25795498 -205.85 + 29 68.206813 1064 6 0 -41.897335 33.792926 -26.25 + 29 204.02734 1065 6 0 -41.977882 33.876627 -26.155028 + 29 233.98091 930 1 1 6.8625342 -65.026391 -174.49899 +Number of tracker digits in this event = 6 +Event: 30 +Number of tracker hits in this event = 12 + 30 159.07359 896 5 1 0.082101009 0.054377193 -54.45 + 30 130.63196 896 5 0 0.092031321 0.054219781 -55.85 + 30 120.51662 897 4 1 0.34370383 0.059915553 -84.45 + 30 225.04556 896 4 0 0.36131898 0.062119462 -85.85 + 30 132.67305 899 3 1 0.67915239 0.10839545 -114.45 + 30 106.31075 896 3 0 0.69452198 0.11122811 -115.85 + 30 142.59229 900 2 1 1.0301765 0.16560277 -144.45 + 30 143.03263 896 2 0 1.0555031 0.16697872 -145.85 + 30 102.03101 903 1 1 1.5996805 0.18240239 -174.45 + 30 129.89013 896 1 0 1.6280968 0.18461369 -175.85 + 30 137.84334 906 0 1 2.2397216 0.22040906 -204.45 + 30 111.29394 896 0 0 2.2677091 0.23256313 -205.85 +Number of tracker digits in this event = 9 +Event: 31 +Number of tracker hits in this event = 15 + 31 110.38363 896 3 1 0.087673171 0.11753422 -114.45 + 31 129.1646 896 3 0 0.091397481 0.11016832 -115.85 + 31 124.86792 897 1 1 0.26522985 -0.074611138 -174.45 + 31 123.66477 897 0 1 0.33527656 -0.38264665 -204.45 + 31 66.804935 1157 4 0 79.774238 52.393458 -86.25 + 31 97.084846 896 2 1 0.12036512 -0.05345678 -144.45 + 31 108.02128 897 2 1 0.43880638 0.23089414 -144.63785 + 31 88.534158 902 2 0 0.12541813 1.2914461 -145.85 + 31 62.202555 903 2 0 0.05 1.4668922 -146.00266 + 31 204.9836 904 2 0 0.05 1.8290491 -146.0676 + 31 49.705313 905 2 0 0.12107926 1.8556598 -146.0432 + 31 235.36466 896 4 1 0.05 0.16342528 -84.460307 + 31 326.91062 897 4 1 0.38027442 0.45573425 -84.529379 + 31 202.07421 899 4 1 0.79855939 0.53241976 -84.725529 + 31 3.0851734 900 4 1 1.0203704 0.60906328 -84.465642 +Number of tracker digits in this event = 7 +Event: 32 +Number of tracker hits in this event = 18 + 32 183.00757 896 5 0 -0.074219279 0.059025896 -55.85 + 32 148.49775 893 4 1 -0.85214826 0.5588186 -84.45 + 32 113.40424 898 4 0 -0.88873435 0.57974396 -85.85 + 32 110.1844 890 3 1 -1.6058693 1.0435056 -114.45 + 32 120.67608 901 3 0 -1.6484839 1.0632784 -115.85 + 32 344.69785 885 2 1 -2.5012289 1.4331227 -144.45 + 32 154.45314 902 2 0 -2.5448621 1.4455159 -145.85 + 32 115.90152 880 1 1 -3.4544953 1.6884946 -174.45 + 32 110.38168 904 1 0 -3.4951342 1.7039392 -175.85 + 32 118.10486 876 0 1 -4.300989 2.0029454 -204.45 + 32 160.57929 905 0 0 -4.3492194 2.0242045 -205.85 + 32 56.163574 601 0 0 0.42195296 -59.44107 -206.25 + 32 39.81568 906 0 0 -4.727827 2.079338 -205.85 + 32 279.67717 886 2 1 -2.4206648 1.4735272 -144.45 + 32 118.32223 904 2 0 -2.3238495 1.7768766 -145.85 + 32 117.12913 942 1 0 -0.50475958 9.2686199 -175.85 + 32 130.86684 883 0 1 -2.927795 21.593661 -204.45 + 32 143.45519 1007 0 0 -3.2347029 22.409207 -205.85 +Number of tracker digits in this event = 9 +Event: 33 +Number of tracker hits in this event = 14 + 33 120.62317 896 5 1 0.1763316 0.15981813 -54.45 + 33 137.03289 896 5 0 0.17631843 0.1613605 -55.85 + 33 120.53062 896 4 1 0.16980559 0.1733934 -84.45 + 33 169.30333 896 4 0 0.1747894 0.1771642 -85.85 + 33 123.27455 897 3 1 0.30909146 0.26355253 -114.45 + 33 121.89586 897 3 0 0.31212519 0.2650972 -115.85 + 33 149.61624 897 2 1 0.38820642 0.30172859 -144.45 + 33 111.7084 897 2 0 0.39438798 0.29814991 -145.85 + 33 127.61128 898 1 1 0.57138924 0.16053625 -174.45 + 33 110.67463 896 1 0 0.58272578 0.15103982 -175.85 + 33 141.54229 899 0 1 0.81695456 -0.12782627 -204.45 + 33 4.115388 456 0 0 -46.125798 -88.431966 -205.85 + 33 65.680862 746 0 1 -30.3908 -89.881923 -204.56141 + 33 75.808346 1734 14 1 168.17991 -36.186507 215.15 +Number of tracker digits in this event = 9 +Event: 34 +Number of tracker hits in this event = 20 + 34 119.94572 896 5 1 0.10554646 -0.23829436 -54.45 + 34 233.90981 896 4 1 0.17784318 -0.48511399 -84.45 + 34 97.964504 895 4 0 0.18100536 -0.48080075 -85.85 + 34 137.79142 897 3 1 0.29947546 -0.14720653 -114.45 + 34 104.94796 900 2 1 1.0021794 -0.33232157 -144.45 + 34 107.69052 903 1 1 1.5660014 -1.7922011 -174.45 + 34 168.2773 888 1 0 1.6207262 -1.8866138 -175.85 + 34 118.04982 906 0 1 2.182067 -4.089388 -204.45 + 34 102.35045 877 0 0 2.1632941 -4.2054501 -205.85 + 34 201.54234 806 0 0 151.34841 -18.259304 -206.25 + 34 198.40701 1655 0 1 152.37769 -17.635105 -204.85 + 34 7.609423 807 0 0 151.39305 -18.230769 -206.11847 + 34 162.83768 893 1 0 -0.10875983 -0.91648163 -175.85 + 34 287.99999 890 0 0 -0.35704501 -1.5278121 -205.85 + 34 141.07922 887 1 0 0.19494307 -2.0615925 -175.95232 + 34 41.958261 903 4 0 -0.21671866 1.6459935 -85.85 + 34 159.56689 904 4 0 -0.26123436 1.7885944 -85.923333 + 34 153.73324 907 4 0 -0.059732861 2.260566 -86.027927 + 34 350.33149 958 4 0 14.300698 12.564953 -86.25 + 34 117.30392 957 4 0 14.495182 12.443684 -86.08702 +Number of tracker digits in this event = 11 +Event: 35 +Number of tracker hits in this event = 6 + 35 146.09757 896 5 0 -0.065445337 0.10649214 -55.85 + 35 149.70616 896 4 0 -0.17472551 0.08366089 -85.85 + 35 154.85066 896 2 0 -0.15457749 0.073666384 -145.85 + 35 111.05944 896 0 1 0.18547799 0.34987893 -204.45 + 35 123.38099 897 0 0 0.19263904 0.34814549 -205.85 + 35 318.71582 895 2 0 -0.26530648 -0.47552248 -145.92758 +Number of tracker digits in this event = 5 +Event: 36 +Number of tracker hits in this event = 23 + 36 119.67008 896 5 0 -0.060865451 0.066052229 -55.85 + 36 398.40209 893 1 0 -0.16799211 -0.97506946 -175.85 + 36 105.92356 889 0 0 -0.2746391 -1.6763787 -205.85 + 36 147.71657 1591 7 0 107.51304 139.55554 3.75 + 36 115.67405 1431 7 1 107.57327 138.9152 5.15 + 36 95.035599 1566 0 1 134.73109 35.187143 -204.70064 + 36 102.17763 1567 0 1 134.78789 35.119516 -204.75876 + 36 67.269256 896 2 1 0.05 -0.70161313 -144.8329 + 36 370.15325 849 2 0 3.8509966 -9.7055392 -145.85 + 36 77.837003 896 3 1 0.05 -0.23285855 -114.5426 + 36 218.75921 908 2 1 2.5661682 3.1729979 -144.45 + 36 154.19092 915 2 0 2.2562522 3.989055 -145.85 + 36 369.71245 874 1 1 -4.7465057 22.335469 -174.45 + 36 186.74171 1015 1 0 -4.73389 23.931498 -175.85 + 36 269.04333 886 0 1 -2.295309 56.511688 -204.45 + 36 131.45603 1190 0 0 -0.37644864 58.904718 -205.85 + 36 193.25533 1191 0 0 -0.15124592 59.196038 -206.00248 + 36 142.12133 1192 0 0 0.05 59.412656 -206.12666 + 36 418.31466 1518 0 0 66.855525 125.03355 -206.25 + 36 242.69946 1241 0 1 69.211525 126.9791 -204.85 + 36 68.566625 1263 0 1 73.606795 127.83514 -204.45 + 36 88.148779 1663 1 0 133.22748 154.03003 -176.06133 + 36 445.67632 1562 1 1 133.83769 154.42343 -174.85 +Number of tracker digits in this event = 14 +Event: 37 +Number of tracker hits in this event = 16 + 37 200.34717 897 3 0 0.08327158 0.36134667 -115.85 + 37 148.43416 899 2 1 0.73390095 -0.85634688 -144.45 + 37 176.29406 894 2 0 0.51209932 -0.84073516 -145.85 + 37 156.81916 884 1 1 -2.8155513 1.208234 -174.45 + 37 128.02597 905 1 0 -2.679123 1.9443983 -175.85 + 37 82.482334 910 0 1 2.9335851 10.992054 -204.45 + 37 182.13565 911 0 1 3.0912825 11.097129 -204.52373 + 37 347.15702 962 0 0 5.5504473 13.282007 -205.85 + 37 112.22544 896 5 0 -0.05 0.081000108 -55.952854 + 37 184.82356 498 5 0 70.33437 -79.866946 -56.25 + 37 162.09602 1243 5 1 69.642523 -79.747886 -54.85 + 37 58.479896 1242 5 1 69.372158 -79.749068 -54.827606 + 37 108.26175 1241 5 1 69.248037 -79.63978 -54.808672 + 37 13.087241 479 5 0 70.159633 -83.657063 -55.85 + 37 54.289817 1262 5 1 73.433309 -86.663333 -54.85 + 37 71.257334 1263 5 1 73.455077 -86.667521 -54.822186 +Number of tracker digits in this event = 9 +Event: 38 +Number of tracker hits in this event = 28 + 38 242.59482 895 4 1 -0.64783722 -0.10109897 -84.45 + 38 116.53018 887 3 1 -2.2408341 -0.34664907 -114.45 + 38 128.91101 871 1 1 -5.44 0.28247671 -174.45 + 38 117.30233 896 1 0 -5.5328277 0.2352029 -175.85 + 38 188.0204 860 0 1 -7.5273903 -0.81662768 -204.45 + 38 144.89874 893 0 0 -7.575009 -0.85141433 -205.85 + 38 249.67034 896 0 0 -7.4572664 0.12676541 -205.85 + 38 131.66694 897 0 0 -7.5744194 0.38435019 -206.11744 + 38 331.94965 878 0 0 13.452303 -3.9224639 -206.25 + 38 81.912011 877 0 0 13.52006 -4.0588376 -206.12997 + 38 87.940397 879 0 0 13.326778 -3.8240374 -205.98161 + 38 117.59728 922 3 1 5.2647426 -7.7125913 -114.45 + 38 146.2673 855 3 0 5.4509722 -8.5418118 -115.85 + 38 238.76691 946 2 1 10.242861 -25.304515 -144.45 + 38 125.65878 769 2 0 10.335049 -25.733652 -145.85 + 38 129.18684 962 1 1 13.388278 -34.167501 -174.45 + 38 122.20387 723 1 0 13.509219 -34.895087 -175.85 + 38 124.89512 976 0 1 16.073998 -49.732442 -204.45 + 38 113.8771 647 0 0 15.788257 -50.203626 -205.85 + 38 107.09284 896 3 1 0.12133363 -0.50471362 -114.45 + 38 331.48612 895 3 0 0.11996061 -0.49733087 -115.85 + 38 119.63597 894 0 1 -0.79737491 0.12858607 -204.45 + 38 119.01403 895 4 0 -0.59126924 -0.591309 -85.85 + 38 181.29275 842 3 1 -11.242979 -16.915389 -114.45 + 38 188.31178 819 3 0 -12.361539 -15.838888 -115.85 + 38 177.56175 788 2 1 -22.031354 -5.4769213 -144.45 + 38 104.06846 870 2 0 -21.947197 -5.4969926 -145.85 + 38 77.154668 1067 1 0 -62.853963 34.370051 -175.85 +Number of tracker digits in this event = 17 +Event: 39 +Number of tracker hits in this event = 19 + 39 125.07834 894 4 1 -0.78063006 -0.33406209 -84.45 + 39 113.65739 892 3 1 -1.2007252 -0.2887657 -114.45 + 39 426.92387 886 2 1 -2.3545035 0.83065483 -144.45 + 39 126.76399 900 2 0 -2.4643756 0.97040962 -145.85 + 39 134.93761 874 1 1 -4.6803464 3.7343945 -174.45 + 39 103.9587 915 1 0 -4.7893075 3.8803513 -175.85 + 39 136.19355 863 0 1 -6.9467446 6.8670273 -204.45 + 39 155.03704 930 0 0 -7.0717153 7.0258738 -205.85 + 39 121.13273 903 2 0 -2.8656705 1.6269688 -145.85 + 39 159.0276 904 2 0 -3.0202196 1.6704532 -146.07114 + 39 128.99404 890 2 1 -1.5203989 -0.75457532 -144.45 + 39 105.57918 894 2 0 -1.5385257 -0.75079139 -145.85 + 39 121.63279 889 1 1 -1.8277634 -0.67577081 -174.45 + 39 106.4368 894 1 0 -1.8398033 -0.67580364 -175.85 + 39 103.81942 888 0 1 -2.0046567 -0.60365507 -204.45 + 39 112.60724 895 0 0 -2.0155425 -0.6017576 -205.85 + 39 262.98078 893 4 0 0.74069111 -0.89676188 -85.85 + 39 22.510708 1116 4 0 29.606522 44.244634 -86.25 + 39 243.39833 1117 4 0 29.609024 44.311778 -86.213091 +Number of tracker digits in this event = 12 +Event: 40 +Number of tracker hits in this event = 14 + 40 98.626081 899 3 0 -0.056174082 0.7932727 -115.85 + 40 98.704277 902 2 0 -0.30721599 1.3258121 -145.85 + 40 154.99153 895 1 1 -0.58667449 1.698639 -174.45 + 40 129.72422 904 1 0 -0.59433982 1.7224789 -175.85 + 40 113.83448 894 0 1 -0.77591786 2.2809102 -204.45 + 40 373.21916 907 0 0 -0.78809948 2.3081014 -205.85 + 40 90.911248 898 0 1 0.60268309 2.3284703 -204.45 + 40 112.99481 906 0 0 0.58061167 2.2207488 -206.20892 + 40 3.3000667 905 0 0 0.69665766 1.9691575 -206.24538 + 40 226.20523 744 0 0 -30.639087 -30.6565 -206.25 + 40 8.3977766 745 0 0 -30.512086 -30.602085 -206.04325 + 40 97.150098 901 1 0 -0.10460175 1.0922189 -175.85 + 40 148.53828 902 0 1 1.3686183 0.96319182 -204.45 + 40 109.12359 900 0 0 1.5719273 0.87675831 -205.85 +Number of tracker digits in this event = 5 +Event: 41 +Number of tracker hits in this event = 3 + 41 113.13256 895 3 0 -0.07632638 -0.46537061 -115.85 + 41 116.16918 895 2 0 -0.087416237 -0.50400856 -145.85 + 41 111.78423 896 0 0 -0.066351311 0.1114315 -205.85 +Number of tracker digits in this event = 0 +Event: 42 +Number of tracker hits in this event = 10 + 42 97.552448 896 5 0 -0.1124688 0.07314514 -55.85 + 42 34.492114 896 4 0 -0.050732109 0.050937553 -85.85 + 42 120.15027 896 3 1 0.15171374 0.091608986 -114.45 + 42 116.18396 896 3 0 0.1538132 0.094748173 -115.85 + 42 124.09423 896 2 1 0.2402131 0.16922794 -144.45 + 42 130.82005 896 2 0 0.24626488 0.17489129 -145.85 + 42 210.74376 897 1 1 0.38344007 0.24296429 -174.45 + 42 123.81447 896 1 0 0.38511055 0.24272554 -175.85 + 42 157.86568 897 0 1 0.35298035 0.18882987 -204.45 + 42 117.0076 896 0 0 0.35489856 0.18783206 -205.85 +Number of tracker digits in this event = 6 +Event: 43 +Number of tracker hits in this event = 16 + 43 105.25361 896 5 1 0.1250288 0.0715845 -54.45 + 43 120.24648 896 5 0 0.13502798 0.085112664 -55.85 + 43 135.46248 897 4 1 0.33872104 0.37003683 -84.45 + 43 143.97322 897 4 0 0.35725553 0.38656947 -85.85 + 43 257.6273 899 3 1 0.74581318 0.72417058 -114.45 + 43 107.65979 899 3 0 0.7859693 0.75920217 -115.85 + 43 148.42506 903 2 1 1.596589 1.4852144 -144.45 + 43 99.304619 903 2 0 1.639189 1.5053247 -145.85 + 43 228.78867 908 1 1 2.5027039 1.9167712 -174.45 + 43 114.2291 905 1 0 2.5434066 1.9388023 -175.85 + 43 113.38028 912 0 1 3.364562 2.3902546 -204.45 + 43 119.17977 907 0 0 3.4125399 2.4248126 -205.85 + 43 215.84922 907 1 0 2.4560536 2.3282281 -175.85 + 43 119.0858 908 0 1 2.4892972 4.880601 -204.45 + 43 134.30262 920 0 0 2.4936423 5.0205313 -205.85 + 43 15.451619 910 0 0 3.5000385 2.9422509 -206.1734 +Number of tracker digits in this event = 8 +Event: 44 +Number of tracker hits in this event = 10 + 44 101.13177 896 4 0 -0.1344655 0.15176476 -85.85 + 44 25.515758 896 2 1 0.076829143 -6.2186465 -144.45 + 44 121.97233 865 2 0 -0.21941387 -6.6456675 -145.85 + 44 221.7471 884 1 1 -2.8394004 -13.577833 -174.45 + 44 173.0796 841 1 0 -2.9680465 -11.394161 -175.85 + 44 136.63537 1358 0 0 67.556492 93.008377 -206.19123 + 44 152.25842 1232 0 1 67.292136 94.218486 -204.85 + 44 65.202307 1231 0 1 67.07013 94.387587 -204.60089 + 44 108.11762 1207 0 0 55.052075 62.301408 -206.25 + 44 163.18707 1169 0 1 54.840236 62.81373 -204.85 +Number of tracker digits in this event = 6 +Event: 45 +Number of tracker hits in this event = 20 + 45 122.71842 896 5 1 0.073656587 0.2508322 -54.45 + 45 132.16042 897 5 0 0.078023491 0.25901044 -55.85 + 45 110.28757 896 4 1 0.21870058 0.44734757 -84.45 + 45 118.5204 898 4 0 0.2145113 0.45407764 -85.85 + 45 254.87284 896 3 1 0.16314184 0.56201359 -114.45 + 45 244.95535 898 3 0 0.15800095 0.56913497 -115.85 + 45 94.048156 896 1 1 0.059082427 1.1092691 -174.45 + 45 135.26266 901 0 0 -0.27334727 1.2059592 -205.85 + 45 127.61569 900 2 0 -0.093906139 0.89720593 -145.85 + 45 139.86969 881 1 1 -3.2586184 4.3250855 -174.45 + 45 239.11155 921 1 0 -2.9175221 5.0867907 -175.85 + 45 120.55128 920 0 1 4.9708581 21.428772 -204.45 + 45 134.11555 1004 0 0 5.4577616 21.836182 -205.85 + 45 321.38337 917 2 1 4.3065819 -0.70933551 -144.45 + 45 54.96086 920 2 1 5.0192209 -0.3338945 -144.8281 + 45 638.57578 903 2 0 8.8738515 1.5426278 -145.85 + 45 146.65923 1153 2 0 51.306725 51.497622 -146.25 + 45 309.07818 1154 2 0 51.308691 51.675 -146.01386 + 45 121.12499 897 2 0 4.7440964 0.341538 -145.85 + 45 31.561393 896 0 1 0.18290508 0.60352633 -204.45 +Number of tracker digits in this event = 15 +Event: 46 +Number of tracker hits in this event = 7 + 46 170.62272 897 4 1 0.26339511 -0.21251002 -84.45 + 46 104.08846 898 3 1 0.63391139 0.067779547 -114.45 + 46 106.4416 908 2 1 2.5166593 -1.263743 -144.45 + 46 125.28747 891 2 0 2.520311 -1.3037146 -145.85 + 46 108.27182 911 1 1 3.0803583 -1.4151786 -174.45 + 46 240.1347 891 1 0 3.0904344 -1.3311812 -175.85 + 46 124.23955 912 0 1 3.3591887 -0.20829376 -204.45 Number of tracker digits in this event = 4 Event: 47 -Number of tracker hits in this event = 14 - 47 207.634 896 5 1 0.0774693 -0.0879164 -54.45 - 47 137.762 896 4 1 0.144438 -0.130732 -84.45 - 47 110.387 896 3 1 0.202164 -0.0840717 -114.45 - 47 213.637 897 2 1 0.261304 0.0973638 -144.45 - 47 111.18 896 2 0 0.264678 0.106491 -145.85 - 47 353.682 897 1 1 0.362417 0.269735 -174.45 - 47 223.797 897 1 0 0.366525 0.282317 -175.85 - 47 485.401 897 0 1 0.447128 0.546848 -204.45 - 47 340.588 898 0 0 0.449105 0.559822 -205.85 - 47 199.494 899 0 1 0.654562 1.66716 -204.45 - 47 231.893 904 0 0 0.68609 1.70183 -205.85 - 47 114.774 896 1 0 -0.104847 0.196291 -175.85 - 47 118.107 843 0 1 -10.9764 -0.44838 -204.45 - 47 129.113 895 0 0 -11.4327 -0.504782 -205.85 -Number of tracker digits in this event = 10 +Number of tracker hits in this event = 23 + 47 127.59927 894 3 0 -0.35899952 -0.65525393 -115.85 + 47 496.21773 895 2 1 -0.6324289 -1.0733387 -144.45 + 47 123.07576 892 2 0 -0.64750007 -1.0953152 -145.85 + 47 119.5187 893 1 1 -0.98919202 -1.5619025 -174.45 + 47 115.42641 890 1 0 -0.99832902 -1.5809769 -175.85 + 47 135.17857 892 0 1 -1.1730179 -1.9738477 -204.45 + 47 114.02958 888 0 0 -1.1778355 -1.9820999 -205.85 + 47 101.34127 1462 4 1 113.91367 -167.19835 -84.844587 + 47 156.801 1463 4 1 114.08612 -167.13763 -84.824487 + 47 180.17627 792 1 1 -21.166665 -92.998739 -174.69614 + 47 161.97565 791 1 1 -21.378637 -93.209769 -174.45 + 47 71.42502 790 1 1 -21.46507 -92.996284 -174.57318 + 47 259.51011 433 1 0 -22.133775 -93.393419 -175.85 + 47 103.28731 434 1 0 -22.149446 -93.313336 -176.11309 + 47 294.87877 901 0 0 -23.659793 1.0648643 -206.25 + 47 128.15184 894 2 1 -0.67248208 -1.030268 -144.84844 + 47 172.28645 895 6 0 0.33819168 -0.58074078 -25.85 + 47 526.44319 941 5 1 9.1164203 -16.135236 -54.45 + 47 437.73886 823 5 0 11.861559 -14.867135 -55.85 + 47 139.21531 1205 4 1 61.97474 4.2855498 -84.45 + 47 97.935536 916 4 0 62.259382 4.2121373 -85.85 + 47 308.79618 1360 3 1 93.408994 -1.2898791 -114.45 + 47 177.02841 897 3 0 93.572774 0.29322927 -115.85 +Number of tracker digits in this event = 16 Event: 48 -Number of tracker hits in this event = 26 - 48 111.663 896 5 1 0.0747398 0.339715 -54.45 - 48 130.532 897 5 0 0.0788483 0.346199 -55.85 - 48 99.1482 896 4 1 0.144314 0.493438 -84.45 - 48 104.05 898 4 0 0.145328 0.502275 -85.85 - 48 94.4244 896 3 1 0.0980684 0.702606 -114.45 - 48 110.584 899 3 0 0.0933449 0.71355 -115.85 - 48 109.012 902 1 0 -0.0731695 1.31673 -175.85 - 48 149.918 902 0 0 -0.339429 1.43679 -205.85 - 48 7.4095 718 3 1 -35.8635 -31.6004 -114.45 - 48 204.681 897 3 1 0.34393 1.00609 -114.45 - 48 100.051 901 3 0 0.387103 1.09808 -115.85 - 48 144.922 901 1 1 1.08903 11.5504 -174.45 - 48 396.771 954 1 0 0.753044 11.728 -175.85 - 48 130.951 870 0 1 -5.64186 13.3581 -204.45 - 48 110.167 962 0 0 -6.171 13.3892 -205.85 - 48 107.459 955 1 0 0.53035 12.0363 -176.14 - 48 89.6107 956 1 0 0.400839 12.1746 -175.941 - 48 1.71055 957 1 0 0.287962 12.3187 -175.851 - 48 37.7013 919 1 1 4.8258 15.1886 -174.85 - 48 192.149 920 1 1 4.90907 15.2218 -174.834 - 48 83.3696 921 1 1 5.05287 15.3562 -174.783 - 48 132.112 900 3 0 0.345516 1.01071 -115.85 - 48 125.379 897 2 1 0.363865 1.12931 -144.45 - 48 142.92 901 2 0 0.358616 1.1493 -145.85 - 48 115.567 896 1 1 0.219975 1.72641 -174.45 - 48 104.069 904 1 0 0.205548 1.72957 -175.85 -Number of tracker digits in this event = 10 +Number of tracker hits in this event = 11 + 48 132.34441 895 2 1 -0.53636723 -0.4561938 -144.45 + 48 215.28133 895 2 0 -0.53657366 -0.46172444 -145.85 + 48 104.37811 895 1 1 -0.60362777 -0.55532284 -174.45 + 48 245.51827 895 1 0 -0.60324891 -0.56603444 -175.85 + 48 134.22425 895 0 1 -0.59709406 -0.72782059 -204.45 + 48 254.10542 894 0 0 -0.58870505 -0.75116618 -205.85 + 48 14.697577 326 4 0 -59.075802 -114.76745 -86.25 + 48 90.848314 856 3 1 -8.4191861 -136.68021 -114.74637 + 48 144.33861 857 3 1 -8.2088768 -136.72589 -114.73471 + 48 153.33241 226 3 0 -5.9074808 -134.9167 -115.85 + 48 102.74732 702 2 1 -39.168228 36.494932 -144.85 +Number of tracker digits in this event = 7 Event: 49 -Number of tracker hits in this event = 7 - 49 110.953 896 5 0 -0.0556743 0.0744484 -55.85 - 49 117.48 896 4 0 -0.133664 0.11977 -85.85 - 49 126.062 896 3 0 -0.191973 0.114374 -115.85 - 49 111.916 901 1 1 1.07744 -0.253758 -174.45 - 49 126.734 908 0 1 2.62344 -1.48565 -204.45 - 49 142.422 890 0 0 2.71552 -1.55844 -205.85 - 49 10.7849 1010 0 0 47.0852 22.8565 -205.85 -Number of tracker digits in this event = 3 -Event: 50 -Number of tracker hits in this event = 12 - 50 173.467 894 2 0 -0.219872 -0.655525 -145.85 - 50 110.376 893 1 0 -0.314943 -0.878914 -175.85 - 50 167.515 895 0 1 -0.511646 -1.14977 -204.45 - 50 105.046 892 0 0 -0.518262 -1.16892 -205.85 - 50 101.842 895 2 1 -0.503048 -0.205064 -144.45 - 50 112.143 894 1 1 -0.740674 -0.119577 -174.45 - 50 155.943 891 0 1 -1.27884 0.226419 -204.45 - 50 152.343 896 0 0 -1.2733 0.248795 -205.85 - 50 122.021 894 3 1 -0.670517 -4.41124 -114.45 - 50 115.889 874 3 0 -1.23442 -4.72778 -115.85 - 50 1.8285 839 2 1 -11.6787 -12.8666 -144.45 - 50 65.5893 840 2 1 -11.6 -12.9924 -144.506 -Number of tracker digits in this event = 5 -Event: 51 -Number of tracker hits in this event = 19 - 51 166.494 894 2 1 -0.720311 -0.141357 -144.45 - 51 102.113 893 0 1 -0.982785 0.189087 -204.45 - 51 165.475 896 0 0 -0.951889 0.242243 -205.85 - 51 115.886 893 1 1 -0.883054 0.05 -174.603 - 51 343.537 898 2 0 -0.562358 0.577981 -145.85 - 51 35.1315 350 0 1 -109.979 -117.992 -204.836 - 51 56.3735 308 0 0 -111.648 -118.537 -205.85 - 51 205.333 307 0 0 -111.772 -118.588 -205.86 - 51 138.798 306 0 0 -111.771 -118.759 -205.891 - 51 191.937 896 2 1 0.205879 -1.16029 -144.45 - 51 262.149 891 2 0 0.222217 -1.25456 -145.85 - 51 108.224 899 1 1 0.700514 -3.41643 -174.45 - 51 302.697 880 1 0 0.747815 -3.54783 -175.85 - 51 194.659 905 0 1 1.85086 -6.45422 -204.45 - 51 95.7972 865 0 0 1.93922 -6.60008 -205.85 - 51 108.779 497 12 0 -117.394 -80.0988 153.75 - 51 84.5005 881 1 0 0.717256 -3.41816 -176.17 - 51 1.73807 892 2 0 0.196633 -1.21909 -145.859 - 51 2.62278 845 0 1 -10.6462 15.6428 -204.85 -Number of tracker digits in this event = 9 -Event: 52 -Number of tracker hits in this event = 41 - 52 109.871 896 4 0 -0.205951 0.124163 -85.85 - 52 111.645 896 3 0 -0.373439 0.235817 -115.85 - 52 678.877 895 2 1 -0.541512 0.323279 -144.45 - 52 251.948 897 2 0 -0.625507 0.394937 -145.85 - 52 261.908 886 1 1 -2.31478 1.79883 -174.45 - 52 98.7001 905 1 0 -2.38711 1.89048 -175.85 - 52 147.952 879 0 1 -3.81161 3.82045 -204.45 - 52 344.848 915 0 0 -3.94532 3.91342 -205.85 - 52 97.9175 917 0 1 4.33135 -68.5585 -204.781 - 52 2.5897 835 0 0 -1.40587 -12.5629 -205.853 - 52 149.96 891 0 1 -1.31445 -12.1673 -204.85 - 52 123.074 903 1 0 -2.36807 1.59636 -175.85 - 52 181.329 876 0 1 -4.4158 -1.71201 -204.45 - 52 175.786 886 0 0 -4.597 -2.26572 -205.85 - 52 27.887 889 2 0 -1.38293 -1.80505 -145.85 - 52 52.4857 888 2 0 -1.43416 -1.86091 -145.861 - 52 183.523 890 2 1 -1.53773 -1.87228 -144.85 - 52 55.4251 1027 3 1 26.2877 26.9366 -114.85 - 52 234.519 898 1 0 -0.434818 0.546297 -175.85 - 52 403.006 894 0 1 -0.808429 0.623733 -204.45 - 52 137.094 898 0 0 -0.86119 0.592605 -205.85 - 52 254.998 897 0 0 -0.910424 0.424695 -205.85 - 52 222.26 896 2 0 -0.503938 0.18336 -145.85 - 52 684.115 894 1 1 -0.662993 0.419076 -174.45 - 52 203.249 889 0 1 -1.73222 1.38354 -204.45 - 52 148.506 903 0 0 -1.78611 1.45347 -205.85 - 52 117.714 897 1 0 -0.751981 0.288576 -175.85 - 52 108.292 883 1 0 -65.8918 -3.03054 -176.25 - 52 116.371 564 1 1 -66.7067 -2.96281 -174.85 - 52 278.262 563 1 1 -66.9813 -3.02582 -174.585 - 52 63.5393 282 2 1 -123.671 57.6621 -144.85 - 52 217.158 1158 4 0 -97.3987 52.5852 -86.25 - 52 172.25 408 4 1 -98.3685 52.3452 -84.85 - 52 114.172 1165 5 0 -104.994 54.0394 -56.25 - 52 233.792 372 5 1 -105.615 54.4022 -54.85 - 52 58.0563 899 0 0 -0.867545 0.676945 -206.048 - 52 114.066 861 0 0 15.3795 -7.38442 -206.25 - 52 177.736 860 0 0 15.4316 -7.55673 -205.974 - 52 135.878 859 0 0 15.7639 -7.73903 -205.855 - 52 169.478 858 0 0 15.8445 -7.90292 -205.9 - 52 112.956 857 0 0 15.8798 -8.0781 -205.976 -Number of tracker digits in this event = 25 -Event: 53 -Number of tracker hits in this event = 19 - 53 116.007 896 2 1 0.0538915 0.158097 -144.45 - 53 102.009 896 2 0 0.0551818 0.166745 -145.85 - 53 127.052 896 1 1 0.101394 0.352599 -174.45 - 53 170.003 897 1 0 0.0801433 0.366781 -175.85 - 53 142.94 899 0 0 -0.443083 0.652204 -205.85 - 53 58.116 1638 8 0 100.366 149.051 34.15 - 53 277.938 896 0 1 0.161682 0.624288 -204.45 - 53 282.17 898 0 0 0.122767 0.636165 -205.85 - 53 405.709 982 0 0 53.0659 17.3361 -206.033 - 53 129.275 983 0 0 53.9918 17.5051 -205.86 - 53 101.152 1216 0 1 64.1125 18.7321 -204.85 - 53 1.24582 1218 0 1 64.4672 18.7865 -204.847 - 53 140.962 999 0 0 65.5842 20.8462 -205.85 - 53 141.755 1001 0 0 65.6134 21.1644 -206.021 - 53 38.8417 1002 0 0 65.6998 21.4154 -206.219 - 53 170.608 1003 0 0 65.5884 21.4876 -206.25 - 53 177.863 1004 0 0 65.6242 21.7054 -206.01 - 53 46.2103 1212 0 1 63.3229 27.3106 -204.85 - 53 92.0778 1032 0 0 64.3796 27.3668 -205.85 -Number of tracker digits in this event = 11 -Event: 54 -Number of tracker hits in this event = 31 - 54 262.247 896 3 1 0.12644 0.294412 -114.45 - 54 209.044 897 3 0 0.122316 0.307091 -115.85 - 54 327.654 896 1 1 0.0787606 1.49384 -174.45 - 54 112.334 903 1 0 0.0857548 1.53554 -175.85 - 54 136.181 896 0 1 0.222308 2.37792 -204.45 - 54 125.332 907 0 0 0.230938 2.41322 -205.85 - 54 242.417 915 0 1 3.89312 -43.8804 -204.555 - 54 7.98044 898 2 0 0.05 0.593992 -146.239 - 54 140.591 904 2 1 1.77753 -0.111569 -144.45 - 54 136.066 890 2 0 0.795157 -1.52355 -145.85 - 54 193.59 888 2 0 0.59555 -1.89472 -146.153 - 54 109.828 887 2 0 0.550805 -2.21553 -146.221 - 54 15.1957 959 6 1 12.6784 -47.7578 -24.85 - 54 152.554 858 4 1 -8.01006 -2.37737 -84.45 - 54 109.546 888 4 0 -8.56826 -1.95508 -85.85 - 54 137.816 806 3 1 -18.323 2.92919 -114.45 - 54 188.811 915 3 0 -18.9638 3.92367 -115.85 - 54 149.209 720 2 1 -35.6184 19.4208 -144.45 - 54 148.685 989 2 0 -36.5966 18.7546 -145.85 - 54 110.891 896 5 0 -0.0632732 0.0981081 -55.85 - 54 195.462 890 4 1 -1.45866 1.74047 -84.45 - 54 131.537 905 4 0 -1.34255 1.89196 -85.85 - 54 112.365 899 3 1 0.655864 4.90215 -114.45 - 54 105.674 920 3 0 0.886895 4.93399 -115.85 - 54 117.875 924 2 1 5.71043 5.61091 -144.45 - 54 128.037 924 2 0 6.01498 5.71356 -145.85 - 54 105.66 957 1 1 12.3445 7.32717 -174.45 - 54 206.814 932 1 0 12.648 7.3653 -175.85 - 54 121.829 988 0 1 18.6395 8.15774 -204.45 - 54 195.181 936 0 0 19.1372 8.20515 -205.85 - 54 104.057 1749 5 1 171.163 -40.4961 -54.8252 -Number of tracker digits in this event = 20 -Event: 55 -Number of tracker hits in this event = 6 - 55 144.713 896 2 1 0.237208 0.139804 -144.45 - 55 128.41 896 2 0 0.242422 0.157043 -145.85 - 55 187.425 897 1 1 0.330022 0.520651 -174.45 - 55 178.146 899 1 0 0.316508 0.673407 -175.85 - 55 176.842 925 0 0 -0.423705 5.95253 -205.85 - 55 241.803 895 0 1 -0.497883 5.50784 -204.736 -Number of tracker digits in this event = 6 -Event: 56 -Number of tracker hits in this event = 10 - 56 129.287 896 4 1 0.135618 -0.116376 -84.45 - 56 100.86 896 3 1 0.0970111 -0.326947 -114.45 - 56 189.762 895 1 0 -0.442119 -0.548708 -175.85 - 56 225.04 894 0 1 -0.734279 -0.602677 -204.45 - 56 355.084 895 0 0 -0.745718 -0.598582 -205.85 - 56 265.641 895 0 1 -0.643892 -0.54052 -204.45 - 56 390.74 896 1 1 0.05 -0.679748 -174.478 - 56 294.442 893 1 0 2.47797 -1.04478 -175.85 - 56 901.046 892 1 0 3.23494 -1.11655 -176.25 - 56 9.62013 967 1 0 18.5229 14.3385 -175.85 -Number of tracker digits in this event = 8 -Event: 57 -Number of tracker hits in this event = 14 - 57 140.776 896 4 1 0.0687157 -0.0690322 -84.45 - 57 162.116 897 3 1 0.316522 -0.373963 -114.45 - 57 107.551 898 2 1 0.607825 -0.56235 -144.45 - 57 118.475 895 2 0 0.618095 -0.567456 -145.85 - 57 131.603 899 1 1 0.812405 -0.699625 -174.45 - 57 120.881 894 1 0 0.865097 -0.71369 -175.85 - 57 111.589 905 0 1 2.02546 -1.17577 -204.45 - 57 140.315 891 0 0 2.11266 -1.26955 -205.85 - 57 232.373 1673 1 0 -7.37392 156.039 -176.25 - 57 177.503 862 1 1 -7.20857 156.873 -174.85 - 57 178.49 967 2 0 -5.56264 14.3143 -146.25 - 57 210.323 964 2 0 -5.61934 13.8349 -146.081 - 57 178.5 962 2 0 -5.42772 13.3153 -145.969 - 57 61.9745 963 2 0 -5.25143 13.5538 -146.237 -Number of tracker digits in this event = 10 -Event: 58 -Number of tracker hits in this event = 9 - 58 95.948 896 5 0 -0.0594504 0.0670937 -55.85 - 58 114.247 896 4 0 -0.103194 0.176947 -85.85 - 58 87.8816 896 3 0 -0.123516 0.171312 -115.85 - 58 120.673 896 2 0 -0.30462 0.199901 -145.85 - 58 210.62 895 1 1 -0.513211 0.370804 -174.45 - 58 153.516 897 1 0 -0.501729 0.384949 -175.85 - 58 221.778 899 0 0 -0.254889 0.711497 -205.85 - 58 69.0865 1565 9 0 11.3626 134.505 63.7541 - 58 1.97209 881 0 0 1.85109 -3.42727 -205.85 -Number of tracker digits in this event = 4 -Event: 59 -Number of tracker hits in this event = 8 - 59 125.573 888 0 1 -1.88212 -0.0556796 -204.45 - 59 164.098 896 1 0 -1.64409 0.05 -176.077 - 59 19.8371 1169 0 0 153.861 54.8189 -206.25 - 59 218.925 887 0 1 -2.10152 -0.18766 -204.45 - 59 115.431 895 0 0 -2.40778 -0.530211 -205.85 - 59 335.088 789 0 0 4.19729 -21.7258 -206.25 - 59 22.5562 832 7 0 15.9352 -13.0525 3.75 - 59 8.45074 895 6 0 -1.68087 -0.450228 -25.85 -Number of tracker digits in this event = 4 -Event: 60 -Number of tracker hits in this event = 20 - 60 114.355 897 5 1 0.264332 0.530816 -54.45 - 60 122.303 898 5 0 0.260558 0.558754 -55.85 - 60 134.099 897 4 1 0.29927 1.18663 -84.45 - 60 114.428 901 4 0 0.290763 1.21986 -85.85 - 60 140.722 905 3 0 -0.0533222 1.90643 -115.85 - 60 121.726 888 2 1 -1.87082 2.63733 -144.45 - 60 141.664 909 2 0 -1.9574 2.68494 -145.85 - 60 228.092 879 1 1 -3.70942 3.82989 -174.45 - 60 150.25 915 1 0 -3.82947 3.89868 -175.85 - 60 120.03 864 0 1 -6.72735 5.86107 -204.45 - 60 234.48 925 0 0 -6.89066 5.95917 -205.85 - 60 214.251 924 0 0 -6.69324 5.84336 -205.891 - 60 112.295 918 1 0 -4.01146 4.55977 -175.85 - 60 140.92 861 0 1 -7.38465 21.8113 -204.45 - 60 158.257 1009 0 0 -7.35667 22.7702 -205.85 - 60 118.842 878 1 1 -3.85554 3.74771 -174.45 - 60 139.779 914 1 0 -4.04078 3.81947 -175.85 - 60 106.093 859 0 1 -7.74841 5.64863 -204.45 - 60 133.613 923 0 0 -7.94336 5.47591 -205.85 - 60 86.7866 706 1 0 -92.135 -38.3235 -176.25 -Number of tracker digits in this event = 14 -Event: 61 -Number of tracker hits in this event = 11 - 61 309.177 897 3 1 0.434943 -0.0834697 -114.45 - 61 123.334 897 2 1 0.37216 -0.247204 -144.45 - 61 136.122 897 1 1 0.40021 -0.483761 -174.45 - 61 108.875 895 1 0 0.395182 -0.491561 -175.85 - 61 145.94 897 0 1 0.290427 -0.66616 -204.45 - 61 213.358 894 0 0 0.290533 -0.677302 -205.85 - 61 139.596 896 4 1 0.248277 -0.05 -84.502 - 61 171.143 887 4 0 -0.969332 -2.16194 -85.85 - 61 182.286 885 4 0 -1.33969 -2.62757 -86.0467 - 61 147.344 883 4 0 -1.83421 -3.01126 -86.0846 - 61 3.4737 881 4 0 -2.17879 -3.38166 -86.2408 -Number of tracker digits in this event = 9 -Event: 62 -Number of tracker hits in this event = 12 - 62 267.982 896 5 1 0.0502506 -0.0659182 -54.45 - 62 121.514 900 3 1 0.958936 0.135114 -114.45 - 62 121.366 896 3 0 0.986514 0.131224 -115.85 - 62 137.771 903 2 1 1.49394 0.058903 -144.45 - 62 155.636 907 1 1 2.27118 -0.12534 -174.45 - 62 136.809 896 0 0 3.07847 0.0506175 -205.85 - 62 271.718 896 1 1 0.137191 -0.392105 -174.45 - 62 131.551 896 0 1 0.0666449 -0.431337 -204.45 - 62 138.173 858 0 1 -7.97191 4.97318 -204.45 - 62 105.385 921 0 0 -8.65953 5.06164 -205.85 - 62 95.7664 457 1 0 44.5712 -88.0517 -175.85 - 62 40.0816 1302 0 1 81.4052 -22.4957 -204.45 -Number of tracker digits in this event = 9 -Event: 63 -Number of tracker hits in this event = 5 - 63 253.809 896 2 1 0.191902 -0.0906572 -144.45 - 63 104.263 901 1 1 1.12316 2.05557 -174.45 - 63 124.876 906 1 0 1.12493 2.11418 -175.85 - 63 161.738 901 0 1 1.20994 3.23825 -204.45 - 63 111.345 912 0 0 1.2634 3.43297 -205.85 -Number of tracker digits in this event = 3 -Event: 64 -Number of tracker hits in this event = 35 - 64 320.841 897 3 1 0.250497 0.0555662 -114.45 - 64 106.33 898 2 1 0.602368 -0.0793255 -144.45 - 64 101.723 899 1 1 0.657868 -0.400739 -174.45 - 64 116.227 898 0 1 0.50171 -0.5436 -204.45 - 64 273.23 895 0 0 0.498055 -0.553453 -205.85 - 64 85.0927 806 0 0 8.79905 -18.321 -206.25 - 64 184.311 809 0 0 1.05894 -17.7121 -206.238 - 64 34.081 900 0 1 0.926076 -17.6804 -204.85 - 64 119.745 899 0 1 0.800076 -0.568825 -204.622 - 64 121.781 902 5 1 1.3897 6.273 -54.45 - 64 149.581 926 5 0 1.91058 6.0982 -55.85 - 64 125.754 966 4 1 14.1682 2.41631 -84.45 - 64 124.139 909 4 0 14.8218 2.67086 -85.85 - 64 136.081 1036 3 1 28.143 7.25176 -114.45 - 64 142.355 932 3 0 28.9524 7.33577 -115.85 - 64 232.566 1117 2 1 44.4007 9.86179 -144.45 - 64 125.214 942 2 0 44.8525 9.34064 -145.85 - 64 140.532 1154 1 1 51.7382 -0.64431 -174.45 - 64 190.828 894 1 0 52.4504 -0.661961 -175.85 - 64 113.936 866 1 0 57.7492 -6.41237 -176.25 - 64 196.675 1181 1 1 57.2158 -6.74552 -174.85 - 64 227.157 740 2 0 28.6755 -31.5648 -146.25 - 64 213.491 1030 2 1 26.9897 -32.5358 -144.85 - 64 138.935 896 5 1 0.208274 -0.0521173 -54.45 - 64 117.37 897 4 1 0.407478 -0.15874 -84.45 - 64 318.781 897 3 0 0.356137 0.307843 -115.85 - 64 137.138 897 2 1 0.303627 0.688599 -144.45 - 64 350.225 899 2 0 0.29561 0.703297 -145.85 - 64 127.58 896 1 1 0.11325 0.988627 -174.45 - 64 129.117 900 1 0 0.0966731 1.02872 -175.85 - 64 104.492 905 0 0 -0.195871 1.87704 -205.85 - 64 157.71 868 1 1 -5.93593 -2.24072 -174.45 - 64 116.002 887 1 0 -5.97742 -2.24183 -175.85 - 64 120.337 858 0 1 -8.01674 -4.92703 -204.45 - 64 144.696 874 0 0 -8.43692 -4.84325 -205.85 -Number of tracker digits in this event = 25 -Event: 65 -Number of tracker hits in this event = 11 - 65 119.338 896 5 0 -0.0814911 0.0582703 -55.85 - 65 104.803 896 3 0 -0.229457 0.228072 -115.85 - 65 174.25 897 2 0 -0.280117 0.360696 -145.85 - 65 114.472 895 1 1 -0.648774 0.787731 -174.45 - 65 136.077 899 1 0 -0.643166 0.838642 -175.85 - 65 375.986 895 0 1 -0.563412 1.90882 -204.45 - 65 107.68 905 0 0 -0.564133 1.97104 -205.85 - 65 74.2816 1246 1 0 -168.6 70.1708 -176.25 - 65 89.7736 898 1 0 -0.448695 0.474408 -176.073 - 65 128.159 898 0 0 -0.551239 0.564596 -205.85 - 65 147.494 897 0 0 -0.87617 0.349355 -205.85 -Number of tracker digits in this event = 5 -Event: 66 -Number of tracker hits in this event = 26 - 66 249.958 895 4 1 -0.45937 -0.144089 -84.45 - 66 122.985 893 3 1 -0.886329 -0.24981 -114.45 - 66 120.705 891 2 1 -1.35268 -0.63792 -144.45 - 66 135.571 894 2 0 -1.37108 -0.658734 -145.85 - 66 188.871 889 1 1 -1.73463 -1.07027 -174.45 - 66 107.62 892 1 0 -1.74988 -1.09553 -175.85 - 66 137.181 887 0 1 -2.06032 -1.61096 -204.45 - 66 150.913 890 0 0 -2.07594 -1.63576 -205.85 - 66 130.171 908 4 1 2.64972 1.5067 -84.45 - 66 111.636 902 4 0 2.85459 1.4255 -85.85 - 66 133.002 971 2 1 15.1199 0.633943 -144.45 - 66 137.924 899 2 0 15.4956 0.759698 -145.85 - 66 127.456 1015 1 1 23.916 3.44035 -174.45 - 66 257.842 912 1 0 24.4537 3.44342 -175.85 - 66 137.044 1075 0 1 35.9813 2.8318 -204.45 - 66 188.416 909 0 0 36.3558 2.65542 -205.85 - 66 116.252 894 4 1 -0.657785 0.239924 -84.45 - 66 124.707 897 4 0 -0.559808 0.293818 -85.85 - 66 137.23 903 3 1 1.46637 1.38083 -114.45 - 66 100.4 902 3 0 1.56434 1.4395 -115.85 - 66 143.516 913 2 1 3.63 2.62921 -144.45 - 66 112.794 909 2 0 3.70172 2.68615 -145.85 - 66 133.698 921 1 1 5.22254 3.82306 -174.45 - 66 142.934 915 1 0 5.29339 3.87517 -175.85 - 66 98.77 929 0 1 6.79449 5.03047 -204.45 - 66 102.73 921 0 0 6.84202 5.07991 -205.85 -Number of tracker digits in this event = 19 -Event: 67 -Number of tracker hits in this event = 4 - 67 106.013 896 1 1 0.0979481 -0.193656 -174.45 - 67 144.497 897 0 1 0.335558 -0.152658 -204.45 - 67 40.417 1018 2 0 56.3925 24.6049 -146.25 - 67 1.61243 612 6 0 -12.7097 -57.1199 -26.25 -Number of tracker digits in this event = 1 -Event: 68 -Number of tracker hits in this event = 30 - 68 144.579 896 4 0 -0.173697 0.147182 -85.85 - 68 242.96 897 3 0 -0.313004 0.287375 -115.85 - 68 512.848 895 2 1 -0.635299 0.453541 -144.45 - 68 473.361 898 2 0 -0.658312 0.464249 -145.85 - 68 141.333 892 1 1 -1.13659 0.693088 -174.45 - 68 277.557 899 1 0 -1.1593 0.700378 -175.85 - 68 121.46 890 0 1 -1.63222 0.864169 -204.45 - 68 307.767 900 0 0 -1.6618 0.870703 -205.85 - 68 283.957 898 1 0 -1.12174 0.602377 -175.995 - 68 114.685 897 1 0 -0.191069 0.360763 -175.85 - 68 4.84275 348 14 1 -110.358 -49.6936 215.55 - 68 115.378 880 1 1 -3.58757 1.18705 -174.45 - 68 120.447 901 1 0 -3.7075 1.17966 -175.85 - 68 150.567 868 0 1 -5.95647 0.843798 -204.45 - 68 123.592 896 3 0 -0.453551 0.172174 -115.85 - 68 98.6929 883 2 1 -2.92955 -1.74492 -144.45 - 68 112.063 888 2 0 -3.00093 -1.95661 -145.85 - 68 112.683 874 1 1 -4.67918 -5.75133 -174.45 - 68 184.628 868 1 0 -4.67906 -5.95712 -175.85 - 68 105.944 872 0 1 -5.11314 -10.5364 -204.45 - 68 143.205 843 0 0 -4.94537 -10.9488 -205.85 - 68 194.06 1365 0 0 22.6167 94.4905 -206.25 - 68 22.9959 1366 0 0 22.5882 94.5605 -206.197 - 68 129.288 892 2 1 -1.13799 1.11245 -144.45 - 68 118.834 901 2 0 -1.23032 1.09565 -145.85 - 68 156.39 881 1 1 -3.28092 0.593296 -174.45 - 68 121.683 876 0 1 -4.38224 1.08993 -204.45 - 68 101.935 901 0 0 -4.38917 1.13404 -205.85 - 68 49.048 1033 2 0 36.1155 27.5884 -145.85 - 68 134.868 894 2 1 -0.767127 -1.0635 -144.666 -Number of tracker digits in this event = 19 -Event: 69 -Number of tracker hits in this event = 10 - 69 115.114 896 4 1 0.0929787 -0.484367 -84.45 - 69 108.025 895 4 0 0.0971262 -0.498695 -85.85 - 69 231.178 896 3 1 0.163804 -0.817381 -114.45 - 69 171.693 894 3 0 0.167187 -0.838392 -115.85 - 69 124.393 896 2 1 0.20695 -1.24926 -144.45 - 69 106.596 891 2 0 0.217018 -1.26592 -145.85 - 69 134.478 898 1 1 0.461165 -1.5752 -174.45 - 69 104.903 890 1 0 0.473255 -1.59933 -175.85 - 69 131.469 899 0 1 0.757784 -2.05707 -204.45 - 69 112.678 887 0 0 0.753017 -2.06895 -205.85 -Number of tracker digits in this event = 5 -Event: 70 -Number of tracker hits in this event = 34 - 70 270.839 896 5 0 -0.0728891 0.106764 -55.85 - 70 237.88 896 4 1 0.0866926 0.201337 -84.45 - 70 317.42 896 4 0 0.0937869 0.180662 -85.85 - 70 226.793 897 3 1 0.261167 -0.225627 -114.45 - 70 116.811 887 1 0 -0.233008 -2.08514 -175.85 - 70 141.287 880 0 0 -0.0856399 -3.46899 -205.85 - 70 4.67433 1353 4 1 91.9805 -64.604 -84.85 - 70 142.28 896 3 0 0.322593 0.245159 -115.85 - 70 309.3 897 2 1 0.432438 0.326412 -144.45 - 70 132.447 897 2 0 0.416607 0.324544 -145.85 - 70 150.498 896 1 1 0.103584 0.270039 -174.45 - 70 101.364 897 1 0 0.0878803 0.271249 -175.85 - 70 119.418 897 0 0 -0.196386 0.297339 -205.85 - 70 109.601 886 4 1 -2.26117 -0.80302 -84.45 - 70 119.853 894 4 0 -2.37204 -0.821589 -85.85 - 70 115.216 881 3 1 -3.40387 -0.88543 -114.45 - 70 129.788 893 3 0 -3.85161 -0.955258 -115.85 - 70 188.893 821 2 1 -15.4252 -2.39345 -144.45 - 70 264.917 885 2 0 -15.6485 -2.58656 -145.85 - 70 149.908 780 1 1 -23.5366 -9.84815 -174.45 - 70 130.278 853 1 0 -23.3575 -8.85697 -175.85 - 70 167.854 1029 1 0 -53.033 26.7078 -176.25 - 70 166.375 626 1 1 -54.2605 27.4 -174.85 - 70 121.948 872 4 1 -5.21453 1.80245 -84.45 - 70 114.43 904 4 0 -5.72696 1.75846 -85.85 - 70 144.768 799 3 1 -19.7761 -1.1132 -114.45 - 70 257.294 894 3 0 -20.3698 -0.833149 -115.85 - 70 189.729 735 2 1 -32.6141 5.34362 -144.45 - 70 267.575 734 2 1 -32.8166 5.04979 -144.623 - 70 61.5179 732 2 1 -33.1836 4.795 -144.704 - 70 82.5151 913 2 0 -33.3346 3.49224 -145.85 - 70 98.0477 912 2 0 -33.4208 3.4174 -146.019 - 70 116.181 911 2 0 -33.3025 3.188 -146.076 - 70 397.783 910 2 0 -33.1219 3.02443 -146.195 -Number of tracker digits in this event = 22 -Event: 71 -Number of tracker hits in this event = 9 - 71 193.433 898 3 0 -0.261721 0.507037 -115.85 - 71 135.199 898 2 0 -0.443637 0.647733 -145.85 - 71 217.769 895 1 1 -0.521326 0.710886 -174.45 - 71 126.739 899 1 0 -0.492976 0.677235 -175.85 - 71 24.2637 140 7 1 -151.953 -133.325 5.15 - 71 130.892 1175 3 0 -24.0746 55.8647 -116.25 - 71 129.688 774 3 1 -24.7335 56.1042 -114.85 - 71 145.02 1233 4 0 -35.7529 67.4872 -86.25 - 71 127.357 717 4 1 -36.2206 67.8352 -84.85 -Number of tracker digits in this event = 8 -Event: 72 -Number of tracker hits in this event = 15 - 72 126.474 896 5 1 0.138099 0.224203 -54.45 - 72 132.708 897 5 0 0.113156 0.251442 -55.85 - 72 135.485 895 4 1 -0.470333 0.843296 -84.45 - 72 117.646 899 4 0 -0.507553 0.843753 -85.85 - 72 220.65 891 3 1 -1.37697 0.985582 -114.45 - 72 157.328 900 3 0 -1.41933 0.993675 -115.85 - 72 274.459 886 2 1 -2.27724 1.26129 -144.45 - 72 145.018 902 2 0 -2.28511 1.28178 -145.85 - 72 133.337 885 1 1 -2.60289 1.36024 -174.45 - 72 133.87 902 1 0 -2.71057 1.38495 -175.85 - 72 121.499 872 0 1 -5.07093 1.56588 -204.45 - 72 108.702 903 0 0 -5.23718 1.56864 -205.85 - 72 36.8088 900 4 0 -0.506698 0.88011 -85.85 - 72 32.7803 973 4 1 15.6416 6.34317 -84.85 - 72 198.278 581 0 1 -63.2743 82.742 -204.509 -Number of tracker digits in this event = 11 -Event: 73 Number of tracker hits in this event = 16 - 73 119.227 898 4 1 0.472296 -0.585882 -84.45 - 73 115.317 895 4 0 0.491679 -0.616899 -85.85 - 73 225.936 900 3 1 0.934847 -1.25652 -114.45 - 73 119.381 891 3 0 0.953855 -1.28519 -115.85 - 73 135.901 902 2 1 1.34147 -1.87971 -144.45 - 73 130.496 888 2 0 1.36191 -1.91044 -145.85 - 73 95.6145 904 1 1 1.73832 -2.55837 -174.45 - 73 109.338 885 1 0 1.76227 -2.59573 -175.85 - 73 94.1646 906 0 1 2.23231 -3.36295 -204.45 - 73 232.025 881 0 0 2.24661 -3.39482 -205.85 - 73 109.234 565 5 0 111.132 -66.5113 -55.937 - 73 72.5118 150 4 1 -150.012 -85.716 -84.85 - 73 145.31 902 0 1 1.31198 -1.69028 -204.45 - 73 115.636 888 0 0 1.33106 -1.91371 -205.85 - 73 133.9 896 1 0 -0.112192 0.0943547 -175.85 - 73 201.315 897 0 0 -0.13938 0.331411 -205.85 + 49 151.11395 896 5 0 -0.43285853 0.094171264 -55.85 + 49 374.72381 893 4 1 -1.0089143 0.13712863 -84.45 + 49 112.40395 896 4 0 -1.0530571 0.17184587 -85.85 + 49 99.921947 889 3 1 -1.8217263 0.83894895 -114.45 + 49 213.75946 900 3 0 -1.870198 0.8745405 -115.85 + 49 135.2249 883 2 1 -2.8879313 1.6842499 -144.45 + 49 105.25454 904 2 0 -2.9047049 1.746613 -145.85 + 49 259.77201 882 1 1 -3.18535 2.9679612 -174.45 + 49 121.43226 910 1 0 -3.179824 3.0000746 -175.85 + 49 107.15592 883 0 1 -2.9981745 3.5980231 -204.45 + 49 121.39635 914 0 0 -2.7120768 3.6857922 -205.85 + 49 294.36748 545 10 0 165.93836 -70.638364 93.795158 + 49 191.11296 544 10 0 166.02061 -70.759954 94.025346 + 49 93.606081 899 3 0 -1.7525117 0.73237721 -116.185 + 49 110.85113 898 3 0 -1.6731202 0.55176242 -116.22481 + 49 190.71936 897 3 0 -1.6439406 0.44942972 -116.22317 +Number of tracker digits in this event = 10 +Event: 50 +Number of tracker hits in this event = 11 + 50 132.3057 895 4 0 -0.055505317 -0.64213806 -85.85 + 50 89.675312 893 3 0 -0.12744009 -0.94839188 -115.85 + 50 127.9468 892 2 0 -0.34042842 -1.0687002 -145.85 + 50 109.36469 891 1 0 -0.30025615 -1.3384302 -175.85 + 50 187.41425 896 0 1 0.056956269 -1.555857 -204.45 + 50 115.48828 890 0 0 0.085895442 -1.5599646 -205.85 + 50 234.65551 1200 9 1 60.862806 30.119488 65.188098 + 50 198.99639 644 1 0 -80.875001 -50.77976 -175.96628 + 50 192.04155 894 4 0 -0.78165226 -0.79911182 -85.85 + 50 165.59136 893 4 0 -0.89790448 -0.98267984 -86.003941 + 50 91.063496 892 4 0 -0.91917399 -1.0580715 -86.080023 +Number of tracker digits in this event = 7 +Event: 51 +Number of tracker hits in this event = 12 + 51 265.59528 896 5 0 -0.22749078 0.24323946 -55.85 + 51 111.68099 898 4 0 -0.23773494 0.49189432 -85.85 + 51 148.00728 900 3 0 -0.21957907 0.88117824 -115.85 + 51 132.44186 902 2 0 -0.19031622 1.3830597 -145.85 + 51 212.83589 895 1 1 -0.48042119 2.1613247 -174.45 + 51 258.12321 906 1 0 -0.4923826 2.1967357 -175.85 + 51 130.18872 894 0 1 -0.71869784 2.9351985 -204.45 + 51 226.21632 910 0 0 -0.72106817 2.9742509 -205.85 + 51 321.11121 897 5 0 -106.26884 0.28155905 -56.050876 + 51 30.466453 1146 1 1 50.237731 50.803426 -174.85 + 51 124.10246 897 0 1 0.33648517 2.8468349 -204.45 + 51 129.4571 928 0 0 -0.68308452 6.4533101 -205.85 +Number of tracker digits in this event = 10 +Event: 52 +Number of tracker hits in this event = 12 + 52 174.75794 897 5 1 0.31351639 0.16952467 -54.45 + 52 131.48164 896 5 0 0.33809721 0.18225696 -55.85 + 52 190.02971 899 4 1 0.83248595 0.41283086 -84.45 + 52 106.69267 897 4 0 0.85499287 0.42306347 -85.85 + 52 124.47817 902 3 1 1.3143153 0.62257124 -114.45 + 52 122.79047 898 3 0 1.3497618 0.63502175 -115.85 + 52 162.85083 905 2 1 2.0345801 0.86996232 -144.45 + 52 141.76727 900 2 0 2.0630622 0.88097679 -145.85 + 52 97.496294 908 1 1 2.6299719 1.1171627 -174.45 + 52 101.38359 901 1 0 2.6566645 1.1237156 -175.85 + 52 181.18836 911 0 1 3.2274384 1.3036086 -204.45 + 52 176.51621 902 0 0 3.2619444 1.3379134 -205.85 +Number of tracker digits in this event = 9 +Event: 53 +Number of tracker hits in this event = 8 + 53 248.69987 896 2 1 0.18486009 -0.086338732 -144.45 + 53 126.85725 897 1 1 0.3288553 -0.23186249 -174.45 + 53 141.22588 897 0 1 0.34949389 -0.60461254 -204.45 + 53 121.59555 895 0 0 0.33252444 -0.5912267 -205.85 + 53 65.251778 829 6 0 125.32427 -13.787169 -26.25 + 53 279.07443 830 6 0 125.31929 -13.593287 -26.147119 + 53 445.43416 1518 6 1 125.04534 -10.99035 -24.85 + 53 139.48728 896 0 1 0.17293249 -0.15702293 -204.45 +Number of tracker digits in this event = 7 +Event: 54 +Number of tracker hits in this event = 12 + 54 238.35703 895 3 1 -0.4782083 -0.41691874 -114.45 + 54 112.74778 895 2 1 -0.59913188 -0.62878252 -144.45 + 54 119.3681 895 2 0 -0.59777907 -0.64001882 -145.85 + 54 119.08227 895 1 1 -0.54448477 -0.89582452 -174.45 + 54 360.04724 893 1 0 -0.55942164 -0.90298939 -175.85 + 54 117.83547 893 0 1 -0.85746003 -0.98407755 -204.45 + 54 112.54292 893 0 0 -0.87836864 -0.98729554 -205.85 + 54 145.25376 901 3 0 -1.4685029 1.1666426 -115.85 + 54 37.644667 902 3 0 -1.6785118 1.3457091 -116.17867 + 54 97.902928 895 0 1 -0.61758984 0.73206812 -204.45 + 54 130.85886 899 0 0 -0.62929008 0.79362636 -205.85 + 54 231.99557 894 1 1 -0.67919318 -0.89806871 -174.45 +Number of tracker digits in this event = 5 +Event: 55 +Number of tracker hits in this event = 1 + 55 118.62547 895 0 1 -0.50495125 -0.10451615 -204.45 +Number of tracker digits in this event = 0 +Event: 56 +Number of tracker hits in this event = 11 + 56 113.94594 897 4 0 -0.15625393 0.38976565 -85.85 + 56 130.27728 899 3 0 -0.39265984 0.66889039 -115.85 + 56 277.30745 895 2 1 -0.48851104 0.94899632 -144.45 + 56 127.65377 900 2 0 -0.48960757 0.95060403 -145.85 + 56 195.19824 895 1 1 -0.53797542 0.96133499 -174.45 + 56 129.71431 900 1 0 -0.53080014 0.96446163 -175.85 + 56 118.00108 901 0 0 -0.34127845 1.1048915 -205.85 + 56 109.03729 902 2 0 -0.41640167 1.3386362 -145.85 + 56 121.09418 955 1 0 0.078785378 12.038483 -175.85 + 56 108.17086 947 0 1 10.322332 11.291121 -204.45 + 56 130.30888 950 0 0 10.531497 11.035553 -205.85 +Number of tracker digits in this event = 7 +Event: 57 +Number of tracker hits in this event = 9 + 57 110.92483 896 5 0 -0.12669972 0.13207003 -55.85 + 57 152.89576 896 4 0 -0.060023103 0.1881347 -85.85 + 57 98.229615 896 3 1 0.05344881 0.28202189 -114.45 + 57 146.63489 897 2 0 -0.079642169 0.27765387 -145.85 + 57 228.94453 897 1 0 -0.28161578 0.41072644 -175.85 + 57 138.88277 895 0 1 -0.55540781 0.59506241 -204.45 + 57 154.58406 898 0 0 -0.55828389 0.60481871 -205.85 + 57 290.02295 898 1 0 -0.2322538 0.45702019 -176.25 + 57 15.23139 902 6 0 -2.3094293 1.323394 -25.85 +Number of tracker digits in this event = 6 +Event: 58 +Number of tracker hits in this event = 18 + 58 106.78634 895 3 1 -0.52107682 -0.35604545 -114.45 + 58 171.92443 894 2 1 -0.70861604 -0.64510758 -144.45 + 58 227.05947 894 2 0 -0.71485013 -0.65168756 -145.85 + 58 256.32444 894 1 1 -0.83445866 -0.82448962 -174.45 + 58 118.64488 894 1 0 -0.84665713 -0.84599027 -175.85 + 58 445.71226 892 0 1 -1.1223229 -1.302551 -204.45 + 58 94.072297 891 0 0 -1.1290775 -1.3253159 -205.85 + 58 108.143 889 0 0 -1.1981898 -1.6681156 -205.85 + 58 21.671769 895 2 0 -0.79385965 -0.61796281 -146.15751 + 58 118.63727 894 3 1 -0.84726761 -0.051389459 -114.45 + 58 122.22427 900 2 1 0.8837554 1.2587107 -144.45 + 58 106.59875 902 2 0 1.0739523 1.3582162 -145.85 + 58 127.69432 919 1 1 4.7214215 3.444711 -174.45 + 58 220.78709 913 1 0 4.8984507 3.4766335 -175.85 + 58 74.769941 937 0 1 8.3353611 4.2555218 -204.45 + 58 285.91118 936 0 1 8.2446222 4.3626876 -204.72027 + 58 300.19791 914 0 0 8.3090811 3.8124162 -205.85 + 58 180.11957 941 0 1 9.059969 4.3764407 -204.85 +Number of tracker digits in this event = 10 +Event: 59 +Number of tracker hits in this event = 5 + 59 114.12225 895 1 1 -0.55589732 -0.51118478 -174.45 + 59 134.8798 895 1 0 -0.57310948 -0.54459209 -175.85 + 59 125.72838 893 0 1 -0.91311818 -1.2796327 -204.45 + 59 107.91865 891 0 0 -0.93157042 -1.3207765 -205.85 + 59 118.50894 1392 5 0 91.813644 99.930023 -56.11734 +Number of tracker digits in this event = 2 +Event: 60 +Number of tracker hits in this event = 12 + 60 84.677942 896 6 1 0.05 0.074435659 -24.537821 + 60 157.28476 898 6 0 0.4837596 0.49042686 -25.85 + 60 111.66756 960 5 1 12.880903 9.6065108 -54.45 + 60 116.9839 941 5 0 13.475958 9.1767547 -55.85 + 60 306.45 1059 4 1 32.705578 1.9161432 -84.45 + 60 196.17382 1237 3 1 68.279111 -39.687883 -114.45 + 60 124.64605 699 3 0 68.823066 -39.76754 -115.85 + 60 141.69883 1267 2 1 74.387917 -40.258475 -144.45 + 60 169.56597 692 2 0 73.596238 -41.170373 -145.85 + 60 183.72024 558 2 0 48.532931 -67.893003 -146.25 + 60 109.42564 1133 2 1 47.606687 -67.692204 -144.85 + 60 82.126322 1132 2 1 47.383352 -67.761879 -144.57632 +Number of tracker digits in this event = 7 +Event: 61 +Number of tracker hits in this event = 23 + 61 126.29104 898 3 1 0.51614142 0.083716578 -114.45 + 61 204.62812 896 3 0 0.52811061 0.094536759 -115.85 + 61 311.58324 899 2 1 0.75556319 0.30213042 -144.45 + 61 108.59343 897 2 0 0.7732367 0.31830509 -145.85 + 61 110.909 901 1 1 1.1195059 0.67840312 -174.45 + 61 126.13189 899 1 0 1.1403392 0.70253129 -175.85 + 61 111.49169 903 0 1 1.5317124 1.1816059 -204.45 + 61 108.34916 901 0 0 1.5561121 1.2023748 -205.85 + 61 80.347894 916 0 0 7.1327435 4.0994022 -205.88441 + 61 149.6908 583 7 0 117.8819 -62.885286 3.75 + 61 110.67957 1486 7 1 118.64821 -63.530463 5.15 + 61 194.84305 1487 7 1 118.83708 -63.671548 5.4812942 + 61 291.07594 434 8 0 143.37048 -93.229499 33.75 + 61 208.55921 1615 8 1 144.50784 -94.679789 35.15 + 61 330.29674 155 9 0 174.529 -148.97963 63.75 + 61 154.14242 152 9 0 174.94959 -149.71869 64.14068 + 61 652.87685 1779 9 1 177.22009 -153.32386 65.15 + 61 149.3639 188 10 0 155.15766 -142.36707 93.75 + 61 179.03222 1661 10 1 153.72523 -141.98647 95.15 + 61 192.10909 896 4 0 0.24412908 0.05 -86.093132 + 61 147.19898 896 5 1 0.057008459 0.068637753 -54.45 + 61 158.52165 897 5 1 0.42608625 0.060686225 -54.615968 + 61 261.15171 899 5 1 0.73367173 0.23659974 -54.845411 +Number of tracker digits in this event = 17 +Event: 62 +Number of tracker hits in this event = 10 + 62 258.35602 896 5 1 0.083117346 0.059525948 -54.45 + 62 123.78629 896 5 0 0.12297962 0.062279249 -55.85 + 62 139.42381 900 4 1 0.96415916 0.093970145 -84.45 + 62 119.11536 896 4 0 1.0059758 0.084682361 -85.85 + 62 113.79483 904 3 1 1.8078148 -0.091630157 -114.45 + 62 202.49756 908 2 1 2.641331 -0.26110224 -144.45 + 62 189.19622 912 1 1 3.3044685 -0.26735704 -174.45 + 62 111.96286 915 0 1 3.8920932 -0.38873615 -204.45 + 62 25.118754 1578 3 0 -124.35644 137.02447 -116.25 + 62 153.38795 391 11 0 130.43466 -101.78054 123.82378 +Number of tracker digits in this event = 6 +Event: 63 +Number of tracker hits in this event = 7 + 63 157.30484 896 0 0 -0.26033565 0.1476023 -205.85 + 63 96.751341 314 13 0 -11.700917 -117.26358 183.95318 + 63 164.04985 313 13 0 -11.76855 -117.3889 184.12971 + 63 148.66069 312 13 0 -11.823518 -117.57222 184.13857 + 63 110.36922 852 13 1 -9.1212187 -118.41703 185.15 + 63 1.7640099 240 6 1 -131.97284 10.598681 -24.45 + 63 163.16206 896 1 0 -0.24735245 0.05 -176.14778 +Number of tracker digits in this event = 4 +Event: 64 +Number of tracker hits in this event = 7 + 64 140.11062 896 5 0 -0.15317911 0.12871422 -55.85 + 64 151.98907 898 4 0 -0.29578253 0.47287706 -85.85 + 64 136.2679 895 3 1 -0.47287372 0.70298798 -114.45 + 64 230.54566 899 3 0 -0.47180888 0.71845186 -115.85 + 64 102.46962 901 2 0 -0.43192111 1.0769355 -145.85 + 64 128.95842 903 1 0 -0.41372122 1.4892158 -175.85 + 64 92.846972 905 0 0 -0.35510297 1.9131529 -205.85 +Number of tracker digits in this event = 5 +Event: 65 +Number of tracker hits in this event = 21 + 65 112.32581 897 4 1 0.42003756 0.11001102 -84.45 + 65 288.81681 896 4 0 0.44539054 0.1263118 -85.85 + 65 107.88716 900 3 1 0.94471082 0.35308922 -114.45 + 65 152.14319 897 3 0 0.96668133 0.36487787 -115.85 + 65 119.44276 902 2 1 1.4116363 0.57517486 -144.45 + 65 126.27742 898 2 0 1.4364959 0.57966067 -145.85 + 65 257.85011 905 1 1 1.9440236 0.68548507 -174.45 + 65 104.39955 899 1 0 1.9573621 0.68192598 -175.85 + 65 114.31108 906 0 1 2.2220812 0.63842501 -204.45 + 65 128.23924 898 0 0 2.2357179 0.64486935 -205.85 + 65 185.30225 1426 0 0 107.26416 106.55581 -206.25 + 65 322.22679 1437 0 1 108.90265 108.0886 -204.85 + 65 264.75111 1450 1 0 167.70699 111.53891 -176.25 + 65 220.0427 1744 1 1 170.26665 111.68801 -174.85 + 65 5.0362915 1464 1 0 168.34481 114.20632 -175.85 + 65 143.52184 897 1 0 2.534568 0.36428643 -175.85 + 65 190.29177 976 0 1 16.232491 -5.6485188 -204.45 + 65 213.72614 872 0 0 17.23873 -5.1919089 -205.85 + 65 479.85781 968 0 0 93.410002 14.482166 -206.25 + 65 307.38468 966 0 0 94.434751 14.173044 -205.85 + 65 199.81121 1116 3 1 44.125815 -174.20898 -114.84073 +Number of tracker digits in this event = 15 +Event: 66 +Number of tracker hits in this event = 5 + 66 110.39785 898 3 0 -0.10967626 0.47972241 -115.85 + 66 165.03285 898 2 0 -0.20904812 0.52014265 -145.85 + 66 200.86023 898 1 0 -0.20044415 0.58439846 -175.85 + 66 125.72667 898 0 0 -0.21634198 0.54276164 -205.85 + 66 124.03327 896 6 0 0.64991295 0.11490285 -25.85 +Number of tracker digits in this event = 4 +Event: 67 +Number of tracker hits in this event = 14 + 67 101.85797 893 5 0 -0.33486531 -0.8912866 -55.85 + 67 378.89759 894 4 1 -0.68258513 -3.286158 -84.45 + 67 126.03911 881 4 0 -0.69467206 -3.3966597 -85.85 + 67 106.52372 893 3 1 -1.049936 -5.6432209 -114.45 + 67 146.03076 869 3 0 -1.0864318 -5.7313012 -115.85 + 67 107.10204 889 2 1 -1.8490381 -7.5121936 -144.45 + 67 163.33204 859 2 0 -1.8457525 -7.6805877 -145.85 + 67 117.5573 888 1 1 -2.0016279 -11.103275 -174.45 + 67 140.17426 841 1 0 -1.9975099 -11.251398 -175.85 + 67 107.51098 889 0 1 -1.8491353 -14.165316 -204.45 + 67 105.30939 826 0 0 -1.8387688 -14.310173 -205.85 + 67 140.71004 895 4 1 -0.52825984 -3.384337 -84.844773 + 67 93.626298 411 10 1 -97.921951 52.09229 95.431177 + 67 84.619277 410 10 1 -97.989511 52.095439 95.48227 +Number of tracker digits in this event = 6 +Event: 68 +Number of tracker hits in this event = 28 + 68 181.81537 895 3 1 -0.60775809 0.10054666 -114.45 + 68 159.21602 896 3 0 -0.63636956 0.10703473 -115.85 + 68 104.59126 892 2 1 -1.203855 0.28687584 -144.45 + 68 125.55471 897 2 0 -1.2268405 0.29285145 -145.85 + 68 273.8885 889 1 1 -1.6733686 0.38609785 -174.45 + 68 374.54065 897 1 0 -1.7034509 0.40154804 -175.85 + 68 267.72846 886 0 1 -2.2964796 0.69130489 -204.45 + 68 108.80449 899 0 0 -2.3290747 0.70265925 -205.85 + 68 430.91109 583 2 1 -62.912257 -101.25937 -144.81255 + 68 252.4608 582 2 1 -63.073888 -101.31783 -144.57202 + 68 181.40101 898 0 0 -3.0731155 0.52794173 -205.85 + 68 164.42347 863 0 0 1.55009 -6.9287599 -206.25 + 68 270.43299 862 0 0 1.4618078 -7.0925062 -206.12669 + 68 56.902515 861 0 0 1.598804 -7.2879952 -205.92084 + 68 245.16615 890 1 1 -1.5358075 0.24866446 -174.70025 + 68 88.429189 891 1 1 -1.447437 0.24028815 -174.64137 + 68 101.28862 895 2 1 -0.61628238 -0.9543695 -144.45 + 68 110.09397 893 2 0 -0.6585287 -0.93153051 -145.85 + 68 126.99909 895 1 0 -1.5340248 -0.45851577 -175.85 + 68 167.88281 885 0 1 -2.5639463 -0.26881071 -204.45 + 68 232.01052 1718 5 1 165.09576 -94.973791 -54.45 + 68 212.87779 1715 5 1 164.51985 -95.218325 -54.85 + 68 173.81193 1712 5 1 163.9451 -94.973998 -54.845752 + 68 308.35049 1710 5 1 163.43789 -95.209265 -54.647483 + 68 143.30783 1707 5 1 162.94194 -95.227293 -54.604541 + 68 184.23039 1706 5 1 162.6384 -95.187496 -54.491348 + 68 214.25325 1705 5 1 162.41457 -95.356155 -54.58001 + 68 179.62067 1704 5 1 162.31827 -95.333519 -54.816042 +Number of tracker digits in this event = 22 +Event: 69 +Number of tracker hits in this event = 16 + 69 129.83317 894 2 0 -0.18147795 -0.72752985 -145.85 + 69 141.5598 893 1 0 -0.10266132 -0.98872436 -175.85 + 69 130.81762 892 0 0 -0.060984021 -1.2016737 -205.85 + 69 128.35685 909 2 1 2.6865113 -1.4167928 -144.45 + 69 136.64735 891 2 0 3.0738634 -1.3808852 -145.85 + 69 128.65013 952 1 1 11.351906 -1.3975593 -174.45 + 69 99.534957 890 1 0 11.671434 -1.5870331 -175.85 + 69 116.09358 986 0 1 18.079741 -5.6914435 -204.45 + 69 119.17615 869 0 0 18.25125 -5.6762205 -205.85 + 69 77.458201 896 0 1 0.05 -0.64597736 -204.75122 + 69 516.1804 881 0 0 3.0196845 -3.3865773 -205.85 + 69 581.10919 875 0 0 4.1786158 -4.459313 -206.25 + 69 135.49705 866 0 0 4.6835662 -6.275782 -205.88519 + 69 609.82778 899 0 1 0.74494241 -16.44378 -204.85 + 69 365.67286 800 0 0 2.1166615 -19.614322 -205.85 + 69 10.902516 796 0 0 2.8345534 -20.305387 -206.22312 +Number of tracker digits in this event = 11 +Event: 70 +Number of tracker hits in this event = 8 + 70 116.99066 896 0 1 0.23523269 -0.12839381 -204.45 + 70 97.449578 896 2 1 0.05 -0.89559745 -144.74254 + 70 397.14038 897 2 1 0.27190098 -0.94040743 -144.73019 + 70 141.48007 898 2 1 0.57441897 -1.011759 -144.7721 + 70 116.02462 890 2 0 -0.94654953 -1.5360369 -145.85 + 70 264.88052 889 2 0 -1.1010423 -1.6969789 -146.00771 + 70 115.50075 1039 8 0 145.19567 28.741433 33.807853 + 70 78.436045 1040 8 0 145.27089 28.867108 33.821047 +Number of tracker digits in this event = 3 +Event: 71 +Number of tracker hits in this event = 12 + 71 122.29386 895 4 0 -0.39467379 -0.56501307 -85.85 + 71 212.69332 894 3 1 -0.70480983 -0.97343605 -114.45 + 71 114.29429 893 3 0 -0.71343508 -0.99551996 -115.85 + 71 126.7141 893 2 1 -0.88598341 -1.4371667 -144.45 + 71 115.99 890 2 0 -0.9067075 -1.4841595 -145.85 + 71 108.27239 891 1 1 -1.3141571 -2.4669189 -174.45 + 71 120.01237 885 1 0 -1.3315257 -2.5130382 -175.85 + 71 166.75966 889 0 1 -1.7256332 -3.4084814 -204.45 + 71 112.44519 881 0 0 -1.7494064 -3.449646 -205.85 + 71 34.310788 443 1 0 54.231746 -91.483649 -175.92407 + 71 100.15843 1167 1 1 54.269913 -91.777692 -174.85 + 71 82.821364 1166 1 1 54.188264 -91.943817 -174.62118 +Number of tracker digits in this event = 5 +Event: 72 +Number of tracker hits in this event = 8 + 72 117.19446 899 3 0 -0.069775773 0.82270131 -115.85 + 72 157.14418 901 2 0 -0.32317958 1.0556122 -145.85 + 72 103.08985 895 1 1 -0.58416981 1.1524953 -174.45 + 72 148.77528 901 1 0 -0.60293331 1.1380913 -175.85 + 72 113.6048 893 0 1 -0.98326592 0.84539872 -204.45 + 72 146.0669 899 0 0 -1.0069399 0.82903029 -205.85 + 72 162.42519 942 1 0 85.396174 9.4006645 -175.92419 + 72 2.8688364 624 2 1 -54.822915 -123.98564 -144.46181 +Number of tracker digits in this event = 4 +Event: 73 +Number of tracker hits in this event = 14 + 73 151.72024 896 5 0 -0.22807609 0.08088744 -55.85 + 73 115.71173 896 4 0 -0.45786033 0.22683827 -85.85 + 73 110.52468 894 3 1 -0.7678407 0.22429836 -114.45 + 73 128.10285 896 3 0 -0.78044867 0.22956048 -115.85 + 73 179.37234 893 2 1 -1.0167979 0.35616403 -144.45 + 73 149.97226 897 2 0 -1.0294221 0.35253574 -145.85 + 73 148.58665 891 1 1 -1.2783811 0.27357934 -174.45 + 73 115.45345 897 1 0 -1.3007133 0.26803093 -175.85 + 73 101.53061 889 0 1 -1.7386251 0.14687096 -204.45 + 73 92.99471 896 0 0 -1.7674042 0.13977911 -205.85 + 73 209.40955 604 0 1 -58.788362 102.22966 -204.66494 + 73 169.65035 605 0 1 -58.636449 102.45624 -204.68052 + 73 101.55041 606 0 1 -58.419565 102.47743 -204.81491 + 73 64.111646 1411 0 0 -58.97018 103.64011 -205.85 Number of tracker digits in this event = 7 Event: 74 -Number of tracker hits in this event = 20 - 74 171.938 896 5 0 -0.172608 0.095676 -55.85 - 74 110.512 897 4 0 -0.404813 0.26895 -85.85 - 74 113.598 895 3 1 -0.49716 0.61012 -114.45 - 74 125.786 898 3 0 -0.512941 0.645959 -115.85 - 74 128.065 893 2 1 -0.887794 1.38177 -144.45 - 74 214.357 902 2 0 -0.900758 1.41872 -145.85 - 74 99.4954 892 1 1 -1.13663 2.21093 -174.45 - 74 107.281 907 1 0 -1.14 2.25889 -175.85 - 74 131.046 892 0 1 -1.24832 3.25159 -204.45 - 74 135.665 912 0 0 -1.22063 3.26441 -205.85 - 74 343.901 1248 1 1 70.4931 -54.2958 -174.559 - 74 298.595 922 1 0 10.621 5.39302 -176.042 - 74 124.19 895 1 1 -0.505422 1.11878 -174.45 - 74 135.019 902 1 0 -0.798313 1.40664 -175.85 - 74 109.514 863 0 1 -6.92495 8.42646 -204.45 - 74 94.1375 940 0 0 -7.14631 8.88929 -205.85 - 74 153.519 974 4 1 15.8255 -7.31552 -84.45 - 74 120.464 859 4 0 15.5666 -7.84502 -85.85 - 74 75.9632 980 2 1 16.8573 28.9253 -144.6 - 74 109.768 747 0 1 -30.1483 -25.2203 -204.85 -Number of tracker digits in this event = 12 -Event: 75 -Number of tracker hits in this event = 31 - 75 149.45 894 3 1 -0.672482 -0.515656 -114.45 - 75 210.857 895 3 0 -0.682753 -0.532943 -115.85 - 75 123.863 893 2 1 -0.879264 -0.880713 -144.45 - 75 262.625 893 2 0 -0.898279 -0.89293 -145.85 - 75 165.587 891 1 1 -1.34526 -1.05198 -174.45 - 75 138.302 893 1 0 -1.37697 -1.04373 -175.85 - 75 295.84 887 0 1 -2.06304 -0.836314 -204.45 - 75 115.3 894 0 0 -2.08019 -0.83349 -205.85 - 75 80.6568 896 0 0 -1.54474 0.127011 -205.85 - 75 84.6772 897 0 0 -1.53182 0.3059 -205.975 - 75 72.1624 898 0 0 -1.42519 0.502313 -205.97 - 75 304.327 899 0 0 -1.38836 0.668099 -206.113 - 75 162.897 906 4 1 2.15273 -0.642667 -84.45 - 75 135.711 894 4 0 2.28086 -0.670978 -85.85 - 75 101.127 918 3 1 4.52984 -0.72964 -114.45 - 75 174.67 894 3 0 4.73759 -0.735217 -115.85 - 75 114.77 940 2 1 8.88571 -0.965591 -144.45 - 75 138.03 943 1 1 9.48767 0.224831 -174.45 - 75 113.207 897 1 0 9.55388 0.330881 -175.85 - 75 142.395 951 0 1 11.1136 2.31738 -204.45 - 75 128.025 908 0 0 11.2687 2.63361 -205.85 - 75 124.905 895 4 1 -0.492114 0.136942 -84.45 - 75 121.178 896 4 0 -0.513699 0.13658 -85.85 - 75 124.257 893 3 1 -0.891404 0.0877309 -114.45 - 75 193.088 896 3 0 -0.926769 0.122825 -115.85 - 75 208.497 889 2 1 -1.70426 0.836421 -144.45 - 75 102.22 900 2 0 -1.69016 0.858427 -145.85 - 75 110.545 890 1 1 -1.55841 1.47128 -174.45 - 75 136.37 903 1 0 -1.56898 1.48949 -175.85 - 75 106.536 888 0 1 -1.93022 1.78927 -204.45 - 75 100.96 904 0 0 -1.97526 1.7123 -205.85 -Number of tracker digits in this event = 20 -Event: 76 -Number of tracker hits in this event = 4 - 76 105.404 895 0 1 -0.559892 -0.441575 -204.45 - 76 129.781 895 0 0 -0.569982 -0.450464 -205.85 - 76 86.6026 892 0 1 -1.10515 -2.80749 -204.45 - 76 114.931 883 0 0 -1.07315 -2.93228 -205.85 -Number of tracker digits in this event = 1 -Event: 77 -Number of tracker hits in this event = 12 - 77 108.03 896 3 0 -0.0543067 0.0700101 -115.85 - 77 131.992 897 2 0 -0.128494 0.25436 -145.85 - 77 126.837 897 1 0 -0.373101 0.43716 -175.85 - 77 126.478 894 0 1 -0.660554 0.602153 -204.45 - 77 223.608 898 0 0 -0.675204 0.612692 -205.85 - 77 18.7128 229 5 0 45.4783 -134.274 -56.25 - 77 0.150827 1311 3 0 58.8367 83.1464 -115.85 - 77 53.1927 1192 3 1 59.4118 83.9468 -114.85 - 77 106.241 1193 3 1 59.4827 83.9634 -114.792 - 77 82.4308 1309 3 0 58.6388 82.6635 -115.85 - 77 98.1123 1308 3 0 58.6373 82.6261 -115.866 - 77 100.4 1214 5 1 63.7406 166.496 -54.5168 -Number of tracker digits in this event = 4 -Event: 78 -Number of tracker hits in this event = 10 - 78 139.956 896 5 1 0.067794 -0.0574985 -54.45 - 78 118.597 896 4 1 0.101172 -0.0862386 -84.45 - 78 196.838 896 3 1 0.11346 -0.234413 -114.45 - 78 118.625 896 2 1 0.131965 -0.509621 -144.45 - 78 134.961 895 2 0 0.136812 -0.526502 -145.85 - 78 140.86 896 1 1 0.219307 -0.869341 -174.45 - 78 141.704 893 1 0 0.222802 -0.877628 -175.85 - 78 127.52 897 0 1 0.302122 -1.04804 -204.45 - 78 124.746 893 0 0 0.299596 -1.0486 -205.85 - 78 58.657 1714 8 1 164.198 175.333 35.15 -Number of tracker digits in this event = 7 -Event: 79 -Number of tracker hits in this event = 15 - 79 119.707 895 1 1 -0.525016 -0.0776537 -174.45 - 79 128.728 893 0 1 -0.965701 0.278662 -204.45 - 79 151.5 897 0 0 -0.969849 0.301764 -205.85 - 79 316.35 894 0 0 -0.253789 -0.691506 -205.85 - 79 113.471 895 2 0 0.0795848 -0.48494 -145.85 - 79 122.45 900 1 1 1.00064 0.237629 -174.45 - 79 113.385 897 1 0 1.11581 0.289784 -175.85 - 79 89.1853 913 0 1 3.47353 1.20912 -204.45 - 79 123.01 902 0 0 3.57151 1.25655 -205.85 - 79 105.744 896 2 1 0.05 -0.527526 -144.559 - 79 122.927 894 2 0 0.231456 -0.674855 -145.85 - 79 137.055 920 1 1 4.99716 -3.4637 -174.45 - 79 116.178 882 1 0 5.75763 -3.06353 -175.85 - 79 163.477 996 0 1 20.1906 5.47769 -204.45 - 79 118.393 925 0 0 20.7064 5.85814 -205.85 -Number of tracker digits in this event = 8 -Event: 80 -Number of tracker hits in this event = 4 - 80 45.4134 896 4 1 0.0501774 0.0891263 -84.45 - 80 133.496 896 0 0 -0.278276 0.247056 -205.85 - 80 116.884 897 0 0 -0.0737452 0.269089 -205.85 - 80 34.3036 896 4 0 0.05 0.0936675 -86.0181 -Number of tracker digits in this event = 1 -Event: 81 -Number of tracker hits in this event = 8 - 81 125.171 899 3 0 -0.0566836 0.674741 -115.85 - 81 136.708 896 1 1 0.0542242 1.18847 -174.45 - 81 150.262 901 1 0 0.0571775 1.20238 -175.85 - 81 105.911 896 0 1 0.113827 1.47393 -204.45 - 81 116.648 903 0 0 0.114932 1.49199 -205.85 - 81 395.55 1486 0 0 -39.1513 118.601 -206.25 - 81 299.741 1490 0 0 -39.3515 119.53 -205.894 - 81 557.119 1491 0 0 -39.3748 119.723 -205.85 -Number of tracker digits in this event = 6 -Event: 82 -Number of tracker hits in this event = 2 - 82 109.078 896 4 1 0.0835857 -0.0504546 -84.45 - 82 1.72052 896 2 1 0.221964 0.05 -144.776 -Number of tracker digits in this event = 0 -Event: 83 Number of tracker hits in this event = 13 - 83 139.592 896 4 1 0.20172 0.101541 -84.45 - 83 162.7 896 4 0 0.207768 0.108109 -85.85 - 83 123.028 897 3 1 0.340396 0.228402 -114.45 - 83 133.581 896 3 0 0.348613 0.238312 -115.85 - 83 272.441 898 2 1 0.517584 0.467345 -144.45 - 83 111.742 898 2 0 0.523392 0.478801 -145.85 - 83 143.933 898 1 1 0.629615 0.702233 -174.45 - 83 124.529 899 1 0 0.630745 0.70934 -175.85 - 83 102.478 898 0 1 0.647644 0.86903 -204.45 - 83 137.624 900 0 0 0.649484 0.881993 -205.85 - 83 61.0515 896 5 1 0.124357 -0.05 -54.7186 - 83 145.383 897 5 1 0.276306 -0.127783 -54.7336 - 83 113.17 898 5 1 0.479967 -0.0733359 -54.6818 -Number of tracker digits in this event = 9 -Event: 84 -Number of tracker hits in this event = 6 - 84 115.289 896 5 0 -0.166216 0.0648906 -55.85 - 84 145.81 897 4 0 -0.189128 0.301453 -85.85 - 84 116.703 897 3 0 -0.192194 0.317454 -115.85 - 84 114.917 896 2 0 -0.155937 0.0612311 -145.85 - 84 91.8544 896 1 0 -0.128392 0.116646 -175.85 - 84 73.7832 1303 0 0 -56.7461 81.4566 -205.85 -Number of tracker digits in this event = 1 -Event: 85 + 74 144.07937 896 5 0 -0.067445857 0.20898119 -55.85 + 74 108.9382 899 4 0 -0.10313175 0.66710867 -85.85 + 74 227.87928 896 3 1 0.075517518 2.1387403 -114.45 + 74 126.17961 906 3 0 0.078698526 2.2112284 -115.85 + 74 142.39793 896 2 1 0.1621242 3.6838891 -144.45 + 74 147.64308 914 2 0 0.17444235 3.7614451 -145.85 + 74 101.34176 897 1 1 0.42163637 5.3637414 -174.45 + 74 97.408868 922 1 0 0.42498024 5.4453066 -175.85 + 74 146.58238 898 0 1 0.47475071 7.0927369 -204.45 + 74 145.84006 931 0 0 0.47119957 7.1688575 -205.85 + 74 117.62627 1052 0 0 -2.3540482 31.323027 -205.9155 + 74 53.072292 1053 0 0 -2.2737764 31.574161 -205.85 + 74 331.22879 1054 0 0 -2.2836048 31.672139 -205.90174 +Number of tracker digits in this event = 8 +Event: 75 +Number of tracker hits in this event = 20 + 75 142.1439 896 5 1 0.14724417 0.050846358 -54.45 + 75 118.49127 896 5 0 0.15483739 0.061705498 -55.85 + 75 148.33576 897 4 1 0.31851625 0.31229299 -84.45 + 75 125.26972 897 4 0 0.32155573 0.32088662 -85.85 + 75 130.12065 897 3 1 0.35668007 0.43188216 -114.45 + 75 103.66564 897 3 0 0.35589579 0.43678503 -115.85 + 75 196.88089 897 2 1 0.32719904 0.54090421 -144.45 + 75 123.74244 898 2 0 0.32621157 0.54769166 -145.85 + 75 127.65343 897 1 1 0.28096576 0.62330408 -174.45 + 75 162.14597 898 1 0 0.2809062 0.62054427 -175.85 + 75 327.70426 897 0 1 0.27915433 0.58270557 -204.45 + 75 155.53009 898 0 0 0.28321848 0.58222831 -205.85 + 75 116.50238 894 0 0 0.55484381 -0.65685484 -205.85 + 75 2.4925014 896 2 1 0.098165984 0.054100916 -144.45 + 75 424.84964 848 2 0 -8.7214494 -10.020657 -145.85 + 75 53.574528 843 2 0 -9.501226 -11.044201 -145.90282 + 75 322.11034 828 2 1 -14.042713 -12.761375 -144.85 + 75 486.38394 822 2 1 -15.095403 -13.050847 -144.75208 + 75 221.84771 819 2 1 -15.78164 -13.378188 -144.79134 + 75 99.778065 821 2 1 -15.293402 -12.981263 -144.80517 +Number of tracker digits in this event = 14 +Event: 76 +Number of tracker hits in this event = 24 + 76 115.19112 897 4 1 0.27166231 -0.25603754 -84.45 + 76 149.20011 897 3 1 0.34062927 -0.472008 -114.45 + 76 141.5373 895 3 0 0.33299756 -0.48604619 -115.85 + 76 198.48223 896 2 1 0.21371854 -0.76162355 -144.45 + 76 162.01909 894 2 0 0.21491276 -0.77500087 -145.85 + 76 134.02406 896 1 1 0.24948821 -1.1052229 -174.45 + 76 125.58633 892 1 0 0.25856325 -1.1159385 -175.85 + 76 141.93238 898 0 1 0.47392032 -1.3182768 -204.45 + 76 107.92208 891 0 0 0.48850453 -1.3296659 -205.85 + 76 207.76081 633 6 1 -52.95001 -40.250787 -24.715018 + 76 110.78349 632 6 1 -53.080277 -40.443931 -24.719168 + 76 99.010345 896 5 0 0.3650644 0.21353359 -55.85 + 76 128.50861 917 4 1 4.3726167 4.944337 -84.45 + 76 106.13401 922 4 0 4.6604552 5.2632909 -85.85 + 76 136.93336 963 3 1 13.519272 9.5873122 -114.45 + 76 562.28069 945 3 0 13.736995 9.9582095 -115.85 + 76 110.61306 978 2 1 16.508028 17.973195 -144.45 + 76 239.78708 985 2 0 16.456243 18.027699 -145.85 + 76 116.426 972 1 1 15.372514 19.152239 -174.45 + 76 115.21175 992 1 0 15.610261 19.381978 -175.85 + 76 213.58289 998 0 1 20.468968 25.240702 -204.45 + 76 10.041398 999 0 1 20.673433 24.98462 -204.82521 + 76 146.5093 1017 0 0 21.146776 24.366041 -205.85 + 76 25.061236 944 3 0 14.113772 9.8370891 -116.1285 +Number of tracker digits in this event = 14 +Event: 77 +Number of tracker hits in this event = 23 + 77 223.032 896 5 0 -0.22936325 0.099225971 -55.85 + 77 149.3026 896 4 0 -0.40601438 0.18550959 -85.85 + 77 122.35965 897 3 0 -0.43074416 0.41471151 -115.85 + 77 119.96744 895 2 1 -0.53955082 0.35994268 -144.45 + 77 125.51124 897 2 0 -0.55190683 0.34209082 -145.85 + 77 116.07788 894 0 1 -0.81952554 -0.41247256 -204.45 + 77 43.954235 503 7 1 -78.883316 67.897923 5.15 + 77 251.56492 153 7 0 -113.26321 -149.52724 3.75 + 77 242.4597 329 7 1 -114.28516 -150.27225 5.15 + 77 127.98735 136 8 0 -101.10286 -152.84955 33.75 + 77 128.91631 398 8 1 -100.36399 -152.91937 35.15 + 77 241.6889 160 9 0 -124.84838 -148.01371 63.75 + 77 128.55345 273 9 1 -125.42105 -148.09138 65.15 + 77 219.52783 161 9 0 -125.06716 -147.91629 63.874476 + 77 1.8285 241 9 0 -122.50563 -131.80158 63.75 + 77 45.640879 242 9 0 -122.74775 -131.57479 64.051248 + 77 153.48704 895 3 1 -0.58136903 0.15467475 -114.45 + 77 126.74574 896 3 0 -0.59891178 0.15785066 -115.85 + 77 132.67726 894 2 1 -0.80004988 -0.19779398 -144.45 + 77 121.0485 891 1 1 -1.2601415 -0.82349248 -174.45 + 77 104.32313 894 1 0 -1.2535917 -0.77506747 -175.85 + 77 139.80968 892 0 1 -1.2468195 0.64038165 -204.45 + 77 139.37076 898 0 0 -1.2187417 0.63523381 -205.85 +Number of tracker digits in this event = 17 +Event: 78 +Number of tracker hits in this event = 11 + 78 130.81651 894 4 1 -0.78448019 -0.60474432 -84.45 + 78 112.0033 895 4 0 -0.79927146 -0.60937235 -85.85 + 78 134.82162 892 3 1 -1.1085162 -0.70152094 -114.45 + 78 91.920588 894 3 0 -1.1238975 -0.70705243 -115.85 + 78 118.04599 891 2 1 -1.419391 -0.82107029 -144.45 + 78 104.53374 894 2 0 -1.426916 -0.82657139 -145.85 + 78 114.82555 890 1 1 -1.5662338 -0.90577871 -174.45 + 78 118.11128 893 1 0 -1.575689 -0.91684445 -175.85 + 78 121.34553 889 0 1 -1.7649601 -1.1557495 -204.45 + 78 120.12444 892 0 0 -1.7696028 -1.1715556 -205.85 + 78 173.13683 461 2 0 35.225694 -87.408863 -146.24006 +Number of tracker digits in this event = 5 +Event: 79 Number of tracker hits in this event = 17 - 85 120.519 898 3 0 -0.0840789 0.534697 -115.85 - 85 111.543 899 2 0 -0.228864 0.812243 -145.85 - 85 98.4323 901 1 0 -0.456085 1.14901 -175.85 - 85 119.399 894 0 1 -0.822755 1.58149 -204.45 - 85 184.307 903 0 0 -0.840383 1.60293 -205.85 - 85 261.086 920 2 0 -1.7034 4.87514 -145.85 - 85 332.739 896 3 1 0.142369 -0.0773277 -114.45 - 85 106.262 894 1 1 -0.653945 -0.251804 -174.45 - 85 149.194 889 0 1 -1.67077 -0.841864 -204.45 - 85 121.818 893 0 0 -1.75437 -0.901392 -205.85 - 85 118.274 902 2 1 1.42279 1.54109 -144.45 - 85 124.687 904 2 0 1.40508 1.70032 -145.85 - 85 98.987 900 1 1 0.89372 4.96412 -174.45 - 85 95.8765 921 1 0 0.940214 5.10854 -175.85 - 85 147.255 905 0 1 1.91608 8.19753 -204.45 - 85 125.775 937 0 0 2.00299 8.36879 -205.85 - 85 54.4049 875 5 0 -50.1995 -4.54832 -56.25 -Number of tracker digits in this event = 9 -Event: 86 -Number of tracker hits in this event = 5 - 86 129.303 896 4 0 -0.114275 0.140189 -85.85 - 86 121.293 896 3 0 -0.169755 0.221695 -115.85 - 86 118.834 897 2 0 -0.269226 0.380601 -145.85 - 86 118.072 897 1 0 -0.26798 0.412098 -175.85 - 86 165.162 898 0 0 -0.057479 0.510887 -205.85 -Number of tracker digits in this event = 3 -Event: 87 -Number of tracker hits in this event = 12 - 87 276.843 896 4 0 -0.0666019 0.234598 -85.85 - 87 141.436 896 3 1 0.0856762 0.541095 -114.45 - 87 100.215 898 3 0 0.0931145 0.553717 -115.85 - 87 139.565 896 2 1 0.244855 0.811949 -144.45 - 87 131.933 899 2 0 0.242965 0.835039 -145.85 - 87 181.332 896 1 1 0.199268 1.29813 -174.45 - 87 152.095 902 1 0 0.208343 1.31135 -175.85 - 87 114.019 897 0 1 0.415196 1.58751 -204.45 - 87 112.566 903 0 0 0.426845 1.59609 -205.85 - 87 50.1983 505 0 0 -43.8605 -78.4765 -206.25 - 87 1.43641 0 0 1 -180.148 -0.341582 -204.771 - 87 206.194 919 0 0 -178.517 4.66748 -205.85 + 79 110.85296 901 3 1 1.143142 0.40895425 -114.45 + 79 129.44999 897 3 0 1.162542 0.39512992 -115.85 + 79 167.85775 905 2 1 1.8708049 -0.10940991 -144.45 + 79 145.50024 902 1 1 1.329665 -1.1840868 -174.45 + 79 123.67139 891 1 0 1.4147143 -1.3820934 -175.85 + 79 222.21779 909 0 1 2.8063853 -4.9866209 -204.45 + 79 100.71108 871 0 0 2.9074375 -5.2649147 -205.85 + 79 113.62044 1083 0 0 -66.354939 37.549131 -206.25 + 79 134.26453 566 0 1 -66.366057 38.058228 -204.85 + 79 456.99239 951 1 0 174.64193 11.233575 -176.25 + 79 140.50576 881 0 0 2.7399222 -3.2682757 -205.85 + 79 254.39688 1201 3 1 61.084804 -98.370184 -114.66417 + 79 92.941621 1198 3 1 60.540807 -98.315308 -114.60001 + 79 150.99985 409 3 0 60.499983 -98.30456 -115.85 + 79 103.79255 725 3 0 66.253865 -34.593872 -116.25 + 79 221.89898 726 3 0 66.256753 -34.371082 -116.19166 + 79 241.90568 727 3 0 66.158389 -34.148658 -116.02435 +Number of tracker digits in this event = 12 +Event: 80 +Number of tracker hits in this event = 11 + 80 146.93 896 5 1 0.18982069 -0.36312813 -54.45 + 80 154.7197 896 3 1 0.095499185 -3.6696984 -114.45 + 80 95.129212 878 3 0 0.11112894 -3.8515819 -115.85 + 80 112.45664 901 2 1 1.2272085 -8.2688638 -144.45 + 80 122.15787 855 2 0 1.4513212 -8.5247141 -145.85 + 80 160.05383 926 1 1 6.1615146 -13.891859 -174.45 + 80 176.57338 829 1 0 6.5085873 -13.719388 -175.85 + 80 246.24922 966 0 1 14.192333 -8.7351131 -204.45 + 80 111.70341 854 0 0 14.702275 -8.6877096 -205.85 + 80 213.54205 826 1 0 6.5866851 -14.434006 -175.85 + 80 19.476356 825 1 0 6.7504466 -14.534217 -176.19603 Number of tracker digits in this event = 7 +Event: 81 +Number of tracker hits in this event = 20 + 81 107.76957 896 3 1 0.095879945 -0.48678942 -114.45 + 81 122.61632 895 3 0 0.10605746 -0.49712479 -115.85 + 81 202.33194 897 2 1 0.33239743 -0.73352185 -144.45 + 81 96.440894 894 2 0 0.34355597 -0.75102374 -145.85 + 81 116.48365 898 1 1 0.58974358 -1.0725099 -174.45 + 81 110.07432 892 1 0 0.59054131 -1.1001092 -175.85 + 81 431.41832 898 0 1 0.60374093 -1.6845913 -204.45 + 81 114.5628 889 0 0 0.59883184 -1.7126557 -205.85 + 81 244.72497 469 3 1 -85.735833 139.28099 -114.45 + 81 300.04057 468 3 1 -85.884061 139.95338 -114.56558 + 81 131.86015 1604 3 0 -86.563996 142.2096 -115.85 + 81 503.517 1605 3 0 -86.722589 142.42085 -116.21661 + 81 334.15935 462 3 1 -87.089831 142.26106 -114.85 + 81 120.89346 838 0 0 -19.733475 -11.906694 -205.85 + 81 158.87952 899 0 1 0.84645183 -1.2003555 -204.45 + 81 268.5823 886 0 0 0.80536137 -2.3205558 -205.85 + 81 3.9127252 885 0 0 0.83893779 -2.5482095 -205.85939 + 81 222.90982 900 0 1 0.97947054 -2.9566759 -204.85 + 81 46.285572 464 1 0 -148.36982 -86.737963 -175.85799 + 81 76.581011 249 1 1 -130.27157 -73.512774 -174.46372 +Number of tracker digits in this event = 12 +Event: 82 +Number of tracker hits in this event = 10 + 82 111.49635 896 5 0 -0.053785355 0.075479986 -55.85 + 82 106.66453 896 2 0 -0.1206266 0.16088024 -145.85 + 82 131.10054 896 1 0 -0.16542756 0.17905911 -175.85 + 82 145.9389 897 0 0 -0.13372669 0.43440103 -205.85 + 82 131.60959 134 1 1 -153.27229 -169.12155 -174.51563 + 82 118.4613 133 1 1 -153.51146 -169.25519 -174.60482 + 82 102.79295 132 1 1 -153.59588 -169.43117 -174.79631 + 82 114.1967 69 1 0 -152.47176 -166.32257 -175.85 + 82 104.24627 1681 4 0 179.65138 157.74166 -85.973467 + 82 63.70999 1682 4 0 179.58625 157.79803 -85.987728 +Number of tracker digits in this event = 3 +Event: 83 +Number of tracker hits in this event = 10 + 83 115.1342 896 5 1 0.16540444 -0.10865957 -54.45 + 83 127.97733 898 4 1 0.55907941 -0.36998216 -84.45 + 83 120.82541 901 3 1 1.1253008 -0.5225649 -114.45 + 83 229.36866 895 3 0 1.1613548 -0.54134287 -115.85 + 83 105.34191 905 2 1 1.9145235 -0.90381288 -144.45 + 83 152.35753 893 2 0 1.941985 -0.91605676 -145.85 + 83 209.00656 908 1 1 2.4825679 -1.1833882 -174.45 + 83 114.75384 892 1 0 2.5121731 -1.2117988 -175.85 + 83 115.93464 911 0 1 3.0611067 -1.7749699 -204.45 + 83 140.62645 889 0 0 3.0925785 -1.8155988 -205.85 +Number of tracker digits in this event = 6 +Event: 84 +Number of tracker hits in this event = 16 + 84 115.2803 897 4 1 0.32157115 0.23053702 -84.45 + 84 233.16414 896 4 0 0.32887016 0.24186606 -85.85 + 84 116.99727 898 3 1 0.48851735 0.4676574 -114.45 + 84 97.969969 898 3 0 0.49694741 0.47813558 -115.85 + 84 102.88063 899 2 1 0.68103251 0.72809204 -144.45 + 84 109.6789 899 2 0 0.69271097 0.74933325 -145.85 + 84 113.50456 900 1 1 0.9129635 1.2035672 -174.45 + 84 236.56688 901 1 0 0.91855029 1.2223272 -175.85 + 84 111.29862 900 0 1 1.0223935 1.6049229 -204.45 + 84 222.38353 903 0 0 1.0275407 1.6206959 -205.85 + 84 111.31694 919 2 1 4.843082 -2.1399967 -144.45 + 84 113.18408 886 2 0 5.0957535 -2.3007982 -145.85 + 84 158.22608 949 1 1 10.673288 -5.5096959 -174.45 + 84 115.6927 870 1 0 10.555547 -5.5532121 -175.85 + 84 202.13633 930 0 1 6.9419043 -8.5362466 -204.45 + 84 172.85641 857 0 0 5.5974063 -8.183475 -205.85 +Number of tracker digits in this event = 6 +Event: 85 +Number of tracker hits in this event = 12 + 85 117.84282 896 5 0 -0.18106375 0.11954046 -55.85 + 85 171.48096 894 4 1 -0.65097035 0.11308542 -84.45 + 85 196.06033 896 4 0 -0.65102267 0.08394372 -85.85 + 85 144.56626 894 3 1 -0.66418433 -0.47844253 -114.45 + 85 113.18434 895 3 0 -0.6634668 -0.50301913 -115.85 + 85 99.87814 895 2 1 -0.54588058 -1.0373397 -144.45 + 85 136.70069 892 2 0 -0.54333737 -1.0543368 -145.85 + 85 120.1157 895 1 1 -0.49143733 -1.4076803 -174.45 + 85 146.13611 891 1 0 -0.48270668 -1.4362047 -175.85 + 85 232.03184 887 0 0 -0.28909326 -2.0670924 -205.85 + 85 161.39318 294 1 0 -170.75167 -121.29724 -176.20142 + 85 8.9843757 293 1 0 -170.70335 -121.39942 -176.19053 +Number of tracker digits in this event = 8 +Event: 86 +Number of tracker hits in this event = 12 + 86 98.573112 898 3 1 0.61240554 0.11910694 -114.45 + 86 125.81431 896 3 0 0.61679326 0.12186984 -115.85 + 86 125.38743 899 2 1 0.68651475 0.1967255 -144.45 + 86 154.22779 896 2 0 0.70119198 0.2026399 -145.85 + 86 110.36129 900 1 1 1.0034231 0.31686945 -174.45 + 86 201.60255 897 1 0 1.0172338 0.32129754 -175.85 + 86 116.78337 902 0 1 1.3315331 0.42305055 -204.45 + 86 113.15862 897 0 0 1.3386023 0.43270906 -205.85 + 86 30.105414 1174 4 0 150.28492 55.847449 -85.908827 + 86 62.56229 1646 4 1 150.57284 55.56778 -84.85 + 86 285.08569 1645 4 1 150.54862 55.563785 -84.756361 + 86 51.177234 898 1 0 0.97239439 0.45188947 -176.03226 +Number of tracker digits in this event = 5 +Event: 87 +Number of tracker hits in this event = 17 + 87 120.53269 896 2 1 0.14246322 -0.11199081 -144.45 + 87 110.53134 898 1 1 0.46162344 -0.3093492 -174.45 + 87 242.04175 899 0 1 0.70911583 -0.6020447 -204.45 + 87 122.81681 895 0 0 0.72150241 -0.60641457 -205.85 + 87 89.067121 1396 5 1 100.56855 44.667299 -54.672621 + 87 253.23965 1397 5 1 100.78745 44.75302 -54.731669 + 87 177.91389 897 0 0 0.33789486 0.2827858 -205.85 + 87 40.881735 916 2 0 -48.495086 4.1004582 -146.25 + 87 261.85989 915 2 0 -48.59677 4.0271185 -146.18825 + 87 99.224262 914 2 0 -48.636202 3.8247308 -146.06984 + 87 394.73248 979 0 0 -9.1443589 16.798778 -206.25 + 87 187.0206 857 0 1 -8.1956235 17.492349 -204.85 + 87 158.55635 858 0 1 -8.0283552 18.028718 -204.6995 + 87 108.33008 859 0 1 -7.7801366 18.059836 -204.74092 + 87 244.90452 860 0 1 -7.6361768 18.206613 -204.61882 + 87 30.440865 895 2 1 -0.47709232 0.17611977 -144.78617 + 87 421.88749 896 2 0 0.056454349 0.12029233 -145.85 +Number of tracker digits in this event = 11 Event: 88 -Number of tracker hits in this event = 8 - 88 107.87 896 5 0 -0.0922986 0.058615 -55.85 - 88 134.755 896 4 0 -0.239075 0.171326 -85.85 - 88 293.519 895 3 1 -0.55801 0.472913 -114.45 - 88 115.081 898 3 0 -0.55329 0.482218 -115.85 - 88 116.057 899 2 0 -0.407777 0.712444 -145.85 - 88 111.251 900 1 0 -0.192714 1.02601 -175.85 - 88 216.678 1328 3 0 47.6662 86.5602 -116.197 - 88 219.132 1329 3 0 47.7802 86.7744 -116.073 -Number of tracker digits in this event = 4 +Number of tracker hits in this event = 13 + 88 140.13898 897 4 1 0.36321829 0.15596725 -84.45 + 88 156.43145 896 4 0 0.37373582 0.14967042 -85.85 + 88 136.42444 899 3 1 0.65602878 0.070312582 -114.45 + 88 129.27994 896 3 0 0.66454167 0.062339411 -115.85 + 88 105.95776 899 2 1 0.82989394 -0.13122589 -144.45 + 88 158.75362 902 1 1 1.2582157 -0.39527871 -174.45 + 88 105.01685 904 0 1 1.6519464 -0.62659473 -204.45 + 88 112.38553 895 0 0 1.6694242 -0.6452473 -205.85 + 88 209.49991 603 2 0 -19.758412 -58.97196 -146.22013 + 88 78.494115 800 2 1 -19.482408 -58.958058 -144.85 + 88 264.79566 801 2 1 -19.381372 -58.876992 -144.65988 + 88 200.01248 802 2 1 -19.137227 -59.212682 -144.48298 + 88 103.30713 904 4 0 2.8977306 1.707862 -85.85 +Number of tracker digits in this event = 8 Event: 89 Number of tracker hits in this event = 12 - 89 243.167 896 5 1 0.0943927 0.0977404 -54.45 - 89 170.343 896 5 0 0.096326 0.103618 -55.85 - 89 124.466 896 4 1 0.101347 0.248692 -84.45 - 89 202.923 897 4 0 0.102007 0.254874 -85.85 - 89 603.064 896 3 1 0.121009 0.356598 -114.45 - 89 109.13 897 3 0 0.122846 0.356833 -115.85 - 89 105.517 896 2 1 0.163744 0.334016 -144.45 - 89 135.552 897 2 0 0.17254 0.339128 -145.85 - 89 105.172 897 1 1 0.376348 0.446574 -174.45 - 89 115.163 897 1 0 0.389361 0.449191 -175.85 - 89 126.979 899 0 1 0.658497 0.513801 -204.45 - 89 103.032 898 0 0 0.673545 0.518495 -205.85 -Number of tracker digits in this event = 7 + 89 100.30805 896 5 1 0.072708953 0.26747603 -54.45 + 89 128.67545 897 5 0 0.107952 0.28803761 -55.85 + 89 105.65528 900 4 1 1.0162202 0.61815918 -84.45 + 89 123.44084 898 4 0 1.0667749 0.62606635 -85.85 + 89 97.089256 906 3 1 2.2146281 0.803513 -114.45 + 89 99.801247 899 3 0 2.2691684 0.80293887 -115.85 + 89 197.83673 912 2 1 3.3382929 0.91026992 -144.45 + 89 115.41257 900 2 0 3.3933066 0.92123635 -145.85 + 89 105.34447 918 1 1 4.6260252 1.1291141 -174.45 + 89 101.93916 901 1 0 4.675396 1.1296419 -175.85 + 89 237.1764 924 0 1 5.7001434 1.1295495 -204.45 + 89 108.00046 901 0 0 5.7514847 1.1236502 -205.85 +Number of tracker digits in this event = 4 Event: 90 -Number of tracker hits in this event = 22 - 90 137.496 896 5 0 -0.0609317 0.135017 -55.85 - 90 380.05 897 4 0 -0.186696 0.390747 -85.85 - 90 126.2 899 3 0 -0.354108 0.690198 -115.85 - 90 126.568 895 2 1 -0.516565 1.05613 -144.45 - 90 122.421 901 2 0 -0.525923 1.07507 -145.85 - 90 111.46 894 1 1 -0.727047 1.45312 -174.45 - 90 174.437 903 1 0 -0.732055 1.47355 -175.85 - 90 164.721 894 0 1 -0.836444 1.92205 -204.45 - 90 121.448 905 0 0 -0.839746 1.94431 -205.85 - 90 132.822 888 3 0 0.141122 -2.00461 -115.85 - 90 135.31 930 2 1 7.01579 -12.3623 -144.45 - 90 191.528 835 2 0 7.63368 -12.5752 -145.85 - 90 124.033 993 1 1 19.4713 -17.6958 -174.45 - 90 131.172 806 1 0 19.5537 -18.3951 -175.85 - 90 161.086 997 0 1 20.4401 -33.3452 -204.45 - 90 167.907 723 0 0 20.7434 -34.8854 -205.85 - 90 105.776 894 3 0 -0.106101 -0.805179 -115.85 - 90 212.599 870 2 0 -0.261688 -5.52057 -145.85 - 90 102.829 902 1 1 1.34936 -10.139 -174.45 - 90 138.315 846 1 0 1.41945 -10.3439 -175.85 - 90 122.945 909 0 1 2.65173 -14.5781 -204.45 - 90 162.689 824 0 0 2.81623 -14.719 -205.85 -Number of tracker digits in this event = 19 +Number of tracker hits in this event = 11 + 90 102.61856 896 5 1 0.10177688 -0.099372583 -54.45 + 90 119.70592 897 4 1 0.26080458 -0.17219138 -84.45 + 90 127.85839 897 3 1 0.27363909 -0.33196273 -114.45 + 90 109.69879 896 2 1 0.22852423 -0.50715416 -144.45 + 90 265.15436 895 2 0 0.22410647 -0.50833367 -145.85 + 90 104.55917 896 1 1 0.13208306 -0.542247 -174.45 + 90 126.63957 895 1 0 0.13134667 -0.54079905 -175.85 + 90 115.0735 896 0 1 0.10045182 -0.50004655 -204.45 + 90 108.04771 895 0 0 0.10783434 -0.49729325 -205.85 + 90 117.41182 1138 2 0 37.893477 48.478522 -146.16863 + 90 247.5404 1137 2 0 38.016533 48.383988 -145.92391 +Number of tracker digits in this event = 4 Event: 91 -Number of tracker hits in this event = 24 - 91 305.301 896 5 1 0.103946 0.0769635 -54.45 - 91 127.175 896 5 0 0.111347 0.0815693 -55.85 - 91 110.551 897 4 1 0.272247 0.188199 -84.45 - 91 128.005 896 4 0 0.282868 0.194331 -85.85 - 91 101.6 898 3 1 0.496509 0.331621 -114.45 - 91 104.37 897 3 0 0.503992 0.33738 -115.85 - 91 117.111 898 2 1 0.641371 0.463658 -144.45 - 91 110.235 898 2 0 0.65071 0.47753 -145.85 - 91 104.058 899 1 1 0.829952 0.793074 -174.45 - 91 111.412 899 1 0 0.838776 0.809023 -175.85 - 91 100.315 900 0 1 1.00831 1.16273 -204.45 - 91 155.773 901 0 0 1.01365 1.18426 -205.85 - 91 161.834 895 5 0 1.1709 -0.492098 -55.85 - 91 83.6819 896 2 1 0.0728315 -0.05 -144.589 - 91 175.957 903 1 1 1.6136 -4.02071 -174.45 - 91 213.557 875 1 0 1.18919 -4.54325 -175.85 - 91 117.601 857 0 1 -8.13368 -16.4249 -204.45 - 91 148.763 815 0 0 -9.0634 -16.5697 -205.85 - 91 136.5 896 2 0 0.772725 0.150907 -145.85 - 91 181.37 971 1 1 15.2111 4.6569 -174.45 - 91 29.3272 974 1 1 15.6761 4.67146 -174.779 - 91 211.532 919 1 0 17.1399 4.69502 -175.85 - 91 586.776 1081 1 0 155.448 37.1756 -176.25 - 91 365.421 1083 1 0 156.871 37.6116 -175.85 -Number of tracker digits in this event = 13 +Number of tracker hits in this event = 14 + 91 143.33626 896 5 0 -0.18115284 0.06127876 -55.85 + 91 129.04385 895 3 1 -0.45837957 -0.082879953 -114.45 + 91 139.908 895 2 1 -0.57072479 -0.44847443 -144.45 + 91 121.67455 895 2 0 -0.58868192 -0.46674505 -145.85 + 91 263.56917 893 1 1 -1.0192302 -0.82999462 -174.45 + 91 248.61785 893 1 0 -1.0453096 -0.85076531 -175.85 + 91 186.54155 890 0 1 -1.5493544 -1.2981749 -204.45 + 91 130.33091 891 0 0 -1.5744979 -1.3197209 -205.85 + 91 144.94654 889 0 1 -1.6532038 -1.3203765 -204.67396 + 91 345.86232 892 1 0 -0.7376651 -1.1346554 -175.85 + 91 112.22936 923 0 1 5.6171889 -7.1250644 -204.45 + 91 193.05653 858 0 0 6.1100614 -7.9579142 -205.85 + 91 94.952177 1246 2 1 70.050135 -23.754606 -144.85 + 91 88.495135 782 2 0 90.15 -23.222897 -145.91203 +Number of tracker digits in this event = 11 Event: 92 -Number of tracker hits in this event = 13 - 92 120.776 896 5 1 0.197893 -0.125977 -54.45 - 92 142.592 898 4 1 0.47613 -0.195179 -84.45 - 92 119.078 899 3 1 0.801466 -0.377054 -114.45 - 92 130.537 901 2 1 1.06008 -0.52996 -144.45 - 92 111.67 895 2 0 1.06878 -0.532233 -145.85 - 92 233.902 901 1 1 1.23519 -0.582114 -174.45 - 92 116.995 895 1 0 1.24155 -0.586707 -175.85 - 92 504.207 902 0 1 1.31035 -0.634952 -204.45 - 92 121.837 895 0 0 1.32458 -0.638574 -205.85 - 92 19.9656 529 10 1 -73.6817 146.546 95.4965 - 92 65.2599 902 1 1 1.2525 -0.514582 -174.487 - 92 265.267 893 0 0 1.43219 -0.854436 -205.85 - 92 105.065 895 3 0 0.767623 -0.462517 -115.971 -Number of tracker digits in this event = 7 +Number of tracker hits in this event = 6 + 92 105.63012 896 5 1 0.19370886 -0.069147004 -54.45 + 92 226.22717 895 1 1 -0.64347748 -0.50343836 -174.45 + 92 126.32553 895 1 0 -0.64818703 -0.5215912 -175.85 + 92 186.91856 894 0 1 -0.74803855 -0.89725415 -204.45 + 92 131.08013 893 0 0 -0.75267543 -0.91463292 -205.85 + 92 12.513469 894 1 1 -0.73391255 -0.4163457 -174.70333 +Number of tracker digits in this event = 4 Event: 93 -Number of tracker hits in this event = 7 - 93 412.786 894 1 1 -0.754353 -0.0820811 -174.45 - 93 170.814 893 0 1 -0.904212 -0.192621 -204.45 - 93 183.402 899 0 1 0.810961 -5.32333 -204.45 - 93 131.045 870 0 0 0.854342 -5.56685 -205.85 - 93 119.122 1121 2 1 45.164 -140.805 -144.832 - 93 125.811 897 0 1 0.333428 1.5274 -204.45 - 93 121.48 905 0 0 0.494804 1.9313 -205.85 -Number of tracker digits in this event = 6 +Number of tracker hits in this event = 27 + 93 104.73781 896 3 1 0.063243459 -0.24003993 -114.45 + 93 385.67637 896 2 1 0.12876384 -0.68235835 -144.45 + 93 114.31907 894 2 0 0.13723486 -0.69703696 -145.85 + 93 101.07061 896 1 1 0.2064163 -1.0850133 -174.45 + 93 126.72072 892 1 0 0.16708509 -1.0887193 -175.85 + 93 103.54294 895 0 1 -0.55852839 -1.2087021 -204.45 + 93 118.94376 892 0 0 -0.61645737 -1.1805292 -205.85 + 93 162.76908 896 2 0 0.44050783 0.084294025 -145.85 + 93 161.99345 1148 2 0 55.696828 50.507836 -146.25 + 93 10.934962 1149 2 0 55.898361 50.817452 -145.88612 + 93 331.42358 1173 2 1 55.605003 51.444999 -144.85 + 93 468.07184 1172 2 1 55.424533 51.758929 -144.65131 + 93 135.35279 1171 2 1 55.145721 52.021566 -144.80123 + 93 128.09164 1150 3 0 -38.928783 51.039253 -116.25 + 93 290.69555 703 3 1 -38.933544 51.221983 -114.85 + 93 119.25922 1159 4 0 -26.640222 52.8311 -86.25 + 93 126.79136 768 4 1 -26.02075 53.324124 -84.85 + 93 171.10816 1027 5 0 -10.702355 26.365138 -56.25 + 93 10.21192 1025 5 0 -10.531373 26.017737 -55.863021 + 93 179.03256 846 5 1 -10.409084 25.091069 -54.85 + 93 49.063881 842 5 1 -11.241481 26.680201 -54.85 + 93 228.89056 841 5 1 -11.301097 26.732171 -54.755753 + 93 98.439535 786 5 1 -22.341676 40.519459 -54.658952 + 93 189.4593 787 5 1 -22.230931 40.438527 -54.648289 + 93 92.346148 788 5 1 -22.044249 40.576381 -54.478032 + 93 15.467679 251 3 1 -129.82489 -116.5886 -114.45 + 93 139.41276 897 0 0 -0.29300795 0.25324047 -205.85 +Number of tracker digits in this event = 15 Event: 94 Number of tracker hits in this event = 4 - 94 141.932 896 4 1 0.201563 -0.0748825 -84.45 - 94 114.465 896 3 1 0.170866 -0.233274 -114.45 - 94 117.843 896 2 1 0.157364 -0.159818 -144.45 - 94 125.644 896 1 1 0.145787 -0.114888 -174.45 + 94 141.53427 881 1 1 -3.2996734 0.22430325 -174.45 + 94 124.33547 896 1 0 -3.3796268 0.21714969 -175.85 + 94 112.82209 875 0 1 -4.6247696 0.12875502 -204.45 + 94 103.27358 896 0 0 -4.5925385 0.19693046 -205.85 Number of tracker digits in this event = 2 Event: 95 -Number of tracker hits in this event = 14 - 95 109.395 896 5 1 0.138168 -0.0720555 -54.45 - 95 137.691 897 4 1 0.334476 -0.147077 -84.45 - 95 142.402 898 3 1 0.60355 -0.126397 -114.45 - 95 184.891 900 2 1 0.904581 -0.125798 -144.45 - 95 115.111 901 1 1 1.20131 -0.0705146 -174.45 - 95 376.182 903 0 1 1.48118 -0.188089 -204.45 - 95 185.781 890 0 0 0.408701 -1.63769 -205.85 - 95 216.066 887 0 0 -0.05 -2.1659 -206.188 - 95 16.6855 885 0 0 -0.22602 -2.53396 -205.876 - 95 303.844 894 0 1 -0.740851 -4.7402 -204.85 - 95 344.366 893 0 1 -0.944515 -5.1532 -204.802 - 95 242.19 892 0 1 -1.15452 -5.55213 -204.727 - 95 161.656 902 0 1 1.42209 -0.120857 -204.733 - 95 169.338 896 0 0 1.36759 0.233473 -205.85 -Number of tracker digits in this event = 11 +Number of tracker hits in this event = 11 + 95 156.01578 896 4 1 0.23344554 -0.20148979 -84.45 + 95 147.31694 895 1 0 -0.1239991 -0.50441142 -175.85 + 95 182.11729 1015 3 0 -88.740701 24.049858 -116.25 + 95 1.0826858 1014 3 0 -88.484183 23.725048 -115.85457 + 95 170.93964 457 3 1 -88.103384 23.350742 -114.85 + 95 117.68843 889 2 1 -1.7448901 -1.0748444 -144.45 + 95 205.55577 892 2 0 -1.9127723 -1.1135631 -145.85 + 95 141.26404 875 1 1 -4.5614657 -1.8741455 -174.45 + 95 115.91299 887 1 0 -4.7563645 -2.0757626 -175.85 + 95 222.01164 854 0 1 -8.6534418 -6.5139956 -204.45 + 95 106.31016 864 0 0 -8.6953301 -6.730228 -205.85 +Number of tracker digits in this event = 7 Event: 96 Number of tracker hits in this event = 33 - 96 113.295 896 4 0 -0.371201 0.211693 -85.85 - 96 403.543 895 3 1 -0.640392 0.388442 -114.45 - 96 224.763 897 3 0 -0.652547 0.396743 -115.85 - 96 118.843 893 2 1 -0.879986 0.5571 -144.45 - 96 85.779 898 2 0 -0.899684 0.558666 -145.85 - 96 168.896 891 1 1 -1.29079 0.588058 -174.45 - 96 109.145 898 1 0 -1.31039 0.587888 -175.85 - 96 436.426 890 0 1 -1.5924 0.552443 -204.45 - 96 171.201 898 0 0 -1.61605 0.565715 -205.85 - 96 108.963 891 0 1 -1.39365 0.376566 -204.793 - 96 89.1339 899 0 0 0.273691 0.834805 -205.85 - 96 199.9 900 0 0 0.398491 0.886599 -205.945 - 96 120.123 889 2 1 -1.80601 0.149762 -144.45 - 96 152.985 897 2 0 -1.40681 0.42709 -145.85 - 96 183.168 929 1 1 6.84584 7.70128 -174.45 - 96 143.261 935 1 0 7.63456 7.85443 -175.85 - 96 137.43 1039 0 1 28.8159 11.3437 -204.45 - 96 267.236 953 0 0 28.8917 11.4625 -205.85 - 96 248.46 898 3 0 -0.471709 0.54229 -115.85 - 96 334.599 907 2 1 2.4306 4.21882 -144.45 - 96 123.715 917 2 0 3.05433 4.2824 -145.85 - 96 144.612 971 1 1 15.232 6.73754 -174.45 - 96 137.742 930 1 0 15.7558 6.94296 -175.85 - 96 134.83 1032 0 1 27.2787 11.252 -204.45 - 96 111.597 923 4 1 5.56049 -0.851189 -84.45 - 96 135.961 894 4 0 5.84861 -0.785627 -85.85 - 96 121.026 954 3 1 11.7437 0.495717 -114.45 - 96 129.93 985 2 1 17.924 3.17433 -144.45 - 96 106.478 912 2 0 18.1899 3.3196 -145.85 - 96 177.814 1013 1 1 23.5263 6.37301 -174.45 - 96 107.662 927 1 0 23.7985 6.44566 -175.85 - 96 134.515 1044 0 1 29.7883 8.01438 -204.45 - 96 230.397 936 0 0 30.2075 8.05991 -205.85 -Number of tracker digits in this event = 24 + 96 129.12299 896 5 1 0.11394078 -0.23094382 -54.45 + 96 177.53969 896 4 1 0.15694352 -0.52001179 -84.45 + 96 202.69373 895 4 0 0.16886357 -0.53794007 -85.85 + 96 242.08735 897 3 1 0.38951477 -0.85397347 -114.45 + 96 266.5505 893 3 0 0.44987271 -0.8511478 -115.85 + 96 161.81921 905 2 1 1.9347501 -0.786759 -144.45 + 96 125.63382 894 2 0 2.032163 -0.8410376 -145.85 + 96 115.49574 915 1 1 3.9932771 -2.0176228 -174.45 + 96 192.62301 887 1 0 4.0281053 -2.0828698 -175.85 + 96 142.40413 918 0 1 4.5873825 -3.4322721 -204.45 + 96 114.48012 880 0 0 4.596751 -3.558936 -205.85 + 96 120.19222 916 1 1 4.0825753 -2.0292615 -174.45 + 96 127.77075 803 0 1 -19.048476 1.1234703 -204.45 + 96 127.33973 902 0 0 -19.678662 1.3426552 -205.85 + 96 83.730276 901 0 0 -21.241857 1.0729561 -206.19746 + 96 372.45742 898 2 1 0.57071569 -1.1349017 -144.45 + 96 119.03554 892 2 0 0.58365405 -1.1352379 -145.85 + 96 220.87793 900 1 1 0.90648471 -1.229438 -174.45 + 96 215.24901 891 1 0 0.97030572 -1.2723301 -175.85 + 96 167.44234 905 0 1 1.9382154 -2.4350095 -204.45 + 96 192.90644 885 0 0 0.97181443 -2.5354224 -205.85 + 96 27.159647 892 1 0 0.40524173 -1.239923 -175.87763 + 96 105.36567 894 1 1 -0.68291522 -1.1052123 -174.85 + 96 131.9278 888 2 0 0.56390603 -1.8792372 -145.85 + 96 84.704689 887 2 0 0.60650398 -2.0980073 -146.12401 + 96 234.1295 883 2 0 14.696985 -2.9794019 -146.25 + 96 109.52379 884 2 0 14.532229 -2.8242684 -146.06772 + 96 113.53964 896 2 1 0.2243837 -0.35999739 -144.45 + 96 148.49398 897 1 1 0.27077011 -0.6029091 -174.45 + 96 132.76465 895 1 0 0.28793305 -0.60912459 -175.85 + 96 113.94515 898 0 1 0.62506173 -0.6662919 -204.45 + 96 151.15712 894 0 0 0.66984875 -0.65861634 -205.85 + 96 144.62259 697 3 0 112.7568 -40.0964 -116.20258 +Number of tracker digits in this event = 23 Event: 97 -Number of tracker hits in this event = 21 - 97 115.634 896 4 1 0.0904025 0.225538 -84.45 - 97 106.655 896 4 0 0.101513 0.245527 -85.85 - 97 100.188 897 3 1 0.296912 0.670034 -114.45 - 97 164.514 899 3 0 0.306938 0.689887 -115.85 - 97 156.627 898 2 1 0.475407 1.07577 -144.45 - 97 221.498 901 2 0 0.473803 1.09045 -145.85 - 97 114.08 897 1 1 0.423461 1.35419 -174.45 - 97 108.031 902 1 0 0.42122 1.36697 -175.85 - 97 117.981 897 0 1 0.348395 1.61832 -204.45 - 97 99.8626 903 0 0 0.358977 1.63829 -205.85 - 97 133.173 898 3 0 -0.156534 0.473602 -115.85 - 97 101.855 888 2 1 -1.94845 4.99579 -144.45 - 97 118.216 922 2 0 -2.05616 5.31472 -145.85 - 97 194.991 877 1 1 -4.11376 12.0542 -174.45 - 97 135.756 957 1 0 -4.2772 12.4276 -175.85 - 97 214.859 862 0 1 -7.1211 20.4174 -204.45 - 97 115.999 999 0 0 -7.32506 20.8437 -205.85 - 97 115.41 896 3 0 -0.137733 0.228455 -115.85 - 97 173.818 895 2 0 -0.145575 -0.493576 -145.85 - 97 165.832 889 0 0 -0.073532 -1.82325 -205.85 - 97 64.1844 891 1 0 0.05 -1.36123 -176.027 +Number of tracker hits in this event = 16 + 97 102.15718 896 4 1 0.13687724 0.055596989 -84.45 + 97 229.20661 896 4 0 0.14628554 0.062196955 -85.85 + 97 125.87227 897 3 1 0.34548903 0.20270603 -114.45 + 97 110.22338 896 3 0 0.34785268 0.22340968 -115.85 + 97 141.6843 897 2 1 0.42167829 0.68377713 -144.45 + 97 168.51519 899 2 0 0.4364549 0.71414026 -145.85 + 97 271.13376 899 1 1 0.75024807 1.3313207 -174.45 + 97 144.87808 902 1 0 0.75696937 1.3565061 -175.85 + 97 107.43942 901 0 1 1.0506163 1.7495237 -204.45 + 97 102.6881 904 0 0 1.0474094 1.7405461 -205.85 + 97 103.55588 904 1 0 1.1604279 1.6649622 -175.85 + 97 134.9056 939 0 1 8.6953796 7.8604186 -204.45 + 97 249.62675 938 0 0 9.5520081 8.4530813 -205.85 + 97 61.992312 896 6 1 0.092889135 0.05 -24.595399 + 97 256.51244 897 6 1 0.2579885 0.077904438 -24.664761 + 97 76.014651 898 6 1 0.47637321 0.15760381 -24.45 Number of tracker digits in this event = 9 Event: 98 -Number of tracker hits in this event = 8 - 98 113.174 896 4 1 0.110385 -0.170136 -84.45 - 98 124.33 896 3 1 0.0666309 -0.232708 -114.45 - 98 120.891 896 2 1 0.0769515 -0.305553 -144.45 - 98 104.558 896 1 1 0.0792431 -0.330262 -174.45 - 98 120.79 871 0 1 -5.39705 1.43126 -204.45 - 98 108.04 902 0 0 -5.39836 1.35377 -205.85 - 98 104.885 897 0 1 0.335772 -0.919588 -204.45 - 98 100.701 892 0 0 0.603642 -1.17974 -205.85 -Number of tracker digits in this event = 3 -Event: 99 -Number of tracker hits in this event = 7 - 99 107.087 894 2 1 -0.66617 -0.348227 -144.45 - 99 100.197 893 1 1 -0.996476 -0.5223 -174.45 - 99 146.272 895 1 0 -1.01607 -0.530785 -175.85 - 99 121.812 891 0 1 -1.4033 -0.727488 -204.45 - 99 99.5104 894 0 0 -1.42476 -0.74118 -205.85 - 99 162.495 863 0 0 -44.5607 -6.99169 -205.89 - 99 161.741 669 0 1 -45.6803 -6.62474 -204.85 +Number of tracker hits in this event = 10 + 98 367.63125 896 3 1 0.083455488 0.20948266 -114.45 + 98 97.690435 896 3 0 0.094393729 0.21997291 -115.85 + 98 105.28664 897 2 1 0.32396974 0.41088459 -144.45 + 98 112.6888 897 2 0 0.32423756 0.41675226 -145.85 + 98 106.0987 897 1 1 0.32753408 0.57890462 -174.45 + 98 131.43045 898 1 0 0.31812289 0.59091575 -175.85 + 98 106.62863 896 0 1 0.13024034 0.85094561 -204.45 + 98 216.01439 900 0 0 0.1228668 0.86080655 -205.85 + 98 74.547666 899 0 0 0.1003516 0.80269007 -206.095 + 98 202.37068 898 0 0 -0.059699199 0.5995306 -205.85 Number of tracker digits in this event = 4 +Event: 99 +Number of tracker hits in this event = 8 + 99 148.29648 896 4 0 -0.14263994 0.12109268 -85.85 + 99 103.32632 896 3 0 -0.30470232 0.1012811 -115.85 + 99 130.04274 896 2 0 -0.4142386 0.22881352 -145.85 + 99 103.75162 897 1 0 -0.45351422 0.25903534 -175.85 + 99 109.68666 895 0 1 -0.56464488 0.25902939 -204.45 + 99 138.01763 896 0 0 -0.58686816 0.24734953 -205.85 + 99 312.97107 562 1 0 91.331044 -67.191265 -176.25 + 99 296.64896 561 1 0 91.861546 -67.410171 -176.1135 +Number of tracker digits in this event = 5 Run terminated. Run Summary Number of events processed : 100 - User=61.25s Real=153.75s Sys=0.04s + User=37.1s Real=37.39s Sys=0.05s End of Run File Tracks_5.dat Graphics systems deleted. diff --git a/examples/advanced/gammaray_telescope/gammaraytel.stt_out b/examples/advanced/gammaray_telescope/gammaraytel.stt_out index e44cab428c..312e3b8901 100644 --- a/examples/advanced/gammaray_telescope/gammaraytel.stt_out +++ b/examples/advanced/gammaray_telescope/gammaraytel.stt_out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (19-May-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh index e3442201dc..8cb7f921fb 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh @@ -23,7 +23,7 @@ #ifdef G4ANALYSIS_USE // // $Id: GammaRayTelAnalysis.hh,v 1.17 2004/06/01 06:59:38 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh index 9d82e04150..7dbedf1217 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnalysisMessenger.hh,v 1.3 2001/11/23 17:44:54 santin Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh index 8bb65f37c2..3eb8bc8c15 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnticoincidenceHit.hh,v 1.2 2001/07/11 09:56:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh index c4afeb8ef8..ce059f0fdf 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnticoincidenceSD.hh,v 1.4 2003/05/30 15:08:47 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh index 4f778a0de9..9e0c77af13 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelCalorimeterHit.hh,v 1.2 2001/07/11 09:56:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh index 7bd42f42bc..3d73d337d5 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelCalorimeterSD.hh,v 1.4 2001/11/29 11:19:17 griccard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh index 8baf0dffc3..0cf4c37899 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDetectorConstruction.hh,v 1.7 2004/06/02 15:21:29 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh index 7bdf91638f..21a2efb8ca 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDetectorMessenger.hh,v 1.3 2001/07/11 09:56:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh index b614b8b291..859ab07d05 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigi.hh,v 1.1 2001/10/24 13:11:54 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh index 290277fe9e..33c0d50ab5 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigitizer.hh,v 1.2 2001/11/29 09:34:17 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh index 863cb8f724..82192b363e 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigitizerMessenger.hh,v 1.1 2001/11/29 09:34:17 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh index 25d626d90c..fbc9a3a1c9 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh @@ -23,7 +23,7 @@ // // $Id: GammaRayTelDummySD.hh,v 1.5 2003/05/30 15:08:47 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelEMPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelEMPhysics.hh index ecf4921b43..b4b910fd4b 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelEMPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelEMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelEMPhysics.hh,v 1.1 2003/05/28 13:54:14 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh index a2403d905a..e578297d88 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelEventAction.hh,v 1.9 2001/12/04 11:40:28 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelGeneralPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelGeneralPhysics.hh index 61eef0e7e9..7206dcfd34 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelGeneralPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelGeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelGeneralPhysics.hh,v 1.1 2003/05/28 13:54:14 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh index 0547c29f94..2180dd1946 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: GammaRayTelHadronPhysics.hh,v 1.2 2003/06/16 16:46:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh index 596b7b7965..5f7df56451 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelIonPhysics.hh,v 1.1 2003/05/28 13:54:14 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh index e890fcf996..ac0a75b0af 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelMuonPhysics.hh,v 1.1 2003/05/28 13:54:14 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh index f4de117a69..2139fd8ee4 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPrimaryGeneratorAction.hh,v 1.6 2001/11/29 11:19:17 griccard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh index 07b9969108..aa4a3e7a5f 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPrimaryGeneratorMessenger.hh,v 1.3 2001/07/11 09:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh index 71ec3f3909..bee03bb187 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelRunAction.hh,v 1.5 2001/11/23 17:44:54 santin Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh index 7d45aebd2c..6ab933cc58 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerHit.hh,v 1.2 2001/07/11 09:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerROGeometry.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerROGeometry.hh index ba0c33b153..7651a2e780 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerROGeometry.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerROGeometry.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerROGeometry.hh,v 1.3 2001/11/29 11:19:17 griccard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh index 2d0aef806f..ef55820c71 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerSD.hh,v 1.4 2001/11/29 11:19:17 griccard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/macro2.mac b/examples/advanced/gammaray_telescope/macro2.mac index ea2371772e..9499076ff1 100644 --- a/examples/advanced/gammaray_telescope/macro2.mac +++ b/examples/advanced/gammaray_telescope/macro2.mac @@ -13,7 +13,7 @@ /control/saveHistory /run/verbose 2 -/control/execute emstd.mac +/control/execute emlowe.mac /gun/particle mu- /gun/energy 100 MeV @@ -22,6 +22,8 @@ /gun/direction 0 0 -1 # You can modify the geometry of the telescope via a messenger + +/control/execute emstd.mac /payload/setNbOfTKRLayers 10 /payload/update @@ -45,6 +47,7 @@ # Flush visualization /vis/viewer/update +/run/beamOn 10 diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc index b6b6ffda2f..6bfe3079b9 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc @@ -23,7 +23,7 @@ #ifdef G4ANALYSIS_USE // // $Id: GammaRayTelAnalysis.cc,v 1.20 2004/06/01 06:59:39 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc index 31508ac481..3d727e2680 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnalysisMessenger.cc,v 1.8 2002/12/11 17:13:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc index 7b176a235a..b996840614 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnticoincidenceHit.cc,v 1.3 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc index 3396f8415b..a053e03f72 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnticoincidenceSD.cc,v 1.5 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc index 1159047f46..d56f6f3bbe 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelCalorimeterHit.cc,v 1.3 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc index 5a5f8d616f..17fb43de69 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelCalorimeterSD.cc,v 1.6 2003/11/14 14:59:48 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc index 9e6daa082a..281cd15add 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelDetectorConstruction.cc,v 1.11 2004/06/02 15:20:46 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: GammaRayTelDetectorConstruction.cc,v 1.12 2005/06/03 13:27:55 flongo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -269,7 +269,7 @@ G4VPhysicalVolume* GammaRayTelDetectorConstruction::ConstructPayload() // Payload // - solidPayload=0; logicPayload=0; physiPayload=0; + /* solidPayload=0; logicPayload=0; physiPayload=0; solidTKR=0;logicTKR=0;physiTKR=0; solidCAL=0;logicCAL=0;physiCAL=0; solidACT=0;logicACT=0;physiACT=0; @@ -283,6 +283,7 @@ G4VPhysicalVolume* GammaRayTelDetectorConstruction::ConstructPayload() solidCALDetectorY=0;logicCALDetectorY=0;physiCALDetectorY=0; solidPlane=0;logicPlane=0;physiPlane=0; aCALRegion=0; aTKRRegion=0; + */ // // Payload // @@ -681,18 +682,18 @@ G4VPhysicalVolume* GammaRayTelDetectorConstruction::ConstructPayload() G4String regName[] = {"Calorimeter","Tracker"}; - if (!aCALRegion) - { - aCALRegion = new G4Region(regName[0]); - logicCAL->SetRegion(aCALRegion); - aCALRegion->AddRootLogicalVolume(logicCAL); - } - if (!aTKRRegion) - { - aTKRRegion = new G4Region(regName[1]); - logicTKR->SetRegion(aTKRRegion); - aTKRRegion->AddRootLogicalVolume(logicTKR); - } + if (aCALRegion) delete aCALRegion; + + aCALRegion = new G4Region(regName[0]); + logicCAL->SetRegion(aCALRegion); + aCALRegion->AddRootLogicalVolume(logicCAL); + + if (aTKRRegion) delete aTKRRegion; + + aTKRRegion = new G4Region(regName[1]); + logicTKR->SetRegion(aTKRRegion); + aTKRRegion->AddRootLogicalVolume(logicTKR); + //Sensitive Detector Manager G4SDManager* SDman = G4SDManager::GetSDMpointer(); diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc index 4a6eef828e..bb853eabe4 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDetectorMessenger.cc,v 1.7 2002/12/11 17:13:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc index f838e32ead..6781eafc87 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigi.cc,v 1.3 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc index 54e4d75a4c..1148e74f5f 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigitizer.cc,v 1.4 2003/06/16 16:46:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc index 6c2ca31a0b..583e8e9aab 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigitizerMessenger.cc,v 1.4 2002/12/11 17:13:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc index aca18f294a..b08cf3bda1 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelEMPhysics.cc,v 1.2 2003/06/16 16:46:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc index 099929b525..510a990433 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelEventAction.cc,v 1.17 2003/06/16 16:46:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc index 16aa10c347..783c9b4bb7 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelHadronPhysics.cc,v 1.2 2003/06/16 16:46:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "GammaRayTelHadronPhysics.hh" diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc index 95f357a699..a894d63627 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelIonPhysics.cc,v 1.2 2003/06/16 16:46:28 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc index 3f887eb985..7955a7c8e8 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelMuonPhysics.cc,v 1.2 2003/06/16 16:46:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc index 11d52695e0..ed8f93ccb2 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPhysicsList.cc,v 1.5 2003/06/16 16:46:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc index bdd7589f2d..0ab53c142a 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelPrimaryGeneratorAction.cc,v 1.7 2004/12/10 22:52:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: GammaRayTelPrimaryGeneratorAction.cc,v 1.8 2005/06/27 15:27:33 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -116,7 +116,7 @@ void GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) do { y = G4UniformRand()*1.0; theta = G4UniformRand() * pi; - f = sin(theta); + f = std::sin(theta); } while (y > f); vertex0 = G4ThreeVector(1.,0.,0.); vertex0.setMag(dVertexRadius); @@ -130,7 +130,7 @@ void GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) do { y = G4UniformRand()*1.0; theta = G4UniformRand() * pi; - f = sin(theta); + f = std::sin(theta); } while (y > f); dir0.setPhi(phi); dir0.setTheta(theta); @@ -145,7 +145,7 @@ void GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) do { y = G4UniformRand()*1.0; theta = G4UniformRand() * halfpi; - f = sin(theta) * cos(theta); + f = std::sin(theta) * std::cos(theta); } while (y > f); vertex0 = G4ThreeVector(1.,0.,0.); @@ -203,7 +203,7 @@ void GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) do { y = G4UniformRand()*100000.0; pEnergy = G4UniformRand() * 10. * GeV; - f = pow(pEnergy * (1/GeV), -4.); + f = std::pow(pEnergy * (1/GeV), -4.); } while (y > f); particleGun->SetParticleEnergy(pEnergy); diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc index 7b98ef1ea6..c43be21811 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPrimaryGeneratorMessenger.cc,v 1.6 2002/12/11 17:13:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc index b0df8c3f15..f7844178a0 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelRunAction.cc,v 1.10 2003/06/16 16:46:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc index 61dda40bcc..5d87f19e13 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerHit.cc,v 1.3 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerROGeometry.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerROGeometry.cc index edd89f450a..cc9a8697af 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerROGeometry.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerROGeometry.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerROGeometry.cc,v 1.5 2001/11/29 11:19:18 griccard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc index 3d5178e6a2..fd3607cf00 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerSD.cc,v 1.8 2003/11/14 15:00:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc deleted file mode 100755 index bb89b11b41..0000000000 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc +++ /dev/null @@ -1,150 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// - -// -// $Id: GammaRayTelVisManager.cc,v 1.9 2003/11/13 15:09:33 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// ------------------------------------------------------------ -// GEANT 4 class implementation file -// CERN Geneva Switzerland -// -// -// ------------ GammaRayTelVisManager ------ -// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000) -// -// ************************************************************ - -#ifdef G4VIS_USE - -#include "GammaRayTelVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... - -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -GammaRayTelVisManager::GammaRayTelVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void GammaRayTelVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/hadrontherapy/G4History.macro b/examples/advanced/hadrontherapy/G4History.macro new file mode 100644 index 0000000000..518313e60f --- /dev/null +++ b/examples/advanced/hadrontherapy/G4History.macro @@ -0,0 +1,28 @@ +/run/verbose 2 +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard +/physics/addPhysics proton-LowE +/physics/addPhysics proton-hadronic +/physics/addPhysics muon +/physics/addPhysics decay +/lowEnergy/lowlimG 2.5e-4 MeV +/lowEnergy/lowlimE 2.5e-4 MeV +/lowEnergy/cutG .02 mm +/lowEnergy/cutE .02 mm +/process/list +/particle/list +/run/initialize +/lowEnergy/auger true +/lowEnergy/seceleccut 2.5e-4 MeV +/lowEnergy/secphotcut 2.5e-4 MeV +/process/activate Transportation all +/hits/activate +/hits/verbose 1 +/gun/particle proton +/beam/energy 63.4 MeV +/beam/energySpread 300 keV +/beam/spotXPosition -2000.0 mm +/tracking/verbose 0 +/tracking/storeTrajectory 0 +/run/beamOn 5 diff --git a/examples/advanced/hadrontherapy/GNUmakefile b/examples/advanced/hadrontherapy/GNUmakefile old mode 100755 new mode 100644 diff --git a/examples/advanced/hadrontherapy/Hadrontherapy.cc b/examples/advanced/hadrontherapy/Hadrontherapy.cc old mode 100755 new mode 100644 index d7c1708350..843f97dd98 --- a/examples/advanced/hadrontherapy/Hadrontherapy.cc +++ b/examples/advanced/hadrontherapy/Hadrontherapy.cc @@ -19,166 +19,121 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: Hadrontherapy.cc -// -// -------------------------------------------------------------- +// $Id: Hadrontherapy.cc Main of the Hadrontherapy example; Version 4.0 May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy // -// -// **************** Hadrontherapy **************************************** -// Hadrontherapy simulates a general transport beam line dedicated to the -// irradiation of toumors with hadron beams. -// All the elements of a typical hadron beam line (collimator, -// scattering system, range shifter, etc.) are simulated. -// Positions, dimensions and materials of such element can be changed by the users. -// Actually only proton beams can be simulated. -// All the characteristics of the incident beam can be changed. -// Two typical detectors commonly used in the hadrontherapy -// field are simulated: the Markus ionization chamber for the -// reconstruction of the depth dose distributions, -// and a gafchromic film for the reconstruction of the -// lateral dose distributions. -// ************************************************************************** - -#include -#include -#include +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4UIterminal.hh" #include "G4UItcsh.hh" - -#ifdef G4VIS_USE -#include "HadrontherapyVisManager.hh" +#ifdef G4UI_USE_XM +#include "G4UIXm.hh" #endif - +#ifdef G4VIS_USE +#include "G4VisExecutive.hh" +#endif +#include "HadrontherapyEventAction.hh" #include "HadrontherapyDetectorConstruction.hh" #include "HadrontherapyPhysicsList.hh" +#include "HadrontherapyPhantomSD.hh" #include "HadrontherapyPrimaryGeneratorAction.hh" #include "HadrontherapyRunAction.hh" -#include "HadrontherapyEventAction.hh" +#include "HadrontherapyMatrix.hh" +#include "Randomize.hh" +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UImessenger.hh" +#include "globals.hh" #include "HadrontherapySteppingAction.hh" -// ----------------------------------------------------------------------- -int main(int argc,char** argv) { +#ifdef G4ANALYSIS_USE +#include "HadrontherapyAnalysisManager.hh" +#endif - //*************************** - // choose the Random engine - //*************************** +int main(int argc ,char ** argv) +{ + G4RunManager* runManager = new G4RunManager; - HepRandom::setTheEngine(new RanecuEngine); - G4int seed = time(NULL); - HepRandom::setTheSeed(seed); - - //*********************************** - // Construct the default run manager - //*********************************** + // Initialize the geometry + runManager -> SetUserInitialization(new HadrontherapyDetectorConstruction()); - G4RunManager * runManager = new G4RunManager; + // Initialize the physics + runManager -> SetUserInitialization(new HadrontherapyPhysicsList()); - //*************************************** - // set mandatory initialization classes - //*************************************** + // Initialize the primary particles + runManager -> SetUserAction(new HadrontherapyPrimaryGeneratorAction()); - HadrontherapyDetectorConstruction* detector; - detector = new HadrontherapyDetectorConstruction; - runManager -> SetUserInitialization(detector); - runManager -> SetUserInitialization(new HadrontherapyPhysicsList(detector)); + // Initialize matrix + HadrontherapyMatrix* matrix = new HadrontherapyMatrix(); + matrix -> Initialize(); - //*********************************************** - // Set the visualization if you chose to have it! - //*********************************************** + // Optional UserActions: run, event, stepping + runManager -> SetUserAction(new HadrontherapyRunAction()); + HadrontherapyEventAction* pEventAction = new HadrontherapyEventAction(matrix); + runManager -> SetUserAction(pEventAction); + + HadrontherapySteppingAction* steppingAction = new HadrontherapySteppingAction(); + runManager -> SetUserAction(steppingAction); + + +#ifdef G4ANALYSIS_USE + HadrontherapyAnalysisManager* analysis = + HadrontherapyAnalysisManager::getInstance(); + analysis -> book(); +#endif + #ifdef G4VIS_USE - G4VisManager* visManager = new HadrontherapyVisManager; + // Visualization manager + G4VisManager* visManager = new G4VisExecutive; visManager -> Initialize(); -#endif - - //********************************** - // set mandatory user action class - //******************************** - - runManager -> SetUserAction(new HadrontherapyPrimaryGeneratorAction( detector )); - - //**************************************** - // set the optional user action classes - //*************************************** - - HadrontherapyRunAction* runaction = new HadrontherapyRunAction; - runManager -> SetUserAction(runaction); - - HadrontherapyEventAction* eventaction = new HadrontherapyEventAction( runaction ); - runManager -> SetUserAction(eventaction); +#endif + - HadrontherapySteppingAction* steppingaction = new HadrontherapySteppingAction( eventaction ); - runManager -> SetUserAction(steppingaction); - - //********************* - // Initialize G4 kernel - //********************* - - runManager -> Initialize(); - - //*********************************************** - // get the pointer to the User Interface manager - //*********************************************** - - G4UImanager* UI = G4UImanager::GetUIpointer(); - - //******************************************************************* - //Define UI terminal for interactive mode (wait command from keyboard - //or for batch mode but reading a macro file - //******************************************************************** - G4UIsession* session = 0; - - if (argc==1) // Define UI session for interactive mode. + if (argc == 1) // Define UI session for interactive mode. { - -#ifdef G4UI_USE_XM - session = new G4UIXm(argc,argv); -#else - -#ifdef G4UI_USE_TCSH - session = new G4UIterminal(new G4UItcsh); -#else session = new G4UIterminal(); -#endif -#endif - } - + } + // Get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); if (session) // Define UI session for interactive mode. - { - - UI->ApplyCommand("/control/execute defaultMacro.mac"); + { + G4cout<<" UI session starts ..."<< G4endl; + UI -> ApplyCommand("/control/execute defaultMacro.mac"); session -> SessionStart(); delete session; } - else // Batch mode - { G4String command = "/control/execute "; G4String fileName = argv[1]; - UI->ApplyCommand(command+fileName); - } - - //******************* - // job termination - //******************* + UI -> ApplyCommand(command + fileName); + } + matrix -> TotalEnergyDeposit(); + +#ifdef G4ANALYSIS_USE + analysis -> finish(); +#endif + + // Job termination #ifdef G4VIS_USE delete visManager; -#endif +#endif delete runManager; return 0; } - diff --git a/examples/advanced/hadrontherapy/History b/examples/advanced/hadrontherapy/History index 2433cda38d..e19400ab83 100644 --- a/examples/advanced/hadrontherapy/History +++ b/examples/advanced/hadrontherapy/History @@ -8,6 +8,32 @@ $Id: History, v 1.6 2004/02/27 G.A.P. Cirrone Category History file --------------------- + +30.05.2005 G.A.P. Cirrone and S.Guatelli (hadrontherapy-V07-00-06) + - Removed warnings; + - Analisys with AIDA 3.2.1 and PI 1.3.3; + - Corrected bug in the modulator wheel; + - Added the hadronic physic list for proton and ion; + - Code review + + +18.05.2005 Susanna Guatelli (hadrontherapy-V07-00-03) + - Delete public variables + - Optimisation of the detector construction + - Optimisation of the sensitive detector + - Modular physics introduced + +03.05.2005 John Allison (examples-V07-00-03) + - Replaced vis manager with G4VisExecutive. + +28.04.2005 - M.Piergentili + Modular Physics list, Primary Generator Messenger, + updated README and defaultMacro.mac, + tag: hadrontherapy-V07-00-02 + + +25.02.2005 - G.A.P. Cirrone & M.Piergentili, update of the physiscList + class to correct some bugs. 30.11.2004 - S. Guatelli, correct analysis, tag: hadrontherapy-V06-02-00 @@ -18,14 +44,20 @@ $Id: History, v 1.6 2004/02/27 G.A.P. Cirrone 28.05.2004 - S. Guatelli Update of the README, code review for public release. -27.02.2004 - G.A.P. Cirrone - Created, first version. - -13.03.2004 - G.A.P. Cirrone - Redefinition of the design. +29.03.2004 - G. Russo + Redefinition of the physics list with hadronic model. 14.03.2004 - G.A.P. Cirrone Attempt to insert AIDA class for .xml file creation. -29.03.2004 - G. Russo - Redefinition of the physics list with hadronic model. +13.03.2004 - G.A.P. Cirrone + Redefinition of the design. + +27.02.2004 - G.A.P. Cirrone + Created, first version. + + + + + + diff --git a/examples/advanced/hadrontherapy/README b/examples/advanced/hadrontherapy/README old mode 100755 new mode 100644 index 2dbc955998..1013525e65 --- a/examples/advanced/hadrontherapy/README +++ b/examples/advanced/hadrontherapy/README @@ -1,24 +1,29 @@ ========================================================= - Geant4 - Hadrontherapy example + Geant4 - Hadrontherapy example ========================================================= - README - --------------------- + README file + ---------------------- -This example is developed by G.A.Pablo Cirrone, Giorgio Russo and -Francesco Di Rosa of the Laboratori Nazionali del Sud - Istituto Nazionale -di Fisica Nucleare, Via S. Sofia, 44 Catania, Sicily, Italy (www.lns.infn.it) + AUTHORS -The authors are supported by Laboratori Nazionali del Sud, Catania and by the -Dipartimento di Fisica of Catania University, Catania. +G.A.P. CIRRONE(a *), G.CUTTONE(a), F. DI ROSA(a), G.RUSSO(a) +a. Laboratori Nazionali del Sud - Istituto Nazionale di Fisica Nucleare + 95123 Catania, Italy +* e-mail:cirrone@lns.infn.it -The authors wish to thank Susanna Guatelli and Maria Grazia Pia for -their support in the realization of the sensitive detector and -Harald Paganetti (from NPTC, Massachussets (US)) for the -help in the realization of the movement of the modulator wheel. ------------------------------------------------------------------------- -----> INTRODUCTION. +S. GUATELLI(b), M.G. PIA(b) +b. Istituto Nazionale di Fisica Nucleare, Sezione di Genova Via Dodecaneso, 33 + 16146, Genova, Italy + +More informations on the Hadrontherapy example can be found in the +Hadrontherapy Documentation available at http://www.ge.infn.it/geant4/examples/ + +Alternatevely send an e-mail to cirrone@lns.infn.it. + + +---->0. INTRODUCTION. The hadrontherapy example simulates a hadron therapy beam line. In particular the example models the specific proton therapy beam line @@ -26,9 +31,9 @@ installed at Laboratori Nazionali del Sud (INFN) in Catania, Sicily (Italy). For more information on the proton therapy center of Catania or/and proton/hadron therapy in general, please visit the pages: -> www.lns.infn.it/~catana +http://www.lns.infn.it/catanaweb/catana/ -----> GEOMETRY SET-UP. +---->1. GEOMETRY SET-UP. The elements simulated are: @@ -49,41 +54,53 @@ The elements simulated are: 5. A "nozzle" and a final collimator defining the final shape of the beam before reaching the patient. -6. A water phantom: it is a box of water inside of which the - dosimeter is placed; the dosimeter performs the measurements of - dose distributions. +6. A water phantom: it is a box of water where the energy deposit is + calculated. The use of the water phantom is required by the international protocol on the measure of dose in the case of proton and ion beams (IAEA 398, 2000). -7. A "Markus" ionisation chamber, to reconstruct the depth dose distribution - (Bragg curve). - -8. A radiographic film, to evaluate the beam lateral dose - distribution, registering the spatial distribution of the - primary particles - ------------------------------------------------------------------------- -----> 1.EXPERIMENTAL SET-UP. +---->2. EXPERIMENTAL SET-UP. -The application fully simulates the proton therapy beam line -installed at Laboratori Nazionali del Sud. Inside the water -phantom (placed at the end of the proton beam line) the Markus ionisation -chamber and a radiographic film are located; these elements permit the -reconstruction of the Bragg curve (registered on the file BraggPeak.out) -and of the lateral and energy distribution of the particles (registered -on the files energyDistribution.out and angularDistribution.out). Please -see later for the description of the produced files. -The Markus chamber is realized by means of a water cylinder (placed inside -the water phantom) with its main axis coincident with proton beam axis. -The cylinder is divided in slices and the energy deposit in each slide is -collected at the end of each run. The default thickness of the slices -is 2 micron. -The radiographic film is simulated by a plane. It is located, by default, -at the entrance window of the water phantom (the isocenter point) and -its thickness is 1. mm. +The application simulates the proton therapy beam line +installed at Laboratori Nazionali del Sud. +The default beam line is a typical treatment line composed by several elements all +devoted to create the so-called "terapeutical beam", i.e. a beam ideal +for a radiotherapeutic treatment. -------------------------------------------------------------------------- -----> 2.SET-UP + The main elements are: +** The COLLIMATORS: placed along the beam line to collimate the beam; + +** The RANGE SHIFTERS: to decrease the energy of the primary proton beam + to a specific value; + +** The MODULATOR WHEEL: to modulate the energy of the primary and monoenergetic + beam in to a wide spectrum. The energy modulation is necessary to + homogeneusly irradiate a tumour volume that can extends in depth + up to 20 mm; + +** The MONITOR CHAMBERS: very thin ionisation chamber that permit the + dose monitoring during the patient irradiation; + +** The PATIENT COLLIMATOR: a brass, tumour-shaped collimator able to + confine the proton irradiation field in order to irradiate just the tumour mass + in the trasverse direction; + +The user has the possibility to vary, via messenger, almost all the geometrical +characteristics of the beam line elements (i.e. their position along the beam line, +their thickness, etc.). More details on the available user messengers can be +found in the Hadronterapy Documentation (http://www.ge.infn.it/geant4/examples/). + +At the end of the beam line, a typical water phantom is reproduced. +A user-defined region of the phantom is divided (via the ROGeomtry class) in +cubic and identical voxels. The voxels size can be varied. At the end of the simulation +the energy deposited by primary protons, and secondaries in each voxel +is collected. This information is available as an .hbk file (if the +G4ANALYSIS_USE variable is defined). + +The default sizes of the active voxelized region are 40x40x40 mm corresponding +to a matric of 80x80x80 cubic voxels each with a lateral dimension of 0.5 mm. + +---->3. SET-UP - a standard Geant4 example GNUmakefile is provided @@ -94,7 +111,7 @@ G4SYSTEM = linux-g++ The following section reports the necessary environment variables necessary for the run of Hadrontherapy. -----> 2.1 ENVIROMENT VARIABLES +---->3.1 ENVIROMENT VARIABLES - G4SYSTEM = Linux-g++ @@ -117,12 +134,11 @@ necessary for the run of Hadrontherapy. - LD_LIBRARY_PATH = $CLHEP_BASE_DIR/lib -----> 2.2 VISUALISATION +---->3.2 VISUALISATION The user can visualise the experimental set-up with OpenGL, DAWN and vrml ------------------------------------------------------------------------- -----> 3. HOW TO RUN THE EXAMPLE. +---->4. HOW TO RUN THE EXAMPLE In interactive mode: > $G4WORDIR/bin/Linux-g++/Hadrontherapy @@ -136,82 +152,52 @@ Energy spread: 300 keV; Beam spot size: 1 mm; Beam angular spread: 0.057 deg; - -Cut per region feature permits to set different cut in different regions. -In this example it is sufficient to set a small cut inside the dosemeter -(where the information of dose distribution is collected). - -Default values are: -cut = 10 mm along the beam line; -cut = 0.2 mm inside the dosemeter; - The modulator wheel can be rotated via the messenger: -Idle>/modulator/angle/modAngle xx deg +Idle>/modulator/angle/xx deg -It is sufficient to rotate the modulator from 0 deg (default position) -to 45 deg using 1 deg steps to obtain a Spread Out Bragg Peak (SOBP). +To produce a Spread Out Bragg Peak using the modulator a macro +(modulatorMacro.mac) is provided. With this macro the modulator is +rotated of 360 degree at 1 deg steps. In each run 1000 protons are +generated as primary particles. Obviously a bigger resolution can be obtained +with smaller angles or increasing the protons number in each run. Modulator wheel can be omitted setting its material air. -run $G4WORKDIR/bin/Linux-g++/Hadrontherapy visualisation.mac +run $G4WORKDIR/bin/Linux-g++/Hadrontherapy visualisationMacro.mac to visualise the experimental set-up with OpenGL ------------------------------------------------------------------------ -----> 4. PHYSICS -Electromagnetic and hadronic processes are modeled. +---->5. PHYSICS -The LowEnergy package is used to model the electromagnetic processes -of all the particles involved in the experimental set-up. +Both electromagnetic and hadronic physic processes are activated for the particles of the +experimental set-up. +Different physics models can be choosen. Examples of activation are provided in the macro files. ------------------------------------------------------------------------- -----> 5. SIMULATION OUTPUT +---->6. SIMULATION OUTPUT -The output is in ASCII file format: +The output is an .hbk file (hadrontherapy.hbk) produced +if the variable G4ANALYSIS_USE is set to 1 and the analysis tool (AIDA +interface and PI) correctly installed. +The file contains an histogram and an n-tuple. +The histogram contains the Bragg curve: energy deposited +by the proton beam (in MeV) versus the depth in water (in mm). +The n-tuple contains the total 3D energy deposit in the phantom; the information +is energy deposit in each voxel with respect to the position of the voxel. -1.) BraggPeak.out: a two columns file. -The first column represent depth in water (mm), the second contains the energy -deposit (MeV). - -2.) energyDistribution.out: a two columns file. -The first column contains the energy deposit (in MeV) by primary particles -in the plane (radiographic film) positioned at isocenter. -The second column indicates the number of the primary particle -responsible for the energy deposit. - -3.) angularDistribution.out: a three columns file. -It contains the coordinates in millimeters (x, y, z) of a primary -particle interacting with the plane representing the radiographic film. -x direction is along the beam direction, -y and z directions are orthogonal to the beam direction. - -Alternatively, if the variable G4ANALYSIS_USE is set, an hbk file -is produced containig the Bragg peak in a histogram and in a ntuple. - -Setup for analysis: AIDA 3.2.1, PI 1.2.1 +Setup for analysis: AIDA 3.2.1, PI 1.3.3. Users can download the analysis tools from: http://aida.freehep.org/ http://www.cern.ch/PI ------------------------------------------------------------------------- -----> 6. FUTURE PLANS +Note that the same information can be stored in any different format. +Please contact cirrone@lns.infn.it if you want store the information in +a different format. -Next planned improvements will be: - -** Addition of messengers to interactively change position, dimension - and composition of all the beam line elements and of the - simulated dosimetric systems and to change cut values; - -** Addition of messenger to change energy, energy spread, - beam spot size and angular divergence of the proton beam; - -** Realization of the read-out-geometry: this will permit to collect - the energy deposit inside a voxelized three dimensional volume. - -------------------------------------------------------------------------- +--------------------------------------------------------------------------- for comments, advices, doubts and questions please contact: cirrone@lns.infn.it, giorgiorusso@lns.infn.it -last modified: Susanna Guatelli, 30/11/2004 +last modified: G.A.P. Cirrone, 3/06/2005 diff --git a/examples/advanced/hadrontherapy/currentEvent.rndm b/examples/advanced/hadrontherapy/currentEvent.rndm new file mode 100644 index 0000000000..2b85ccafca --- /dev/null +++ b/examples/advanced/hadrontherapy/currentEvent.rndm @@ -0,0 +1,4 @@ +9876 +0.022197961807250977 0.016610622406005859 0.63905793428421021 0.38329732418060303 0.69831031560897827 0.22324162721633911 0.49120819568634033 0.60197216272354126 0.81416624784469604 0.32677179574966431 0.098583340644836426 0.027431786060333252 0.78864419460296631 0.81896883249282837 0.63959956169128418 0.74596965312957764 0.72737228870391846 0.69191849231719971 0.71355444192886353 0.011820733547210693 0.48150527477264404 0.86828917264938354 0.13170522451400757 0.45347738265991211 0.10865515470504761 0.10651481151580811 0.45717793703079224 0.63406658172607422 0.64252442121505737 0.42432534694671631 0.33520448207855225 0.59798842668533325 0.13778442144393921 0.38899260759353638 0.046378612518310547 0.60150426626205444 0.12657880783081055 0.97955703735351562 0.86861729621887207 0.29879438877105713 0.801707923412323 0.21883964538574219 0.93461489677429199 0.38524562120437622 0.91090399026870728 0.023142635822296143 0.85154539346694946 0.797477126121521 0.62973660230636597 0.90060049295425415 0.34966093301773071 0.54539859294891357 0.35251176357269287 0.50419789552688599 0.52757632732391357 0.66159796714782715 0.07945704460144043 0.45850509405136108 0.97826814651489258 0.38729369640350342 0.854575514793396 0.33248835802078247 0.36078131198883057 0.34407216310501099 0.72383487224578857 0.066727101802825928 0.34445035457611084 0.14453405141830444 0.80607026815414429 0.12019360065460205 0.19166386127471924 0.47038376331329346 0.94368588924407959 0.4264257550239563 0.83205050230026245 0.4965476393699646 0.93099534511566162 0.60683536529541016 0.07124173641204834 0.9093090295791626 0.84654337167739868 0.037280023097991943 0.301094651222229 0.64763987064361572 0.37247037887573242 0.44355738162994385 0.78914976119995117 0.56561046838760376 0.13274383544921875 0.88719719648361206 0.9813460111618042 0.662750244140625 0.64443302154541016 0.43179923295974731 0.055142760276794434 0.57620424032211304 0.33779478073120117 +0.057104766368865967 0.45623308420181274 0.99999982118606567 +8 diff --git a/examples/advanced/hadrontherapy/currentRun.rndm b/examples/advanced/hadrontherapy/currentRun.rndm new file mode 100644 index 0000000000..7389aad1d6 --- /dev/null +++ b/examples/advanced/hadrontherapy/currentRun.rndm @@ -0,0 +1,4 @@ +9876 +0.17468523979187012 0.88367420434951782 0.95851153135299683 0.69001305103302002 0.025053739547729492 0.14229369163513184 0.78364866971969604 0.35608100891113281 0.21477425098419189 0.69286954402923584 0.7003016471862793 0.46510893106460571 0.22214984893798828 0.76875209808349609 0.46108907461166382 0.3976019024848938 0.52221494913101196 0.12154585123062134 0.96022659540176392 0.51089173555374146 0.011656761169433594 0.028644740581512451 0.2387765645980835 0.58521908521652222 0.78061223030090332 0.70918172597885132 0.08210599422454834 0.82860100269317627 0.61446040868759155 0.079820930957794189 0.68800175189971924 0.0097852945327758789 0.37083089351654053 0.37643462419509888 0.71018439531326294 0.86401665210723877 0.16733801364898682 0.2111402153968811 0.34923505783081055 0.52247923612594604 0.94371330738067627 0.070270776748657227 0.77874177694320679 0.63945811986923218 0.50655472278594971 0.15175133943557739 0.99012273550033569 0.56468778848648071 0.43049722909927368 0.93571525812149048 0.83971720933914185 0.52695095539093018 0.43880587816238403 0.45784467458724976 0.37172782421112061 0.54798120260238647 0.9042285680770874 0.85384637117385864 0.8782920241355896 0.28166240453720093 0.87537771463394165 0.076646625995635986 0.64350682497024536 0.80434280633926392 0.020689785480499268 0.15435659885406494 0.33504408597946167 0.54748374223709106 0.77217626571655273 0.016081452369689941 0.24611234664916992 0.24613380432128906 0.40188264846801758 0.30276846885681152 0.034525096416473389 0.47831588983535767 0.90785670280456543 0.50831210613250732 0.84525531530380249 0.57573461532592773 0.66171067953109741 0.4259905219078064 0.95411700010299683 0.15568071603775024 0.19841688871383667 0.2717059850692749 0.59724390506744385 0.68230563402175903 0.46793639659881592 0.82415002584457397 0.093294143676757812 0.47092801332473755 0.92384713888168335 0.47565126419067383 0.59589225053787231 0.47546869516372681 0.85144168138504028 +0.12241089344024658 0.45623308420181274 0.99999982118606567 +81 diff --git a/examples/advanced/hadrontherapy/defaultMacro.mac b/examples/advanced/hadrontherapy/defaultMacro.mac old mode 100755 new mode 100644 index dd1343d92e..5cd62a514d --- a/examples/advanced/hadrontherapy/defaultMacro.mac +++ b/examples/advanced/hadrontherapy/defaultMacro.mac @@ -1,18 +1,50 @@ - -#******************************** -# defaultMacro.mac +#---------------------------------------------------------------------------- +# DEFAULT MACRO FOR THE +# HADRONTHERAPY EXAMPLE # -#******************************** +# +# THIS MACRO SIMPLY PERMIT TO RUN A SIMULATION +# WITHOUT THE VISUALISATION +# +# THE RANGE SHIFTER MATERIAL AND THICKNESS CAN BE SPECIFIED +# +# NOTE THAT THE MODULATOR MATERIAL IS POLTMETHYLMETHACRILATE +# (PMMA) FOR DEFAULT. IF ONE WANT CARRY OUT A SIMULATION WITHOUT +# THE MODULATOR HE/SHE MUST SET "Air" the <> in the +# <> function of the HadrontherapyModulator.cc class +# +# USERS SHOULD GIVE A LOOK TO THE HELP OF THE IDLE TO KNOW +# THE ACTIVATED MESSSENGERS FOR THE GEOMETRY +# +# ADDITIONAL INFORMATIONS ON THE MESSENGER AVAILABLE CAN BE FOUND +# INSIDE THE HADRONTHERAPY DOCUMENTATION (http://www.ge.infn.it/geant4/examples/). +# +# ANYWAY SEND ME AN E-MAIL FOR ANY QUESTION: cirrone@lns.infn.it. +# -------------------------------------------------------------------------------- -/process/activate Transportation all -/hits/activate -/hits/verbose 0 - -/gun/particle proton +/control/verbose 1 /tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard +/physics/addPhysics ion-LowE +/physics/addPhysics muon-standard +/physics/addPhysics decay +/physics/addPhysics proton-precompound + /run/initialize -/run/beamOn 1000 - +# IF YOU WANT A RANGE SHIFTER PLEASE CHANGE +# THE FOLLOWIG PARAMETERS +# SETTING FOR THE RANGE SHIFTER +#/beamLine/RangeShifter/thickness 4 cm +#/beamLine/RangeShifter/RSMat Water +#/vis/viewer/flush +/beam/energy/meanEnergy 63.5 +/run/beamOn 300 diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyAnalysisManager.hh b/examples/advanced/hadrontherapy/include/HadrontherapyAnalysisManager.hh old mode 100755 new mode 100644 index f298cd870d..a95ddf559b --- a/examples/advanced/hadrontherapy/include/HadrontherapyAnalysisManager.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyAnalysisManager.hh @@ -19,19 +19,31 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// ---------------------------------------------------------------------------- +// $Id: HadrontherapyAnalysisManager.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: // +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + #ifdef G4ANALYSIS_USE #ifndef HADRONTHERAPYANALYSISMANAGER_HH -#define HADRONTHERAPYANALYSISMANAGER_HH +#define HADRONTHERAPYANALYSISMANAGER_HH 1 #include "globals.hh" -#include -#include "G4ThreeVector.hh" # include namespace AIDA{ class ITree; - class IDataPoint; class IAnalysisFactory; class ITreeFactory; }; @@ -43,28 +55,31 @@ private: public: ~HadrontherapyAnalysisManager(); + static HadrontherapyAnalysisManager* getInstance(); void book(); + // Book the histograms and ntuples in a .hbk file - void Energy_Dep(G4double, G4double); - void Energy_Event(G4int, G4double); + void FillEnergyDeposit(G4int voxelXId, G4int voxelYId, G4int voxelZId, + G4double energyDeposit); + // Fill the ntuple with the energy deposit in the phantom + + void BraggPeak(G4int, G4double); + // Fill 1D histogram with the Bragg peak in the phantom void finish(); + // Close the .hbk file with the histograms and the ntuples private: static HadrontherapyAnalysisManager* instance; - -private: - AIDA::IAnalysisFactory* aFact; - AIDA::ITree* theTree; - // AIDA::ITreeFactory *treeFact; + AIDA::IAnalysisFactory* aFact; + AIDA::ITree* theTree; AIDA::IHistogramFactory *histFact; - AIDA::ITupleFactory *tupFact; + AIDA::ITupleFactory *tupFact; AIDA::IHistogram1D *h1; AIDA::ITuple *ntuple; }; - #endif #endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyBeamLine.hh b/examples/advanced/hadrontherapy/include/HadrontherapyBeamLine.hh new file mode 100644 index 0000000000..f40078690b --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyBeamLine.hh @@ -0,0 +1,150 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// ---------------------------------------------------------------------------- +// $Id: HadrontherapyBeamLine.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HadrontherapyBeamLine_H +#define HadrontherapyBeamLine_H 1 + +class G4VPhysicalVolume; +class HadrontherapyMaterial; + +class HadrontherapyBeamLine +{ +public: + HadrontherapyBeamLine(G4VPhysicalVolume*); + ~HadrontherapyBeamLine(); + + void HadrontherapyBeamLineSupport(); + // Definition of the beam line support + + void HadrontherapyBeamScatteringFoils(); + // Definition of the first scattering foil, + // of the Kapton window, of the stopper + + void HadrontherapyBeamCollimators(); + // Definition of the first collimator, of the range shifter, + // of the second collimator, of the first and second + // collimator modulators + + void HadrontherapyBeamMonitoring(); + // Definition of three monitor chambers + + void HadrontherapyBeamNozzle(); + // Definition of the beam noozle + + void HadrontherapyBeamFinalCollimator(); + // Definition of the final collimator + + // The following methods allow to change parameters + // of some beam line components + + void SetRangeShifterXPosition(G4double value); + // This method allows to move the Range Shifter along + // the X axis + + void SetRangeShifterXSize(G4double halfSize); + // This method allows to change the size of the range shifter along + // the X axis + + void SetFirstScatteringFoilXSize(G4double); + // This method allows to change the size of the first scattering foil + // along the X axis + + void SetSecondScatteringFoilXSize(G4double); + // This method allows to change the size of the second scattering foil + // along the X axis + + void SetOuterRadiusStopper(G4double); + // This method allows to change the size of the outer radius of the stopper + + void SetInnerRadiusFinalCollimator(G4double); + // This method allows to change the size of the inner radius of the + // final collimator + + void SetRSMaterial(G4String); + // This method allows to change the material + // of the range shifter + +private: + G4VPhysicalVolume* physiBeamLineSupport; + G4VPhysicalVolume* physiBeamLineCover; + G4VPhysicalVolume* physiBeamLineCover2; + G4Box* firstScatteringFoil; + G4VPhysicalVolume* physiFirstScatteringFoil; + G4VPhysicalVolume* physiKaptonWindow; + G4Tubs* solidStopper; + G4VPhysicalVolume* physiStopper; + G4Box* secondScatteringFoil; + G4VPhysicalVolume* physiSecondScatteringFoil; + G4VPhysicalVolume* physiFirstCollimator; + G4VPhysicalVolume* physiHoleFirstCollimator; + G4Box* solidRangeShifterBox; + G4LogicalVolume* logicRangeShifterBox; + G4VPhysicalVolume* physiRangeShifterBox; + G4VPhysicalVolume* physiSecondCollimator; + G4VPhysicalVolume* physiHoleSecondCollimator; + G4VPhysicalVolume* physiFirstCollimatorModulatorBox; + G4VPhysicalVolume* physiHoleFirstCollimatorModulatorBox; + G4VPhysicalVolume* physiSecondCollimatorModulatorBox; + G4VPhysicalVolume* physiHoleSecondCollimatorModulatorBox; + G4VPhysicalVolume* physiFirstMonitorLayer1; + G4VPhysicalVolume* physiFirstMonitorLayer2; + G4VPhysicalVolume* physiFirstMonitorLayer3; + G4VPhysicalVolume* physiFirstMonitorLayer4; + G4VPhysicalVolume* physiSecondMonitorLayer1; + G4VPhysicalVolume* physiSecondMonitorLayer2; + G4VPhysicalVolume* physiSecondMonitorLayer3; + G4VPhysicalVolume* physiSecondMonitorLayer4; + G4VPhysicalVolume* physiThirdMonitorLayer1; + G4VPhysicalVolume* physiThirdMonitorLayer2; + G4VPhysicalVolume* physiThirdMonitorLayer3; + G4VPhysicalVolume* physiThirdMonitorLayer4; + G4VPhysicalVolume* physiNozzleSupport; + G4VPhysicalVolume* physiHoleNozzleSupport; + G4VPhysicalVolume* physiSecondHoleNozzleSupport; + G4Tubs* solidFinalCollimator; + G4VPhysicalVolume* physiFinalCollimator; + G4double firstScatteringFoilXSize; + G4double outerRadiusStopper; + G4double secondScatteringFoilXSize; + G4double rangeShifterXSize; + G4double rangeShifterXPosition; + G4double innerRadiusFinalCollimator; + G4VPhysicalVolume* mother; + HadrontherapyMaterial* material; + G4Material* RSMat; +}; +#endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyCalorHit.hh b/examples/advanced/hadrontherapy/include/HadrontherapyCalorHit.hh deleted file mode 100755 index b7a1440a86..0000000000 --- a/examples/advanced/hadrontherapy/include/HadrontherapyCalorHit.hh +++ /dev/null @@ -1,84 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: HadrontherapyCalorHit.hh,v 1.0 -// -------------------------------------------------------------- -// GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- -// Code developed by: -// -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- -#ifndef HadrontherapyCalorHit_h -#define HadrontherapyCalorHit_h 1 - -#include "G4VHit.hh" -#include "G4THitsCollection.hh" -#include "G4Allocator.hh" - -// -------------------------------------------------------------- -class HadrontherapyCalorHit : public G4VHit -{ - public: - HadrontherapyCalorHit(); - ~HadrontherapyCalorHit(); - HadrontherapyCalorHit(const HadrontherapyCalorHit&); - const HadrontherapyCalorHit& operator=(const HadrontherapyCalorHit&); - - inline void* operator new(size_t); - inline void operator delete(void*); - void Print(); - -public: - void AddAbs(G4double de, G4double dl) {EdepAbs += de; TrackLengthAbs += dl;}; - void AddGap(G4double de, G4double dl) {EdepGap += de; TrackLengthGap += dl;}; - G4double GetEdepAbs() {return EdepAbs;}; - G4double GetTrakAbs() {return TrackLengthAbs;}; - G4double GetEdepGap() {return EdepGap; }; - G4double GetTrakGap() {return TrackLengthGap;}; -private: - G4double EdepAbs, TrackLengthAbs; - G4double EdepGap, TrackLengthGap; -}; - -// ------------------------------------------------------------------- -typedef G4THitsCollection HadrontherapyCalorHitsCollection; -extern G4Allocator HadrontherapyCalorHitAllocator; - -// ------------------------------------------------------------------- -inline void* HadrontherapyCalorHit::operator new(size_t) -{ - void* aHit; - aHit = (void*) HadrontherapyCalorHitAllocator.MallocSingle(); - return aHit; -} - -// ------------------------------------------------------------------ -inline void HadrontherapyCalorHit::operator delete(void* aHit) -{ - HadrontherapyCalorHitAllocator.FreeSingle((HadrontherapyCalorHit*) aHit); -} -#endif - - diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyVisManager.hh b/examples/advanced/hadrontherapy/include/HadrontherapyDecay.hh old mode 100755 new mode 100644 similarity index 70% rename from examples/advanced/hadrontherapy/include/HadrontherapyVisManager.hh rename to examples/advanced/hadrontherapy/include/HadrontherapyDecay.hh index 3092e61413..2e37a85cf1 --- a/examples/advanced/hadrontherapy/include/HadrontherapyVisManager.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyDecay.hh @@ -19,30 +19,39 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyVisManager.hh,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyDetectorMessenger.hh; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// ------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#ifndef HADRONTHERAPYDECAY_HH +#define HADRONTHERAPYDECAY_HH 1 -#ifndef HadrontherapyVisManager_h -#define HadrontherapyVisManager_h 1 +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" +#include "G4Decay.hh" -#include "G4VisManager.hh" +class HadrontherapyDecay : public G4VPhysicsConstructor { -// ------------------------------------------------------------ -class HadrontherapyVisManager: public G4VisManager { +public: -public: - HadrontherapyVisManager (); - -private: - void RegisterGraphicsSystems (); + HadrontherapyDecay(const G4String& name = "decay"); + + virtual ~HadrontherapyDecay(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + virtual void ConstructProcess(); }; #endif + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyDetectorConstruction.hh b/examples/advanced/hadrontherapy/include/HadrontherapyDetectorConstruction.hh old mode 100755 new mode 100644 index 8240a04989..b3f2f830c4 --- a/examples/advanced/hadrontherapy/include/HadrontherapyDetectorConstruction.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyDetectorConstruction.hh @@ -19,346 +19,121 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyDetectorConstruction.hh -// -// -------------------------------------------------------------- +// $Id: HadrontherapyDetectorConstruction.hh; Version 4.0 May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) // -// -#ifndef HadrontherapyDetectorConstruction_h -#define HadrontherapyDetectorConstruction_h 1 +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HadrontherapyDetectorConstruction_H +#define HadrontherapyDetectorConstruction_H 1 -#include "G4VUserDetectorConstruction.hh" #include "globals.hh" -#include "G4UnitsTable.hh" -#include "G4ios.hh" -#include "G4Region.hh" -#include "G4RegionStore.hh" +#include "G4VUserDetectorConstruction.hh" -class G4Text; -class G4Box; -class G4Tubs; -class G4LogicalVolume; class G4VPhysicalVolume; -class G4Material; +class G4LogicalVolume; +class HadrontherapyPhantomROGeometry; +class HadrontherapyBeamLine; class HadrontherapyDetectorMessenger; -class HadrontherapyCalorimeterSD; +class HadrontherapyModulator; +class HadrontherapyPhantomSD; +class HadrontherapyMaterial; class HadrontherapyDetectorConstruction : public G4VUserDetectorConstruction { +public: -public: HadrontherapyDetectorConstruction(); + ~HadrontherapyDetectorConstruction(); + G4VPhysicalVolume* Construct(); + +private: + + void ConstructBeamLine(); + // This method allows to define the beam line geometry in the + // experimental set-up + + void ConstructPhantom(); + // This method allows to define the phantom geometry in the + // experimental set-up + + void ConstructSensitiveDetector(); + // The sensitive detector is associated to the phantom volume + public: - void SetModulatorAngle (G4double); - void SetDosemeterMaterial (G4String); - G4VPhysicalVolume* Construct(); -public: - G4double GetModulatorAngle() {return ModulatorAngle;}; - G4double ModulatorAngle; - G4int NbOfLayer; - G4double hightDosemeter; - G4double DosemeterPosition_x; - G4Material* GetDosemeterMaterial() {return DosemeterMaterial;}; - G4Material* GetWorldMaterial() {return WorldMaterial;}; - - const G4VPhysicalVolume* GetTreatmentRoom() {return physiTreatmentRoom;}; - const G4VPhysicalVolume* GetDosemeter() {return physiDosemeter;}; - -private: - G4Material* DosemeterMaterial; - G4Material* WorldMaterial; + void SetModulatorAngle(G4double angle); + // This method allows moving the modulator through UI commands - // TREATMENT ROOM - - G4Box* solidTreatmentRoom; - G4LogicalVolume* logicTreatmentRoom; - G4VPhysicalVolume* physiTreatmentRoom; - - // BEAM LINE SUPPORT + void SetRangeShifterXPosition(G4double translation); + // This method allows to move the Range Shifter along + // the X axis through UI commands - G4Box* solidBeamLineSupport; - G4LogicalVolume* logicBeamLineSupport; - G4VPhysicalVolume* physiBeamLineSupport; + void SetRangeShifterXSize(G4double halfSize); + // This method allows to change the size of the range shifter along + // the X axis through UI command. - // BEAM LINE COVER 1 (left panel) + void SetFirstScatteringFoilSize(G4double halfSize); + // This method allows to change the size of the first scattering foil + // along the X axis through UI command. - G4Box* solidBeamLineCover; - G4LogicalVolume* logicBeamLineCover; - G4VPhysicalVolume* physiBeamLineCover; + void SetSecondScatteringFoilSize (G4double halfSize); + // This method allows to change the size of the second scattering foil + // along the X axis through UI command. - // BEAM LINE COVER 2 (rigth panel) + void SetOuterRadiusStopper (G4double value); + // This method allows to change the size of the outer radius of the stopper + // through UI command. - G4Box* solidBeamLineCover2; - G4LogicalVolume* logicBeamLineCover2; - G4VPhysicalVolume* physiBeamLineCover2; + void SetInnerRadiusFinalCollimator (G4double value); + // This method allows to change the size of the inner radius of the + // final collimator through UI command. + void SetRSMaterial(G4String material); + // This method allows to change the material + // of the range shifter through UI command. - // VACUUM ZONE - - G4Box* solidVacuumZone; - G4LogicalVolume* logicVacuumZone; - G4VPhysicalVolume* physiVacuumZone; - - // FIRST SCATTERING FOIL - - G4Box* solidFirstScatteringFoil; - G4LogicalVolume* logicFirstScatteringFoil; - G4VPhysicalVolume* physiFirstScatteringFoil; - - // KAPTON WINDOW - - G4Box* solidKaptonWindow; - G4LogicalVolume* logicKaptonWindow; - G4VPhysicalVolume* physiKaptonWindow; - - // BEAM STOPPER - - G4Tubs* solidStopper; - G4LogicalVolume* logicStopper; - G4VPhysicalVolume* physiStopper; - - // SECOND SCATTERING FOIL - - G4Box* solidSecondScatteringFoil; - G4LogicalVolume* logicSecondScatteringFoil; - G4VPhysicalVolume* physiSecondScatteringFoil; - - // FIRST COLLIMATOR - - G4Box* solidFirstCollimator; - G4LogicalVolume* logicFirstCollimator; - G4VPhysicalVolume* physiFirstCollimator; - - G4Tubs* solidHoleFirstCollimator; - G4LogicalVolume* logicHoleFirstCollimator; - G4VPhysicalVolume* physiHoleFirstCollimator; - - - //FIRST MODULATOR COLLIMATOR - - G4Box* solidFirstCollimatorModulatorBox; - G4LogicalVolume* logicFirstCollimatorModulatorBox; - G4VPhysicalVolume* physiFirstCollimatorModulatorBox; - - G4Tubs* solidHoleFirstCollimatorModulatorBox; - G4LogicalVolume* logicHoleFirstCollimatorModulatorBox; - G4VPhysicalVolume* physiHoleFirstCollimatorModulatorBox; - - - - G4Box* solidMotherMod; // pointer to the solid - G4LogicalVolume* logicMotherMod; // pointer to the logical Target - G4VPhysicalVolume* physiMotherMod; - - G4Material* MotherModMater; - G4Material* Mod0Mater; - G4Material* ModMater; - - - G4Tubs* solidMod0; // pointer to the - G4LogicalVolume* logicMod0; // pointer to the - G4VPhysicalVolume* physiMod0; - - - G4Tubs* solidMod1; // pointer to the - G4LogicalVolume* logicMod1; // pointer to the - G4VPhysicalVolume* physiMod1; - - G4Tubs* solidMod2; // pointer to the - G4LogicalVolume* logicMod2; // pointer to the - G4VPhysicalVolume* physiMod2; - - G4Tubs* solidMod3; // pointer to the - G4LogicalVolume* logicMod3; // pointer to the - G4VPhysicalVolume* physiMod3; - - G4Tubs* solidMod4; // pointer to the - G4LogicalVolume* logicMod4; // pointer to the - G4VPhysicalVolume* physiMod4; - - G4Tubs* solidMod5; // pointer to the - G4LogicalVolume* logicMod5; // pointer to the - G4VPhysicalVolume* physiMod5; - - G4Tubs* solidMod6; // pointer to the - G4LogicalVolume* logicMod6; // pointer to the - G4VPhysicalVolume* physiMod6; - - G4Tubs* solidMod7; // pointer to the - G4LogicalVolume* logicMod7; // pointer to the - G4VPhysicalVolume* physiMod7; - - G4Tubs* solidMod8; // pointer to the - G4LogicalVolume* logicMod8; // pointer to the - G4VPhysicalVolume* physiMod8; - - G4Tubs* solidMod9; // pointer to the - G4LogicalVolume* logicMod9; // pointer to the - G4VPhysicalVolume* physiMod9; - - G4Tubs* solidMod10; // pointer to the - G4LogicalVolume* logicMod10; // pointer to the - G4VPhysicalVolume* physiMod10; - - G4Tubs* solidMod11; // pointer to the - G4LogicalVolume* logicMod11; // pointer to the - G4VPhysicalVolume* physiMod11; - - G4Tubs* solidMod12; // pointer to the - G4LogicalVolume* logicMod12; // pointer to the - G4VPhysicalVolume* physiMod12; - - G4Tubs* solidMod13; // pointer to the - G4LogicalVolume* logicMod13; // pointer to the - G4VPhysicalVolume* physiMod13; - - G4Tubs* solidMod14; // pointer to the - G4LogicalVolume* logicMod14; // pointer to the - G4VPhysicalVolume* physiMod14; - - G4Tubs* solidMod15; // pointer to the - G4LogicalVolume* logicMod15; // pointer to the - G4VPhysicalVolume* physiMod15; - - G4Tubs* solidMod16; // pointer to the - G4LogicalVolume* logicMod16; // pointer to the - G4VPhysicalVolume* physiMod16; - - G4Tubs* solidMod17; // pointer to the - G4LogicalVolume* logicMod17; // pointer to the - G4VPhysicalVolume* physiMod17; - - G4Tubs* solidMod18; // pointer to the - G4LogicalVolume* logicMod18; // pointer to the - G4VPhysicalVolume* physiMod18; - - G4Tubs* solidMod20; // pointer to the - G4LogicalVolume* logicMod20; // pointer to the - G4VPhysicalVolume* physiMod20; - - //SECOND MODULATOR COLLIMATOR - - G4Box* solidSecondCollimatorModulatorBox; - G4LogicalVolume* logicSecondCollimatorModulatorBox; - G4VPhysicalVolume* physiSecondCollimatorModulatorBox; - - G4Tubs* solidHoleSecondCollimatorModulatorBox; - G4LogicalVolume* logicHoleSecondCollimatorModulatorBox; - G4VPhysicalVolume* physiHoleSecondCollimatorModulatorBox; - - //SECOND COLLIMATOR - - G4Box* solidSecondCollimator; - G4LogicalVolume* logicSecondCollimator; - G4VPhysicalVolume* physiSecondCollimator; - - G4Tubs* solidHoleSecondCollimator; - G4LogicalVolume* logicHoleSecondCollimator; - G4VPhysicalVolume* physiHoleSecondCollimator; - - // FIRST MONITOR CHAMBER - - G4Box* solidFirstMonitorLayer1; - G4LogicalVolume* logicFirstMonitorLayer1; - G4VPhysicalVolume* physiFirstMonitorLayer1; - - G4Box* solidFirstMonitorLayer2; - G4LogicalVolume* logicFirstMonitorLayer2; - G4VPhysicalVolume* physiFirstMonitorLayer2; - - G4Box* solidFirstMonitorLayer3; - G4LogicalVolume* logicFirstMonitorLayer3; - G4VPhysicalVolume* physiFirstMonitorLayer3; - - G4Box* solidFirstMonitorLayer4; - G4LogicalVolume* logicFirstMonitorLayer4; - G4VPhysicalVolume* physiFirstMonitorLayer4; - - //SECODN MONITOR CHAMBER - - G4Box* solidSecondMonitorLayer1; - G4LogicalVolume* logicSecondMonitorLayer1; - G4VPhysicalVolume* physiSecondMonitorLayer1; - - G4Box* solidSecondMonitorLayer2; - G4LogicalVolume* logicSecondMonitorLayer2; - G4VPhysicalVolume* physiSecondMonitorLayer2; - - G4Box* solidSecondMonitorLayer3; - G4LogicalVolume* logicSecondMonitorLayer3; - G4VPhysicalVolume* physiSecondMonitorLayer3; - - G4Box* solidSecondMonitorLayer4; - G4LogicalVolume* logicSecondMonitorLayer4; - G4VPhysicalVolume* physiSecondMonitorLayer4; - - // THIRD MONITOR CHAMBER - - G4Box* solidThirdMonitorLayer1; - G4LogicalVolume* logicThirdMonitorLayer1; - G4VPhysicalVolume* physiThirdMonitorLayer1; - - G4Box* solidThirdMonitorLayer2; - G4LogicalVolume* logicThirdMonitorLayer2; - G4VPhysicalVolume* physiThirdMonitorLayer2; - - - G4Box* solidThirdMonitorLayer3; - G4LogicalVolume* logicThirdMonitorLayer3; - G4VPhysicalVolume* physiThirdMonitorLayer3; - - G4Box* solidThirdMonitorLayer4; - G4LogicalVolume* logicThirdMonitorLayer4; - G4VPhysicalVolume* physiThirdMonitorLayer4; - - //NOZZLE - - G4Box* solidNozzleSupport; - G4LogicalVolume* logicNozzleSupport; - G4VPhysicalVolume* physiNozzleSupport; - - G4Tubs* solidHoleNozzleSupport; - G4LogicalVolume* logicHoleNozzleSupport; - G4VPhysicalVolume* physiHoleNozzleSupport; - - G4Tubs* solidSecondHoleNozzleSupport; - G4LogicalVolume* logicSecondHoleNozzleSupport; - G4VPhysicalVolume* physiSecondHoleNozzleSupport; - - //FINAL COLLIMATOR - - G4Tubs* solidFinalCollimator; - G4LogicalVolume* logicFinalCollimator; - G4VPhysicalVolume* physiFinalCollimator; - - // WATER PHANTOM - - G4Box* solidWaterPhantom; - G4LogicalVolume* logicWaterPhantom; - G4VPhysicalVolume* physiWaterPhantom; - - //DOSEMETER (sensitive detector) - - G4Tubs* solidDosemeter; - G4LogicalVolume* logicDosemeter; - G4VPhysicalVolume* physiDosemeter; - HadrontherapyDetectorMessenger* detectorMessenger; - - HadrontherapyCalorimeterSD* calorimeterSD; //pointer to the sensitive detector + void ComputeVoxelSize() {phantomSizeX/numberOfVoxelsAlongX;} + // Returns the size of the voxel along the X axis private: - G4VPhysicalVolume* ConstructCalorimeter(); + + HadrontherapyPhantomSD* phantomSD; // Pointer to sensitive detector + + HadrontherapyPhantomROGeometry* phantomROGeometry; // Pointer to ROGeometry + + HadrontherapyBeamLine* beamLine; // Pointer to the beam line + // geometry component + + HadrontherapyModulator* modulator; // Pointer to the modulator + // geometry component + + G4VPhysicalVolume* physicalTreatmentRoom; + G4VPhysicalVolume* patientPhysicalVolume; + G4LogicalVolume* phantomLogicalVolume; + G4VPhysicalVolume* phantomPhysicalVolume; + + HadrontherapyDetectorMessenger* detectorMessenger; + HadrontherapyMaterial* material; + + G4double phantomSizeX; + G4double phantomSizeY; + G4double phantomSizeZ; + + G4int numberOfVoxelsAlongX; + G4int numberOfVoxelsAlongY; + G4int numberOfVoxelsAlongZ; }; #endif - diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyDetectorMessenger.hh b/examples/advanced/hadrontherapy/include/HadrontherapyDetectorMessenger.hh old mode 100755 new mode 100644 index cc6f4487b9..544521bd95 --- a/examples/advanced/hadrontherapy/include/HadrontherapyDetectorMessenger.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyDetectorMessenger.hh @@ -19,18 +19,20 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyDetectorMessenger.hh,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyDetectorMessenger.hh; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- - +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- #ifndef HadrontherapyDetectorMessenger_h #define HadrontherapyDetectorMessenger_h 1 @@ -39,29 +41,70 @@ class HadrontherapyDetectorConstruction; class G4UIdirectory; -class G4UIcmdWithAString; -class G4UIcmdWithAnInteger; class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; -// ------------------------------------------------------------------- class HadrontherapyDetectorMessenger: public G4UImessenger { public: - HadrontherapyDetectorMessenger(HadrontherapyDetectorConstruction* ); - ~HadrontherapyDetectorMessenger(); + HadrontherapyDetectorMessenger(HadrontherapyDetectorConstruction* ); + ~HadrontherapyDetectorMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - HadrontherapyDetectorConstruction* HadrontherapyDetector; + + // Pointer to the detector component + HadrontherapyDetectorConstruction* hadrontherapyDetector; - G4UIdirectory* HadronDir; - G4UIdirectory* detDir; - G4UIcmdWithADoubleAndUnit* ModulatorAngleCmd; + G4UIdirectory* modulatorDir; // Control of the modulator + G4UIdirectory* beamLineDir; // Control of the beam line + + G4UIdirectory* rangeShifterDir; + // Control of the range shifter component of the beam line + + G4UIdirectory* firstScatteringFoilDir; + // Control of the first scattering foil component of the beam line + + G4UIdirectory* secondScatteringFoilDir; + // Control of the first scattering foil component of the beam line + + G4UIdirectory* rangeStopperDir; + // Control of the range stopper component of the beam line + + G4UIdirectory* finalCollimatorDir; + // Control of the final collimator component of the beam line + + G4UIcmdWithADoubleAndUnit* modulatorAngleCmd; + // UI command to rotate the modulator wheel + + G4UIcmdWithAString* rangeShifterMatCmd; + // UI command to set the material of the rangeShifter component of + // the beam line + + G4UIcmdWithADoubleAndUnit* rangeShifterXSizeCmd; + // UI command to set half of the X size of the rangeShifter component of + // the beam line + + G4UIcmdWithADoubleAndUnit* rangeShifterXPositionCmd; + // UI command to change the X position of the rangeShifter component of + // the beam line + + G4UIcmdWithADoubleAndUnit* firstScatteringFoilXSizeCmd; + // UI command to set half X size of the first scattering foil of + // the beam line + + G4UIcmdWithADoubleAndUnit* secondScatteringFoilXSizeCmd; + // UI command to set half X size of the second scattering foil + // the beam line + + G4UIcmdWithADoubleAndUnit* outerRadiusStopperCmd; + // UI command to set the outer radius of the range stopper component of + // the beam line + + G4UIcmdWithADoubleAndUnit* innerRadiusFinalCollimatorCmd; + // UI command to set the inner radius of the final collimator component of + // the beam line }; - -// ---------------------------------------------------------------------- - #endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyDummySD.hh b/examples/advanced/hadrontherapy/include/HadrontherapyDummySD.hh new file mode 100644 index 0000000000..654386c5d4 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyDummySD.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#ifndef HadrontherapyDummySD_h +#define HadrontherapyDummySD_h 1 + +#include "G4VSensitiveDetector.hh" +class G4Step; + +class HadrontherapyDummySD : public G4VSensitiveDetector +{ +public: + HadrontherapyDummySD(); + ~HadrontherapyDummySD() {}; + + void Initialize(G4HCofThisEvent* ) {}; + G4bool ProcessHits(G4Step* ,G4TouchableHistory*) {return false;} + void EndOfEvent(G4HCofThisEvent*) {}; + void clear() {}; + void DrawAll() {}; + void PrintAll() {}; +}; + +HadrontherapyDummySD::HadrontherapyDummySD() : G4VSensitiveDetector("dummySD") +{} +#endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyElectronEEDL.hh b/examples/advanced/hadrontherapy/include/HadrontherapyElectronEEDL.hh new file mode 100644 index 0000000000..1eeb28ca70 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyElectronEEDL.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyElectronEEDL.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#ifndef HADRONTHERAPYELECTRONEEDL_HH +#define HADRONTHERAPYELECTRONEEDL_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyElectronEEDL : public G4VPhysicsConstructor { + +public: + + HadrontherapyElectronEEDL(const G4String& name = "electron-eedl"); + + virtual ~HadrontherapyElectronEEDL(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + virtual void ConstructProcess(); +}; + +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyElectronPenelope.hh b/examples/advanced/hadrontherapy/include/HadrontherapyElectronPenelope.hh new file mode 100644 index 0000000000..5b305db430 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyElectronPenelope.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyElectronPenelope.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#ifndef HADRONTHERAPYELECTRONPENELOPE_HH +#define HADRONTHERAPYELECTRONPENELOPE_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyElectronPenelope : public G4VPhysicsConstructor { + +public: + + HadrontherapyElectronPenelope(const G4String& name = "electron-penelope"); + + virtual ~HadrontherapyElectronPenelope(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + virtual void ConstructProcess(); +}; + +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyCalorHit.cc b/examples/advanced/hadrontherapy/include/HadrontherapyElectronStandard.hh old mode 100755 new mode 100644 similarity index 62% rename from examples/advanced/hadrontherapy/src/HadrontherapyCalorHit.cc rename to examples/advanced/hadrontherapy/include/HadrontherapyElectronStandard.hh index d10611fe41..7cf2e021df --- a/examples/advanced/hadrontherapy/src/HadrontherapyCalorHit.cc +++ b/examples/advanced/hadrontherapy/include/HadrontherapyElectronStandard.hh @@ -20,44 +20,40 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HadrontherapyCalorHit.cc,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyDetectorElectronStandard.hh; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it // -------------------------------------------------------------- -#include "HadrontherapyCalorHit.hh" -G4Allocator HadrontherapyCalorHitAllocator; -// ------------------------------------------------------------- -HadrontherapyCalorHit::HadrontherapyCalorHit() -{ - EdepAbs = 0.; TrackLengthAbs = 0.; -} +#ifndef HADRONTHERAPYELECTRONSTANDARD_HH +#define HADRONTHERAPYELECTRONSTANDARD_HH 1 -// -------------------------------------------------------------- -HadrontherapyCalorHit::~HadrontherapyCalorHit() -{ } +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" -// ---------------------------------------------------------------- -HadrontherapyCalorHit::HadrontherapyCalorHit(const HadrontherapyCalorHit& right):G4VHit() -{ - EdepAbs = right.EdepAbs; -} +class HadrontherapyElectronStandard : public G4VPhysicsConstructor { -// ----------------------------------------------------------------- -const HadrontherapyCalorHit& HadrontherapyCalorHit::operator=(const HadrontherapyCalorHit& right) -{ - EdepAbs = right.EdepAbs; - return *this; -} +public: -// --------------------------------------------------------------- -void HadrontherapyCalorHit::Print() -{ } + HadrontherapyElectronStandard(const G4String& name = "electron-standard"); + + virtual ~HadrontherapyElectronStandard(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + virtual void ConstructProcess(); +}; +#endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyEventAction.hh b/examples/advanced/hadrontherapy/include/HadrontherapyEventAction.hh old mode 100755 new mode 100644 index 1c5b0a4048..07c49f35af --- a/examples/advanced/hadrontherapy/include/HadrontherapyEventAction.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyEventAction.hh @@ -19,56 +19,46 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyEventAction.hh,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyEventAction.hh; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it // -------------------------------------------------------------- #ifndef HadrontherapyEventAction_h #define HadrontherapyEventAction_h 1 + #include "G4UserEventAction.hh" #include "globals.hh" -class HadrontherapyRunAction; -class HadrontherapyEventActionMessenger; -class HadrontherapyHit; -// --------------------------------------------------------------- +class HadrontherapyMatrix; + class HadrontherapyEventAction : public G4UserEventAction { public: - HadrontherapyEventAction(HadrontherapyRunAction* runAction ); + HadrontherapyEventAction(HadrontherapyMatrix*); ~HadrontherapyEventAction(); public: void BeginOfEventAction(const G4Event*); void EndOfEventAction(const G4Event*); - void setEventVerbose(G4int level); - void CountStepsCharged() ; - void CountStepsNeutral() ; - void AddCharged() ; - void AddNeutral() ; - void AddE(); - void AddP(); - void SetTr(); - void SetRef(); - - G4int GetEventno(); - G4int Trasporto(); - -private: - G4int event_id; - G4int calorimeterCollID; - HadrontherapyEventActionMessenger* eventMessenger; - HadrontherapyRunAction* p_Run; - G4int verboselevel; - G4double nstep; - G4double energyDep[50000]; + +private: + G4String drawFlag; //Visualisation flag + G4int hitsCollectionID; + HadrontherapyMatrix *matrix; }; + #endif + + + diff --git a/source/geometry/solids/specific/include/G4ApproxPolySolver.hh b/examples/advanced/hadrontherapy/include/HadrontherapyIonLowE.hh similarity index 63% rename from source/geometry/solids/specific/include/G4ApproxPolySolver.hh rename to examples/advanced/hadrontherapy/include/HadrontherapyIonLowE.hh index 53043dfc1d..e86eeba8ef 100644 --- a/source/geometry/solids/specific/include/G4ApproxPolySolver.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyIonLowE.hh @@ -19,49 +19,38 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// $Id: HadrontherapyIonLowE.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: // -// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) // -// -------------------------------------------------------------------- -// GEANT 4 class header file -// -// -// G4ApproxPolySolver -// -// Class description: -// -// Polynomial solver for equations of the type: -// c0 + c1 x + c2 x^2 + c3 x^3 + c4 x^4 +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- -// Author: -// Oliver Link (Oliver.Link@cern.ch) -// -// -------------------------------------------------------------------- -#ifndef __G4APPROXPOLYSOLVER__ -#define __G4APPROXPOLYSOLVER__ +#ifndef HADRONTHERAPYIONLOWE_HH +#define HADRONTHERAPYIONLOWE_HH 1 -#include "G4Types.hh" -#include "G4String.hh" -#include "geomdefs.hh" +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" -class G4ApproxPolySolver -{ +class HadrontherapyIonLowE: public G4VPhysicsConstructor { - // c0 + c1 x + c2 x^2 + c3 x^3 + c4 x^4 +public: - public: - - G4ApproxPolySolver(){} - ~G4ApproxPolySolver(){} - - public: - - G4int SolveBiQuadratic( G4double c[], G4double s[] ) const ; - G4int SolveCubic( G4double c[], G4double s[] ) const ; - G4int SolveBiQuadraticNew( G4double c[], G4double s[] ) const ; - G4int SolveCubicNew( G4double c[], G4double s[], - G4double& cubic_discr ) const ; - G4int SolveQuadratic( G4double c[], G4double s[] ) const ; + HadrontherapyIonLowE(const G4String& name = "ion-LowE"); + + virtual ~HadrontherapyIonLowE(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + virtual void ConstructProcess(); }; - #endif + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyIonStandard.hh b/examples/advanced/hadrontherapy/include/HadrontherapyIonStandard.hh new file mode 100644 index 0000000000..8aa68e0b76 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyIonStandard.hh @@ -0,0 +1,56 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyIonStandard.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HADRONTHERAPYIONSTANDARD_HH +#define HADRONTHERAPYIONSTANDARD_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyIonStandard : public G4VPhysicsConstructor { + +public: + + HadrontherapyIonStandard(const G4String& name = "ion-standard"); + + virtual ~HadrontherapyIonStandard(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + virtual void ConstructProcess(); +}; +#endif + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyMaterial.hh b/examples/advanced/hadrontherapy/include/HadrontherapyMaterial.hh new file mode 100644 index 0000000000..1d52da370d --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyMaterial.hh @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyMaterial.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HadrontherapyMaterial_H +#define HadrontherapyMaterial_H 1 + +#include "globals.hh" + +class G4Material; + +class HadrontherapyMaterial +{ +public: + HadrontherapyMaterial(); + ~ HadrontherapyMaterial(); + +public: + void DefineMaterials(); + G4Material* GetMat(G4String); // Returns the material + +private: + G4Material* matW; + G4Material* matAl; + G4Material* matSi; + G4Material* matTa; + G4Material* matCu; + G4Material* vacuum; + G4Material* matplexiglass; + G4Material* brass; + G4Material* kapton; + G4Material* matPb; + G4Material* titanium; + G4Material* matAir; + G4Material* matH2O; + G4Material* soft; + G4Material* gold; + G4Material* bone; + G4Material* muscle; +}; +#endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyMatrix.hh b/examples/advanced/hadrontherapy/include/HadrontherapyMatrix.hh new file mode 100644 index 0000000000..82c4871538 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyMatrix.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyMatrix.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HadrontherapyMatrix_H +#define HadrontherapyMatrix_H 1 + +#include "globals.hh" + +// The information: energy deposit and position in the phantom +// is stored in a matrix + +class HadrontherapyMatrix +{ +public: + HadrontherapyMatrix(); + ~HadrontherapyMatrix(); + + void Initialize(); + // All the elements of the matrix are initialised to zero + + void Fill(G4int i, G4int j, G4int k, G4double energyDeposit); + // The matrix is filled with the energy deposit + // in the element corresponding to the voxel of the phantom where + // the energy deposit was registered + + void TotalEnergyDeposit(); + // Store the information of the matrix in a ntuple and in + // a 1D Histogram + +private: + G4int numberVoxelX; + G4int numberVoxelY; + G4int numberVoxelZ; + G4double* matrix; +}; +#endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyModulator.hh b/examples/advanced/hadrontherapy/include/HadrontherapyModulator.hh new file mode 100644 index 0000000000..ef4d2d9955 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyModulator.hh @@ -0,0 +1,366 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HadrontherapyModulator_H +#define HadrontherapyModulator_H 1 + +class G4Tubs; +class G4LogicalVolume; +class G4VPhysicalVolume; + + +class HadrontherapyModulator +{ +public: + + HadrontherapyModulator(); + ~HadrontherapyModulator(); + + void BuildModulator(G4VPhysicalVolume*); + void SetModulatorAngle(G4double); + +private: + + G4RotationMatrix* rm; + G4VPhysicalVolume* physiMotherMod; + + G4Tubs* solidMod0; + G4LogicalVolume* logicMod0; + G4VPhysicalVolume* physiMod0; + + + G4Tubs* solidMod1; + G4LogicalVolume* logicMod1; + G4VPhysicalVolume* physiMod1; + + G4Tubs* solidMod2; + G4LogicalVolume* logicMod2; + G4VPhysicalVolume* physiMod2; + + G4Tubs* solidMod3; + G4LogicalVolume* logicMod3; + G4VPhysicalVolume* physiMod3; + + G4Tubs* solidMod4; + G4LogicalVolume* logicMod4; + G4VPhysicalVolume* physiMod4; + + G4Tubs* solidMod5; + G4LogicalVolume* logicMod5; + G4VPhysicalVolume* physiMod5; + + G4Tubs* solidMod6; + G4LogicalVolume* logicMod6; + G4VPhysicalVolume* physiMod6; + + G4Tubs* solidMod7; + G4LogicalVolume* logicMod7; + G4VPhysicalVolume* physiMod7; + + G4Tubs* solidMod8; + G4LogicalVolume* logicMod8; + G4VPhysicalVolume* physiMod8; + + G4Tubs* solidMod9; + G4LogicalVolume* logicMod9; + G4VPhysicalVolume* physiMod9; + + G4Tubs* solidMod10; + G4LogicalVolume* logicMod10; + G4VPhysicalVolume* physiMod10; + + G4Tubs* solidMod11; + G4LogicalVolume* logicMod11; + G4VPhysicalVolume* physiMod11; + + G4Tubs* solidMod12; + G4LogicalVolume* logicMod12; + G4VPhysicalVolume* physiMod12; + + G4Tubs* solidMod13; + G4LogicalVolume* logicMod13; + G4VPhysicalVolume* physiMod13; + + G4Tubs* solidMod14; + G4LogicalVolume* logicMod14; + G4VPhysicalVolume* physiMod14; + + G4Tubs* solidMod15; + G4LogicalVolume* logicMod15; + G4VPhysicalVolume* physiMod15; + + G4Tubs* solidMod16; + G4LogicalVolume* logicMod16; + G4VPhysicalVolume* physiMod16; + + G4Tubs* solidMod17; + G4LogicalVolume* logicMod17; + G4VPhysicalVolume* physiMod17; + + G4Tubs* solidMod18; + G4LogicalVolume* logicMod18; + G4VPhysicalVolume* physiMod18; + + G4Tubs* solidMod20; + G4LogicalVolume* logicMod20; + G4VPhysicalVolume* physiMod20; + + G4Tubs* solidMod21; + G4LogicalVolume* logicMod21; + G4VPhysicalVolume* physiMod21; + + G4Tubs* solidMod22; + G4LogicalVolume* logicMod22; + G4VPhysicalVolume* physiMod22; + + G4Tubs* solidMod23; + G4LogicalVolume* logicMod23; + G4VPhysicalVolume* physiMod23; + + G4Tubs* solidMod24; + G4LogicalVolume* logicMod24; + G4VPhysicalVolume* physiMod24; + + G4Tubs* solidMod25; + G4LogicalVolume* logicMod25; + G4VPhysicalVolume* physiMod25; + + G4Tubs* solidMod26; + G4LogicalVolume* logicMod26; + G4VPhysicalVolume* physiMod26; + + G4Tubs* solidMod27; + G4LogicalVolume* logicMod27; + G4VPhysicalVolume* physiMod27; + + G4Tubs* solidMod28; + G4LogicalVolume* logicMod28; + G4VPhysicalVolume* physiMod28; + + G4Tubs* solidMod29; + G4LogicalVolume* logicMod29; + G4VPhysicalVolume* physiMod29; + + G4Tubs* solidMod30; + G4LogicalVolume* logicMod30; + G4VPhysicalVolume* physiMod30; + + G4Tubs* solidMod31; + G4LogicalVolume* logicMod31; + G4VPhysicalVolume* physiMod31; + + G4Tubs* solidMod32; + G4LogicalVolume* logicMod32; + G4VPhysicalVolume* physiMod32; + + G4Tubs* solidMod33; + G4LogicalVolume* logicMod33; + G4VPhysicalVolume* physiMod33; + + G4Tubs* solidMod34; + G4LogicalVolume* logicMod34; + G4VPhysicalVolume* physiMod34; + + G4Tubs* solidMod35; + G4LogicalVolume* logicMod35; + G4VPhysicalVolume* physiMod35; + + G4Tubs* solidMod36; + G4LogicalVolume* logicMod36; + G4VPhysicalVolume* physiMod36; + + G4Tubs* solidMod37; + G4LogicalVolume* logicMod37; + G4VPhysicalVolume* physiMod37; + + G4Tubs* solidMod38; + G4LogicalVolume* logicMod38; + G4VPhysicalVolume* physiMod38; + + + G4Tubs* solidMod40; // pointer to the + G4LogicalVolume* logicMod40; + G4VPhysicalVolume* physiMod40; + + G4Tubs* solidMod41; + G4LogicalVolume* logicMod41; + G4VPhysicalVolume* physiMod41; + + G4Tubs* solidMod42; + G4LogicalVolume* logicMod42; + G4VPhysicalVolume* physiMod42; + + G4Tubs* solidMod43; + G4LogicalVolume* logicMod43; + G4VPhysicalVolume* physiMod43; + + G4Tubs* solidMod44; + G4LogicalVolume* logicMod44; + G4VPhysicalVolume* physiMod44; + + G4Tubs* solidMod45; + G4LogicalVolume* logicMod45; + G4VPhysicalVolume* physiMod45; + + G4Tubs* solidMod46; + G4LogicalVolume* logicMod46; + G4VPhysicalVolume* physiMod46; + + G4Tubs* solidMod47; + G4LogicalVolume* logicMod47; + G4VPhysicalVolume* physiMod47; + + G4Tubs* solidMod48; + G4LogicalVolume* logicMod48; + G4VPhysicalVolume* physiMod48; + + G4Tubs* solidMod49; + G4LogicalVolume* logicMod49; + G4VPhysicalVolume* physiMod49; + + G4Tubs* solidMod50; + G4LogicalVolume* logicMod50; + G4VPhysicalVolume* physiMod50; + + G4Tubs* solidMod51; + G4LogicalVolume* logicMod51; + G4VPhysicalVolume* physiMod51; + + G4Tubs* solidMod52; + G4LogicalVolume* logicMod52; + G4VPhysicalVolume* physiMod52; + + G4Tubs* solidMod53; + G4LogicalVolume* logicMod53; + G4VPhysicalVolume* physiMod53; + + G4Tubs* solidMod54; + G4LogicalVolume* logicMod54; + G4VPhysicalVolume* physiMod54; + + G4Tubs* solidMod55; + G4LogicalVolume* logicMod55; + G4VPhysicalVolume* physiMod55; + + G4Tubs* solidMod56; + G4LogicalVolume* logicMod56; + G4VPhysicalVolume* physiMod56; + + G4Tubs* solidMod57; + G4LogicalVolume* logicMod57; + G4VPhysicalVolume* physiMod57; + + G4Tubs* solidMod58; + G4LogicalVolume* logicMod58; + G4VPhysicalVolume* physiMod58; + + G4Tubs* solidMod60; + G4LogicalVolume* logicMod60; + G4VPhysicalVolume* physiMod60; + + G4Tubs* solidMod61; + G4LogicalVolume* logicMod61; + G4VPhysicalVolume* physiMod61; + + G4Tubs* solidMod62; + G4LogicalVolume* logicMod62; + G4VPhysicalVolume* physiMod62; + + G4Tubs* solidMod63; + G4LogicalVolume* logicMod63; + G4VPhysicalVolume* physiMod63; + + G4Tubs* solidMod64; + G4LogicalVolume* logicMod64; + G4VPhysicalVolume* physiMod64; + + G4Tubs* solidMod65; + G4LogicalVolume* logicMod65; + G4VPhysicalVolume* physiMod65; + + G4Tubs* solidMod66; + G4LogicalVolume* logicMod66; + G4VPhysicalVolume* physiMod66; + + G4Tubs* solidMod67; + G4LogicalVolume* logicMod67; + G4VPhysicalVolume* physiMod67; + + G4Tubs* solidMod68; + G4LogicalVolume* logicMod68; + G4VPhysicalVolume* physiMod68; + + G4Tubs* solidMod69; + G4LogicalVolume* logicMod69; + G4VPhysicalVolume* physiMod69; + + G4Tubs* solidMod70; + G4LogicalVolume* logicMod70; + G4VPhysicalVolume* physiMod70; + + G4Tubs* solidMod71; + G4LogicalVolume* logicMod71; + G4VPhysicalVolume* physiMod71; + + G4Tubs* solidMod72; + G4LogicalVolume* logicMod72; + G4VPhysicalVolume* physiMod72; + + G4Tubs* solidMod73; + G4LogicalVolume* logicMod73; + G4VPhysicalVolume* physiMod73; + + G4Tubs* solidMod74; + G4LogicalVolume* logicMod74; + G4VPhysicalVolume* physiMod74; + + G4Tubs* solidMod75; + G4LogicalVolume* logicMod75; + G4VPhysicalVolume* physiMod75; + + G4Tubs* solidMod76; + G4LogicalVolume* logicMod76; + G4VPhysicalVolume* physiMod76; + + G4Tubs* solidMod77; + G4LogicalVolume* logicMod77; + G4VPhysicalVolume* physiMod77; + + G4Tubs* solidMod78; + G4LogicalVolume* logicMod78; + G4VPhysicalVolume* physiMod78; + +}; +#endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyMuonStandard.hh b/examples/advanced/hadrontherapy/include/HadrontherapyMuonStandard.hh new file mode 100644 index 0000000000..290c996a27 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyMuonStandard.hh @@ -0,0 +1,56 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyMuonStandard.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#ifndef HADRONTHERAPYMUONSTANDARD_HH +#define HADRONTHERAPYMUONSTANDARD_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyMuonStandard : public G4VPhysicsConstructor { + +public: + + HadrontherapyMuonStandard(const G4String& name = "muon-standard"); + + virtual ~HadrontherapyMuonStandard(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + virtual void ConstructProcess(); +}; +#endif + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyParticles.hh b/examples/advanced/hadrontherapy/include/HadrontherapyParticles.hh new file mode 100644 index 0000000000..a762091b87 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyParticles.hh @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyParticles.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HADRONTHERAPYPARTICLES_HH +#define HADRONTHERAPYPARTICLES_HH 1 + +#include "globals.hh" +#include "G4VPhysicsConstructor.hh" + +class HadrontherapyParticles : public G4VPhysicsConstructor { +public: + + HadrontherapyParticles(const G4String& name = "particles"); + + virtual ~HadrontherapyParticles(); + + virtual void ConstructParticle(); + + // This method is dummy + virtual void ConstructProcess() {}; +}; +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPhantomHit.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPhantomHit.hh new file mode 100644 index 0000000000..a92dcf3497 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPhantomHit.hh @@ -0,0 +1,109 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhantomHit.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HadrontherapyPhantomHit_h +#define HadrontherapyPhantomHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" + +class HadrontherapyPhantomHit : public G4VHit +{ +public: + HadrontherapyPhantomHit(); + ~HadrontherapyPhantomHit(); + + HadrontherapyPhantomHit(const HadrontherapyPhantomHit &right); + + const HadrontherapyPhantomHit& operator = (const HadrontherapyPhantomHit &right); + + int operator == (const HadrontherapyPhantomHit &right) const; + + inline void *operator new(size_t); + inline void operator delete(void *aHit); + +private: + G4int xHitID; // Hit x voxel + G4int zHitID; // Hit z voxel + G4int yHitID; // Hit y voxel + G4double energyDeposit; // Energy deposit associated with the hit + +public: + // Methods to get the information - energy deposit and associated + // position in the phantom - of the hits stored in the hits collection + + inline G4int GetXID() // Get x index of the voxel + {return xHitID;} + + inline G4int GetZID() // Get y index of the voxel + {return zHitID;} + + inline G4int GetYID() // Get z index of the voxel + {return yHitID;} + + inline G4double GetEdep() // Get energy deposit + {return energyDeposit;} + + // Methods to store the information of the hit ( energy deposit, position in the phantom ) + // in the hits collection + + inline void SetEdepAndPosition(G4int xx, G4int yy, G4int zz, G4double eDep) + { + xHitID = xx; + yHitID = yy; + zHitID = zz; + energyDeposit = eDep; + } +}; + +typedef G4THitsCollection HadrontherapyPhantomHitsCollection; +extern G4Allocator HadrontherapyPhantomHitAllocator; + +inline void* HadrontherapyPhantomHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) HadrontherapyPhantomHitAllocator.MallocSingle(); + return aHit; +} + +inline void HadrontherapyPhantomHit::operator delete(void *aHit) +{ + HadrontherapyPhantomHitAllocator.FreeSingle((HadrontherapyPhantomHit*) aHit); +} +#endif + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPhantomROGeometry.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPhantomROGeometry.hh new file mode 100644 index 0000000000..2a1b81562e --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPhantomROGeometry.hh @@ -0,0 +1,72 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhantomROGeometry.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +//The phantom is devided in voxels. the dimension of the voxel is 1 mm +// +// +#ifndef HadrontherapyPhantomROGeometry_h +#define HadrontherapyPhantomROGeometry_h + +#include "G4VReadOutGeometry.hh" + +class HadrontherapyPhantomROGeometry : public G4VReadOutGeometry +{ +public: + HadrontherapyPhantomROGeometry(G4String aString, + G4double phantomDimX, + G4double phantomDimY, + G4double phantomDimZ, + G4int numberOfVoxelsX, + G4int numberOfVoxelsY, + G4int numberOfVoxelsZ); + + ~HadrontherapyPhantomROGeometry(); + +private: + G4VPhysicalVolume* Build(); + +private: + const G4double phantomSizeX; + const G4double phantomSizeY; + const G4double phantomSizeZ; + + const G4int numberOfVoxelsAlongX; + const G4int numberOfVoxelsAlongY; + const G4int numberOfVoxelsAlongZ; + + G4VPhysicalVolume *ROPhantomZDivisionPhys; +}; +#endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyCalorimeterSD.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPhantomSD.hh old mode 100755 new mode 100644 similarity index 61% rename from examples/advanced/hadrontherapy/include/HadrontherapyCalorimeterSD.hh rename to examples/advanced/hadrontherapy/include/HadrontherapyPhantomSD.hh index 7f49e463de..bca0742dca --- a/examples/advanced/hadrontherapy/include/HadrontherapyCalorimeterSD.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPhantomSD.hh @@ -19,87 +19,47 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyCalorimeterSD.cc,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyPhantomSD.hh; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- -#ifndef HadrontherapyCalorimeterSD_h -#define HadrontherapyCalorimeterSD_h 1 +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HadrontherapyPhantomSD_h +#define HadrontherapyPhantomSD_h 1 #include "G4VSensitiveDetector.hh" +#include "HadrontherapyPhantomHit.hh" #include "globals.hh" -#include "G4ios.hh" -#include "HadrontherapyHit.hh" -class HadrontherapyDetectorConstruction; -class G4HCofThisEvent; -class G4Step; -class HadrontherapyRunAction; -class HadrontherapyHit; -// ------------------------------------------------------------- -class HadrontherapyCalorimeterSD : public G4VSensitiveDetector +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; +class HadrontherapyPhantomSD : public G4VSensitiveDetector { public: - - HadrontherapyCalorimeterSD(G4String, HadrontherapyDetectorConstruction*); - ~HadrontherapyCalorimeterSD(); - + HadrontherapyPhantomSD(G4String name); + ~HadrontherapyPhantomSD(); + void Initialize(G4HCofThisEvent*); - G4bool ProcessHits(G4Step*,G4TouchableHistory*); - void EndOfEvent(G4HCofThisEvent*); - void clear(); - void PrintAll(); - + + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + + void EndOfEvent(G4HCofThisEvent*HCE); + private: - G4String filename; - G4int sliceID[50000]; - G4double energy[50000]; - G4double depth; - - HadrontherapyDetectorConstruction* Detector; - - G4double backEnergy; - G4double leakEnergy; - G4double delta; - G4double depthMax; - G4double tkinold; - G4bool part_is_out; - G4int evno; - G4int evnOld; - G4int trIDold; - G4int NbOfLayer; - HadrontherapyRunAction* p_Run; - HadrontherapyHitsCollection* CalCollection; + HadrontherapyPhantomHitsCollection *HitsCollection; + G4String sensitiveDetectorName; }; #endif - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPhotonEPDL.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPhotonEPDL.hh new file mode 100644 index 0000000000..e13e54098b --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPhotonEPDL.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhotonEPDL.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HADRONTHERAPYPHOTONEPDL_HH +#define HADRONTHERAPYPHOTONEPDL_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyPhotonEPDL : public G4VPhysicsConstructor { + +public: + + HadrontherapyPhotonEPDL(const G4String& name = "photon-epdl"); + + virtual ~HadrontherapyPhotonEPDL(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + virtual void ConstructProcess(); +}; + +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPhotonPenelope.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPhotonPenelope.hh new file mode 100644 index 0000000000..e7ef080a46 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPhotonPenelope.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: HadrontherapyPhotonPenelope.hh; Version 4.0 May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HADRONTHERAPYPHOTONPENELOPE_HH +#define HADRONTHERAPYPHOTONPENELOPE_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyPhotonPenelope : public G4VPhysicsConstructor { + +public: + + HadrontherapyPhotonPenelope(const G4String& name = "photon-penelope"); + + virtual ~HadrontherapyPhotonPenelope(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + virtual void ConstructProcess(); +}; +#endif + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPhotonStandard.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPhotonStandard.hh new file mode 100644 index 0000000000..2ece2e1328 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPhotonStandard.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhotonStandard.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef TST50PHOTONSTANDARD_HH +#define TST50PHOTONSTANDARD_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyPhotonStandard : public G4VPhysicsConstructor { + +public: + + HadrontherapyPhotonStandard(const G4String& name = "photon-standard"); + + virtual ~HadrontherapyPhotonStandard(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + virtual void ConstructProcess(); +}; + +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsList.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsList.hh old mode 100755 new mode 100644 index 42281c5ee0..e8819d2c35 --- a/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsList.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsList.hh @@ -19,69 +19,48 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// // $Id: HadrontherapyPhysicsList.hh,v 1.0 -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- #ifndef HadrontherapyPhysicsList_h #define HadrontherapyPhysicsList_h 1 -#include "G4VUserPhysicsList.hh" +#include "G4VModularPhysicsList.hh" #include "globals.hh" -class HadrontherapyDetectorConstruction; class HadrontherapyPhysicsListMessenger; -// ---------------------------------------------------------------- -class HadrontherapyPhysicsList: public G4VUserPhysicsList +class HadrontherapyPhysicsList: public G4VModularPhysicsList { public: - HadrontherapyPhysicsList( HadrontherapyDetectorConstruction*); - ~HadrontherapyPhysicsList(); - -protected: - // Construct particle and physics - void ConstructParticle(); - void ConstructProcess(); - void SetCuts(); - -protected: - // these methods Construct particles - void ConstructBosons(); - void ConstructLeptons(); - void ConstructMesons(); - void ConstructBarions(); - void ConstructIons(); + HadrontherapyPhysicsList(); + virtual ~HadrontherapyPhysicsList(); -protected: - // these methods Construct physics processes and register them - void ConstructGeneral(); - void ConstructEM(); - void ConstructHad(); - void ConstructOp(); - -public: - void SetGammaCut(G4double); - void SetElectronCut(G4double); - void SetProtonCut(G4double); - void GetRange(G4double); - void SetMaxStep(G4double); + virtual void SetCuts(); + void AddPhysicsList(const G4String& name); private: - G4double cutForGamma; - G4double cutForElectron; - G4double cutForProton; - G4double currentDefaultCut; - G4double defaultCutValue; - HadrontherapyDetectorConstruction* pDet; - HadrontherapyPhysicsListMessenger* physicsListMessenger; + G4bool electronIsRegistered; + G4bool positronIsRegistered; + G4bool photonIsRegistered; + G4bool ionIsRegistered; + G4bool protonPrecompoundIsRegistered; + G4bool chargedParticleIsRegistered; + G4bool muonIsRegistered; + G4bool decayIsRegistered; + + HadrontherapyPhysicsListMessenger* messenger; }; #endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsListMessenger.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsListMessenger.hh new file mode 100644 index 0000000000..8f00852cf6 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsListMessenger.hh @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhisicsListMessenger.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HADRONTHERAPYPHYSICSLISTMESSENGER_HH +#define HADRONTHERAPYPHYSICSLISTMESSENGER_HH 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class HadrontherapyPhysicsList; +class G4UIdirectory; +class G4UIcmdWithoutParameter; +class G4UIcmdWithADouble; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithABool; +class G4UIcmdWithAString; + +class HadrontherapyPhysicsListMessenger: public G4UImessenger { + +public: + + HadrontherapyPhysicsListMessenger(HadrontherapyPhysicsList* physList); + + ~HadrontherapyPhysicsListMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + +private: + + HadrontherapyPhysicsList* physicsList; + G4UIdirectory* listDir; + G4UIcmdWithAString* physicsListCmd; +}; + +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPositronPenelope.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPositronPenelope.hh new file mode 100644 index 0000000000..af3e5a2293 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPositronPenelope.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPositronPenelope.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HADRONTHERAPYPOSITRONPENELOPE_HH +#define HADRONTHERAPYPOSITRONPENELOPE_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyPositronPenelope : public G4VPhysicsConstructor { + +public: + + HadrontherapyPositronPenelope(const G4String& name = "positron-penelope"); + + virtual ~HadrontherapyPositronPenelope(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + virtual void ConstructProcess(); +}; + +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPositronStandard.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPositronStandard.hh new file mode 100644 index 0000000000..57faea9863 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPositronStandard.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPositronStandard.hh May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HADRONTHERAPYPOSITRONSTANDARD_HH +#define HADRONTHERAPYPOSITRONSTANDARD_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyPositronStandard : public G4VPhysicsConstructor { + +public: + + HadrontherapyPositronStandard(const G4String& name = "positron-standard"); + + virtual ~HadrontherapyPositronStandard(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + + virtual void ConstructProcess(); +}; + +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorAction.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorAction.hh old mode 100755 new mode 100644 index 8d1d41ba8b..4248ecce80 --- a/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorAction.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorAction.hh @@ -1,3 +1,4 @@ + // // ******************************************************************** // * DISCLAIMER * @@ -19,18 +20,20 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyPrimaryGeneratorAction.hh,v 1.0 -// -// -------------------------------------------------------------- +// $Id: HadrontherapyPrimaryGeneratorAction.hh; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// ----------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- #ifndef HadrontherapyPrimaryGeneratorAction_h #define HadrontherapyPrimaryGeneratorAction_h 1 @@ -40,33 +43,43 @@ class G4ParticleGun; class G4Event; -class HadrontherapyDetectorConstruction; + class HadrontherapyPrimaryGeneratorMessenger; class HadrontherapyPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction - -// --------------------------------------------------------------------------- { public: - HadrontherapyPrimaryGeneratorAction(HadrontherapyDetectorConstruction*); + HadrontherapyPrimaryGeneratorAction(); ~HadrontherapyPrimaryGeneratorAction(); public: - void SetDefaultKinematic(); - void GeneratePrimaries(G4Event*); + -private: - G4ParticleGun* particleGun; - HadrontherapyDetectorConstruction* HadrontherapyDetector; + void SetsigmaEnergy(G4double); + void SetmeanKineticEnergy(G4double); + void SetDefaultPrimaryParticle(); + void GeneratePrimaries(G4Event*); + void SetXposition(G4double); + void SetYposition(G4double); + void SetZposition(G4double); + void SetsigmaY(G4double); + void SetsigmaZ(G4double); + void SetsigmaMomentumY(G4double); + void SetsigmaMomentumZ(G4double); + G4double meanKineticEnergy; + G4double sigmaEnergy; G4double X0; G4double Y0; G4double Z0; - - G4double sigmaX; G4double sigmaY; G4double sigmaZ; + G4double sigmaMomentumY; + G4double sigmaMomentumZ; - HadrontherapyPrimaryGeneratorMessenger* gunMessenger; +private: + G4ParticleGun* particleGun; + HadrontherapyPrimaryGeneratorMessenger* gunMessenger; + G4double sigmaX; }; #endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorMessenger.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..cd128b058e --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorMessenger.hh @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPrimaryGeneratorMessenger.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HadrontherapyPrimaryGeneratorMessenger_h +#define HadrontherapyPrimaryGeneratorMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class HadrontherapyPrimaryGeneratorAction; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithADouble; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class HadrontherapyPrimaryGeneratorMessenger: public G4UImessenger +{ + public: + HadrontherapyPrimaryGeneratorMessenger(HadrontherapyPrimaryGeneratorAction*); + ~HadrontherapyPrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + + private: + HadrontherapyPrimaryGeneratorAction* HadrontherapyAction; + G4UIdirectory* beamParametersDir; + G4UIdirectory* EnergyDir; + G4UIdirectory* particlePositionDir; + G4UIdirectory* MomentumDir; + G4UIcmdWithADoubleAndUnit* meanKineticEnergyCmd; + G4UIcmdWithADoubleAndUnit* sigmaEnergyCmd; + G4UIcmdWithADoubleAndUnit* XpositionCmd; + G4UIcmdWithADoubleAndUnit* YpositionCmd; + G4UIcmdWithADoubleAndUnit* ZpositionCmd; + G4UIcmdWithADoubleAndUnit* sigmaYCmd; + G4UIcmdWithADoubleAndUnit* sigmaZCmd; + G4UIcmdWithADouble* sigmaMomentumYCmd; + G4UIcmdWithADouble* sigmaMomentumZCmd; + + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompound.hh b/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompound.hh new file mode 100644 index 0000000000..478e7d997d --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompound.hh @@ -0,0 +1,165 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyProtonPrecompound.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#ifndef HadrontherapyProtonPrecompound_h +#define HadrontherapyProtonPrecompound_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" +#include "G4ExcitationHandler.hh" + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4ProtonInelasticProcess.hh" + +#include "G4ProcessManager.hh" + +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" + +#include "G4ProtonInelasticCrossSection.hh" +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4ExcitedStringDecay.hh" +// For neutron +#include "G4HENeutronInelastic.hh" +#include "G4LENeutronInelastic.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4NeutronInelasticCrossSection.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronHPElastic.hh" +#include "G4NeutronHPElasticData.hh" +#include "G4NeutronHPInelastic.hh" +#include "G4NeutronHPInelasticData.hh" +// For ions +#include "G4TripathiCrossSection.hh" +#include "G4IonsShenCrossSection.hh" +#include "G4HadronInelasticProcess.hh" +#include "G4BinaryLightIonReaction.hh" +#include "G4BinaryCascade.hh" +#include "G4IonInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" + +#include "G4PionPlusInelasticProcess.hh" +#include "G4PionMinusInelasticProcess.hh" +#include "G4PiNuclearCrossSection.hh" + +class G4HadronInelasticProcess; + +class HadrontherapyProtonPrecompound: public G4VPhysicsConstructor +{ +public: + HadrontherapyProtonPrecompound(const G4String& name = "proton-precompound"); + virtual ~HadrontherapyProtonPrecompound(); + +protected: + // Construct particle and physics + void ConstructParticle(){}; + void ConstructProcess(); + +private: + + // Proton inelastic proces + G4ProtonInelasticProcess protonInelasticScattering; + + // Cross Section for proton inelastic process + G4ProtonInelasticCrossSection protonInelasticCrossSection; + + // Neutron inelastic process + G4NeutronInelasticProcess neutronInelasticScattering; + + // Cross Section for neutron inelastic process + G4NeutronInelasticCrossSection neutronInelasticCrossSection; + + // Pion plus inelastic process + G4PionPlusInelasticProcess pionPlusInelasticScattering; + + // Cross sections for Pion plus inelastic process + G4PiNuclearCrossSection pionPlusInelasticCrossSection; + + // Pion minus inelastic process + G4PionMinusInelasticProcess pionMinusInelasticScattering; + + // Cross section for Pion minus inelastic process + G4PiNuclearCrossSection pionMinusInelasticCrossSection; + + // Deuteron inelastic process + G4DeuteronInelasticProcess deuteronInelasticScattering; + + // Tritium inelastic process + G4TritonInelasticProcess tritonInelasticScattering; + + // Alpha inelastic process + G4AlphaInelasticProcess alphaInelasticScattering; + + // He3 inelastic process + G4HadronInelasticProcess* He3InelasticProcess; + G4TripathiCrossSection* TripathiCrossSection; + G4IonsShenCrossSection* ShenCrossSection; + + G4double binaryLightIonLowLimit; + G4double binaryLightIonHighLimit; + G4double LEPHighLimit; + G4double precompoundLowLimit; + G4double precompoundHighLimit; + G4double neutronLowLimit; + G4double neutronHighLimit; + + G4ExcitationHandler theHandler; +}; +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyRunAction.hh b/examples/advanced/hadrontherapy/include/HadrontherapyRunAction.hh old mode 100755 new mode 100644 index faf3934372..8829cff915 --- a/examples/advanced/hadrontherapy/include/HadrontherapyRunAction.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyRunAction.hh @@ -19,74 +19,64 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyRunAction.hh,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyRunAction.hh,v 3.0, September 2004; +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- #ifndef HadrontherapyRunAction_h #define HadrontherapyRunAction_h 1 #include "G4UserRunAction.hh" +#include "G4RunManager.hh" #include "globals.hh" -#include -// ------------------------------------------------------------- class G4Run; +class HadrontherapyAnalysisManager; +class HadrontherapyDetectorConstruction; +class HadrontherapyRunMessenger; +class HadrontherapyFactory; +class HadrontherapyFactoryIr; +class HadrontherapyFactoryI; + -#ifndef G4NOHIST -namespace AIDA { - class ITree; - class IHistogram1D; -} -#endif -// ------------------------------------------------------------- class HadrontherapyRunAction : public G4UserRunAction { - public: - HadrontherapyRunAction(); - ~HadrontherapyRunAction(); - -G4double energy[50000]; - +public: + HadrontherapyRunAction(); + ~HadrontherapyRunAction(); + public: void BeginOfRunAction(const G4Run*); - void EndOfRunAction(const G4Run*); -G4int GetProva(); - - void EnergyTotSlice(G4int, G4double); - void EnergyTotMarkus(); - -#ifndef G4NOHIST - AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} -#endif + void EndOfRunAction(const G4Run* ); + void SelectEnergy(G4int); private: - void bookHisto(); - - private: -G4String histName; - -#ifndef G4NOHIST - AIDA::ITree* tree; - AIDA::IHistogram1D* histo[10]; -#endif -G4int NbOfLayer; -G4int slice; + G4String sensitiveDetectorName; + HadrontherapyDetectorConstruction* detector; + HadrontherapyRunMessenger* runMessenger; + HadrontherapyFactory *factory; + G4int sourceChoice; //select primary particle -private: -G4int prova; -G4double energy_dep; + + G4double matrix[80][80][80]; + G4int indexI; + G4int indexJ; + G4int indexK; }; - #endif + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapySteppingAction.hh b/examples/advanced/hadrontherapy/include/HadrontherapySteppingAction.hh old mode 100755 new mode 100644 index ea4900d021..5b2d31d330 --- a/examples/advanced/hadrontherapy/include/HadrontherapySteppingAction.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapySteppingAction.hh @@ -19,17 +19,21 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapySteppingAction.cc,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyProtonSteppingAction.hh; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + #ifndef HadrontherapySteppingAction_h #define HadrontherapySteppingAction_h 1 @@ -45,7 +49,7 @@ class HadrontherapyRunAction; class HadrontherapyEventAction; class HadrontherapySteppingMessenger; -// --------------------------------------------------------------- + #ifndef G4NOHIST class HepTupleManager; class HepHistogram; @@ -54,18 +58,9 @@ class HadrontherapySteppingMessenger; class HadrontherapySteppingAction : public G4UserSteppingAction { public: - HadrontherapySteppingAction( HadrontherapyEventAction* ); + HadrontherapySteppingAction( ); ~HadrontherapySteppingAction(); void UserSteppingAction(const G4Step*); - - G4int event_id; - G4int Controllo; - -private: - HadrontherapyDetectorConstruction* detector; - HadrontherapyEventAction* eventaction; - HadrontherapyRunAction* runaction; - HadrontherapySteppingMessenger* steppingMessenger; }; #endif diff --git a/examples/advanced/hadrontherapy/modulatorMacro.mac b/examples/advanced/hadrontherapy/modulatorMacro.mac new file mode 100644 index 0000000000..2e94daea2e --- /dev/null +++ b/examples/advanced/hadrontherapy/modulatorMacro.mac @@ -0,0 +1,1207 @@ + +# --------------------------------------------------------- +# THIS MACRO PERMIT TO RECONSTRUCT THE SPREAD OUT BRAGG PEAK +# MODULATING THE PROTON BEAM ENERGY BY MEANS OF A ROTATING +# MODULATOR WHEEL. +# HERE THE WHEEL IS ROTATED OF 1 DEGREE AT EACH RUN AND +# ONE THOUSAND PROTON HYSTORIES ARE SIMULATED IN EACH +# RUN +# IN ORDER TO INCREASE THE RESOLUTION MORE EVENT CAN ADDED +# OR A SMALLER ANGLE CAN BE CHOSEN. +# +# NOTE THAT THE MODULATOR MATERIAL IS POLTMETHYLMETHACRILATE +# (PMMA) FOR DEFAULT. IF ONE WANT CARRY OUT A SIMULATION WITHOUT +# THE MODULATOR HE/SHE MUST SET "Air" the <> in the +# <> function of the HadrontherapyModulator.cc class +# +# USERS SHOULD GIVE A LOOK TO THE HELP OF THE IDLE TO KNOW +# THE ACTIVATED MESSSENGERS FOR THE GEOMETRY +# +# ADDITIONAL INFORMATIONS ON THE MESSENGER AVAILABLE CAN BE FOUND +# INSIDE THE HADRONTHERAPY DOCUMENTATION (http://www.ge.infn.it/geant4/examples/). +# +# ANYWAY SEND ME AN E-MAIL FOR ANY QUESTION: cirrone@lns.infn.it. +# -------------------------------------------------------------------------------- + +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SET OF THE PHYSICS PRTOCESSES +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard +/physics/addPhysics ion-LowE +/physics/addPhysics muon-standard +/physics/addPhysics decay +/physics/addPhysics proton-hadronic + +/run/initialize + +# SET OF THE VISUALISATION CHARACTERISTICS +/vis/scene/create +/vis/open OGLIX +/vis/viewer/zoom 5.5 +/vis/viewer/set/viewpointThetaPhi 50 130 deg +/vis/viewer/pan -60 40 cm +/tracking/storeTrajectory 1 +/vis/scene/endOfEventAction accumulate + +# IF YOU WANT A RANGE SHIFTER PLEASE CHANGE +# THE FOLLOWIG PARAMETERS +# SETTING FOR THE RANGE SHIFTER + +/beamLine/RangeShifter/RSMat Air +/beamLine/RangeShifter/thickness 1 cm + + +# START OF THE MODULATOR ROTATION +# IT CONSISTS IN A COMPLETE ROTATION +# OF THE WHHEEL (360 DEG) + +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 +/vis/viewer/flush + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 10 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + +/modulator/angle 1 deg +/run/beamOn 1000 + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyAnalysisManager.cc b/examples/advanced/hadrontherapy/src/HadrontherapyAnalysisManager.cc old mode 100755 new mode 100644 index d0901b5a21..f6ed2f88ca --- a/examples/advanced/hadrontherapy/src/HadrontherapyAnalysisManager.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyAnalysisManager.cc @@ -19,66 +19,47 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyAnalysisManager.cc,v 1.0 -// -// -------------------------------------------------------------- +// $Id: HadrontherapyAnalisysManager.cc; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- #ifdef G4ANALYSIS_USE -#include -#include #include "HadrontherapyAnalysisManager.hh" -#include "G4ios.hh" -#include "AIDA/IHistogram1D.h" -#include "AIDA/IManagedObject.h" -#include "AIDA/IAnalysisFactory.h" -#include "AIDA/IHistogramFactory.h" -#include "AIDA/ITupleFactory.h" -#include "AIDA/ITreeFactory.h" -#include "AIDA/ITree.h" -#include "AIDA/ITuple.h" HadrontherapyAnalysisManager* HadrontherapyAnalysisManager::instance = 0; HadrontherapyAnalysisManager::HadrontherapyAnalysisManager() : aFact(0), theTree(0), histFact(0), tupFact(0), h1(0), ntuple(0) -{ - //build up the factories - aFact = AIDA_createAnalysisFactory(); - AIDA::ITreeFactory *treeFact = aFact->createTreeFactory(); - - //parameters for the TreeFactory - - G4String fileName="protontherapy.hbk"; - theTree = treeFact->create(fileName,"hbook",false, true); - delete treeFact; - histFact = aFact->createHistogramFactory( *theTree ); - tupFact = aFact->createTupleFactory ( *theTree ); +{ } HadrontherapyAnalysisManager::~HadrontherapyAnalysisManager() { delete ntuple; - ntuple=0; + ntuple = 0; delete h1; - h1=0; + h1 = 0; delete tupFact; - tupFact=0; + tupFact = 0; delete histFact; - histFact=0; + histFact = 0; delete theTree; - theTree=0; + theTree = 0; delete aFact; aFact = 0; @@ -92,41 +73,61 @@ HadrontherapyAnalysisManager* HadrontherapyAnalysisManager::getInstance() void HadrontherapyAnalysisManager::book() { - - h1 = histFact -> createHistogram1D("10","slice, energy", - 40*4 ,-2.,40. ); - G4String columnNames = "int slice; double En;"; - G4String options = ""; - if (tupFact) ntuple = tupFact->create("1","1",columnNames, options); + // Build up the analysis factory + aFact = AIDA_createAnalysisFactory(); + AIDA::ITreeFactory* treeFact = aFact -> createTreeFactory(); + + // Create the .hbk file + G4String fileName = "hadrontherapy.hbk"; + theTree = treeFact -> create(fileName,"hbook",false,true); + delete treeFact; + + // Create the histogram and the ntuple factory + histFact = aFact -> createHistogramFactory(*theTree); + tupFact = aFact -> createTupleFactory(*theTree); + + // Create the histogram + h1 = histFact -> createHistogram1D("10","slice, energy", 80, 0., 80. ); + + // Create the ntuple + G4String columnNames = "int i; int j; int k; double energy;"; + G4String options = ""; + if (tupFact) ntuple = tupFact->create("1","1",columnNames, options); } -void HadrontherapyAnalysisManager::Energy_Dep(G4double slice, G4double En) +void HadrontherapyAnalysisManager::FillEnergyDeposit(G4int i, + G4int j, + G4int k, + G4double energy) { if (ntuple) { - G4int islice = ntuple -> findColumn("slice" ); - G4int iEn = ntuple -> findColumn("En" ); + G4int iSlice = ntuple -> findColumn("i"); + G4int jSlice = ntuple -> findColumn("j"); + G4int kSlice = ntuple -> findColumn("k"); + G4int iEnergy = ntuple -> findColumn("energy"); - ntuple -> fill(islice,slice); - ntuple -> fill(iEn, En); + ntuple -> fill(iSlice,i); + ntuple -> fill(jSlice,j); + ntuple -> fill(kSlice,k); + ntuple -> fill(iEnergy, energy); } + ntuple -> addRow(); } -void HadrontherapyAnalysisManager::Energy_Event(G4int slice, G4double En) +void HadrontherapyAnalysisManager::BraggPeak(G4int slice, G4double energy) { - h1 -> fill(slice,En); + h1 -> fill(slice,energy); } void HadrontherapyAnalysisManager::finish() { - // write all histograms to file + // Write all histograms to file theTree -> commit(); - G4cout<<" commit done"<close(); - G4cout<<" close() done"< GetMat("Air") ; + RSMat = air; +} + +HadrontherapyBeamLine::~HadrontherapyBeamLine() +{ + delete material; +} + +void HadrontherapyBeamLine::HadrontherapyBeamLineSupport() +{ + // ------------------// + // Beam line support // + //-------------------// + + const G4double beamLineSupportXSize = 1.5*m; + const G4double beamLineSupportYSize = 20.*mm; + const G4double beamLineSupportZSize = 600.*mm; + + const G4double beamLineSupportXPosition = -1948.59 *mm; + const G4double beamLineSupportYPosition = -230. *mm; + const G4double beamLineSupportZPosition = 0.*mm; + + G4Material* Al = material -> GetMat("MatAluminum"); + + G4Box* beamLineSupport = new G4Box("BeamLineSupport", + beamLineSupportXSize, + beamLineSupportYSize, + beamLineSupportZSize); + + G4LogicalVolume* logicBeamLineSupport = new G4LogicalVolume(beamLineSupport, + Al, + "BeamLineSupport"); + physiBeamLineSupport = new G4PVPlacement(0, G4ThreeVector(beamLineSupportXPosition, + beamLineSupportYPosition, + beamLineSupportZPosition), + "BeamLineSupport", + logicBeamLineSupport, + mother, false, 0); + + // Visualisation attributes of the beam line support + G4VisAttributes * gray = new G4VisAttributes( G4Colour(0.5, 0.5, 0.5 )); + gray-> SetVisibility(true); + gray-> SetForceSolid(true); + logicBeamLineSupport -> SetVisAttributes(gray); + + //---------------------------------// + // Beam line cover 1 (left panel) // + //---------------------------------// + + const G4double beamLineCoverXSize = 1.5*m; + const G4double beamLineCoverYSize = 750.*mm; + const G4double beamLineCoverZSize = 10.*mm; + + const G4double beamLineCoverXPosition = -1948.59 *mm; + const G4double beamLineCoverYPosition = -980.*mm; + const G4double beamLineCoverZPosition = 600.*mm; + + G4Box* beamLineCover = new G4Box("BeamLineCover", + beamLineCoverXSize, + beamLineCoverYSize, + beamLineCoverZSize); + + G4LogicalVolume* logicBeamLineCover = new G4LogicalVolume(beamLineCover, + Al, + "BeamLineCover"); + + physiBeamLineCover = new G4PVPlacement(0, G4ThreeVector(beamLineCoverXPosition, + beamLineCoverYPosition, + beamLineCoverZPosition), + "BeamLineCover", + logicBeamLineCover, + mother, + false, + 0); + + // ---------------------------------// + // Beam line cover 2 (rigth panel) // + // ---------------------------------// + + // It has the same characteristic of beam line cover 1 but set in a different position + physiBeamLineCover2 = new G4PVPlacement(0, G4ThreeVector(beamLineCoverXPosition, + beamLineCoverYPosition, + - beamLineCoverZPosition), + "BeamLineCover2", + logicBeamLineCover, + mother, + false, + 0); + + // Visualisation attributes of the beam line covers + G4VisAttributes* blue = new G4VisAttributes(G4Colour(0. ,0. ,1.)); + blue -> SetVisibility(true); + blue -> SetForceSolid(true); + logicBeamLineCover -> SetVisAttributes(blue); +} + +void HadrontherapyBeamLine::HadrontherapyBeamScatteringFoils() +{ + // ------------// + // Vacuum area // + //-------------// + + const G4double vacuumZoneXSize = 60.5325 *mm; + const G4double vacuumZoneYSize = 52.5 *mm; + const G4double vacuumZoneZSize = 52.5 *mm; + + const G4double vacuumZoneXPosition = -3188.05750 *mm; + + G4Material* vacuum = material -> GetMat("Galactic"); + + G4Box* vacuumZone = new G4Box("VacuumZone", vacuumZoneXSize, vacuumZoneYSize, vacuumZoneZSize); + + G4LogicalVolume* logicVacuumZone = new G4LogicalVolume(vacuumZone, vacuum, "VacuumZone"); + + G4VPhysicalVolume* physiVacuumZone = new G4PVPlacement(0, G4ThreeVector(vacuumZoneXPosition, 0., 0.), + "VacuumZone", + logicVacuumZone, + mother, + false, + 0); + // ----------------------// + // First scattering foil // + // ----------------------// + + const G4double firstScatteringFoilYSize = 52.5 *mm; + const G4double firstScatteringFoilZSize = 52.5 *mm; + + const G4double firstScatteringFoilXPosition = -59.525 *mm; + + G4Material* Ta = material -> GetMat("MatTantalum"); + + firstScatteringFoil = new G4Box("FirstScatteringFoil", + firstScatteringFoilXSize, + firstScatteringFoilYSize, + firstScatteringFoilZSize); + + G4LogicalVolume* logicFirstScatteringFoil = new G4LogicalVolume(firstScatteringFoil, + Ta, + "FirstScatteringFoil"); + + physiFirstScatteringFoil = new G4PVPlacement(0, G4ThreeVector(firstScatteringFoilXPosition, + 0., + 0.), + "FirstScatteringFoil", + logicFirstScatteringFoil, + physiVacuumZone, + false, + 0); + + // --------------// + // Kapton Window // + //---------------// + + G4Material* kapton = material -> GetMat("Kapton") ; + + const G4double kaptonWindowXSize = 0.025*mm; + const G4double kaptonWindowYSize = 5.25*cm; + const G4double kaptonWindowZSize = 5.25*cm; + const G4double kaptonWindowXPosition = 60.5075*mm; + + G4Box* solidKaptonWindow = new G4Box("KaptonWindow", + kaptonWindowXSize, + kaptonWindowYSize, + kaptonWindowZSize); + + G4LogicalVolume* logicKaptonWindow = new G4LogicalVolume(solidKaptonWindow, + kapton, + "KaptonWindow"); + + physiKaptonWindow = new G4PVPlacement(0, G4ThreeVector(kaptonWindowXPosition, 0., 0.), + "KaptonWindow", + logicKaptonWindow, + physiVacuumZone, + false, + 0); + + G4VisAttributes * white = new G4VisAttributes( G4Colour()); + white -> SetVisibility(true); + white -> SetForceSolid(true); + + logicKaptonWindow -> SetVisAttributes(white); + + // --------// + // Stopper // + //---------// + + G4double phi = 90. *deg; + // Matrix definition for a 90 deg rotation with respect to Y axis + G4RotationMatrix rm; + rm.rotateY(phi); + + const G4double innerRadiusStopper = 0.*cm; + const G4double hightStopper = 3.5*mm; + const G4double startAngleStopper = 0.*deg; + const G4double spanningAngleStopper = 360.*deg; + + const G4double stopperXPosition = -2956.02 *mm; + const G4double stopperYPosition = 0.*m; + const G4double stopperZPosition = 0.*m; + + solidStopper = new G4Tubs("Stopper", + innerRadiusStopper, + outerRadiusStopper, + hightStopper, + startAngleStopper, + spanningAngleStopper); + + G4Material* brass = material -> GetMat("Brass") ; + + G4LogicalVolume* logicStopper = new G4LogicalVolume(solidStopper, brass, "Stopper", 0, 0, 0); + + physiStopper = new G4PVPlacement(G4Transform3D(rm, G4ThreeVector(stopperXPosition, + stopperYPosition, + stopperZPosition)), + "Stopper", + logicStopper, + mother, + false, + 0); + + G4VisAttributes * red = new G4VisAttributes(G4Colour(1. ,0. ,0.)); + red-> SetVisibility(true); + red-> SetForceSolid(true); + logicStopper -> SetVisAttributes(red); + + // -----------------------// + // Second scattering foil // + // -----------------------// + + const G4double secondScatteringFoilYSize = 52.5 *mm; + const G4double secondScatteringFoilZSize = 52.5 *mm; + + const G4double secondScatteringFoilXPosition = -2952.51 *mm; + const G4double secondScatteringFoilYPosition = 0 *mm; + const G4double secondScatteringFoilZPosition = 0 *mm; + + secondScatteringFoil = new G4Box("SecondScatteringFoil", + secondScatteringFoilXSize, + secondScatteringFoilYSize, + secondScatteringFoilZSize); + + G4LogicalVolume* logicSecondScatteringFoil = new G4LogicalVolume(secondScatteringFoil, + Ta, + "SecondScatteringFoil"); + + physiSecondScatteringFoil = new G4PVPlacement(0, G4ThreeVector(secondScatteringFoilXPosition, + secondScatteringFoilYPosition, + secondScatteringFoilZPosition), + "SeconScatteringFoil", + logicSecondScatteringFoil, + mother, + false, + 0); + + logicSecondScatteringFoil -> SetVisAttributes(white); +} + +void HadrontherapyBeamLine::HadrontherapyBeamCollimators() +{ + // -----------------// + // First collimator // + // -----------------// + + const G4double firstCollimatorXSize = 20.*mm; + const G4double firstCollimatorYSize = 100.*mm; + const G4double firstCollimatorZSize = 100.*mm; + + const G4double firstCollimatorXPosition = -2932.5*mm; + const G4double firstCollimatorYPosition = 0.*mm; + const G4double firstCollimatorZPosition = 0.*mm; + + G4Material* PMMA = material -> GetMat("PMMA"); + + G4Box* solidFirstCollimator = new G4Box("FirstCollimator", + firstCollimatorXSize, + firstCollimatorYSize, + firstCollimatorZSize); + + + G4LogicalVolume* logicFirstCollimator = new G4LogicalVolume(solidFirstCollimator, + PMMA, + "FirstCollimator"); + + physiFirstCollimator = new G4PVPlacement(0, G4ThreeVector(firstCollimatorXPosition, + firstCollimatorYPosition, + firstCollimatorZPosition), + "FirstCollimator", + logicFirstCollimator, + mother, + false, + 0); + + // ----------------------------// + // Hole of the first collimator// + //-----------------------------// + + G4double innerRadiusHoleFirstCollimator = 0.*mm; + G4double outerRadiusHoleFirstCollimator = 15.*mm; + G4double hightHoleFirstCollimator = 20.*mm; + G4double startAngleHoleFirstCollimator = 0.*deg; + G4double spanningAngleHoleFirstCollimator = 360.*deg; + + + G4Tubs* solidHoleFirstCollimator = new G4Tubs("HoleFirstCollimator", + innerRadiusHoleFirstCollimator, + outerRadiusHoleFirstCollimator, + hightHoleFirstCollimator, + startAngleHoleFirstCollimator, + spanningAngleHoleFirstCollimator); + + G4Material* Air = material -> GetMat("Air") ; + + G4LogicalVolume* logicHoleFirstCollimator = new G4LogicalVolume(solidHoleFirstCollimator, + Air, + "HoleFirstCollimator", + 0, 0, 0); + G4double phi = 90. *deg; + // Matrix definition for a 90 deg rotation. Also used for other volumes + G4RotationMatrix rm; + rm.rotateY(phi); + + physiHoleFirstCollimator = new G4PVPlacement(G4Transform3D(rm, G4ThreeVector()), + "HoleFirstCollimator", + logicHoleFirstCollimator, + physiFirstCollimator, + false, + 0); + // --------------// + // Range shifter // + // --------------// + + const G4double rangeShifterYSize = 176. *mm; + const G4double rangeShifterZSize = 176. *mm; + + solidRangeShifterBox = new G4Box("RangeShifterBox", + rangeShifterXSize, + rangeShifterYSize, + rangeShifterZSize); + + logicRangeShifterBox = new G4LogicalVolume(solidRangeShifterBox, + RSMat, + "RangeShifterBox"); + + physiRangeShifterBox = new G4PVPlacement(0, + G4ThreeVector(rangeShifterXPosition, 0., 0.), + "RangeShifterBox", + logicRangeShifterBox, + mother, + false, + 0); + + G4VisAttributes * yellow = new G4VisAttributes(G4Colour(1., 1., 0. )); + yellow-> SetVisibility(true); + yellow-> SetForceSolid(true); + logicRangeShifterBox -> SetVisAttributes(yellow); + + // ------------------// + // Second collimator // + //-------------------.// + + const G4double secondCollimatorXPosition = -2028.5*mm; + const G4double secondCollimatorYPosition = 0*mm; + const G4double secondCollimatorZPosition = 0*mm; + + physiSecondCollimator = new G4PVPlacement(0, G4ThreeVector(secondCollimatorXPosition, + secondCollimatorYPosition, + secondCollimatorZPosition), + "SecondCollimator", + logicFirstCollimator, + mother, + false, + 0); + + // ------------------------------// + // Hole of the second collimator // + // ------------------------------// + + physiHoleSecondCollimator = new G4PVPlacement(G4Transform3D(rm, G4ThreeVector()), + "HoleSecondCollimator", + logicHoleFirstCollimator, + physiSecondCollimator, + false, + 0); + + // ---------------------------------// + // First Collimator modulator box // + // ---------------------------------// + + const G4double firstCollimatorModulatorXSize = 10.*mm; + const G4double firstCollimatorModulatorYSize = 200.*mm; + const G4double firstCollimatorModulatorZSize = 200.*mm; + + const G4double firstCollimatorModulatorXPosition = -2660.5*mm; + const G4double firstCollimatorModulatorYPosition = 0.*mm; + const G4double firstCollimatorModulatorZPosition = 0.*mm; + + G4Material* Al = material -> GetMat("MatAluminum"); + + G4Box* solidFirstCollimatorModulatorBox = new G4Box("FirstCollimatorModulatorBox", + firstCollimatorModulatorXSize, + firstCollimatorModulatorYSize, + firstCollimatorModulatorZSize); + + G4LogicalVolume* logicFirstCollimatorModulatorBox = new G4LogicalVolume(solidFirstCollimatorModulatorBox, + Al, "FirstCollimatorModulatorBox"); + + physiFirstCollimatorModulatorBox = new G4PVPlacement(0, G4ThreeVector(firstCollimatorModulatorXPosition, + firstCollimatorModulatorYPosition, + firstCollimatorModulatorZPosition), + "FirstCollimatorModulatorBox", + logicFirstCollimatorModulatorBox, + mother, false, 0); + + // ----------------------------------// + // Hole of the first modulator box // + // ----------------------------------// + const G4double innerRadiusHoleFirstCollimatorModulatorBox = 0.*mm; + const G4double outerRadiusHoleFirstCollimatorModulatorBox = 31.*mm; + const G4double hightHoleFirstCollimatorModulatorBox = 10.*mm; + const G4double startAngleHoleFirstCollimatorModulatorBox = 0.*deg; + const G4double spanningAngleHoleFirstCollimatorModulatorBox = 360.*deg; + + G4Tubs* solidHoleFirstCollimatorModulatorBox = new G4Tubs("HoleFirstCollimatorModulatorBox", + innerRadiusHoleFirstCollimatorModulatorBox, + outerRadiusHoleFirstCollimatorModulatorBox, + hightHoleFirstCollimatorModulatorBox , + startAngleHoleFirstCollimatorModulatorBox, + spanningAngleHoleFirstCollimatorModulatorBox); + + G4LogicalVolume* logicHoleFirstCollimatorModulatorBox = new G4LogicalVolume(solidHoleFirstCollimatorModulatorBox, + Air, "HoleFirstCollimatorModulatorBox", 0, 0, 0); + + physiHoleFirstCollimatorModulatorBox = new G4PVPlacement(G4Transform3D(rm, G4ThreeVector()), + "HoleFirstCollimatorModulatorBox", + logicHoleFirstCollimatorModulatorBox, + physiFirstCollimatorModulatorBox, false, 0); + // -------------------------------------------// + // Second collimator modulator box // + // -------------------------------------------// + + const G4double secondCollimatorModulatorXPosition = -2090.5 *mm; + + physiSecondCollimatorModulatorBox = new G4PVPlacement(0, G4ThreeVector(secondCollimatorModulatorXPosition,0., 0.), + "SecondCollimatorModulatorBox", logicFirstCollimatorModulatorBox, + mother, false, 0); + + // -------------------------------// + // Hole of the second collimator // + // -------------------------------// + + physiHoleSecondCollimatorModulatorBox = new G4PVPlacement(G4Transform3D(rm, G4ThreeVector()), + "HoleSecondCollimatorModulatorBox", + logicHoleFirstCollimatorModulatorBox, + physiSecondCollimatorModulatorBox, false, 0); + + G4VisAttributes * blue = new G4VisAttributes( G4Colour(0. ,0. ,1.)); + blue -> SetVisibility(true); + blue -> SetForceSolid(true); + + logicFirstCollimator -> SetVisAttributes(yellow); + logicFirstCollimatorModulatorBox -> SetVisAttributes(blue); +} + +void HadrontherapyBeamLine::HadrontherapyBeamMonitoring() +{ + // ---------------------------- + // Firt monitor chamber + // ---------------------------- + + // Each chamber consist of 9 mm of air in a box + // that has two layers one of kapton and one + // of copper + + G4Material* Kapton = material -> GetMat("Kapton") ; + G4Material* Cu = material -> GetMat("MatCopper"); + G4Material* Air = material -> GetMat("Air") ; + + const G4double monitor1XSize = 4.525022*mm; + const G4double monitor2XSize = 0.000011*mm; + const G4double monitor3XSize = 4.5*mm; + const G4double monitorYSize = 10.*cm; + const G4double monitorZSize = 10.*cm; + + const G4double monitor1XPosition = -1765.97498 *mm; + const G4double monitor2XPosition = -4.500011*mm; + const G4double monitor4XPosition = 4.500011*mm; + + G4Box* solidFirstMonitorLayer1 = new G4Box("FirstMonitorLayer1", monitor1XSize, monitorYSize, monitorZSize); + + G4LogicalVolume* logicFirstMonitorLayer1 = new G4LogicalVolume(solidFirstMonitorLayer1, Kapton, "FirstMonitorLayer1"); + + physiFirstMonitorLayer1 = new G4PVPlacement(0,G4ThreeVector(monitor1XPosition,0.*cm,0.*cm), + "FirstMonitorLayer1", logicFirstMonitorLayer1, mother, false, 0); + + G4Box* solidFirstMonitorLayer2 = new G4Box("FirstMonitorLayer2", monitor2XSize, monitorYSize, monitorZSize); + + G4LogicalVolume* logicFirstMonitorLayer2 = new G4LogicalVolume(solidFirstMonitorLayer2, Cu, "FirstMonitorLayer2"); + + physiFirstMonitorLayer2 = new G4PVPlacement(0, G4ThreeVector(monitor2XPosition,0.*cm,0.*cm), + "FirstMonitorLayer2", logicFirstMonitorLayer2, physiFirstMonitorLayer1, + false, 0); + + G4Box* solidFirstMonitorLayer3 = new G4Box("FirstMonitorLayer3", monitor3XSize, monitorYSize, monitorZSize); + + G4LogicalVolume* logicFirstMonitorLayer3 = new G4LogicalVolume(solidFirstMonitorLayer3, Air, "FirstMonitorLayer3"); + + physiFirstMonitorLayer3 = new G4PVPlacement(0, G4ThreeVector(0.*mm,0.*cm,0.*cm), "MonitorLayer3", + logicFirstMonitorLayer3, physiFirstMonitorLayer1, false, 0); + + G4Box* solidFirstMonitorLayer4 = new G4Box("FirstMonitorLayer4", monitor2XSize, monitorYSize, monitorZSize); + + G4LogicalVolume* logicFirstMonitorLayer4 = new G4LogicalVolume(solidFirstMonitorLayer4, Cu, "FirstMonitorLayer4"); + + physiFirstMonitorLayer4 = new G4PVPlacement(0, G4ThreeVector(monitor4XPosition,0.*cm,0.*cm), + "FirstMonitorLayer4", + logicFirstMonitorLayer4, + physiFirstMonitorLayer1, false, 0); + // ------------------------// + // Second monitor chamber // + // ------------------------// + + physiSecondMonitorLayer1 = new G4PVPlacement(0, G4ThreeVector(-1634.92493 *mm,0.*cm,0.*cm), + "SecondMonitorLayer1", logicFirstMonitorLayer1,mother, false, 0); + + physiSecondMonitorLayer2 = new G4PVPlacement(0, G4ThreeVector( monitor2XPosition,0.*cm,0.*cm), "SecondMonitorLayer2", + logicFirstMonitorLayer2, physiSecondMonitorLayer1, false, 0); + + physiSecondMonitorLayer3 = new G4PVPlacement(0, G4ThreeVector(0.*mm,0.*cm,0.*cm), "MonitorLayer3", + logicFirstMonitorLayer3, physiSecondMonitorLayer1, false, 0); + + physiSecondMonitorLayer4 = new G4PVPlacement(0, G4ThreeVector(monitor4XPosition,0.*cm,0.*cm), "SecondMonitorLayer4", + logicFirstMonitorLayer4, physiSecondMonitorLayer1, false, 0); + + // -----------------------// + // Third monitor chamber // + // -----------------------// + + physiThirdMonitorLayer1 = new G4PVPlacement(0, G4ThreeVector(-1505.87489 *mm,0.*cm,0.*cm), + "ThirdMonitorLayer1", logicFirstMonitorLayer1, mother, false, 0); + + physiThirdMonitorLayer2 = new G4PVPlacement(0, G4ThreeVector(monitor2XPosition, 0.*cm,0.*cm), + "ThirdMonitorLayer2", + logicFirstMonitorLayer2, + physiThirdMonitorLayer1, + false, 0); + + physiThirdMonitorLayer3 = new G4PVPlacement(0, G4ThreeVector(0.*mm,0.*cm,0.*cm), "MonitorLayer3", + logicFirstMonitorLayer3, physiThirdMonitorLayer1, false, 0); + + physiThirdMonitorLayer4 = new G4PVPlacement(0, G4ThreeVector(monitor4XPosition,0.*cm,0.*cm), "ThirdMonitorLayer4", + logicFirstMonitorLayer4, physiThirdMonitorLayer1, false, 0); +} +void HadrontherapyBeamLine::HadrontherapyBeamNozzle() +{ + // ---------------// + // Nozzle support // + //----------------// + + const G4double nozzleSupportXSize = 29.5 *mm; + const G4double nozzleSupportYSize = 180. *mm; + const G4double nozzleSupportZSize = 180. *mm; + + const G4double nozzleSupportXPosition = -601.00 *mm; + + G4Material* PMMA = material -> GetMat("PMMA"); + G4Material* Brass = material -> GetMat("Brass") ; + G4Material* Air = material -> GetMat("Air") ; + + G4double phi = 90. *deg; + // Matrix definition for a 90 deg rotation. Also used for other volumes + G4RotationMatrix rm; + rm.rotateY(phi); + + G4Box* solidNozzleSupport = new G4Box("NozzlSupport", nozzleSupportXSize, nozzleSupportYSize, nozzleSupportZSize); + + G4LogicalVolume* logicNozzleSupport = new G4LogicalVolume(solidNozzleSupport, PMMA, "NozzleSupport"); + + physiNozzleSupport = new G4PVPlacement(0, G4ThreeVector(nozzleSupportXPosition,0., 0.), + "NozzleSupport", logicNozzleSupport, mother, false, 0); + + // ---------------------------------// + // First hole of the noozle support // + // ---------------------------------// + + const G4double innerRadiusHoleNozzleSupport = 18.*mm; + const G4double outerRadiusHoleNozzleSupport = 21.5 *mm; + const G4double hightHoleNozzleSupport = 185.*mm; + const G4double startAngleHoleNozzleSupport = 0.*deg; + const G4double spanningAngleHoleNozzleSupport = 360.*deg; + + const G4double holeNozzleSupportXPosition = -475.5 *mm; + + G4Tubs* solidHoleNozzleSupport = new G4Tubs("HoleNozzleSupport", + innerRadiusHoleNozzleSupport, + outerRadiusHoleNozzleSupport, + hightHoleNozzleSupport, + startAngleHoleNozzleSupport, + spanningAngleHoleNozzleSupport); + + G4LogicalVolume* logicHoleNozzleSupport = new G4LogicalVolume(solidHoleNozzleSupport, + Brass, + "HoleNozzleSupport", + 0, 0, 0); + + physiHoleNozzleSupport = new G4PVPlacement(G4Transform3D(rm, G4ThreeVector(holeNozzleSupportXPosition, + 0., 0.)), + "HoleNozzleSupport", logicHoleNozzleSupport, mother, false, 0); + + //------------------------------------// + // Second Hole of the noozle support // + //------------------------------------// + const G4double innerRadiusSecondHoleNozzleSupport = 0.*mm; + const G4double outerRadiusSecondHoleNozzleSupport = 18.*mm; + const G4double hightSecondHoleNozzleSupport = 29.5 *mm; + const G4double startAngleSecondHoleNozzleSupport = 0.*deg; + const G4double spanningAngleSecondHoleNozzleSupport = 360.*deg; + + G4Tubs* solidSecondHoleNozzleSupport = new G4Tubs("SecondHoleNozzleSupport", + innerRadiusSecondHoleNozzleSupport, + outerRadiusSecondHoleNozzleSupport, + hightSecondHoleNozzleSupport, + startAngleSecondHoleNozzleSupport, + spanningAngleSecondHoleNozzleSupport); + + G4LogicalVolume* logicSecondHoleNozzleSupport = new G4LogicalVolume(solidSecondHoleNozzleSupport, + Air, + "SecondHoleNozzleSupport", + 0, 0, 0); + + physiSecondHoleNozzleSupport = new G4PVPlacement(G4Transform3D(rm, G4ThreeVector()), + "SecondHoleNozzleSupport", + logicSecondHoleNozzleSupport, + physiNozzleSupport, + false, 0); + + + G4VisAttributes * yellow = new G4VisAttributes( G4Colour(1., 1., 0. )); + yellow-> SetVisibility(true); + yellow-> SetForceSolid(true); + logicHoleNozzleSupport -> SetVisAttributes(yellow); +} + +void HadrontherapyBeamLine::HadrontherapyBeamFinalCollimator() +{ + + // -----------------------// + // Final collimator // + //------------------------// + + const G4double outerRadiusFinalCollimator = 21.5*mm; + const G4double hightFinalCollimator = 3.5*mm; + const G4double startAngleFinalCollimator = 0.*deg; + const G4double spanningAngleFinalCollimator = 360.*deg; + const G4double finalCollimatorXPosition = -287.0 *mm; + + G4double phi = 90. *deg; + + // Matrix definition for a 90 deg rotation. Also used for other volumes + G4RotationMatrix rm; + rm.rotateY(phi); + + G4Material* Brass = material -> GetMat("Brass"); + + solidFinalCollimator = new G4Tubs("FinalCollimator", innerRadiusFinalCollimator, + outerRadiusFinalCollimator, + hightFinalCollimator, + startAngleFinalCollimator, + spanningAngleFinalCollimator); + + G4LogicalVolume* logicFinalCollimator = new G4LogicalVolume(solidFinalCollimator, + Brass, "FinalCollimator", 0, 0, 0); + + physiFinalCollimator = new G4PVPlacement(G4Transform3D(rm, G4ThreeVector(finalCollimatorXPosition,0.,0.)), + "FinalCollimator", logicFinalCollimator, mother, false, 0); + + G4VisAttributes * yellow = new G4VisAttributes( G4Colour(1., 1., 0. )); + yellow-> SetVisibility(true); + yellow-> SetForceSolid(true); + logicFinalCollimator -> SetVisAttributes(yellow); +} + +void HadrontherapyBeamLine::SetRangeShifterXPosition(G4double value) +{ + physiRangeShifterBox -> SetTranslation(G4ThreeVector(value, 0., 0.)); + G4cout << "The Range Shifter is translated to"<< value/mm <<"mm along the X axis" < SetXHalfLength(value) ; + G4cout << "RangeShifter size X (mm): "<< ((solidRangeShifterBox -> GetXHalfLength())*2.)/mm + << G4endl; +} + +void HadrontherapyBeamLine::SetFirstScatteringFoilXSize(G4double value) +{ + firstScatteringFoil -> SetXHalfLength(value); + G4cout <<"The X size of the first scattering foil is (mm):"<< + ((firstScatteringFoil -> GetXHalfLength())*2.)/mm + << G4endl; +} + +void HadrontherapyBeamLine::SetSecondScatteringFoilXSize(G4double value) +{ + secondScatteringFoil -> SetXHalfLength(value); + G4cout <<"The X size of the second scattering foil is (mm):"<< + ((secondScatteringFoil -> GetXHalfLength())*2.)/mm + << G4endl; +} + +void HadrontherapyBeamLine::SetOuterRadiusStopper(G4double value) +{ + solidStopper -> SetOuterRadius(value); + G4cout << "OuterRadius od the Stopper is (mm):" + << solidStopper -> GetOuterRadius()/mm + << G4endl; +} + +void HadrontherapyBeamLine::SetInnerRadiusFinalCollimator(G4double value) +{ + solidFinalCollimator -> SetInnerRadius(value); + G4cout<<"Inner Radius of the final collimator is (mm):" + << solidFinalCollimator -> GetInnerRadius()/mm + << G4endl; +} + +void HadrontherapyBeamLine::SetRSMaterial(G4String materialChoice) +{ + G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + + if (pttoMaterial) + { + RSMat = pttoMaterial; + logicRangeShifterBox -> SetMaterial(pttoMaterial); + } +} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyCalorimeterSD.cc b/examples/advanced/hadrontherapy/src/HadrontherapyCalorimeterSD.cc deleted file mode 100755 index 2450d68071..0000000000 --- a/examples/advanced/hadrontherapy/src/HadrontherapyCalorimeterSD.cc +++ /dev/null @@ -1,207 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: HadrontherapyCalorimeterSD.cc,v 1.0 -// -------------------------------------------------------------- -// GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- -// Code developed by: -// -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- -#include "HadrontherapyCalorimeterSD.hh" -#include "G4HCofThisEvent.hh" -#include "HadrontherapyEventAction.hh" -#include "HadrontherapyHit.hh" -#include "HadrontherapyDetectorConstruction.hh" -#include "HadrontherapyHit.hh" -#include "G4VPhysicalVolume.hh" -#include "G4Step.hh" -#include "G4Positron.hh" -#include "G4VTouchable.hh" -#include "G4TouchableHistory.hh" -#include "G4SDManager.hh" -#include "HadrontherapyRunAction.hh" -#include "G4ios.hh" - -HadrontherapyCalorimeterSD::HadrontherapyCalorimeterSD(G4String name, - HadrontherapyDetectorConstruction* det) -:G4VSensitiveDetector(name),Detector(det), -delta(1.0e-6*mm),evno(0),evnOld(-1),trIDold(-1),NbOfLayer(20000) -{ - collectionName.insert("CalCollection"); - - p_Run = new HadrontherapyRunAction(); -} - -// ------------------------------------------------------------------- -HadrontherapyCalorimeterSD::~HadrontherapyCalorimeterSD() -{ - delete p_Run; -} - -// ----------------------------------------------------------------- -void HadrontherapyCalorimeterSD::Initialize(G4HCofThisEvent*) -{ - CalCollection = new HadrontherapyHitsCollection - (SensitiveDetectorName,collectionName[0]); - - for (G4int i=0; i < NbOfLayer; i++) - { - energy[i] = 0.0; - } - -for (G4int k=0; k < NbOfLayer; k++) - { - sliceID[k] = -1; - } - -depthMax = (0.002*NbOfLayer - delta); // 0.2 is the actual dosimeter thickness -} - -// --------------------------------------------------------------------- -G4bool HadrontherapyCalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) -{ - -G4int j = aStep -> GetPreStepPoint() -> GetPhysicalVolume() -> GetCopyNo(); -G4double edep = aStep -> GetTotalEnergyDeposit(); - if (edep ==0) return false; - if(sliceID[j]== -1) - { - HadrontherapyHit* newHit = new HadrontherapyHit(j); - - newHit->SetEdep(edep); - G4int barbatrucco_ID = CalCollection->insert(newHit); - sliceID[j] = barbatrucco_ID - 1; - - } - else - { - (*CalCollection)[sliceID[j]]->AddEdep(edep); - } - - if (j < 0 || j >= NbOfLayer) - - { - G4cout << " Warning!! HadrontherapyCalorimeterSD cannot add " - << edep - << " to the layer Nb " << j << G4endl; - } - else - - { - energy[j] = energy[j] + edep; - } - -const G4Track* track = aStep->GetTrack(); - -G4int trIDnow = track->GetTrackID(); -G4double tkin = track->GetKineticEnergy(); -G4double xend = aStep->GetPostStepPoint()->GetPosition().x(); - -G4bool stop = false; -G4bool primary = false; -G4bool outAbs = false; - - if(track->GetNextVolume()->GetName() == "TreatmentRoom" - && (xend <= delta || xend >= depthMax-delta) ) outAbs = true; - - if(tkin == 0.0) stop = true; - - // Here checks if the particle is primary - - if(aStep->GetTrack()->GetParentID() == 0) - { - primary = true; - } - - // new particle - - if(trIDnow != trIDold || evno != evnOld) - { - trIDold = trIDnow; - evnOld = evno; - part_is_out = true; - tkinold = aStep->GetPreStepPoint()->GetKineticEnergy(); - } - - // Primary particle stop - if(primary && (stop || outAbs)) { - } - - if(outAbs && part_is_out) { - G4double e = tkin; - if(track->GetDefinition() == G4Positron::Positron()) - e += 2.*electron_mass_c2; - if(xend > depthMax-delta) leakEnergy += e; - else if(xend < delta) backEnergy += e; - part_is_out = false; - } - - return true; -} - -// ---------------------------------------------------------------------- -void HadrontherapyCalorimeterSD::EndOfEvent(G4HCofThisEvent* HCE) -{ - -G4int i; -G4double etot = 0.0; - if (NbOfLayer > 0) - { - G4double s = 0.002; //Actual thickness in mm of the dosimeter - G4double z = -0.5 * s; - - for (i = 0; i < NbOfLayer; i ++) - { - z += s; - etot += energy[i]; - } - } - - //******************************* - // Total energy of a particle - // that reach the dosemeter - //******************************* - - static G4int HCID = -1; - if(HCID<0) - { - HCID = GetCollectionID(0); - } - HCE->AddHitsCollection(HCID, CalCollection); - -} - -// ------------------------------------------------------------------------- - -void HadrontherapyCalorimeterSD::clear() -{} - -void HadrontherapyCalorimeterSD::PrintAll() -{} - - - - diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyHit.cc b/examples/advanced/hadrontherapy/src/HadrontherapyDecay.cc old mode 100755 new mode 100644 similarity index 55% rename from examples/advanced/hadrontherapy/src/HadrontherapyHit.cc rename to examples/advanced/hadrontherapy/src/HadrontherapyDecay.cc index dea4ae4ad3..2148b19029 --- a/examples/advanced/hadrontherapy/src/HadrontherapyHit.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyDecay.cc @@ -19,65 +19,49 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyHit.cc,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyDetectorDecay.cc; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- -#include "HadrontherapyHit.hh" +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#include "HadrontherapyDecay.hh" +#include "G4ProcessManager.hh" +#include "globals.hh" #include "G4ios.hh" -#include "G4VVisManager.hh" -#include "G4Colour.hh" -#include "G4VisAttributes.hh" -#include "G4LogicalVolume.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" -G4Allocator HadrontherapyHitAllocator; +HadrontherapyDecay::HadrontherapyDecay(const G4String& name): G4VPhysicsConstructor(name) +{ } -// ----------------------------------------------------------------- -HadrontherapyHit::HadrontherapyHit(G4int j) - :slice(j) -{ - m_Edep = 0; -} - -// ---------------------------------------------------------------- -HadrontherapyHit::~HadrontherapyHit() -{ -} - -// ---------------------------------------------------------------- -HadrontherapyHit::HadrontherapyHit(const HadrontherapyHit &right):G4VHit() -{ - slice = right.slice; - m_Edep = right.m_Edep; -} - -// ----------------------------------------------------------------- -const HadrontherapyHit& HadrontherapyHit::operator=(const HadrontherapyHit &right) -{ - m_Edep = right.m_Edep; - slice = right.slice; - return *this; -} - -// ----------------------------------------------------------------- -int HadrontherapyHit::operator==(const HadrontherapyHit &right) const -{ - return (slice==right.slice); -} - -// ---------------------------------------------------------------- -void HadrontherapyHit::Draw() -{ -} - -// ---------------------------------------------------------------- -void HadrontherapyHit::Print() +HadrontherapyDecay::~HadrontherapyDecay() +{ } + +void HadrontherapyDecay::ConstructProcess() { + // Add Decay Process + G4Decay* theDecayProcess = new G4Decay(); + theParticleIterator -> reset(); + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator -> value(); + G4ProcessManager* pmanager = particle -> GetProcessManager(); + + if (theDecayProcess -> IsApplicable(*particle)) + { + pmanager -> AddProcess(theDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager -> SetProcessOrdering(theDecayProcess, idxPostStep); + pmanager -> SetProcessOrdering(theDecayProcess, idxAtRest); + } + } } diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyDetectorConstruction.cc b/examples/advanced/hadrontherapy/src/HadrontherapyDetectorConstruction.cc old mode 100755 new mode 100644 index 534c763920..ca4c9459f8 --- a/examples/advanced/hadrontherapy/src/HadrontherapyDetectorConstruction.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyDetectorConstruction.cc @@ -19,1924 +19,269 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// ******************************************************************** -// * DISCLSSMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: HadrontherapyDetectorConstruction.cc,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyDetectorConstruction.cc; Version 4.0 May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.Pablo Cirrone, Giorgio Russo and Francesco Di Rosa -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -#include "HadrontherapyDetectorMessenger.hh" -#include "HadrontherapyDetectorConstruction.hh" -#include "HadrontherapyCalorimeterSD.hh" -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4TransportationManager.hh" +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + #include "G4SDManager.hh" #include "G4RunManager.hh" -#include "G4VisAttributes.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "globals.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" #include "G4Colour.hh" -#include "G4ios.hh" -#include "G4Region.hh" -#include "G4RegionStore.hh" +#include "G4UserLimits.hh" +#include "G4VisAttributes.hh" +#include "HadrontherapyPhantomROGeometry.hh" +#include "HadrontherapyDetectorMessenger.hh" +#include "HadrontherapyPhantomSD.hh" +#include "HadrontherapyDetectorConstruction.hh" +#include "HadrontherapyMaterial.hh" +#include "HadrontherapyBeamLine.hh" +#include "HadrontherapyModulator.hh" HadrontherapyDetectorConstruction::HadrontherapyDetectorConstruction() - :WorldMaterial(0), - solidTreatmentRoom(0), logicTreatmentRoom(0), physiTreatmentRoom(0), - solidBeamLineSupport(0), logicBeamLineSupport(0), physiBeamLineSupport(0), - solidBeamLineCover(0), logicBeamLineCover(0), physiBeamLineCover(0), - solidBeamLineCover2(0), logicBeamLineCover2(0), physiBeamLineCover2(0), - solidVacuumZone(0), logicVacuumZone(0), physiVacuumZone(0), - solidFirstScatteringFoil(0), logicFirstScatteringFoil(0), physiFirstScatteringFoil(0), - solidKaptonWindow(0), logicKaptonWindow(0), physiKaptonWindow(0), - solidStopper(0), logicStopper(0), physiStopper(0), - solidSecondScatteringFoil(0), logicSecondScatteringFoil(0), physiSecondScatteringFoil(0), - solidFirstCollimator(0), logicFirstCollimator(0), physiFirstCollimator(0), - solidHoleFirstCollimator(0), logicHoleFirstCollimator(0), physiHoleFirstCollimator(0), - solidFirstCollimatorModulatorBox(0), logicFirstCollimatorModulatorBox(0), - physiFirstCollimatorModulatorBox(0), - solidHoleFirstCollimatorModulatorBox(0), - logicHoleFirstCollimatorModulatorBox(0), - physiHoleFirstCollimatorModulatorBox(0), - solidMotherMod(0),logicMotherMod(0), physiMotherMod(0), Mod0Mater(0),ModMater(0), - solidMod0(0), logicMod0(0), physiMod0(0), - solidMod1(0), logicMod1(0), physiMod1(0), - solidMod2(0), logicMod2(0), physiMod2(0), - solidMod3(0), logicMod3(0), physiMod3(0), - solidMod4(0), logicMod4(0), physiMod4(0), - solidMod5(0), logicMod5(0), physiMod5(0), - solidMod6(0), logicMod6(0), physiMod6(0), - solidMod7(0), logicMod7(0), physiMod7(0), - solidMod8(0), logicMod8(0), physiMod8(0), - solidMod9(0), logicMod9(0), physiMod9(0), - solidMod10(0), logicMod10(0), physiMod10(0), - solidMod11(0), logicMod11(0), physiMod11(0), - solidMod12(0), logicMod12(0), physiMod12(0), - solidMod13(0), logicMod13(0), physiMod13(0), - solidMod14(0), logicMod14(0), physiMod14(0), - solidMod15(0), logicMod15(0), physiMod15(0), - solidMod16(0), logicMod16(0), physiMod16(0), - solidMod17(0), logicMod17(0), physiMod17(0), - solidMod18(0), logicMod18(0), physiMod18(0), - solidSecondCollimatorModulatorBox(0), - logicSecondCollimatorModulatorBox(0), - physiSecondCollimatorModulatorBox(0), - solidHoleSecondCollimatorModulatorBox(0), - logicHoleSecondCollimatorModulatorBox(0), - physiHoleSecondCollimatorModulatorBox(0), - solidSecondCollimator(0),logicSecondCollimator(0),physiSecondCollimator(0), - solidHoleSecondCollimator(0),logicHoleSecondCollimator(0),physiHoleSecondCollimator(0), - solidFirstMonitorLayer1(0), logicFirstMonitorLayer1(0), physiFirstMonitorLayer1(0), - solidFirstMonitorLayer2(0), logicFirstMonitorLayer2(0), physiFirstMonitorLayer2(0), - solidFirstMonitorLayer3(0), logicFirstMonitorLayer3(0), physiFirstMonitorLayer3(0), - solidFirstMonitorLayer4(0), logicFirstMonitorLayer4(0), physiFirstMonitorLayer4(0), - - solidSecondMonitorLayer1(0), logicSecondMonitorLayer1(0), physiSecondMonitorLayer1(0), - solidSecondMonitorLayer2(0), logicSecondMonitorLayer2(0), physiSecondMonitorLayer2(0), - solidSecondMonitorLayer3(0), logicSecondMonitorLayer3(0), physiSecondMonitorLayer3(0), - solidSecondMonitorLayer4(0), logicSecondMonitorLayer4(0), physiSecondMonitorLayer4(0), - - solidThirdMonitorLayer1(0), logicThirdMonitorLayer1(0), physiThirdMonitorLayer1(0), - solidThirdMonitorLayer2(0), logicThirdMonitorLayer2(0), physiThirdMonitorLayer2(0), - solidThirdMonitorLayer3(0), logicThirdMonitorLayer3(0), physiThirdMonitorLayer3(0), - solidThirdMonitorLayer4(0), logicThirdMonitorLayer4(0), physiThirdMonitorLayer4(0), - - solidNozzleSupport(0), logicNozzleSupport(0), physiNozzleSupport(0), - solidHoleNozzleSupport(0), logicHoleNozzleSupport(0), physiHoleNozzleSupport(0), - solidSecondHoleNozzleSupport(0), logicSecondHoleNozzleSupport(0),physiSecondHoleNozzleSupport(0), - solidFinalCollimator(0), logicFinalCollimator(0), physiFinalCollimator(0), - solidWaterPhantom(0), logicWaterPhantom(0), physiWaterPhantom(0), - calorimeterSD(0) - + : phantomSD(0), phantomROGeometry(0), beamLine(0), modulator(0), + physicalTreatmentRoom(0), + patientPhysicalVolume(0), + phantomLogicalVolume(0), + phantomPhysicalVolume(0) { - // create commands for interactive definition of the calorimeter + // Messenger to change parameters of the geometry detectorMessenger = new HadrontherapyDetectorMessenger(this); + + material = new HadrontherapyMaterial(); + + // Phantom sizes + phantomSizeX = 20.*mm; + phantomSizeY = 20.*mm; + phantomSizeZ = 20.*mm; + + // Number of the phantom voxels + numberOfVoxelsAlongX = 80; + numberOfVoxelsAlongY = 80; + numberOfVoxelsAlongZ = 80; } -// ----------------------------------------------------------------------------------------------- HadrontherapyDetectorConstruction::~HadrontherapyDetectorConstruction() -{ +{ + delete material; + if (phantomROGeometry) delete phantomROGeometry; delete detectorMessenger; } -//********************************** -// DEFINITION OF THE USED MATERIALS -//********************************** - G4VPhysicalVolume* HadrontherapyDetectorConstruction::Construct() -{ - - - G4String name, symbol; //a = ATOMIC MASS - G4double a, z, density; //z = ATOMIC NUMBER - - G4int ncomponents, natoms; - G4double fractionmass; - G4double temperature, pressure; - - - //************************************* - // DEFINITION OF MATERIALS AS ELEMENTS - //************************************* - - - a = 1.01*g/mole; - G4Element* H = new G4Element(name="Hydrogen",symbol="H" , z= 1., a); //HIDROGEN - - a = 12.01*g/mole; - G4Element* C = new G4Element(name="Carbon" ,symbol="C" , z= 6., a); // CARBON - - a = 14.01*g/mole; - G4Element* N = new G4Element(name="Nitrogen",symbol="N" , z= 7., a); // NITROGEN - - a = 16.00*g/mole; - G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); // OXIGEN - - density = 16.6*g/cm3; - a = 180.948*g/mole; - G4Material* Ta = new G4Material(name="Tantalio", z=73,a,density); // TANTALUM - - density = 7.14*g/cm3; - a = 65.38*g/mole; - G4Material* Zn = new G4Material(name="Zinc" , z=30, a, density); // ZINC - - density = 8.90*g/cm3; - a = 63.546*g/mole; - G4Material* Cu = new G4Material(name="Copper", z=29, a, density); // COPPER - - density = 2.700*g/cm3; - a = 26.98*g/mole; - G4Material* Al = new G4Material(name="Aluminium", z=13., a, density); //ALLUMINUM - - - //************************************** - // DEFINITION OF MATERIAL AS COMPOSIT - //************************************** - - - density = 1.000*g/cm3; - G4Material* Water = new G4Material(name="Water", density, ncomponents=2); // WATER - Water->AddElement(H, natoms=2); - Water->AddElement(O, natoms=1); - - density = 1.290*mg/cm3; - G4Material* Air = new G4Material(name="Air" , density, ncomponents=2); // AIR - Air->AddElement(N, fractionmass=0.7); - Air->AddElement(O, fractionmass=0.3); - - density = 1.18*g/cm3; - G4Material* PMMA = new G4Material(name="PMMA", density, ncomponents=3); // PMMA - PMMA->AddElement(C, natoms=5); - PMMA->AddElement(O, natoms=2); - PMMA->AddElement(H, natoms=8); - - density = 8.40*g/cm3; - G4Material* Brass = new G4Material(name="Brass", density, ncomponents=2); // BRASS - Brass->AddMaterial(Zn, fractionmass=30*perCent); - Brass->AddMaterial(Cu, fractionmass=70*perCent); - - density = 1.43*g/cm3; - G4Material* Kapton = new G4Material(name="Kapton",density, ncomponents=4); - Kapton->AddElement(H, natoms=10); - Kapton->AddElement(O, natoms=5); - Kapton->AddElement(C, natoms=22); - Kapton->AddElement(N, natoms=2); +{ + // Define the materials of the experimental set-up + material -> DefineMaterials(); - //************************* - // Definition of the vacuum - //************************* - - density = universe_mean_density; //from PhysicalConstants.h - pressure = 3.e-18*pascal; - temperature = 2.73*kelvin; - G4Material* Vacuum = new G4Material("Galactic", z=1., a=1.01*g/mole,density, - kStateGas,temperature,pressure); - - G4cout << *(G4Material::GetMaterialTable()) << G4endl; - Mod0Mater = Air; - ModMater = Air; - - - //********************************* - // DEFINITIONS OF ALL THE VOLUMES - //********************************* - - - //****************************** - // TREATMENT ROOM (world volume) - // beam line along x axis - //****************************** - - G4double TreatmentRoom_x = 200.*cm; - G4double TreatmentRoom_y = 200.*cm; - G4double TreatmentRoom_z = 200.*cm; + // Define the geometry components + ConstructBeamLine(); + ConstructPhantom(); - G4Box* TreatmentRoom - = new G4Box("TreatmentRoom", - TreatmentRoom_x, - TreatmentRoom_y, - TreatmentRoom_z); - logicTreatmentRoom = new G4LogicalVolume(TreatmentRoom,Air, - "TreatmentRoom", - 0, - 0, - 0); - physiTreatmentRoom = new G4PVPlacement(0, - G4ThreeVector(), - "TreatmentRoom", - logicTreatmentRoom, - 0, - false, - 0); - - - //******************************** - // BEAM LINE SUPPORT - //******************************** - - - G4double BeamLineSupport_x = 1.5 *m; - G4double BeamLineSupport_y = 20. *mm; - G4double BeamLineSupport_z = 600. *mm; - - G4double BeamLineSupportPosition_x = -700. *mm; - G4double BeamLineSupportPosition_y = -230. *mm; - G4double BeamLineSupportPosition_z = 0. *mm; - - G4Box* BeamLineSupport = new G4Box("BeamLineSupport", - BeamLineSupport_x, - BeamLineSupport_y, - BeamLineSupport_z); - - logicBeamLineSupport = new G4LogicalVolume(BeamLineSupport, - Al, - "BeamLineSupport"); - - physiBeamLineSupport = new G4PVPlacement(0, - G4ThreeVector(BeamLineSupportPosition_x, - BeamLineSupportPosition_y, - BeamLineSupportPosition_z), - "BeamLineSupport", - logicBeamLineSupport, - physiTreatmentRoom, - false, - 0); - - //******************************** - // BEAM LINE COVER 1 (left panel) - //******************************** - - G4double BeamLineCover_x = 1.5 *m; - G4double BeamLineCover_y = 750. *mm; - G4double BeamLineCover_z = 10. *mm; - - G4double BeamLineCoverPosition_x = -700. *mm; - G4double BeamLineCoverPosition_y = -980. *mm; - G4double BeamLineCoverPosition_z = 600. *mm; - - G4Box* BeamLineCover = new G4Box("BeamLineCover", - BeamLineCover_x, - BeamLineCover_y, - BeamLineCover_z); - - logicBeamLineCover = new G4LogicalVolume(BeamLineCover, - Al, - "BeamLineCover"); - - physiBeamLineCover = new G4PVPlacement(0, - G4ThreeVector(BeamLineCoverPosition_x, - BeamLineCoverPosition_y, - BeamLineCoverPosition_z), - "BeamLineCover", - logicBeamLineCover, - physiTreatmentRoom, - false, - 0); - - - //******************************** - // BEAM LINE COVER 2 (rigth panel) - //******************************** - - G4double BeamLineCover2_x = 1.5 *m; - G4double BeamLineCover2_y = 750. *mm; - G4double BeamLineCover2_z = 10. *mm; - - G4double BeamLineCover2Position_x = -700. *mm; - G4double BeamLineCover2Position_y = -980. *mm; - G4double BeamLineCover2Position_z = -600. *mm; - - G4Box* BeamLineCover2 = new G4Box("BeamLineCover2", - BeamLineCover2_x, - BeamLineCover2_y, - BeamLineCover2_z); - - logicBeamLineCover2 = new G4LogicalVolume(BeamLineCover2, - Al, - "BeamLineCover2"); - - physiBeamLineCover2 = new G4PVPlacement(0, - G4ThreeVector(BeamLineCover2Position_x, - BeamLineCover2Position_y, - BeamLineCover2Position_z), - "BeamLineCover2", - logicBeamLineCover2, - physiTreatmentRoom, - false, - 0); - - //******************************** - // VACUUM ZONE - // Before the beam exits - // in air it traverses a vacuum zone - // in which a first scattering foil - // may be placed - //******************************** - - G4double VacuumZone_x = 60.5325 *mm; - G4double VacuumZone_y = 52.5 *mm; - G4double VacuumZone_z = 52.5 *mm; - - G4double VacuumZonePosition_x = -1939.4675 *mm; - G4double VacuumZonePosition_y = 0. *mm; - G4double VacuumZonePosition_z = 0. *mm; - - G4Box* VacuumZone= new G4Box("VacuumZone", - VacuumZone_x, - VacuumZone_y, - VacuumZone_z); - - logicVacuumZone = new G4LogicalVolume(VacuumZone, - Vacuum, - "VacuumZone"); - - physiVacuumZone = new G4PVPlacement(0, - G4ThreeVector(VacuumZonePosition_x, - VacuumZonePosition_y, - VacuumZonePosition_z), - "VacuumZone", - logicVacuumZone, - physiTreatmentRoom, - false, - 0); - - - //************************** - // FIRST SCATTERING FOIL - // placed in the Vaccum Zone - //************************** - - G4double FirstScatteringFoil_x = 0.0075 *mm; - G4double FirstScatteringFoil_y = 52.5 *mm; - G4double FirstScatteringFoil_z = 52.5 *mm; - - G4double FirstScatteringFoilPosition_x = -59.525 *mm; - G4double FirstScatteringFoilPosition_y = 0 *mm; - G4double FirstScatteringFoilPosition_z = 0 *mm; - - G4Box* FirstScatteringFoil = new G4Box("FirstScatteringFoil", - FirstScatteringFoil_x, - FirstScatteringFoil_y, - FirstScatteringFoil_z); - - logicFirstScatteringFoil = new G4LogicalVolume(FirstScatteringFoil, - Ta, - "FirstScatteringFoil"); - - - physiFirstScatteringFoil = new G4PVPlacement(0, - G4ThreeVector(FirstScatteringFoilPosition_x, - FirstScatteringFoilPosition_y, - FirstScatteringFoilPosition_z), - "FirstScatteringFoil", - logicFirstScatteringFoil, - physiVacuumZone, - false, - 0); - - - //********************* - // KAPTON WINDOW - // Is the point in which - // the beam exits in air - //********************** - - solidKaptonWindow = new G4Box("KaptonWindow", - 0.025*mm, - 5.25*cm, - 5.25*cm); - - logicKaptonWindow = new G4LogicalVolume(solidKaptonWindow, - Kapton, - "KaptonWindow"); - - physiKaptonWindow = new G4PVPlacement(0, - G4ThreeVector(60.5075*mm, - 0.*cm, - 0.*cm), - "KaptonWindow", - logicKaptonWindow, - physiVacuumZone, - false, - 0); - - - // ************************ - // STOPPER - // a small cilinder - // on the beam axis - // ************************ - - G4double phi = 90. *deg; // Matrix definition for a 90 deg rotation. Also used for other volumes - G4RotationMatrix rm; - rm.rotateY(phi); - - G4double innerRadiusStopper = 0.*cm; - G4double outerRadiusStopper = 2*mm; - G4double hightStopper = 3.5*mm; - G4double startAngleStopper = 0.*deg; - G4double spanningAngleStopper = 360.*deg; - - G4double StopperPosition_x = -1707.435*mm; - G4double StopperPosition_y = 0.*m; - G4double StopperPosition_z = 0.*m; - - solidStopper = new G4Tubs("Stopper", - innerRadiusStopper, - outerRadiusStopper, - hightStopper, - startAngleStopper, - spanningAngleStopper); - - logicStopper = new G4LogicalVolume(solidStopper, - Brass, - "Stopper", - 0, - 0, - 0); - - physiStopper = new G4PVPlacement(G4Transform3D(rm, - G4ThreeVector(StopperPosition_x, - StopperPosition_y, - StopperPosition_z)), - "Stopper", - logicStopper, - physiTreatmentRoom, - false, - 0); - - // ********************** - // SECOND SCATTERING FOIL - // ********************** - - G4double SecondScatteringFoil_x = 0.0125 *mm; - G4double SecondScatteringFoil_y = 52.5 *mm; - G4double SecondScatteringFoil_z = 52.5 *mm; - - G4double SecondScatteringFoilPosition_x = -1703.9225 *mm; - G4double SecondScatteringFoilPosition_y = 0 *mm; - G4double SecondScatteringFoilPosition_z = 0 *mm; - - solidSecondScatteringFoil = new G4Box("SecondScatteringFoil", - SecondScatteringFoil_x, - SecondScatteringFoil_y, - SecondScatteringFoil_z); - - logicSecondScatteringFoil = new G4LogicalVolume(solidSecondScatteringFoil, - Ta, - "SecondScatteringFoil"); - - physiSecondScatteringFoil = new G4PVPlacement(0, - G4ThreeVector(SecondScatteringFoilPosition_x, - SecondScatteringFoilPosition_y, - SecondScatteringFoilPosition_z), - "SeconScatteringFoil", - logicSecondScatteringFoil, - physiTreatmentRoom, - false, - 0); - - - // ******************** - // FIRST COLLIMATOR - // ******************** - - G4double FirstCollimator_x = 20 *mm; - G4double FirstCollimator_y = 100 *mm; - G4double FirstCollimator_z = 100 *mm; - - G4double FirstCollimatorPosition_x = -1683.91 *mm; - G4double FirstCollimatorPosition_y = 0 *mm; - G4double FirstCollimatorPosition_z = 0 *mm; - - solidFirstCollimator = new G4Box("FirstCollimator", - FirstCollimator_x, - FirstCollimator_y, - FirstCollimator_z); - - logicFirstCollimator = new G4LogicalVolume(solidFirstCollimator, - PMMA, - "FirstCollimator"); - - physiFirstCollimator = new G4PVPlacement(0, - G4ThreeVector(FirstCollimatorPosition_x, - FirstCollimatorPosition_y, - FirstCollimatorPosition_z), - "FirstCollimator", - logicFirstCollimator, - physiTreatmentRoom, - false, - 0); - - //************************** - // HOLE OF FIRST COLLIMATOR - //************************** - - G4double innerRadiusHoleFirstCollimator = 0.*mm; - G4double outerRadiusHoleFirstCollimator = 15.*mm; - G4double hightHoleFirstCollimator = 20.*mm; - G4double startAngleHoleFirstCollimator = 0.*deg; - G4double spanningAngleHoleFirstCollimator = 360.*deg; - - - solidHoleFirstCollimator = new G4Tubs("HoleFirstCollimator", - innerRadiusHoleFirstCollimator, - outerRadiusHoleFirstCollimator, - hightHoleFirstCollimator, - startAngleHoleFirstCollimator, - spanningAngleHoleFirstCollimator); - - logicHoleFirstCollimator = new G4LogicalVolume(solidHoleFirstCollimator, - Air, - "HoleFirstCollimator", - 0, - 0, - 0); - - physiHoleFirstCollimator = new G4PVPlacement(G4Transform3D(rm, - G4ThreeVector()), - "HoleFirstCollimator", - logicHoleFirstCollimator, - physiFirstCollimator, - false, - 0); - - - // ****************** - // SECOND COLLIMATOR - // ****************** - - G4double SecondCollimator_x = 20 *mm; - G4double SecondCollimator_y = 100 *mm; - G4double SecondCollimator_z = 100 *mm; - - G4double SecondCollimatorPosition_x = -779.91 *mm; - G4double SecondCollimatorPosition_y = 0 *mm; - G4double SecondCollimatorPosition_z = 0 *mm; - - - solidSecondCollimator = new G4Box("SecondCollimator", - SecondCollimator_x, - SecondCollimator_y, - SecondCollimator_z); - - logicSecondCollimator = new G4LogicalVolume(solidSecondCollimator, - PMMA, - "SecondCollimator"); + // Set the sensitive detector where the energy deposit is collected + ConstructSensitiveDetector(); - physiSecondCollimator = new G4PVPlacement(0, - G4ThreeVector(SecondCollimatorPosition_x, - SecondCollimatorPosition_y, - SecondCollimatorPosition_z), - "SecondCollimator", - logicSecondCollimator, - physiTreatmentRoom, - false, - 0); - - //************************** - // HOLE OF SECOND COLLIMATOR - //************************** - - G4double innerRadiusHoleSecondCollimator = 0.*mm; - G4double outerRadiusHoleSecondCollimator = 15.*mm; - G4double hightHoleSecondCollimator = 20.*mm; - G4double startAngleHoleSecondCollimator = 0.*deg; - G4double spanningAngleHoleSecondCollimator = 360.*deg; - - solidHoleSecondCollimator = new G4Tubs("HoleSecondCollimator", - innerRadiusHoleSecondCollimator, - outerRadiusHoleSecondCollimator, - hightHoleSecondCollimator, - startAngleHoleSecondCollimator, - spanningAngleHoleSecondCollimator); - - logicHoleSecondCollimator = new G4LogicalVolume(solidHoleSecondCollimator, - Air, - "HoleSecondCollimator", - 0, - 0, - 0); - - physiHoleSecondCollimator = new G4PVPlacement(G4Transform3D(rm, - G4ThreeVector()), - "HoleSecondCollimator", - logicHoleSecondCollimator, - physiSecondCollimator, - false, - 0); - - - // ************************* - // FIRST - // COLLIMATOR MODULATOR BOX - // ************************** - - G4double FirstCollimatorModulatorBox_x = 10 *mm; - G4double FirstCollimatorModulatorBox_y = 200 *mm; - G4double FirstCollimatorModulatorBox_z = 200 *mm; - - G4double FirstCollimatorModulatorBoxPosition_x = -1411.91 *mm; - G4double FirstCollimatorModulatorBoxPosition_y = 0 *mm; - G4double FirstCollimatorModulatorBoxPosition_z = 0 *mm; - - solidFirstCollimatorModulatorBox = new G4Box("FirstCollimatorModulatorBox", - FirstCollimatorModulatorBox_x, - FirstCollimatorModulatorBox_y, - FirstCollimatorModulatorBox_z); - - - logicFirstCollimatorModulatorBox = new G4LogicalVolume(solidFirstCollimatorModulatorBox, - Al, - "FirstCollimatorModulatorBox"); - physiFirstCollimatorModulatorBox = new G4PVPlacement(0, - G4ThreeVector(FirstCollimatorModulatorBoxPosition_x, - FirstCollimatorModulatorBoxPosition_y, - FirstCollimatorModulatorBoxPosition_z), - "FirstCollimatorModulatorBox", - logicFirstCollimatorModulatorBox, - physiTreatmentRoom, - false, - 0); - - // ************************************* - // HOLE OF THE FIRST COLLLIMATOR - // MODULATOR BOX - // ************************************ - - G4double innerRadiusHoleFirstCollimatorModulatorBox = 0. *mm; - G4double outerRadiusHoleFirstCollimatorModulatorBox = 31. *mm; - G4double hightHoleFirstCollimatorModulatorBox = 10. *mm; - G4double startAngleHoleFirstCollimatorModulatorBox = 0. *deg; - G4double spanningAngleHoleFirstCollimatorModulatorBox = 360. *deg; - - solidHoleFirstCollimatorModulatorBox = new G4Tubs("HoleFirstCollimatorModulatorBox", - innerRadiusHoleFirstCollimatorModulatorBox, - outerRadiusHoleFirstCollimatorModulatorBox, - hightHoleFirstCollimatorModulatorBox , - startAngleHoleFirstCollimatorModulatorBox, - spanningAngleHoleFirstCollimatorModulatorBox); - - logicHoleFirstCollimatorModulatorBox = new G4LogicalVolume(solidHoleFirstCollimatorModulatorBox, - Air, - "HoleFirstCollimatorModulatorBox", - 0, - 0, - 0); - - physiHoleFirstCollimatorModulatorBox = new G4PVPlacement(G4Transform3D(rm, - G4ThreeVector()), - "HoleFirstCollimatorModulatorBox", - logicHoleFirstCollimatorModulatorBox, - physiFirstCollimatorModulatorBox, - false, - 0); - - // ************************* - // SECOND - // COLLIMATOR MODULATOR BOX - // ************************** - - G4double SecondCollimatorModulatorBox_x = 10 *mm; - G4double SecondCollimatorModulatorBox_y = 200 *mm; - G4double SecondCollimatorModulatorBox_z = 200 *mm; - - G4double SecondCollimatorModulatorBoxPosition_x = -841.91 *mm; - G4double SecondCollimatorModulatorBoxPosition_y = 0 *mm; - G4double SecondCollimatorModulatorBoxPosition_z = 0 *mm; - - solidSecondCollimatorModulatorBox= new G4Box("SecondCollimatorModulatorBox", - SecondCollimatorModulatorBox_x, - SecondCollimatorModulatorBox_y, - SecondCollimatorModulatorBox_z); - - logicSecondCollimatorModulatorBox = new G4LogicalVolume(solidSecondCollimatorModulatorBox, - Al, - "SecondCollimatorModulatorBox"); - - physiSecondCollimatorModulatorBox = new G4PVPlacement(0, - G4ThreeVector(SecondCollimatorModulatorBoxPosition_x, - SecondCollimatorModulatorBoxPosition_y, - SecondCollimatorModulatorBoxPosition_z), - "SecondCollimatorModulatorBox", - logicSecondCollimatorModulatorBox, - physiTreatmentRoom, - false, - 0); - - // ************************************* - // HOLE OF THE SECOND COLLLIMATOR - // MODULATOR BOX - // ************************************ - - G4double innerRadiusHoleSecondCollimatorModulatorBox = 0. *mm; - G4double outerRadiusHoleSecondCollimatorModulatorBox = 31. *mm; - G4double hightHoleSecondCollimatorModulatorBox = 10. *mm; - G4double startAngleHoleSecondCollimatorModulatorBox = 0. *deg; - G4double spanningAngleHoleSecondCollimatorModulatorBox = 360. *deg; - - solidHoleSecondCollimatorModulatorBox = new G4Tubs("HoleSecondCollimatorModulatorBox", - innerRadiusHoleSecondCollimatorModulatorBox, - outerRadiusHoleSecondCollimatorModulatorBox, - hightHoleSecondCollimatorModulatorBox , - startAngleHoleSecondCollimatorModulatorBox, - spanningAngleHoleSecondCollimatorModulatorBox); - - logicHoleSecondCollimatorModulatorBox = new G4LogicalVolume(solidHoleSecondCollimatorModulatorBox, - Air, - "HoleSecondCollimatorModulatorBox", - 0, - 0, - 0); - - physiHoleSecondCollimatorModulatorBox = new G4PVPlacement(G4Transform3D(rm, - G4ThreeVector()), - "HoleSecondCollimatorModulatorBox", - logicHoleSecondCollimatorModulatorBox, - physiSecondCollimatorModulatorBox, - false, - 0); - - // ************************ - // FIRST MONITOR CHAMBER - // ************************ - - // Each chamber consist of 9 mm of air in a box - // that has two layers one of kapton and one - // of copper - - solidFirstMonitorLayer1 = new G4Box("FirstMonitorLayer1", - 4.525022*mm, - 10*cm, - 10*cm); - - logicFirstMonitorLayer1 = new G4LogicalVolume(solidFirstMonitorLayer1, - Kapton, - "FirstMonitorLayer1"); - - physiFirstMonitorLayer1 = new G4PVPlacement(0, - G4ThreeVector(-517.384978*mm,0.*cm,0.*cm), - "FirstMonitorLayer1", - logicFirstMonitorLayer1, - physiTreatmentRoom, - false, - 0); - - solidFirstMonitorLayer2 = new G4Box("FirstMonitorLayer2", - 0.000011*mm, - 10*cm, - 10*cm); - - logicFirstMonitorLayer2 = new G4LogicalVolume(solidFirstMonitorLayer2, - Cu, - "FirstMonitorLayer2"); - - physiFirstMonitorLayer2 = new G4PVPlacement(0, - G4ThreeVector(-4.500011*mm,0.*cm,0.*cm), - "FirstMonitorLayer2", - logicFirstMonitorLayer2, - physiFirstMonitorLayer1, - false, - 0); - - solidFirstMonitorLayer3 = new G4Box("FirstMonitorLayer3", - 4.5*mm, - 10*cm, - 10*cm); - - logicFirstMonitorLayer3 = new G4LogicalVolume(solidFirstMonitorLayer3, - Air, - "FirstMonitorLayer3"); - - physiFirstMonitorLayer3 = new G4PVPlacement(0, - G4ThreeVector(0.*mm,0.*cm,0.*cm), - "MonitorLayer3", - logicFirstMonitorLayer3, - physiFirstMonitorLayer1, - false, - 0); - - solidFirstMonitorLayer4 = new G4Box("FirstMonitorLayer4", - 0.000011*mm, - 10*cm, - 10*cm); - - logicFirstMonitorLayer4 = new G4LogicalVolume(solidFirstMonitorLayer4, - Cu, - "FirstMonitorLayer4"); - - physiFirstMonitorLayer4 = new G4PVPlacement(0, - G4ThreeVector(4.500011*mm,0.*cm,0.*cm), - "FirstMonitorLayer4", - logicFirstMonitorLayer4, - physiFirstMonitorLayer1, - false, - 0); - - // ************************ - // SECOND MONITOR CHAMBER - // ************************ - - solidSecondMonitorLayer1 = new G4Box("SecondMonitorLayer1", - 4.525022*mm, - 10*cm, - 10*cm); - - logicSecondMonitorLayer1 = new G4LogicalVolume(solidSecondMonitorLayer1, - Kapton, - "SecondMonitorLayer1"); - - physiSecondMonitorLayer1 = new G4PVPlacement(0, - G4ThreeVector(-386.334934 *mm,0.*cm,0.*cm), - "SecondMonitorLayer1", - logicSecondMonitorLayer1, - physiTreatmentRoom, - false, - 0); - - solidSecondMonitorLayer2 = new G4Box("SecondMonitorLayer2", - 0.000011*mm, - 10*cm, - 10*cm); - - logicSecondMonitorLayer2 = new G4LogicalVolume(solidSecondMonitorLayer2, - Cu, - "SecondMonitorLayer2"); - - physiSecondMonitorLayer2 = new G4PVPlacement(0, - G4ThreeVector(-4.500011*mm,0.*cm,0.*cm), - "SecondMonitorLayer2", - logicSecondMonitorLayer2, - physiSecondMonitorLayer1, - false, - 0); - - solidSecondMonitorLayer3 = new G4Box("SecondMonitorLayer3", - 4.5*mm, - 10*cm, - 10*cm); - - logicSecondMonitorLayer3 = new G4LogicalVolume(solidSecondMonitorLayer3, - Air, - "SecondMonitorLayer3"); - - physiSecondMonitorLayer3 = new G4PVPlacement(0, - G4ThreeVector(0.*mm,0.*cm,0.*cm), - "MonitorLayer3", - logicSecondMonitorLayer3, - physiSecondMonitorLayer1, - false, - 0); - - solidSecondMonitorLayer4 = new G4Box("SecondMonitorLayer4", - 0.000011*mm, - 10*cm, - 10*cm); - - logicSecondMonitorLayer4 = new G4LogicalVolume(solidSecondMonitorLayer4, - Cu, - "SecondMonitorLayer4"); - - physiSecondMonitorLayer4 = new G4PVPlacement(0, - G4ThreeVector(4.500011*mm,0.*cm,0.*cm), - "SecondMonitorLayer4", - logicSecondMonitorLayer4, - physiSecondMonitorLayer1, - false, - 0); - - - //************************ - // THIRD MONITOR CHAMBER - // ************************ - - solidThirdMonitorLayer1 = new G4Box("ThirdMonitorLayer1", - 4.525022*mm, - 10*cm, - 10*cm); - - logicThirdMonitorLayer1 = new G4LogicalVolume(solidThirdMonitorLayer1, - Kapton, - "ThirdMonitorLayer1"); - - physiThirdMonitorLayer1 = new G4PVPlacement(0, - G4ThreeVector(-257.28489 *mm,0.*cm,0.*cm), - "ThirdMonitorLayer1", - logicThirdMonitorLayer1, - physiTreatmentRoom, - false, - 0); - - solidThirdMonitorLayer2 = new G4Box("ThirdMonitorLayer2", - 0.000011*mm, - 10*cm, - 10*cm); - - logicThirdMonitorLayer2 = new G4LogicalVolume(solidThirdMonitorLayer2, - Cu, - "ThirdMonitorLayer2"); - - physiThirdMonitorLayer2 = new G4PVPlacement(0, - G4ThreeVector(-4.500011*mm,0.*cm,0.*cm), - "ThirdMonitorLayer2", - logicThirdMonitorLayer2, - physiThirdMonitorLayer1, - false, - 0); - - solidThirdMonitorLayer3 = new G4Box("ThirdMonitorLayer3", - 4.5*mm, - 10*cm, - 10*cm); - - logicThirdMonitorLayer3 = new G4LogicalVolume(solidThirdMonitorLayer3, - Air, - "ThirdMonitorLayer3"); - - physiThirdMonitorLayer3 = new G4PVPlacement(0, - G4ThreeVector(0.*mm,0.*cm,0.*cm), - "MonitorLayer3", - logicThirdMonitorLayer3, - physiThirdMonitorLayer1, - false, - 0); - - solidThirdMonitorLayer4 = new G4Box("ThirdMonitorLayer4", - 0.000011*mm, - 10*cm, - 10*cm); - - logicThirdMonitorLayer4 = new G4LogicalVolume(solidThirdMonitorLayer4, - Cu, - "ThirdMonitorLayer4"); - - physiThirdMonitorLayer4 = new G4PVPlacement(0, - G4ThreeVector(4.500011*mm,0.*cm,0.*cm), - "ThirdMonitorLayer4", - logicThirdMonitorLayer4, - physiSecondMonitorLayer1, - false, - 0); - - // *************** - // NOZZLE SUPPORT - // *************** - - G4double NozzleSupport_x = 29.5 *mm; - G4double NozzleSupport_y = 180. *mm; - G4double NozzleSupport_z = 180. *mm; - - G4double NozzleSupportPosition_x = 647.59 *mm; - G4double NozzleSupportPosition_y = 0. *mm; - G4double NozzleSupportPosition_z = 0. *mm; - - solidNozzleSupport = new G4Box("NozzlSupport", - NozzleSupport_x, - NozzleSupport_y, - NozzleSupport_z); - - logicNozzleSupport = new G4LogicalVolume(solidNozzleSupport, - PMMA, - "NozzleSupport"); - - physiNozzleSupport = new G4PVPlacement(0, - G4ThreeVector(NozzleSupportPosition_x, - NozzleSupportPosition_y, - NozzleSupportPosition_z), - "NozzleSupport", - logicNozzleSupport, - physiTreatmentRoom, - false, - 0); - - // ************************* - // HOLE OF THE BOX SUPPORT - // It rapresents the nozzle - // in which will be inserted - // an air cilindrer - // ************************* - - G4double innerRadiusHoleNozzleSupport = 18. *mm; - G4double outerRadiusHoleNozzleSupport = 21.5 *mm; - G4double hightHoleNozzleSupport = 185. *mm; - G4double startAngleHoleNozzleSupport = 0. *deg; - G4double spanningAngleHoleNozzleSupport = 360. *deg; - - G4double HoleNozzleSupportPosition_x = 773.09 *mm; - G4double HoleNozzleSupportPosition_y = 0. *mm; - G4double HoleNozzleSupportPosition_z = 0. *mm; - - solidHoleNozzleSupport = new G4Tubs("HoleNozzleSupport", - innerRadiusHoleNozzleSupport, - outerRadiusHoleNozzleSupport, - hightHoleNozzleSupport, - startAngleHoleNozzleSupport, - spanningAngleHoleNozzleSupport); - - logicHoleNozzleSupport = new G4LogicalVolume(solidHoleNozzleSupport, - Brass, - "HoleNozzleSupport", - 0, - 0, - 0); - - physiHoleNozzleSupport = new G4PVPlacement(G4Transform3D(rm, - G4ThreeVector(HoleNozzleSupportPosition_x, - HoleNozzleSupportPosition_y, - HoleNozzleSupportPosition_z)), - "HoleNozzleSupport", - logicHoleNozzleSupport, - physiTreatmentRoom, - false, - 0); - - // ********************************************* - // Second Hole of the BOX SUPPORT - // it is a block of air into the BoxNozzle - // - // ********************************************* - - G4double innerRadiusSecondHoleNozzleSupport = 0. *mm; - G4double outerRadiusSecondHoleNozzleSupport = 18. *mm; - G4double hightSecondHoleNozzleSupport = 29.5 *mm; - G4double startAngleSecondHoleNozzleSupport = 0. *deg; - G4double spanningAngleSecondHoleNozzleSupport = 360. *deg; - - solidSecondHoleNozzleSupport = new G4Tubs("SecondHoleNozzleSupport", - innerRadiusSecondHoleNozzleSupport, - outerRadiusSecondHoleNozzleSupport, - hightSecondHoleNozzleSupport, - startAngleSecondHoleNozzleSupport, - spanningAngleSecondHoleNozzleSupport); - - logicSecondHoleNozzleSupport = new G4LogicalVolume(solidSecondHoleNozzleSupport, - Air, - "SecondHoleNozzleSupport", - 0, - 0, - 0); - - physiSecondHoleNozzleSupport = new G4PVPlacement(G4Transform3D(rm, - G4ThreeVector()), - "SecondHoleNozzleSupport", - logicSecondHoleNozzleSupport, - physiNozzleSupport, - false, - 0); - - //****************************** - // FINAL COLLIMATOR 25 mm - //***************************** - - G4double innerRadiusFinalCollimator = 12.5 *mm; - G4double outerRadiusFinalCollimator = 21.5 *mm; - G4double hightFinalCollimator = 3.5 *mm; - G4double startAngleFinalCollimator = 0. *deg; - G4double spanningAngleFinalCollimator = 360. *deg; - - G4double FinalCollimatorPosition_x = 961.59 *mm; - G4double FinalCollimatorPosition_y = 0. *mm; - G4double FinalCollimatorPosition_z = 0. *mm; - - - solidFinalCollimator = new G4Tubs("FinalCollimator", - innerRadiusFinalCollimator, - outerRadiusFinalCollimator, - hightFinalCollimator, - startAngleFinalCollimator, - spanningAngleFinalCollimator); - - logicFinalCollimator = new G4LogicalVolume(solidFinalCollimator, - Brass, - "FinalCollimator", - 0, - 0, - 0); - - physiFinalCollimator = new G4PVPlacement(G4Transform3D(rm, - G4ThreeVector(FinalCollimatorPosition_x, - FinalCollimatorPosition_y, - FinalCollimatorPosition_z)), - "FinalCollimator", - logicFinalCollimator, - physiTreatmentRoom, - false, - 0); - - - - - - // --------------------------------------------------------------------------- - // - // Modulator - // - G4double innerRadiusOfTheTube = 2.5*cm; - G4double outerRadiusOfTheTube = 9.5*cm; - G4double hightOfTheTube = 0.03*cm; - - - //------------------------------ - // Mother volume of modulator - //------------------------------ - - G4ThreeVector positionMotherMod = G4ThreeVector(-1011.91 *mm, 30 *mm, 50 *mm); - solidMotherMod = new G4Box("MotherMod",5 *cm, 5 *cm,2 *cm); - logicMotherMod = new G4LogicalVolume(solidMotherMod, Mod0Mater,"MotherMod",0,0,0); - physiMotherMod = new G4PVPlacement(G4Transform3D(rm,positionMotherMod), // rotation - logicMotherMod, // its logical volume - "MotherMod", // its name - logicTreatmentRoom, // its mother volume - false, // no boolean operations - 0); // no particular field - - - //---------------------------------------------------------- - //Volume Madre 1/4 del Modulatore - //---------------------------------------------------------- - - G4double hightOfTheTube0 = 0.54*cm; - G4double startAngleOfTheTube0 = 45*deg; - G4double spanningAngleOfTheTube0 = 90*deg; - - - G4ThreeVector positionMod0 = G4ThreeVector(0*cm,0*cm,0*cm); - solidMod0 = new G4Tubs("Mod0", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube0, - startAngleOfTheTube0, - spanningAngleOfTheTube0); - - logicMod0 = new G4LogicalVolume(solidMod0, Mod0Mater, "Mod0",0,0,0); - - - - G4RotationMatrix rm2; - phi = 4 *deg; - G4double angle = 90 *deg; - for (G4int j = 0; j < 4 ; j ++) - - { - rm2.rotateZ(phi); - - physiMod0 = new G4PVPlacement(G4Transform3D(rm2, positionMod0), - logicMod0, // its logical volume - "Mod0", // its name - logicMotherMod, // its mother volume - false, // no boolean operations - j); // no particular field - - - phi = phi + angle; - - } - - - //---------------------------------------------------------- - //Prima fetta Modulatore - //---------------------------------------------------------- - - - G4double startAngleOfTheTube1 = 54.267*deg; - G4double spanningAngleOfTheTube1 = 71.466*deg; - - - G4ThreeVector positionMod1 = G4ThreeVector(0*cm,0*cm,0.51*cm); - solidMod1 = new G4Tubs("Mod1", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube1, - spanningAngleOfTheTube1); - - logicMod1 = new G4LogicalVolume(solidMod1, ModMater, "Mod1",0,0,0); - physiMod1 = new G4PVPlacement(0, // no rotation - positionMod1, // at (x,y,z) - logicMod1, // its logical volume - "Mod1", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - //---------------------------------------------------------- - //Seconda fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube2 = 57.714*deg; - G4double spanningAngleOfTheTube2 = 64.572*deg; - - - - G4ThreeVector positionMod2 = G4ThreeVector(0*cm,0*cm,0.45*cm); - solidMod2 = new G4Tubs("Mod2", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube2, - spanningAngleOfTheTube2); - - logicMod2 = new G4LogicalVolume(solidMod2, ModMater, "Mod2",0,0,0); - physiMod2 = new G4PVPlacement(0, // no rotation - positionMod2, // at (x,y,z) - logicMod2, // its logical volume - "Mod2", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - //---------------------------------------------------------- - //Terza fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube3 = 60.478*deg; - G4double spanningAngleOfTheTube3 = 59.044*deg; - - - - G4ThreeVector positionMod3 = G4ThreeVector(0*cm,0*cm,0.39*cm); - solidMod3 = new G4Tubs("Mod3", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube3, - spanningAngleOfTheTube3); - - logicMod3 = new G4LogicalVolume(solidMod3, ModMater, "Mod3",0,0,0); - physiMod3 = new G4PVPlacement(0, // no rotation - positionMod3, // at (x,y,z) - logicMod3, // its logical volume - "Mod3", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - //---------------------------------------------------------- - //Quarta fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube4 = 62.668*deg; - G4double spanningAngleOfTheTube4 = 54.664*deg; - - - G4ThreeVector positionMod4 = G4ThreeVector(0*cm,0*cm,0.33*cm); - solidMod4 = new G4Tubs("Mod4", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube4, - spanningAngleOfTheTube4); - - logicMod4 = new G4LogicalVolume(solidMod4, ModMater, "Mod4",0,0,0); - physiMod4 = new G4PVPlacement(0, // no rotation - positionMod4, // at (x,y,z) - logicMod4, // its logical volume - "Mod4", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - //---------------------------------------------------------- - //Quinta fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube5 = 64.814*deg; - G4double spanningAngleOfTheTube5 = 50.372*deg; - - - G4ThreeVector positionMod5 = G4ThreeVector(0*cm,0*cm,0.27*cm); - solidMod5 = new G4Tubs("Mod5", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube5, - spanningAngleOfTheTube5); - - logicMod5 = new G4LogicalVolume(solidMod5, ModMater, "Mod5",0,0,0); - physiMod5 = new G4PVPlacement(0, // no rotation - positionMod5, // at (x,y,z) - logicMod5, // its logical volume - "Mod5", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - //---------------------------------------------------------- - //Sesta fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube6 = 66.706*deg; - G4double spanningAngleOfTheTube6 = 46.588*deg; - - - G4ThreeVector positionMod6 = G4ThreeVector(0*cm,0*cm,0.21*cm); - solidMod6 = new G4Tubs("Mod6", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube6, - spanningAngleOfTheTube6); - - logicMod6 = new G4LogicalVolume(solidMod6, ModMater, "Mod6",0,0,0); - physiMod6 = new G4PVPlacement(0, // no rotation - positionMod6, // at (x,y,z) - logicMod6, // its logical volume - "Mod6", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - //---------------------------------------------------------- - //Settima fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube7 = 68.648*deg; - G4double spanningAngleOfTheTube7 = 42.704*deg; - - - - G4ThreeVector positionMod7 = G4ThreeVector(0*cm,0*cm,0.15*cm); - solidMod7 = new G4Tubs("Mod7", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube7, - spanningAngleOfTheTube7); - - logicMod7 = new G4LogicalVolume(solidMod7, ModMater, "Mod7",0,0,0); - physiMod7 = new G4PVPlacement(0, // no rotation - positionMod7, // at (x,y,z) - logicMod7, // its logical volume - "Mod7", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - - //---------------------------------------------------------- - //Ottava fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube8 = 70.472*deg; - G4double spanningAngleOfTheTube8 = 39.056*deg; - - - G4ThreeVector positionMod8 = G4ThreeVector(0*cm,0*cm,0.09*cm); - solidMod8 = new G4Tubs("Mod8", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube8, - spanningAngleOfTheTube8); - - logicMod8 = new G4LogicalVolume(solidMod8, ModMater, "Mod8",0,0,0); - physiMod8 = new G4PVPlacement(0, // no rotation - positionMod8, // at (x,y,z) - logicMod8, // its logical volume - "Mod8", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - - - //---------------------------------------------------------- - //Nona fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube9 = 72.288*deg; - G4double spanningAngleOfTheTube9 = 35.424*deg; - - - G4ThreeVector positionMod9 = G4ThreeVector(0*cm,0*cm,0.03*cm); - solidMod9 = new G4Tubs("Mod9", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube9, - spanningAngleOfTheTube9); - - logicMod9 = new G4LogicalVolume(solidMod9, ModMater, "Mod9",0,0,0); - physiMod9 = new G4PVPlacement(0, // no rotation - positionMod9, // at (x,y,z) - logicMod9, // its logical volume - "Mod9", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - //---------------------------------------------------------- - //Decima fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube10 = 74.061*deg; - G4double spanningAngleOfTheTube10 = 31.878*deg; - - - G4ThreeVector positionMod10 = G4ThreeVector(0*cm,0*cm,-0.03*cm); - solidMod10 = new G4Tubs("Mod10", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube10, - spanningAngleOfTheTube10); - - logicMod10 = new G4LogicalVolume(solidMod10, ModMater, "Mod10",0,0,0); - physiMod10 = new G4PVPlacement(0, // no rotation - positionMod10, // at (x,y,z) - logicMod10, // its logical volume - "Mod10", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - //---------------------------------------------------------- - // Undicesima fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube11 = 75.793*deg; - G4double spanningAngleOfTheTube11 = 28.414*deg; - - - G4ThreeVector positionMod11 = G4ThreeVector(0*cm,0*cm,-0.09*cm); - solidMod11 = new G4Tubs("Mod11", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube11, - spanningAngleOfTheTube11); - - logicMod11 = new G4LogicalVolume(solidMod11, ModMater, "Mod11",0,0,0); - physiMod11 = new G4PVPlacement(0, // no rotation - positionMod11, // at (x,y,z) - logicMod11, // its logical volume - "Mod11", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - //---------------------------------------------------------- - //Dodicesima fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube12 = 77.579*deg; - G4double spanningAngleOfTheTube12 = 24.842*deg; - - - - G4ThreeVector positionMod12 = G4ThreeVector(0*cm,0*cm,-0.15*cm); - solidMod12 = new G4Tubs("Mod12", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube12, - spanningAngleOfTheTube12); - - logicMod12 = new G4LogicalVolume(solidMod12, ModMater, "Mod12",0,0,0); - physiMod12 = new G4PVPlacement(0, // no rotation - positionMod12, // at (x,y,z) - logicMod12, // its logical volume - "Mod12", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - //---------------------------------------------------------- - //Tredicesima fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube13 = 79.273*deg; - G4double spanningAngleOfTheTube13 = 21.454*deg; - - - G4ThreeVector positionMod13 = G4ThreeVector(0*cm,0*cm,-0.21*cm); - solidMod13 = new G4Tubs("Mod13", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube13, - spanningAngleOfTheTube13); - - logicMod13 = new G4LogicalVolume(solidMod13, ModMater, "Mod13",0,0,0); - physiMod13 = new G4PVPlacement(0, // no rotation - positionMod13, // at (x,y,z) - logicMod13, // its logical volume - "Mod13", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - //---------------------------------------------------------- - //Quat. fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube14 = 81.014*deg; - G4double spanningAngleOfTheTube14 = 17.972*deg; - - - G4ThreeVector positionMod14 = G4ThreeVector(0*cm,0*cm,-0.27*cm); - solidMod14 = new G4Tubs("Mod14", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube14, - spanningAngleOfTheTube14); - - logicMod14 = new G4LogicalVolume(solidMod14, ModMater, "Mod14",0,0,0); - physiMod14 = new G4PVPlacement(0, // no rotation - positionMod14, // at (x,y,z) - logicMod14, // its logical volume - "Mod14", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - - //---------------------------------------------------------- - //Quindicesima fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube15 = 82.695*deg; - G4double spanningAngleOfTheTube15 = 14.61*deg; - - - G4ThreeVector positionMod15 = G4ThreeVector(0*cm,0*cm,-0.33*cm); - solidMod15 = new G4Tubs("Mod15", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube15, - spanningAngleOfTheTube15); - - logicMod15 = new G4LogicalVolume(solidMod15, ModMater, "Mod15",0,0,0); - physiMod15 = new G4PVPlacement(0, // no rotation - positionMod15, // at (x,y,z) - logicMod15, // its logical volume - "Mod15", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - //---------------------------------------------------------- - //Sedic. fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube16 = 84.425*deg; - G4double spanningAngleOfTheTube16 = 11.15*deg; - - - G4ThreeVector positionMod16 = G4ThreeVector(0*cm,0*cm,-0.39*cm); - solidMod16 = new G4Tubs("Mod16", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube16, - spanningAngleOfTheTube16); - - logicMod16 = new G4LogicalVolume(solidMod16, ModMater, "Mod16",0,0,0); - physiMod16 = new G4PVPlacement(0, // no rotation - positionMod16, // at (x,y,z) - logicMod16, // its logical volume - "Mod16", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - //---------------------------------------------------------- - //Dicias. fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube17 = 86.203*deg; - G4double spanningAngleOfTheTube17 = 7.594*deg; - - - - G4ThreeVector positionMod17 = G4ThreeVector(0*cm,0*cm,-0.45*cm); - solidMod17 = new G4Tubs("Mod17", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube17, - spanningAngleOfTheTube17); - - logicMod17 = new G4LogicalVolume(solidMod17, ModMater, "Mod17",0,0,0); - physiMod17 = new G4PVPlacement(0, // no rotation - positionMod17, // at (x,y,z) - logicMod17, // its logical volume - "Mod17", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - //---------------------------------------------------------- - //Diciot. fetta Modulatore - //---------------------------------------------------------- - - G4double startAngleOfTheTube18 = 87.910*deg; - G4double spanningAngleOfTheTube18 = 4.18*deg; - - - - G4ThreeVector positionMod18 = G4ThreeVector(0*cm,0*cm,-0.51*cm); - solidMod18 = new G4Tubs("Mod18", - innerRadiusOfTheTube, - outerRadiusOfTheTube, - hightOfTheTube, - startAngleOfTheTube18, - spanningAngleOfTheTube18); - - logicMod18 = new G4LogicalVolume(solidMod18, ModMater, "Mod18",0,0,0); - physiMod18 = new G4PVPlacement(0, // no rotation - positionMod18, // at (x,y,z) - logicMod18, // its logical volume - "Mod18", // its name - logicMod0, // its mother volume - false, // no boolean operations - 0); // no particular field - - //******************************** - // WATER PHANTOM - // is a cube full of water - // in wich it is possible - // insert the detectors for - // depth and lateral dose profiles - // reconstruction - //******************************** - - G4double WaterPhantomDimension = 200. *mm; - G4double WaterPhantomPosition_x = 1248.59 *mm; - G4double WaterPhantomPosition_y = 0.0 *mm; - G4double WaterPhantomPosition_z = 0.0 *mm; - - G4Box* WaterPhantom = new G4Box("WaterPhantom", - WaterPhantomDimension, - WaterPhantomDimension, - WaterPhantomDimension); - - logicWaterPhantom = new G4LogicalVolume(WaterPhantom, - Water, - "WaterPhantom"); - physiWaterPhantom = new G4PVPlacement(0, - G4ThreeVector(WaterPhantomPosition_x, - WaterPhantomPosition_y, - WaterPhantomPosition_z), - "WaterPhantom", - logicWaterPhantom, - physiTreatmentRoom, - false, - 0); - - // ************************* - // DOSEMETER - // It is a detector placed - // inside the water phantom - // ************************* - - G4int NbOfLayer = 20000; //Number of the layer of the dosimeter - - G4double innerRadiusDosemeter = 0. *mm; - G4double outerRadiusDosemeter = 3. *mm; - G4double hightDosemeter = 0.001 *mm; - G4double startAngleDosemeter = 0. *deg; - G4double spanningAngleDosemeter = 360. *deg; - - G4double DosemeterPosition_x = (- WaterPhantomDimension + hightDosemeter); - - solidDosemeter = new G4Tubs("Dosemeter", - innerRadiusDosemeter, - outerRadiusDosemeter, - hightDosemeter, - startAngleDosemeter, - spanningAngleDosemeter); - - logicDosemeter = new G4LogicalVolume(solidDosemeter, - Water, - "Dosemeter", - 0, - 0, - 0); - - if (NbOfLayer != 0) - { - - for (G4int j = 0; j < NbOfLayer; j ++) - - { - - physiDosemeter = new G4PVPlacement(G4Transform3D(rm, - G4ThreeVector(DosemeterPosition_x, - 0., - 0.)), - "Dosemeter", - logicDosemeter, - physiWaterPhantom, - false, - j); - - DosemeterPosition_x = DosemeterPosition_x + hightDosemeter*2.; - - } - } - else - { - physiDosemeter = new G4PVPlacement(G4Transform3D(rm, - G4ThreeVector(DosemeterPosition_x, - 0., - 0.)), - "Dosemeter", - logicDosemeter, - physiWaterPhantom, - false, - 0); - } - - - // ************** - // Cut by Region - // ************** - G4Region* aRegion = new G4Region("Dosemeter"); - logicDosemeter->SetRegion(aRegion); - aRegion->AddRootLogicalVolume(logicDosemeter); - - // ******************************* - // Sensitive Detectors: Dosimeter - // ******************************* - - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - if(!calorimeterSD) - { - calorimeterSD = new HadrontherapyCalorimeterSD("CalorSD",this); - SDman->AddNewDetector( calorimeterSD ); - } - if (logicDosemeter) - logicDosemeter->SetSensitiveDetector(calorimeterSD); - - // ************************* - // Visualization attributes - // ************************* - - G4VisAttributes * yellow = new G4VisAttributes( G4Colour(1., 1., 0. )); - yellow-> SetVisibility(true); - yellow-> SetForceSolid(true); - - G4VisAttributes * gray = new G4VisAttributes( G4Colour(0.5, 0.5, 0.5 )); - gray-> SetVisibility(true); - gray-> SetForceSolid(true); - - G4VisAttributes * red = new G4VisAttributes( G4Colour(1. ,0. ,0.)); - red-> SetVisibility(true); - red-> SetForceSolid(true); - - G4VisAttributes * blue = new G4VisAttributes( G4Colour(0. ,0. ,1.)); - blue -> SetVisibility(true); - blue -> SetForceSolid(true); - - G4VisAttributes * green = new G4VisAttributes( G4Colour(0. ,1. ,0.)); - green -> SetVisibility(true); - green -> SetForceSolid(true); - - G4VisAttributes * white = new G4VisAttributes( G4Colour()); - white -> SetVisibility(true); - white -> SetForceSolid(true); - - G4VisAttributes * brawn = new G4VisAttributes( G4Colour(0.8, 0.5, 0.35)); - brawn -> SetVisibility(true); - brawn -> SetForceSolid(true); - - logicTreatmentRoom->SetVisAttributes (G4VisAttributes::Invisible); - logicBeamLineSupport -> SetVisAttributes(gray); - logicBeamLineCover -> SetVisAttributes(blue); - logicBeamLineCover2 -> SetVisAttributes(blue); - logicFirstCollimatorModulatorBox -> SetVisAttributes(blue); - logicHoleFirstCollimatorModulatorBox ->SetVisAttributes (white); - logicSecondCollimatorModulatorBox -> SetVisAttributes(blue); - logicFirstMonitorLayer1 -> SetVisAttributes(brawn); - logicSecondMonitorLayer1 -> SetVisAttributes(brawn); - logicThirdMonitorLayer1 -> SetVisAttributes(brawn); - logicNozzleSupport -> SetVisAttributes(white); - logicHoleNozzleSupport -> SetVisAttributes(yellow); - logicFinalCollimator -> SetVisAttributes(red); - //logicWaterPhantom -> SetVisAttributes(red); - logicDosemeter -> SetVisAttributes(G4VisAttributes::Invisible); - logicFirstCollimator -> SetVisAttributes(white); - logicSecondCollimator -> SetVisAttributes(white); - logicMotherMod -> SetVisAttributes( G4VisAttributes::Invisible ); - logicMod0 -> SetVisAttributes ( G4VisAttributes::Invisible ); - logicMod1 -> SetVisAttributes(red); - logicMod2 -> SetVisAttributes(red); - logicMod3 -> SetVisAttributes(red); - logicMod4 -> SetVisAttributes(red); - logicMod5 -> SetVisAttributes(red); - logicMod6 -> SetVisAttributes(red); - logicMod7 -> SetVisAttributes(red); - logicMod8 -> SetVisAttributes(red); - logicMod9 -> SetVisAttributes(red); - logicMod10 -> SetVisAttributes(red); - logicMod11 -> SetVisAttributes(red); - logicMod12 -> SetVisAttributes(red); - logicMod13 -> SetVisAttributes(red); - logicMod14 -> SetVisAttributes(red); - logicMod15 -> SetVisAttributes(red); - logicMod16 -> SetVisAttributes(red); - logicMod17 -> SetVisAttributes(red); - logicMod18 -> SetVisAttributes(red); - - // ********************************* - // always return the physical World - // ********************************* - - return physiTreatmentRoom; + return physicalTreatmentRoom; } -// -------------------------------------------------------------- -void HadrontherapyDetectorConstruction::SetModulatorAngle(G4double val) -{ - // change Gap thickness and recompute the calorimeter parameters +void HadrontherapyDetectorConstruction::ConstructBeamLine() +{ + G4Material* air = material -> GetMat("Air") ; + G4Material* water = material -> GetMat("Water"); - ModulatorAngle = val; - delete physiMotherMod; + // --------------------- + // Treatment room - World volume + //--------------------- - G4double alpha = 90 *deg; - G4RotationMatrix rm3; - rm3.rotateY(alpha); - rm3.rotateX(ModulatorAngle); - G4ThreeVector positionMotherMod = G4ThreeVector(-1011.91 *mm, 30 *mm, 50 *mm); - - physiMotherMod = new G4PVPlacement(G4Transform3D(rm3,positionMotherMod), // rotation - logicMotherMod, // its logical volume - "MotherMod", // its name - logicTreatmentRoom, // its mother volume - false, // no boolean operations - 0); // no particular field - - G4cout << "MODULATOR HAS BEEN ROTATED OF " << ModulatorAngle << " GRADIENTS" << G4endl; - - + // Treatment room sizes + const G4double worldX = 400.0 *cm; + const G4double worldY = 400.0 *cm; + const G4double worldZ = 400.0 *cm; + + G4Box* treatmentRoom = new G4Box("TreatmentRoom",worldX,worldY,worldZ); + + G4LogicalVolume* logicTreatmentRoom = new G4LogicalVolume(treatmentRoom, + air, + "logicTreatmentRoom", + 0,0,0); + + physicalTreatmentRoom = new G4PVPlacement(0, + G4ThreeVector(), + "physicalTreatmentRoom", + logicTreatmentRoom, + 0,false,0); + + + // The treatment room is invisible in the Visualisation + logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::Invisible); + beamLine = new HadrontherapyBeamLine(physicalTreatmentRoom); + beamLine -> HadrontherapyBeamLineSupport(); + beamLine -> HadrontherapyBeamScatteringFoils(); + beamLine -> HadrontherapyBeamCollimators(); + beamLine -> HadrontherapyBeamMonitoring(); + beamLine -> HadrontherapyBeamNozzle(); + beamLine -> HadrontherapyBeamFinalCollimator(); + modulator = new HadrontherapyModulator(); + modulator -> BuildModulator(physicalTreatmentRoom); - G4RunManager::GetRunManager()-> GeometryHasBeenModified(); + // Patient - Mother volume of the phantom + G4Box* patient = new G4Box("patient",20 *cm, 20 *cm, 20 *cm); + G4LogicalVolume* patientLogicalVolume = new G4LogicalVolume(patient, + water, + "patientLog", 0, 0, 0); + + patientPhysicalVolume = new G4PVPlacement(0,G4ThreeVector(0., 0., 0.), + "patientPhys", + patientLogicalVolume, + physicalTreatmentRoom, + false,0); + + // Visualisation attributes of the patient + G4VisAttributes * redWire = new G4VisAttributes(G4Colour(1. ,0. ,0.)); + redWire -> SetVisibility(true); + redWire -> SetForceWireframe(true); + patientLogicalVolume -> SetVisAttributes(redWire); +} + +void HadrontherapyDetectorConstruction::ConstructPhantom() +{ + G4Colour lightBlue (0.0, 0.0, .75); + + G4Material* water = material -> GetMat("Water"); + + ComputeVoxelSize(); + + //---------------------- + // Water phantom + //---------------------- + G4Box* phantom = new G4Box("Phantom",phantomSizeX,phantomSizeY,phantomSizeZ); + + phantomLogicalVolume = new G4LogicalVolume(phantom, + water, + "PhantomLog", + 0,0,0); + + // Fixing the max step allowd in the phantom + G4double maxStep = 0.02*cm; + phantomLogicalVolume -> SetUserLimits(new G4UserLimits(maxStep)); + + G4double phantomXtranslation = -180.*mm; + phantomPhysicalVolume = new G4PVPlacement(0, + G4ThreeVector(phantomXtranslation, 0.0 *mm, 0.0 *mm), + "PhantomPhys", + phantomLogicalVolume, + patientPhysicalVolume, + false,0); + + // Visualisation attributes of the phantom + G4VisAttributes* simpleBoxVisAttributes = new G4VisAttributes(lightBlue); + simpleBoxVisAttributes -> SetVisibility(true); + simpleBoxVisAttributes -> SetForceSolid(true); + phantomLogicalVolume -> SetVisAttributes(simpleBoxVisAttributes); + + // ************** + // Cut per Region + // ************** + + // A smaller cut is fixed in the phantom to calculate the energy deposit with the + // required accuracy + G4Region* aRegion = new G4Region("PhantomLog"); + phantomLogicalVolume -> SetRegion(aRegion); + aRegion -> AddRootLogicalVolume(phantomLogicalVolume); +} + +void HadrontherapyDetectorConstruction::ConstructSensitiveDetector() +{ + // Sensitive Detector and ReadOut geometry definition + G4SDManager* sensitiveDetectorManager = G4SDManager::GetSDMpointer(); + + G4String sensitiveDetectorName = "Phantom"; + + if(!phantomSD) + { + // The sensitive detector is instantiated + phantomSD = new HadrontherapyPhantomSD(sensitiveDetectorName); + + // The Read Out Geometry is instantiated + G4String ROGeometryName = "PhantomROGeometry"; + phantomROGeometry = new HadrontherapyPhantomROGeometry(ROGeometryName, + phantomSizeX, + phantomSizeY, + phantomSizeZ, + numberOfVoxelsAlongX, + numberOfVoxelsAlongY, + numberOfVoxelsAlongZ); + phantomROGeometry -> BuildROGeometry(); + phantomSD -> SetROgeometry(phantomROGeometry); + sensitiveDetectorManager -> AddNewDetector(phantomSD); + phantomLogicalVolume -> SetSensitiveDetector(phantomSD); + } +} + +void HadrontherapyDetectorConstruction::SetModulatorAngle(G4double value) +{ + modulator -> SetModulatorAngle(value); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); +} + +void HadrontherapyDetectorConstruction::SetRangeShifterXPosition(G4double value) +{ + beamLine -> SetRangeShifterXPosition(value); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); +} + +void HadrontherapyDetectorConstruction::SetRangeShifterXSize(G4double value) +{ + beamLine -> SetRangeShifterXSize(value); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); +} + +void HadrontherapyDetectorConstruction::SetFirstScatteringFoilSize(G4double value) +{ + beamLine -> SetFirstScatteringFoilXSize(value); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); +} + +void HadrontherapyDetectorConstruction::SetSecondScatteringFoilSize(G4double value) +{ + beamLine -> SetSecondScatteringFoilXSize(value); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); +} + +void HadrontherapyDetectorConstruction::SetOuterRadiusStopper(G4double value) +{ + beamLine -> SetOuterRadiusStopper(value); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); +} + +void HadrontherapyDetectorConstruction::SetInnerRadiusFinalCollimator(G4double value) +{ + beamLine -> SetInnerRadiusFinalCollimator(value); + G4RunManager::GetRunManager() -> GeometryHasBeenModified(); +} + +void HadrontherapyDetectorConstruction::SetRSMaterial(G4String materialChoice) +{ + beamLine -> SetRSMaterial(materialChoice); } -// -------------------------------------------------------------- diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyDetectorMessenger.cc b/examples/advanced/hadrontherapy/src/HadrontherapyDetectorMessenger.cc old mode 100755 new mode 100644 index 17aded8579..e79f327c47 --- a/examples/advanced/hadrontherapy/src/HadrontherapyDetectorMessenger.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyDetectorMessenger.cc @@ -19,58 +19,156 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyDetectorMessenger.cc,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyDetectorMessenger.cc; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo, Francesco Di Rosa -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- #include "HadrontherapyDetectorMessenger.hh" #include "HadrontherapyDetectorConstruction.hh" #include "G4UIdirectory.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithAString.hh" -// ----------------------------------------------------------------------------- HadrontherapyDetectorMessenger::HadrontherapyDetectorMessenger( - HadrontherapyDetectorConstruction* HadrontherapyDet) - :HadrontherapyDetector(HadrontherapyDet) + HadrontherapyDetectorConstruction* detector) + :hadrontherapyDetector(detector) { - HadronDir = new G4UIdirectory("/modulator/"); - HadronDir->SetGuidance("Command to rotate the modulator wheel"); + modulatorDir = new G4UIdirectory("/modulator/"); + modulatorDir -> SetGuidance("Command to rotate the modulator wheel"); - detDir = new G4UIdirectory("/modulator/angle/"); - detDir->SetGuidance("Modulator angle control"); + beamLineDir = new G4UIdirectory("/beamLine/"); + beamLineDir -> SetGuidance("set specification of range shifter"); - ModulatorAngleCmd = new G4UIcmdWithADoubleAndUnit("/modulator/angle/modAngle",this); - ModulatorAngleCmd->SetGuidance("Set Modulator Angle"); - ModulatorAngleCmd->SetParameterName("Size",false); - ModulatorAngleCmd->SetRange("Size>=0."); - ModulatorAngleCmd->SetUnitCategory("Angle"); - ModulatorAngleCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + rangeShifterDir = new G4UIdirectory("/beamLine/RangeShifter/"); + rangeShifterDir -> SetGuidance("set specification of range shifter"); + + firstScatteringFoilDir = new G4UIdirectory("/beamLine/ScatteringFoil1/"); + firstScatteringFoilDir -> SetGuidance("set specification of first scattering foil"); + + secondScatteringFoilDir = new G4UIdirectory("/beamLine/ScatteringFoil2/"); + secondScatteringFoilDir -> SetGuidance("set specification of second scattering foil"); + + rangeStopperDir = new G4UIdirectory("/beamLine/Stopper/"); + rangeStopperDir -> SetGuidance("set specification of stopper"); + + finalCollimatorDir = new G4UIdirectory("/beamLine/FinalCollimator/"); + finalCollimatorDir -> SetGuidance("set specification of final collimator"); + + modulatorAngleCmd = new G4UIcmdWithADoubleAndUnit("/modulator/angle",this); + modulatorAngleCmd -> SetGuidance("Set Modulator Angle"); + modulatorAngleCmd -> SetParameterName("Size",false); + modulatorAngleCmd -> SetRange("Size>=0."); + modulatorAngleCmd -> SetUnitCategory("Angle"); + modulatorAngleCmd -> AvailableForStates(G4State_Idle); + + rangeShifterMatCmd = new G4UIcmdWithAString("/beamLine/RangeShifter/RSMat",this); + rangeShifterMatCmd -> SetGuidance("Set material of range shifter"); + rangeShifterMatCmd -> SetParameterName("choice",false); + rangeShifterMatCmd -> AvailableForStates(G4State_Idle); + + rangeShifterXSizeCmd = new G4UIcmdWithADoubleAndUnit("/beamLine/RangeShifter/thickness",this); + rangeShifterXSizeCmd -> SetGuidance("Set half of the thickness of range shifter along X axis"); + rangeShifterXSizeCmd -> SetParameterName("Size",false); + rangeShifterXSizeCmd -> SetDefaultUnit("mm"); + rangeShifterXSizeCmd -> SetUnitCandidates("mm cm m"); + rangeShifterXSizeCmd -> AvailableForStates(G4State_Idle); + + rangeShifterXPositionCmd = new G4UIcmdWithADoubleAndUnit("/beamLine/RangeShifter/position",this); + rangeShifterXPositionCmd -> SetGuidance("Set position of range shifter"); + rangeShifterXPositionCmd -> SetParameterName("Size",false); + rangeShifterXPositionCmd -> SetDefaultUnit("mm"); + rangeShifterXPositionCmd -> SetUnitCandidates("mm cm m"); + rangeShifterXPositionCmd -> AvailableForStates(G4State_Idle); + + firstScatteringFoilXSizeCmd = new G4UIcmdWithADoubleAndUnit("/beamLine/ScatteringFoil1/thickness",this); + firstScatteringFoilXSizeCmd -> SetGuidance("Set hlaf thickness of first scattering foil"); + firstScatteringFoilXSizeCmd -> SetParameterName("Size",false); + firstScatteringFoilXSizeCmd -> SetDefaultUnit("mm"); + firstScatteringFoilXSizeCmd -> SetUnitCandidates("mm cm m"); + firstScatteringFoilXSizeCmd -> AvailableForStates(G4State_Idle); + + secondScatteringFoilXSizeCmd = new G4UIcmdWithADoubleAndUnit("/beamLine/ScatteringFoil2/thickness",this); + secondScatteringFoilXSizeCmd -> SetGuidance("Set half thickness of second scattering foil"); + secondScatteringFoilXSizeCmd -> SetParameterName("Size",false); + secondScatteringFoilXSizeCmd -> SetDefaultUnit("mm"); + secondScatteringFoilXSizeCmd -> SetUnitCandidates("mm cm m"); + secondScatteringFoilXSizeCmd -> AvailableForStates(G4State_Idle); + + outerRadiusStopperCmd = new G4UIcmdWithADoubleAndUnit("/beamLine/Stopper/outRadius",this); + outerRadiusStopperCmd -> SetGuidance("Set size of outer radius"); + outerRadiusStopperCmd -> SetParameterName("Size",false); + outerRadiusStopperCmd -> SetDefaultUnit("mm"); + outerRadiusStopperCmd -> SetUnitCandidates("mm cm m"); + outerRadiusStopperCmd -> AvailableForStates(G4State_Idle); + + innerRadiusFinalCollimatorCmd = new G4UIcmdWithADoubleAndUnit("/beamLine/FinalCollimator/halfInnerRad",this); + innerRadiusFinalCollimatorCmd -> SetGuidance("Set size of inner radius ( max 21.5 mm)"); + innerRadiusFinalCollimatorCmd -> SetParameterName("Size",false); + innerRadiusFinalCollimatorCmd -> SetDefaultUnit("mm"); + innerRadiusFinalCollimatorCmd -> SetUnitCandidates("mm cm m"); + innerRadiusFinalCollimatorCmd -> AvailableForStates(G4State_Idle); } -// ------------------------------------------------------------------------------- HadrontherapyDetectorMessenger::~HadrontherapyDetectorMessenger() -{ - - delete ModulatorAngleCmd; - delete detDir; - delete HadronDir; +{ + delete innerRadiusFinalCollimatorCmd; + delete outerRadiusStopperCmd; + delete secondScatteringFoilXSizeCmd; + delete firstScatteringFoilXSizeCmd; + delete rangeShifterXPositionCmd; + delete rangeShifterXSizeCmd; + delete rangeShifterMatCmd; + delete modulatorAngleCmd; + delete finalCollimatorDir; + delete rangeStopperDir; + delete secondScatteringFoilDir; + delete firstScatteringFoilDir; + delete rangeShifterDir; + delete beamLineDir; + delete modulatorDir; } -// -------------------------------------------------------------------------------- + void HadrontherapyDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { + if( command == modulatorAngleCmd ) + { hadrontherapyDetector -> SetModulatorAngle + (modulatorAngleCmd -> GetNewDoubleValue(newValue));} - if( command == ModulatorAngleCmd ) - { HadrontherapyDetector->SetModulatorAngle(ModulatorAngleCmd->GetNewDoubleValue(newValue));} + if( command == rangeShifterMatCmd ) + { hadrontherapyDetector -> SetRSMaterial(newValue);} + if( command == rangeShifterXSizeCmd ) + { hadrontherapyDetector -> SetRangeShifterXSize + (rangeShifterXSizeCmd -> GetNewDoubleValue(newValue));} + + if( command == rangeShifterXPositionCmd ) + { hadrontherapyDetector -> SetRangeShifterXPosition + (rangeShifterXPositionCmd -> GetNewDoubleValue(newValue));} + + if( command == firstScatteringFoilXSizeCmd ) + { hadrontherapyDetector -> SetFirstScatteringFoilSize + (firstScatteringFoilXSizeCmd -> GetNewDoubleValue(newValue));} + + if( command == secondScatteringFoilXSizeCmd ) + { hadrontherapyDetector -> SetSecondScatteringFoilSize + (secondScatteringFoilXSizeCmd -> GetNewDoubleValue(newValue));} + + if( command == outerRadiusStopperCmd ) + { hadrontherapyDetector -> SetOuterRadiusStopper( + outerRadiusStopperCmd -> GetNewDoubleValue(newValue));} + + if( command == innerRadiusFinalCollimatorCmd ) + { hadrontherapyDetector -> SetInnerRadiusFinalCollimator + (innerRadiusFinalCollimatorCmd -> GetNewDoubleValue(newValue));} } -// ------------------------------------------------------------------------------------ + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyElectronEEDL.cc b/examples/advanced/hadrontherapy/src/HadrontherapyElectronEEDL.cc new file mode 100644 index 0000000000..5c1f0eccba --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyElectronEEDL.cc @@ -0,0 +1,72 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyElectronEEDL.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#include "HadrontherapyElectronEEDL.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4MultipleScattering.hh" +#include "G4LowEnergyIonisation.hh" +#include "G4LowEnergyBremsstrahlung.hh" +#include "G4StepLimiter.hh" + +HadrontherapyElectronEEDL::HadrontherapyElectronEEDL(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyElectronEEDL::~HadrontherapyElectronEEDL() +{ } + +void HadrontherapyElectronEEDL::ConstructProcess() +{ + // Add EEDL processes for electrons + + theParticleIterator->reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* manager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "e-") + { + manager->AddProcess(new G4MultipleScattering, -1, 1,1); + manager->AddProcess(new G4LowEnergyIonisation, -1, 2,2); + G4LowEnergyBremsstrahlung* brem = new G4LowEnergyBremsstrahlung(); + manager->AddProcess(brem,-1,-1,3); + manager->AddProcess(new G4StepLimiter(), -1,-1, 3); + } + } +} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyElectronPenelope.cc b/examples/advanced/hadrontherapy/src/HadrontherapyElectronPenelope.cc new file mode 100644 index 0000000000..f922194890 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyElectronPenelope.cc @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyElectronPenelope.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#include "HadrontherapyElectronPenelope.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4MultipleScattering.hh" +#include "G4PenelopeIonisation.hh" +#include "G4PenelopeBremsstrahlung.hh" +#include "G4PenelopeAnnihilation.hh" +#include "G4StepLimiter.hh" + +HadrontherapyElectronPenelope::HadrontherapyElectronPenelope(const G4String& name): +G4VPhysicsConstructor(name) +{ } + +HadrontherapyElectronPenelope::~HadrontherapyElectronPenelope() +{ } + +void HadrontherapyElectronPenelope::ConstructProcess() +{ + + + theParticleIterator->reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* manager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "e-") + { + manager -> AddProcess(new G4MultipleScattering, -1, 1,1); + G4PenelopeIonisation* ioni = new G4PenelopeIonisation(); + G4PenelopeBremsstrahlung* brem = new G4PenelopeBremsstrahlung(); + manager -> AddProcess(ioni, -1, 2,2); + manager -> AddProcess(brem, -1,-1,3); + manager->AddProcess(new G4MultipleScattering, -1, 1,1); + manager->AddProcess(new G4StepLimiter(), -1,-1,3); + } + } +} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyElectronStandard.cc b/examples/advanced/hadrontherapy/src/HadrontherapyElectronStandard.cc new file mode 100644 index 0000000000..5c846f55bd --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyElectronStandard.cc @@ -0,0 +1,70 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#include "HadrontherapyElectronStandard.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4MultipleScattering.hh" +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4StepLimiter.hh" + +HadrontherapyElectronStandard::HadrontherapyElectronStandard(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyElectronStandard::~HadrontherapyElectronStandard() +{ } + +void HadrontherapyElectronStandard::ConstructProcess() +{ + // Add standard processes for electrons + + theParticleIterator->reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* manager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "e-") + { + manager->AddProcess(new G4MultipleScattering, -1, 1,1); + manager->AddProcess(new G4eIonisation, -1, 2,2); + manager->AddProcess(new G4eBremsstrahlung, -1,-1,3); + manager->AddProcess(new G4StepLimiter(), -1,-1, 3); + } + } +} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyEventAction.cc b/examples/advanced/hadrontherapy/src/HadrontherapyEventAction.cc old mode 100755 new mode 100644 index 6b9696ef65..53af15a30c --- a/examples/advanced/hadrontherapy/src/HadrontherapyEventAction.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyEventAction.cc @@ -19,92 +19,101 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyEventAction.cc,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyEventAction.cc; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it // -------------------------------------------------------------- -#include "HadrontherapyEventAction.hh" -#include "HadrontherapyRunAction.hh" -#include "HadrontherapyHit.hh" #include "G4Event.hh" #include "G4EventManager.hh" #include "G4HCofThisEvent.hh" #include "G4VHitsCollection.hh" -#include "G4SDManager.hh" -#include "G4UImanager.hh" #include "G4TrajectoryContainer.hh" #include "G4Trajectory.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" -#include "G4UnitsTable.hh" -#include "HadrontherapyCalorimeterSD.hh" +#include "G4SDManager.hh" +#include "G4VVisManager.hh" +#include "HadrontherapyEventAction.hh" +#include "HadrontherapyPhantomHit.hh" +#include "HadrontherapyPhantomSD.hh" +#include "HadrontherapyDetectorConstruction.hh" +#include "HadrontherapyMatrix.hh" -// ------------------------------------------------------------------- -HadrontherapyEventAction::HadrontherapyEventAction(HadrontherapyRunAction* runAction) - :calorimeterCollID(-1), eventMessenger(NULL), verboselevel(0) -{ - p_Run = runAction; +HadrontherapyEventAction::HadrontherapyEventAction(HadrontherapyMatrix* matrixPointer) : + drawFlag("all" ) +{ + hitsCollectionID = -1; + matrix = matrixPointer; } -// -------------------------------------------------------------------- HadrontherapyEventAction::~HadrontherapyEventAction() { } -// -------------------------------------------------------------------- -void HadrontherapyEventAction::BeginOfEventAction(const G4Event* evt) +void HadrontherapyEventAction::BeginOfEventAction(const G4Event* ) { - event_id = evt->GetEventID(); - if (calorimeterCollID==-1) - { - G4SDManager * SDman = G4SDManager::GetSDMpointer(); - calorimeterCollID = SDman->GetCollectionID("CalCollection"); - } + G4SDManager* pSDManager = G4SDManager::GetSDMpointer(); + if(hitsCollectionID == -1) + hitsCollectionID = pSDManager -> GetCollectionID("HadrontherapyPhantomHitsCollection"); +} + +void HadrontherapyEventAction::EndOfEventAction(const G4Event* evt) +{ + if(hitsCollectionID < 0) + return; + + G4HCofThisEvent* HCE = evt -> GetHCofThisEvent(); + HadrontherapyPhantomHitsCollection* CHC = NULL; - nstep = 0. ; - for (G4int slice = 0; slice < 20000; slice ++) //slice dependence + if(HCE) + CHC = (HadrontherapyPhantomHitsCollection*)(HCE -> GetHC(hitsCollectionID)); + + if(CHC) { - energyDep[slice]=0; + if(matrix) + { + // Fill the matrix with the information: voxel and associated energy deposit + // in the phantom at the end of the event + + G4int HitCount = CHC -> entries(); + for (G4int h=0; h GetXID(); + G4int j = ((*CHC)[h]) -> GetYID(); + G4int k = ((*CHC)[h]) -> GetZID(); + G4double energyDeposit = ((*CHC)[h]) -> GetEdep(); + matrix -> Fill(i, j, k, energyDeposit); + } + } + } + + // Extract the trajectories and draw them in the visualisation + + if (G4VVisManager::GetConcreteInstance()) + { + G4TrajectoryContainer * trajectoryContainer = evt -> GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trajectoryContainer) n_trajectories = trajectoryContainer -> entries(); + + for (G4int i = 0; i < n_trajectories; i++) + { + G4Trajectory* trj = (G4Trajectory*) + ((*(evt -> GetTrajectoryContainer()))[i]); + if(drawFlag == "all") trj -> DrawTrajectory(50); + else if((drawFlag == "charged")&&(trj -> GetCharge() != 0.)) + trj -> DrawTrajectory(50); + else if ((drawFlag == "neutral")&&(trj -> GetCharge() == 0.)) + trj -> DrawTrajectory(50); + } } } -// --------------------------------------------------------------------- -void HadrontherapyEventAction::EndOfEventAction(const G4Event* evt) -{ - if (calorimeterCollID < 0) return; - - G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - HadrontherapyHitsCollection* CHC = NULL; - if(HCE) - CHC = (HadrontherapyHitsCollection*)(HCE->GetHC(calorimeterCollID)); - - if(CHC) - { - G4int HitCount = CHC->entries(); - - for (G4int h=0; h < HitCount; h++) - { - G4int j=((*CHC)[h])->GetSliceID(); - energyDep[j]+=((*CHC)[h]->GetEdep()); - p_Run->EnergyTotSlice(j,energyDep[j]); - } - } -} -G4int HadrontherapyEventAction::Trasporto() -{ - G4int var = event_id; - return var; -} - - - - - - diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyIonLowE.cc b/examples/advanced/hadrontherapy/src/HadrontherapyIonLowE.cc new file mode 100644 index 0000000000..ef4a7726c1 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyIonLowE.cc @@ -0,0 +1,87 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyIonLowE.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#include "HadrontherapyIonLowE.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4MultipleScattering.hh" +#include "G4hLowEnergyIonisation.hh" +#include "G4hIonisation.hh" +#include "G4hLowEnergyLoss.hh" +#include "G4StepLimiter.hh" + +HadrontherapyIonLowE::HadrontherapyIonLowE(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyIonLowE::~HadrontherapyIonLowE() +{ } + +void HadrontherapyIonLowE::ConstructProcess() +{ + theParticleIterator -> reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator -> value(); + G4ProcessManager* manager = particle -> GetProcessManager(); + G4String particleName = particle -> GetParticleName(); + G4double charge = particle -> GetPDGCharge(); + + // protons, ions, alpha, pions, kaons, generic ion..... + if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" && + particleName != "e-" && particleName != "mu-") + { + if((!particle -> IsShortLived()) && + (particle -> GetParticleName() != "chargedgeantino")) + { + G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); + + ionisation -> SetNuclearStoppingPowerModel("ICRU_R49") ; // ICRU49 models for nuclear SP + ionisation -> SetNuclearStoppingOn() ; + + // Switch off the Barkas and Bloch corrections + ionisation -> SetBarkasOn(); + + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + } + } +} + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyIonStandard.cc b/examples/advanced/hadrontherapy/src/HadrontherapyIonStandard.cc new file mode 100644 index 0000000000..d6fd677089 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyIonStandard.cc @@ -0,0 +1,79 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyIonStandard.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyIonStandard.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4MultipleScattering.hh" +#include "G4hIonisation.hh" +#include "G4MultipleScattering.hh" +#include "G4StepLimiter.hh" + +HadrontherapyIonStandard::HadrontherapyIonStandard(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyIonStandard::~HadrontherapyIonStandard() +{ } + +void HadrontherapyIonStandard::ConstructProcess() +{ + theParticleIterator -> reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator -> value(); + G4ProcessManager* manager = particle -> GetProcessManager(); + G4String particleName = particle -> GetParticleName(); + G4double charge = particle -> GetPDGCharge(); + + // protons, ions, pions, kaons, etc. + if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" && + particleName != "e-" && particleName != "mu-") + { + if((!particle -> IsShortLived()) && + (particle -> GetParticleName() != "chargedgeantino")) + { + G4hIonisation* ionisation = new G4hIonisation(); + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + } + } +} + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyMaterial.cc b/examples/advanced/hadrontherapy/src/HadrontherapyMaterial.cc new file mode 100644 index 0000000000..9e8120e565 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyMaterial.cc @@ -0,0 +1,274 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyMaterial.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#include "globals.hh" +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4Element.hh" +#include "G4ElementTable.hh" +#include "HadrontherapyMaterial.hh" + +HadrontherapyMaterial::HadrontherapyMaterial(): + matW(0), matAl(0), matSi(0), matTa(0), matCu(0), + vacuum(0), matplexiglass(0), brass(0), + kapton(0), matPb(0), titanium(0), matAir(0), + matH2O(0), soft(0), gold(0), bone(0), muscle(0) +{;} + +HadrontherapyMaterial::~HadrontherapyMaterial() +{ + delete muscle; + delete bone; + delete gold; + delete soft; + delete matH2O; + delete matAir; + delete titanium; + delete matPb; + delete kapton; + delete brass; + delete matplexiglass; + delete vacuum; + delete matCu; + delete matTa; + delete matSi; + delete matAl; + delete matW; +} + +void HadrontherapyMaterial::DefineMaterials() +{ + // Define required materials + + G4double z; // Atomic numebr + G4double a; // Atomic mass + G4double d; // Density + G4int nComponents;// Number of components + G4double fractionmass; // Fraction in mass of an element in a material + G4int nAtoms; // Number of atoms in a molecuule + + // Elements + + a = 1.01*g/mole; + G4Element* elH = new G4Element ("Hydrogen","H",z = 1.,a); + + a = 14.01*g/mole; + G4Element* elN = new G4Element("Nitrogen","N",z = 7.,a); + + a = 16.00*g/mole; + G4Element* elO = new G4Element("Oxygen","O",z = 8.,a); + + a = 12.011*g/mole; + G4Element* elC = new G4Element("Carbon","C",z = 6.,a); + + a = 22.99*g/mole; + G4Element* elNa = new G4Element("Sodium","Na",z = 11.,a); + + a = 24.305*g/mole; + G4Element* elMg = new G4Element("Magnesium","Mg",z = 12.,a); + + a = 30.974*g/mole; + G4Element* elP = new G4Element("Phosphorus","P",z = 15.,a); + + a = 32.06*g/mole; + G4Element* elS = new G4Element("Sulfur","S",z = 16.,a); + + a = 35.453*g/mole; + G4Element* elCl = new G4Element("Chlorine","Cl",z = 17.,a); + + a = 39.098*g/mole; + G4Element* elK = new G4Element("Potassium","K",z = 19.,a); + + a = 40.08*g/mole; + G4Element* elCa = new G4Element("Calcium","Ca",z = 20.,a); + + a = 65.38*g/mole; + G4Element* elZn = new G4Element("Zinc","Zn",z = 30.,a); + + a = 55.85*g/mole; + G4Element* elFe = new G4Element("Iron","Fe",z = 26.,a); + + a = 63.546*g/mole; + d = 8.90*g/cm3; + G4Element* elCu = new G4Element("Copper","Cu", z = 29., a); + + // Materials + + // Tungsten + z = 74.; + a = 183.84* g/mole; + d = 19.3*g/cm3; + matW = new G4Material("Tungsten", z, a, d); + + // Aluminum + z = 13.; + a = 26.98*g/mole; + d = 2.700*g/cm3; + matAl = new G4Material("MatAluminum",z, a, d); + + // Silicon + z = 14.; + a = 28.09*g/mole; + d = 2.330*g/cm3; + matSi = new G4Material("MatSilicon",z, a, d); + + // Tantalum + z = 73.; + a = 180.948*g/mole; + d = 16.6*g/cm3; + matTa = new G4Material("MatTantalum", z, a, d); + + // Copper + z = 29.; + a = 63.546*g/mole; + d = 8.90*g/cm3; + matCu = new G4Material("MatCopper", z, a, d); + + // Vacuum + G4double density = universe_mean_density; + G4double pressure = 3.e-18*pascal; + G4double temperature = 2.73*kelvin; + a = 1.01*g/mole; + z = 1; + vacuum = new G4Material("Galactic", z, a, + density,kStateGas,temperature,pressure); + + // Plexiglass + d = 1.18*g/cm3; + matplexiglass = new G4Material("PMMA",d,3); + matplexiglass -> AddElement(elH,0.08); + matplexiglass -> AddElement(elC,0.60); + matplexiglass -> AddElement(elO,0.32); + + // Brass + d = 8.40*g/cm3; + nComponents = 2; + G4Material* brass = new G4Material("Brass", d, nComponents); + brass -> AddElement(elZn, fractionmass = 30*perCent); + brass -> AddElement(elCu, fractionmass = 70*perCent); + + // Kapton + d = 1.43*g/cm3; + nComponents = 4; + G4Material* kapton = new G4Material("Kapton", d, nComponents); + kapton -> AddElement(elH, nAtoms = 10); + kapton -> AddElement(elO, nAtoms = 5); + kapton -> AddElement(elC, nAtoms = 22); + kapton -> AddElement(elN, nAtoms = 2); + + // Lead + a = 207.19*g/mole; + z = 82.; + d = 11.35*g/cm3; + matPb = new G4Material("Lead", z, a, d); + + // Titanium + z = 22.; + a = 47.88*g/mole; + d = 4.50*g/cm3; + titanium = new G4Material("titanium", z, a, d); + + // Air material + d = 1.290*mg/cm3; + nComponents = 2; + G4Material* matAir = new G4Material("Air", d, nComponents); + matAir -> AddElement(elN,0.7); + matAir -> AddElement(elO,0.3); + + // Water + d = 1.000*g/cm3; + nComponents = 2; + matH2O = new G4Material("Water", d, nComponents); + matH2O -> AddElement(elH,2); + matH2O -> AddElement(elO,1); + matH2O -> GetIonisation()->SetMeanExcitationEnergy(75.0*eV); + + //soft tissue(http://www.nist.gov) + d = 1.0*g/cm3; + nComponents = 13; + soft = new G4Material("tissue",d, nComponents); + soft -> AddElement(elH,0.104472); + soft -> AddElement(elC,0.23219); + soft -> AddElement(elN,0.02488); + soft -> AddElement(elO,0.630238); + soft -> AddElement(elNa,0.00113); + soft -> AddElement(elMg,0.00013); + soft -> AddElement(elP,0.00133); + soft -> AddElement(elS,0.00199); + soft -> AddElement(elCl,0.00134); + soft -> AddElement(elK,0.00199); + soft -> AddElement(elCa,0.00023); + soft -> AddElement(elFe,0.00005); + soft -> AddElement(elZn,0.00003); + + // Gold + z = 79; + a = 196.97*g/mole; + d = 19.32*g/cm3; + gold = new G4Material("gold", z, a, d); + + // Compact bone (http://www.NIST.gov) + d = 1.85*g/cm3; + nComponents = 8; + bone = new G4Material("bone", d, nComponents); + bone -> AddElement(elH,0.063984); + bone -> AddElement(elC,0.278); + bone -> AddElement(elN,0.027); + bone -> AddElement(elO,0.410016); + bone -> AddElement(elMg,0.002); + bone -> AddElement(elP,0.07); + bone -> AddElement(elS,0.002); + bone -> AddElement(elCa,0.147); + + //muscle(http://www.NIST.gov) + nComponents = 9; + muscle = new G4Material("muscle", d, nComponents); + muscle -> AddElement(elH,0.101997); + muscle -> AddElement(elC,0.123); + muscle -> AddElement(elN,0.035); + muscle -> AddElement(elNa,0.0008); + muscle -> AddElement(elO,0.729); + muscle -> AddElement(elMg,0.0002); + muscle -> AddElement(elP,0.002); + muscle -> AddElement(elS,0.005); + muscle -> AddElement(elK,0.003); +} + +G4Material* HadrontherapyMaterial::GetMat(G4String material) +{ + G4Material* pttoMaterial = G4Material::GetMaterial(material); + return pttoMaterial; +} + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyMatrix.cc b/examples/advanced/hadrontherapy/src/HadrontherapyMatrix.cc new file mode 100644 index 0000000000..a626f51a75 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyMatrix.cc @@ -0,0 +1,118 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhantomSD.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyMatrix.hh" +#include "HadrontherapyAnalysisManager.hh" +#include "globals.hh" + +HadrontherapyMatrix::HadrontherapyMatrix() +{ + // Number of the voxels of the phantom + numberVoxelX = 80; + numberVoxelY = 80; + numberVoxelZ = 80; + + // Create the matrix + matrix = new G4double[numberVoxelX*numberVoxelY*numberVoxelZ]; +} + +HadrontherapyMatrix::~HadrontherapyMatrix() +{ + delete[] matrix; +} +void HadrontherapyMatrix::Initialize() +{ + // Initialise the elemnts of the matrix to zero + + for(G4int i = 0; i < numberVoxelX; i++) + { + for(G4int j = 0; j < numberVoxelY; j++) + { + for(G4int k = 0; k < numberVoxelZ; k++) + + matrix[(i*numberVoxelY+j)*numberVoxelZ+k] = 0.; + } + } +} + +void HadrontherapyMatrix::Fill(G4int i, G4int j, G4int k, + G4double energyDeposit) +{ + if (matrix) + matrix[(i*numberVoxelY+j)*numberVoxelZ+k] += energyDeposit; + + // Store the energy deposit in the matrix elemnt corresponding + // to the phantom voxel +} + +void HadrontherapyMatrix::TotalEnergyDeposit() +{ + // Store the information of the matrix in a ntuple and in + // a 1D Histogram + + G4int k; + G4int j; + G4int i; + + if (matrix) + { + for(G4int l = 0; l < numberVoxelZ; l++) + { + k = l; + + for(G4int m = 0; m < numberVoxelY; m++) + { + j = m * numberVoxelZ + k; + + for(G4int n = 0; n < numberVoxelX; n++) + { + i = n* numberVoxelZ * numberVoxelY + j; + if(matrix[i] != 0) + { +#ifdef G4ANALYSIS_USE + HadrontherapyAnalysisManager* analysis = + HadrontherapyAnalysisManager::getInstance(); + analysis -> FillEnergyDeposit(n, m, k, matrix[i]); + analysis -> BraggPeak(n, matrix[i]); +#endif + } + } + + } + + } + } +} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc b/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc new file mode 100755 index 0000000000..5412fb04ad --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc @@ -0,0 +1,2108 @@ + +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyModulator.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "G4Material.hh" +#include "G4Tubs.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "globals.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" +#include "HadrontherapyMaterial.hh" +#include "HadrontherapyModulator.hh" +#include "HadrontherapyMaterial.hh" +#include "G4Transform3D.hh" +#include "G4ios.hh" +#include +#include +#include "G4RunManager.hh" + +HadrontherapyModulator::HadrontherapyModulator():physiMotherMod(0), + solidMod0(0), logicMod0(0), physiMod0(0), + solidMod1(0), logicMod1(0), physiMod1(0), + solidMod2(0), logicMod2(0), physiMod2(0), + solidMod3(0), logicMod3(0), physiMod3(0), + solidMod4(0), logicMod4(0), physiMod4(0), + solidMod5(0), logicMod5(0), physiMod5(0), + solidMod6(0), logicMod6(0), physiMod6(0), + solidMod7(0), logicMod7(0), physiMod7(0), + solidMod8(0), logicMod8(0), physiMod8(0), + solidMod9(0), logicMod9(0), physiMod9(0), + solidMod10(0), logicMod10(0), physiMod10(0), + solidMod11(0), logicMod11(0), physiMod11(0), + solidMod12(0), logicMod12(0), physiMod12(0), + solidMod13(0), logicMod13(0), physiMod13(0), + solidMod14(0), logicMod14(0), physiMod14(0), + solidMod15(0), logicMod15(0), physiMod15(0), + solidMod16(0), logicMod16(0), physiMod16(0), + solidMod17(0), logicMod17(0), physiMod17(0), + solidMod18(0), logicMod18(0), physiMod18(0), + solidMod20(0), logicMod20(0), physiMod20(0), + solidMod21(0), logicMod21(0), physiMod21(0), + solidMod22(0), logicMod22(0), physiMod22(0), + solidMod23(0), logicMod23(0), physiMod23(0), + solidMod24(0), logicMod24(0), physiMod24(0), + solidMod25(0), logicMod25(0), physiMod25(0), + solidMod26(0), logicMod26(0), physiMod26(0), + solidMod27(0), logicMod27(0), physiMod27(0), + solidMod28(0), logicMod28(0), physiMod28(0), + solidMod29(0), logicMod29(0), physiMod29(0), + solidMod30(0), logicMod30(0), physiMod30(0), + solidMod31(0), logicMod31(0), physiMod31(0), + solidMod32(0), logicMod32(0), physiMod32(0), + solidMod33(0), logicMod33(0), physiMod33(0), + solidMod34(0), logicMod34(0), physiMod34(0), + solidMod35(0), logicMod35(0), physiMod35(0), + solidMod36(0), logicMod36(0), physiMod36(0), + solidMod37(0), logicMod37(0), physiMod37(0), + solidMod38(0), logicMod38(0), physiMod38(0), + solidMod40(0), logicMod40(0), physiMod40(0), + solidMod41(0), logicMod41(0), physiMod41(0), + solidMod42(0), logicMod42(0), physiMod42(0), + solidMod43(0), logicMod43(0), physiMod43(0), + solidMod44(0), logicMod44(0), physiMod44(0), + solidMod45(0), logicMod45(0), physiMod45(0), + solidMod46(0), logicMod46(0), physiMod46(0), + solidMod47(0), logicMod47(0), physiMod47(0), + solidMod48(0), logicMod48(0), physiMod48(0), + solidMod49(0), logicMod49(0), physiMod49(0), + solidMod50(0), logicMod50(0), physiMod50(0), + solidMod51(0), logicMod51(0), physiMod51(0), + solidMod52(0), logicMod52(0), physiMod52(0), + solidMod53(0), logicMod53(0), physiMod53(0), + solidMod54(0), logicMod54(0), physiMod54(0), + solidMod55(0), logicMod55(0), physiMod55(0), + solidMod56(0), logicMod56(0), physiMod56(0), + solidMod57(0), logicMod57(0), physiMod57(0), + solidMod58(0), logicMod58(0), physiMod58(0), + solidMod60(0), logicMod60(0), physiMod60(0), + solidMod61(0), logicMod61(0), physiMod61(0), + solidMod62(0), logicMod62(0), physiMod62(0), + solidMod63(0), logicMod63(0), physiMod63(0), + solidMod64(0), logicMod64(0), physiMod64(0), + solidMod65(0), logicMod65(0), physiMod65(0), + solidMod66(0), logicMod66(0), physiMod66(0), + solidMod67(0), logicMod67(0), physiMod67(0), + solidMod68(0), logicMod68(0), physiMod68(0), + solidMod69(0), logicMod69(0), physiMod69(0), + solidMod70(0), logicMod70(0), physiMod70(0), + solidMod71(0), logicMod71(0), physiMod71(0), + solidMod72(0), logicMod72(0), physiMod72(0), + solidMod73(0), logicMod73(0), physiMod73(0), + solidMod74(0), logicMod74(0), physiMod74(0), + solidMod75(0), logicMod75(0), physiMod75(0), + solidMod76(0), logicMod76(0), physiMod76(0), + solidMod77(0), logicMod77(0), physiMod77(0), + solidMod78(0), logicMod78(0), physiMod78(0) +{ + rm = new G4RotationMatrix(); + G4double phi = 270. *deg; + rm -> rotateY(phi); +} + +HadrontherapyModulator::~HadrontherapyModulator() +{ + delete rm; +} + +void HadrontherapyModulator::BuildModulator(G4VPhysicalVolume* motherVolume) +{ + + + //Materials used for the modulator wheel + HadrontherapyMaterial* material = new HadrontherapyMaterial(); + + G4Material* Mod0Mater = material -> GetMat("Air"); + G4Material* ModMater = material -> GetMat("Air"); + delete material; + + G4double innerRadiusOfTheTube = 2.5 *cm; + G4double outerRadiusOfTheTube = 9.5 *cm; + G4double hightOfTheTube = 0.03*cm; + + // Mother of the modulator wheel + + G4ThreeVector positionMotherMod = G4ThreeVector(-2260.50 *mm, 30 *mm, 50 *mm); + + G4Box* solidMotherMod = new G4Box("MotherMod", 12 *cm, 12 *cm, 12 *cm); + + G4LogicalVolume * logicMotherMod = new G4LogicalVolume(solidMotherMod, Mod0Mater,"MotherMod",0,0,0); + + + + physiMotherMod = new G4PVPlacement(rm,positionMotherMod, "MotherMod", + logicMotherMod, + motherVolume, + false, + 0); + + //---------------------------------------------------------- + // Mother volume of first quarter of the modulator + //---------------------------------------------------------- + + G4double hightOfTheTube0 = 5.0 *cm; + G4double startAngleOfTheTube0 = 45 *deg; + G4double spanningAngleOfTheTube0 = 90 *deg; + + G4RotationMatrix rm2; + rm2.rotateZ(0 *deg); + + G4ThreeVector positionMod0 = G4ThreeVector(0*cm,0*cm,0*cm); + + solidMod0 = new G4Tubs("Mod0", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube0, + startAngleOfTheTube0, + spanningAngleOfTheTube0); + + logicMod0 = new G4LogicalVolume(solidMod0, Mod0Mater, "Mod0",0,0,0); + + + physiMod0 = new G4PVPlacement(G4Transform3D(rm2, positionMod0), + logicMod0, + "Mod0", + logicMotherMod, + false, + 0); + + + //---------------------------------------------------------- + // First modulator sclice + //---------------------------------------------------------- + + + G4double startAngleOfTheTube1 = 54.267*deg; + G4double spanningAngleOfTheTube1 = 71.466*deg; + + + G4ThreeVector positionMod1 = G4ThreeVector(0*cm,0*cm,0.51*cm); + solidMod1 = new G4Tubs("Mod1", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube1, + spanningAngleOfTheTube1); + + logicMod1 = new G4LogicalVolume(solidMod1, ModMater, "Mod1",0,0,0); + physiMod1 = new G4PVPlacement(0, + positionMod1, + logicMod1, + "Mod1", + logicMod0, + false, + 0); + + + //---------------------------------------------------------- + // Second modulator slice + //---------------------------------------------------------- + + G4double startAngleOfTheTube2 = 57.714*deg; + G4double spanningAngleOfTheTube2 = 64.572*deg; + + + + G4ThreeVector positionMod2 = G4ThreeVector(0*cm,0*cm,0.45*cm); + solidMod2 = new G4Tubs("Mod2", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube2, + spanningAngleOfTheTube2); + + logicMod2 = new G4LogicalVolume(solidMod2, ModMater, "Mod2",0,0,0); + physiMod2 = new G4PVPlacement(0, + positionMod2, + logicMod2, + "Mod2", + logicMod0, + false, + 0); + + + //---------------------------------------------------------- + // 3th modulator slice + //---------------------------------------------------------- + + G4double startAngleOfTheTube3 = 60.478*deg; + G4double spanningAngleOfTheTube3 = 59.044*deg; + + + + G4ThreeVector positionMod3 = G4ThreeVector(0*cm,0*cm,0.39*cm); + solidMod3 = new G4Tubs("Mod3", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube3, + spanningAngleOfTheTube3); + + logicMod3 = new G4LogicalVolume(solidMod3, ModMater, "Mod3",0,0,0); + physiMod3 = new G4PVPlacement(0, + positionMod3, + logicMod3, + "Mod3", + logicMod0, + false, + 0); + + + //---------------------------------------------------------- + // + //---------------------------------------------------------- + + G4double startAngleOfTheTube4 = 62.668*deg; + G4double spanningAngleOfTheTube4 = 54.664*deg; + + + G4ThreeVector positionMod4 = G4ThreeVector(0*cm,0*cm,0.33*cm); + solidMod4 = new G4Tubs("Mod4", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube4, + spanningAngleOfTheTube4); + + logicMod4 = new G4LogicalVolume(solidMod4, ModMater, "Mod4",0,0,0); + physiMod4 = new G4PVPlacement(0, // no rotation + positionMod4, // at (x,y,z) + logicMod4, // its logical volume + "Mod4", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Quinta fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube5 = 64.814*deg; + G4double spanningAngleOfTheTube5 = 50.372*deg; + + + G4ThreeVector positionMod5 = G4ThreeVector(0*cm,0*cm,0.27*cm); + solidMod5 = new G4Tubs("Mod5", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube5, + spanningAngleOfTheTube5); + + logicMod5 = new G4LogicalVolume(solidMod5, ModMater, "Mod5",0,0,0); + physiMod5 = new G4PVPlacement(0, // no rotation + positionMod5, // at (x,y,z) + logicMod5, // its logical volume + "Mod5", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Sesta fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube6 = 66.706*deg; + G4double spanningAngleOfTheTube6 = 46.588*deg; + + + G4ThreeVector positionMod6 = G4ThreeVector(0*cm,0*cm,0.21*cm); + solidMod6 = new G4Tubs("Mod6", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube6, + spanningAngleOfTheTube6); + + logicMod6 = new G4LogicalVolume(solidMod6, ModMater, "Mod6",0,0,0); + physiMod6 = new G4PVPlacement(0, // no rotation + positionMod6, // at (x,y,z) + logicMod6, // its logical volume + "Mod6", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Settima fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube7 = 68.648*deg; + G4double spanningAngleOfTheTube7 = 42.704*deg; + + + + G4ThreeVector positionMod7 = G4ThreeVector(0*cm,0*cm,0.15*cm); + solidMod7 = new G4Tubs("Mod7", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube7, + spanningAngleOfTheTube7); + + logicMod7 = new G4LogicalVolume(solidMod7, ModMater, "Mod7",0,0,0); + physiMod7 = new G4PVPlacement(0, // no rotation + positionMod7, // at (x,y,z) + logicMod7, // its logical volume + "Mod7", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + //---------------------------------------------------------- + //Ottava fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube8 = 70.472*deg; + G4double spanningAngleOfTheTube8 = 39.056*deg; + + + G4ThreeVector positionMod8 = G4ThreeVector(0*cm,0*cm,0.09*cm); + solidMod8 = new G4Tubs("Mod8", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube8, + spanningAngleOfTheTube8); + + logicMod8 = new G4LogicalVolume(solidMod8, ModMater, "Mod8",0,0,0); + physiMod8 = new G4PVPlacement(0, // no rotation + positionMod8, // at (x,y,z) + logicMod8, // its logical volume + "Mod8", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + + //---------------------------------------------------------- + //Nona fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube9 = 72.288*deg; + G4double spanningAngleOfTheTube9 = 35.424*deg; + + + G4ThreeVector positionMod9 = G4ThreeVector(0*cm,0*cm,0.03*cm); + solidMod9 = new G4Tubs("Mod9", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube9, + spanningAngleOfTheTube9); + + logicMod9 = new G4LogicalVolume(solidMod9, ModMater, "Mod9",0,0,0); + physiMod9 = new G4PVPlacement(0, // no rotation + positionMod9, // at (x,y,z) + logicMod9, // its logical volume + "Mod9", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Decima fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube10 = 74.061*deg; + G4double spanningAngleOfTheTube10 = 31.878*deg; + + + G4ThreeVector positionMod10 = G4ThreeVector(0*cm,0*cm,-0.03*cm); + solidMod10 = new G4Tubs("Mod10", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube10, + spanningAngleOfTheTube10); + + logicMod10 = new G4LogicalVolume(solidMod10, ModMater, "Mod10",0,0,0); + physiMod10 = new G4PVPlacement(0, // no rotation + positionMod10, // at (x,y,z) + logicMod10, // its logical volume + "Mod10", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + // Undicesima fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube11 = 75.793*deg; + G4double spanningAngleOfTheTube11 = 28.414*deg; + + + G4ThreeVector positionMod11 = G4ThreeVector(0*cm,0*cm,-0.09*cm); + solidMod11 = new G4Tubs("Mod11", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube11, + spanningAngleOfTheTube11); + + logicMod11 = new G4LogicalVolume(solidMod11, ModMater, "Mod11",0,0,0); + physiMod11 = new G4PVPlacement(0, // no rotation + positionMod11, // at (x,y,z) + logicMod11, // its logical volume + "Mod11", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Dodicesima fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube12 = 77.579*deg; + G4double spanningAngleOfTheTube12 = 24.842*deg; + + + + G4ThreeVector positionMod12 = G4ThreeVector(0*cm,0*cm,-0.15*cm); + solidMod12 = new G4Tubs("Mod12", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube12, + spanningAngleOfTheTube12); + + logicMod12 = new G4LogicalVolume(solidMod12, ModMater, "Mod12",0,0,0); + physiMod12 = new G4PVPlacement(0, // no rotation + positionMod12, // at (x,y,z) + logicMod12, // its logical volume + "Mod12", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Tredicesima fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube13 = 79.273*deg; + G4double spanningAngleOfTheTube13 = 21.454*deg; + + + G4ThreeVector positionMod13 = G4ThreeVector(0*cm,0*cm,-0.21*cm); + solidMod13 = new G4Tubs("Mod13", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube13, + spanningAngleOfTheTube13); + + logicMod13 = new G4LogicalVolume(solidMod13, ModMater, "Mod13",0,0,0); + physiMod13 = new G4PVPlacement(0, // no rotation + positionMod13, // at (x,y,z) + logicMod13, // its logical volume + "Mod13", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Quat. fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube14 = 81.014*deg; + G4double spanningAngleOfTheTube14 = 17.972*deg; + + + G4ThreeVector positionMod14 = G4ThreeVector(0*cm,0*cm,-0.27*cm); + solidMod14 = new G4Tubs("Mod14", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube14, + spanningAngleOfTheTube14); + + logicMod14 = new G4LogicalVolume(solidMod14, ModMater, "Mod14",0,0,0); + physiMod14 = new G4PVPlacement(0, // no rotation + positionMod14, // at (x,y,z) + logicMod14, // its logical volume + "Mod14", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Quindicesima fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube15 = 82.695*deg; + G4double spanningAngleOfTheTube15 = 14.61*deg; + + + G4ThreeVector positionMod15 = G4ThreeVector(0*cm,0*cm,-0.33*cm); + solidMod15 = new G4Tubs("Mod15", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube15, + spanningAngleOfTheTube15); + + logicMod15 = new G4LogicalVolume(solidMod15, ModMater, "Mod15",0,0,0); + physiMod15 = new G4PVPlacement(0, // no rotation + positionMod15, // at (x,y,z) + logicMod15, // its logical volume + "Mod15", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Sedic. fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube16 = 84.425*deg; + G4double spanningAngleOfTheTube16 = 11.15*deg; + + + G4ThreeVector positionMod16 = G4ThreeVector(0*cm,0*cm,-0.39*cm); + solidMod16 = new G4Tubs("Mod16", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube16, + spanningAngleOfTheTube16); + + logicMod16 = new G4LogicalVolume(solidMod16, ModMater, "Mod16",0,0,0); + physiMod16 = new G4PVPlacement(0, // no rotation + positionMod16, // at (x,y,z) + logicMod16, // its logical volume + "Mod16", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Dicias. fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube17 = 86.203*deg; + G4double spanningAngleOfTheTube17 = 7.594*deg; + + + + G4ThreeVector positionMod17 = G4ThreeVector(0*cm,0*cm,-0.45*cm); + solidMod17 = new G4Tubs("Mod17", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube17, + spanningAngleOfTheTube17); + + logicMod17 = new G4LogicalVolume(solidMod17, ModMater, "Mod17",0,0,0); + physiMod17 = new G4PVPlacement(0, // no rotation + positionMod17, // at (x,y,z) + logicMod17, // its logical volume + "Mod17", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + //---------------------------------------------------------- + //Diciot. fetta Modulatore + //---------------------------------------------------------- + + G4double startAngleOfTheTube18 = 87.910*deg; + G4double spanningAngleOfTheTube18 = 4.18*deg; + + + + G4ThreeVector positionMod18 = G4ThreeVector(0*cm,0*cm,-0.51*cm); + solidMod18 = new G4Tubs("Mod18", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube18, + spanningAngleOfTheTube18); + + logicMod18 = new G4LogicalVolume(solidMod18, ModMater, "Mod18",0,0,0); + physiMod18 = new G4PVPlacement(0, // no rotation + positionMod18, // at (x,y,z) + logicMod18, // its logical volume + "Mod18", // its name + logicMod0, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + //---------------------------------------------------------- + // Mother volume of the second modulator quarter + //---------------------------------------------------------- + + + G4RotationMatrix rm20; + rm20.rotateZ(90 *deg); + + G4ThreeVector positionMod20 = G4ThreeVector(0*cm,0*cm,0*cm); + + solidMod20 = new G4Tubs("Mod20", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube0, + startAngleOfTheTube0, + spanningAngleOfTheTube0); + + logicMod20 = new G4LogicalVolume(solidMod20, Mod0Mater, "Mod0",0,0,0); + + + physiMod20 = new G4PVPlacement(G4Transform3D(rm20, positionMod20), + logicMod20, + "Mod20", + logicMotherMod, + false, + 0); + + + + + //---------------------------------------------------------- + // 1st modulator slice (2nd quarter) + //---------------------------------------------------------- + + G4ThreeVector positionMod21 = G4ThreeVector(0*cm,0*cm,0.51*cm); + solidMod21 = new G4Tubs("Mod21", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube1, + spanningAngleOfTheTube1); + + logicMod21 = new G4LogicalVolume(solidMod21, ModMater, "Mod21",0,0,0); + + physiMod21 = new G4PVPlacement(0, // no rotation + positionMod21, // at (x,y,z) + logicMod21, // its logical volume + "Mod21", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + // 2nd modulator slice (2nd quarter) + //---------------------------------------------------------- + + G4ThreeVector positionMod22 = G4ThreeVector(0*cm,0*cm,0.45*cm); + + solidMod22 = new G4Tubs("Mod22", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube2, + spanningAngleOfTheTube2); + + logicMod22 = new G4LogicalVolume(solidMod22, ModMater, "Mod22",0,0,0); + + physiMod22 = new G4PVPlacement(0, // no rotation + positionMod22, // at (x,y,z) + logicMod22, // its logical volume + "Mod22", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + // 3rd modulator slice (2nd quarter) + //---------------------------------------------------------- + + G4ThreeVector positionMod23 = G4ThreeVector(0*cm,0*cm,0.39*cm); + + solidMod23 = new G4Tubs("Mod23", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube3, + spanningAngleOfTheTube3); + + logicMod23 = new G4LogicalVolume(solidMod23, ModMater, "Mod23",0,0,0); + physiMod23 = new G4PVPlacement(0, // no rotation + positionMod23, // at (x,y,z) + logicMod23, // its logical volume + "Mod23", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + // 4th modulator slice (2nd quarter) + //---------------------------------------------------------- + + + G4ThreeVector positionMod24 = G4ThreeVector(0*cm,0*cm,0.33*cm); + + solidMod24 = new G4Tubs("Mod24", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube4, + spanningAngleOfTheTube4); + + logicMod24 = new G4LogicalVolume(solidMod24, ModMater, "Mod24",0,0,0); + + physiMod24 = new G4PVPlacement(0, // no rotation + positionMod24, // at (x,y,z) + logicMod24, // its logical volume + "Mod24", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Quinta fetta Modulatore 2 + //---------------------------------------------------------- + + + + G4ThreeVector positionMod25 = G4ThreeVector(0*cm,0*cm,0.27*cm); + + solidMod25 = new G4Tubs("Mod25", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube5, + spanningAngleOfTheTube5); + + logicMod25 = new G4LogicalVolume(solidMod25, ModMater, "Mod25",0,0,0); + physiMod25 = new G4PVPlacement(0, // no rotation + positionMod25, // at (x,y,z) + logicMod25, // its logical volume + "Mod25", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Sesta fetta Modulatore 2 + //---------------------------------------------------------- + + + G4ThreeVector positionMod26 = G4ThreeVector(0*cm,0*cm,0.21*cm); + solidMod26 = new G4Tubs("Mod26", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube6, + spanningAngleOfTheTube6); + + logicMod26 = new G4LogicalVolume(solidMod26, ModMater, "Mod26",0,0,0); + physiMod26 = new G4PVPlacement(0, // no rotation + positionMod26, // at (x,y,z) + logicMod26, // its logical volume + "Mod26", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Settima fetta Modulatore 2 + //---------------------------------------------------------- + + + G4ThreeVector positionMod27 = G4ThreeVector(0*cm,0*cm,0.15*cm); + + solidMod27 = new G4Tubs("Mod27", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube7, + spanningAngleOfTheTube7); + + logicMod27 = new G4LogicalVolume(solidMod27, ModMater, "Mod27",0,0,0); + physiMod27 = new G4PVPlacement(0, // no rotation + positionMod27, // at (x,y,z) + logicMod27, // its logical volume + "Mod27", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + //---------------------------------------------------------- + //Ottava fetta Modulatore 2 + //---------------------------------------------------------- + + + + + G4ThreeVector positionMod28 = G4ThreeVector(0*cm,0*cm,0.09*cm); + solidMod28 = new G4Tubs("Mod28", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube8, + spanningAngleOfTheTube8); + + logicMod28 = new G4LogicalVolume(solidMod28, ModMater, "Mod28",0,0,0); + physiMod28 = new G4PVPlacement(0, // no rotation + positionMod28, // at (x,y,z) + logicMod28, // its logical volume + "Mod28", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + + //---------------------------------------------------------- + //Nona fetta Modulatore 3 + //---------------------------------------------------------- + + + + G4ThreeVector positionMod29 = G4ThreeVector(0*cm,0*cm,0.03*cm); + solidMod29 = new G4Tubs("Mod29", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube9, + spanningAngleOfTheTube9); + + logicMod29 = new G4LogicalVolume(solidMod29, ModMater, "Mod29",0,0,0); + physiMod29 = new G4PVPlacement(0, // no rotation + positionMod29, // at (x,y,z) + logicMod29, // its logical volume + "Mod29", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Decima fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod30 = G4ThreeVector(0*cm,0*cm,-0.03*cm); + solidMod30 = new G4Tubs("Mod30", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube10, + spanningAngleOfTheTube10); + + logicMod30 = new G4LogicalVolume(solidMod30, ModMater, "Mod30",0,0,0); + physiMod30 = new G4PVPlacement(0, // no rotation + positionMod30, // at (x,y,z) + logicMod30, // its logical volume + "Mod30", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + // Undicesima fetta Modulatore 3 + //---------------------------------------------------------- + + G4ThreeVector positionMod31 = G4ThreeVector(0*cm,0*cm,-0.09*cm); + solidMod31 = new G4Tubs("Mod31", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube11, + spanningAngleOfTheTube11); + + logicMod31 = new G4LogicalVolume(solidMod31, ModMater, "Mod31",0,0,0); + physiMod31 = new G4PVPlacement(0, // no rotation + positionMod31, // at (x,y,z) + logicMod31, // its logical volume + "Mod31", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Dodicesima fetta Modulatore 3 + //---------------------------------------------------------- + + G4ThreeVector positionMod32 = G4ThreeVector(0*cm,0*cm,-0.15*cm); + solidMod32 = new G4Tubs("Mod32", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube12, + spanningAngleOfTheTube12); + + logicMod32 = new G4LogicalVolume(solidMod32, ModMater, "Mod32",0,0,0); + physiMod32 = new G4PVPlacement(0, // no rotation + positionMod32, // at (x,y,z) + logicMod32, // its logical volume + "Mod32", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Tredicesima fetta Modulatore 3 + //---------------------------------------------------------- + + G4ThreeVector positionMod33 = G4ThreeVector(0*cm,0*cm,-0.21*cm); + solidMod33 = new G4Tubs("Mod33", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube13, + spanningAngleOfTheTube13); + + logicMod33 = new G4LogicalVolume(solidMod33, ModMater, "Mod33",0,0,0); + physiMod33 = new G4PVPlacement(0, // no rotation + positionMod33, // at (x,y,z) + logicMod33, // its logical volume + "Mod33", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Quat. fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod34 = G4ThreeVector(0*cm,0*cm,-0.27*cm); + solidMod34 = new G4Tubs("Mod34", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube14, + spanningAngleOfTheTube14); + + logicMod34 = new G4LogicalVolume(solidMod34, ModMater, "Mod34",0,0,0); + physiMod34 = new G4PVPlacement(0, // no rotation + positionMod34, // at (x,y,z) + logicMod34, // its logical volume + "Mod134", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Quindicesima fetta Modulatore 2 + //---------------------------------------------------------- + + + G4ThreeVector positionMod35 = G4ThreeVector(0*cm,0*cm,-0.33*cm); + solidMod35 = new G4Tubs("Mod35", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube15, + spanningAngleOfTheTube15); + + logicMod35 = new G4LogicalVolume(solidMod35, ModMater, "Mod35",0,0,0); + physiMod35 = new G4PVPlacement(0, // no rotation + positionMod35, // at (x,y,z) + logicMod35, // its logical volume + "Mod35", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Sedic. fetta Modulatore 2 + //---------------------------------------------------------- + + + G4ThreeVector positionMod36 = G4ThreeVector(0*cm,0*cm,-0.39*cm); + solidMod36 = new G4Tubs("Mod36", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube16, + spanningAngleOfTheTube16); + + logicMod36 = new G4LogicalVolume(solidMod36, ModMater, "Mod36",0,0,0); + physiMod36 = new G4PVPlacement(0, // no rotation + positionMod36, // at (x,y,z) + logicMod36, // its logical volume + "Mod36", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Dicias. fetta Modulatore 2 + //---------------------------------------------------------- + + G4ThreeVector positionMod37 = G4ThreeVector(0*cm,0*cm,-0.45*cm); + solidMod37 = new G4Tubs("Mod37", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube17, + spanningAngleOfTheTube17); + + logicMod37 = new G4LogicalVolume(solidMod37, ModMater, "Mod37",0,0,0); + physiMod37 = new G4PVPlacement(0, // no rotation + positionMod37, // at (x,y,z) + logicMod37, // its logical volume + "Mod37", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + //---------------------------------------------------------- + //Diciot. fetta Modulatore 2 + //---------------------------------------------------------- + + + G4ThreeVector positionMod38 = G4ThreeVector(0*cm,0*cm,-0.51*cm); + solidMod38 = new G4Tubs("Mod38", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube18, + spanningAngleOfTheTube18); + + logicMod38 = new G4LogicalVolume(solidMod38, ModMater, "Mod38",0,0,0); + physiMod38 = new G4PVPlacement(0, // no rotation + positionMod38, // at (x,y,z) + logicMod38, // its logical volume + "Mod38", // its name + logicMod20, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + //---------------------------------------------------------- + //Volume Madre 3/4 del Modulatore Mod 40 + //---------------------------------------------------------- + + + G4RotationMatrix rm40; + rm40.rotateZ(180 *deg); + + G4ThreeVector positionMod40 = G4ThreeVector(0*cm,0*cm,0*cm); + + solidMod40 = new G4Tubs("Mod40", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube0, + startAngleOfTheTube0, + spanningAngleOfTheTube0); + + logicMod40 = new G4LogicalVolume(solidMod40, Mod0Mater, "Mod40",0,0,0); + + + physiMod40 = new G4PVPlacement(G4Transform3D(rm40, positionMod40), + logicMod40, // its logical volume + "Mod40", // its name + logicMotherMod, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + + + //---------------------------------------------------------- + //Prima fetta Modulatore 3 + //---------------------------------------------------------- + + G4ThreeVector positionMod41 = G4ThreeVector(0*cm,0*cm,0.51*cm); + solidMod41 = new G4Tubs("Mod41", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube1, + spanningAngleOfTheTube1); + + logicMod41 = new G4LogicalVolume(solidMod41, ModMater, "Mod41",0,0,0); + + physiMod41 = new G4PVPlacement(0, // no rotation + positionMod41, // at (x,y,z) + logicMod41, // its logical volume + "Mod41", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Seconda fetta Modulatore 3 + //---------------------------------------------------------- + + G4ThreeVector positionMod42 = G4ThreeVector(0*cm,0*cm,0.45*cm); + + solidMod42 = new G4Tubs("Mod42", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube2, + spanningAngleOfTheTube2); + + logicMod42 = new G4LogicalVolume(solidMod42, ModMater, "Mod42",0,0,0); + + physiMod42 = new G4PVPlacement(0, // no rotation + positionMod42, // at (x,y,z) + logicMod42, // its logical volume + "Mod42", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Terza fetta Modulatore 3 + //---------------------------------------------------------- + + G4ThreeVector positionMod43 = G4ThreeVector(0*cm,0*cm,0.39*cm); + + solidMod43 = new G4Tubs("Mod43", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube3, + spanningAngleOfTheTube3); + + logicMod43 = new G4LogicalVolume(solidMod43, ModMater, "Mod43",0,0,0); + physiMod43 = new G4PVPlacement(0, // no rotation + positionMod43, // at (x,y,z) + logicMod43, // its logical volume + "Mod43", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Quarta fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod44 = G4ThreeVector(0*cm,0*cm,0.33*cm); + + solidMod44 = new G4Tubs("Mod44", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube4, + spanningAngleOfTheTube4); + + logicMod44 = new G4LogicalVolume(solidMod44, ModMater, "Mod44",0,0,0); + + physiMod44 = new G4PVPlacement(0, // no rotation + positionMod44, // at (x,y,z) + logicMod44, // its logical volume + "Mod44", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Quinta fetta Modulatore 3 + //---------------------------------------------------------- + + + + G4ThreeVector positionMod45 = G4ThreeVector(0*cm,0*cm,0.27*cm); + + solidMod45 = new G4Tubs("Mod45", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube5, + spanningAngleOfTheTube5); + + logicMod45 = new G4LogicalVolume(solidMod45, ModMater, "Mod45",0,0,0); + physiMod45 = new G4PVPlacement(0, // no rotation + positionMod45, // at (x,y,z) + logicMod45, // its logical volume + "Mod45", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Sesta fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod46 = G4ThreeVector(0*cm,0*cm,0.21*cm); + solidMod46 = new G4Tubs("Mod46", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube6, + spanningAngleOfTheTube6); + + logicMod46 = new G4LogicalVolume(solidMod46, ModMater, "Mod46",0,0,0); + physiMod46 = new G4PVPlacement(0, // no rotation + positionMod46, // at (x,y,z) + logicMod46, // its logical volume + "Mod46", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Settima fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod47 = G4ThreeVector(0*cm,0*cm,0.15*cm); + + solidMod47 = new G4Tubs("Mod47", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube7, + spanningAngleOfTheTube7); + + logicMod47 = new G4LogicalVolume(solidMod47, ModMater, "Mod47",0,0,0); + physiMod47 = new G4PVPlacement(0, // no rotation + positionMod47, // at (x,y,z) + logicMod47, // its logical volume + "Mod47", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + //---------------------------------------------------------- + //Ottava fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod48 = G4ThreeVector(0*cm,0*cm,0.09*cm); + solidMod48 = new G4Tubs("Mod48", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube8, + spanningAngleOfTheTube8); + + logicMod48 = new G4LogicalVolume(solidMod48, ModMater, "Mod48",0,0,0); + physiMod48 = new G4PVPlacement(0, // no rotation + positionMod48, // at (x,y,z) + logicMod48, // its logical volume + "Mod48", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + + //---------------------------------------------------------- + //Nona fetta Modulatore 2 + //---------------------------------------------------------- + + + + G4ThreeVector positionMod49 = G4ThreeVector(0*cm,0*cm,0.03*cm); + solidMod49 = new G4Tubs("Mod49", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube9, + spanningAngleOfTheTube9); + + logicMod49 = new G4LogicalVolume(solidMod49, ModMater, "Mod49",0,0,0); + physiMod49 = new G4PVPlacement(0, // no rotation + positionMod49, // at (x,y,z) + logicMod49, // its logical volume + "Mod49", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Decima fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod50 = G4ThreeVector(0*cm,0*cm,-0.03*cm); + solidMod50 = new G4Tubs("Mod50", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube10, + spanningAngleOfTheTube10); + + logicMod50 = new G4LogicalVolume(solidMod50, ModMater, "Mod50",0,0,0); + physiMod50 = new G4PVPlacement(0, // no rotation + positionMod50, // at (x,y,z) + logicMod50, // its logical volume + "Mod50", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + // Undicesima fetta Modulatore 3 + //---------------------------------------------------------- + + G4ThreeVector positionMod51 = G4ThreeVector(0*cm,0*cm,-0.09*cm); + solidMod51 = new G4Tubs("Mod51", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube11, + spanningAngleOfTheTube11); + + logicMod51 = new G4LogicalVolume(solidMod51, ModMater, "Mod51",0,0,0); + physiMod51 = new G4PVPlacement(0, // no rotation + positionMod51, // at (x,y,z) + logicMod51, // its logical volume + "Mod51", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Dodicesima fetta Modulatore 3 + //---------------------------------------------------------- + + G4ThreeVector positionMod52 = G4ThreeVector(0*cm,0*cm,-0.15*cm); + solidMod52 = new G4Tubs("Mod52", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube12, + spanningAngleOfTheTube12); + + logicMod52 = new G4LogicalVolume(solidMod52, ModMater, "Mod52",0,0,0); + physiMod52 = new G4PVPlacement(0, // no rotation + positionMod52, // at (x,y,z) + logicMod52, // its logical volume + "Mod52", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Tredicesima fetta Modulatore 3 + //---------------------------------------------------------- + + G4ThreeVector positionMod53 = G4ThreeVector(0*cm,0*cm,-0.21*cm); + solidMod53 = new G4Tubs("Mod53", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube13, + spanningAngleOfTheTube13); + + logicMod53 = new G4LogicalVolume(solidMod53, ModMater, "Mod53",0,0,0); + physiMod53 = new G4PVPlacement(0, // no rotation + positionMod53, // at (x,y,z) + logicMod53, // its logical volume + "Mod53", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Quat. fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod54 = G4ThreeVector(0*cm,0*cm,-0.27*cm); + solidMod54 = new G4Tubs("Mod54", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube14, + spanningAngleOfTheTube14); + + logicMod54 = new G4LogicalVolume(solidMod54, ModMater, "Mod54",0,0,0); + physiMod54 = new G4PVPlacement(0, // no rotation + positionMod54, // at (x,y,z) + logicMod54, // its logical volume + "Mod154", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Quindicesima fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod55 = G4ThreeVector(0*cm,0*cm,-0.33*cm); + solidMod55 = new G4Tubs("Mod35", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube15, + spanningAngleOfTheTube15); + + logicMod55 = new G4LogicalVolume(solidMod55, ModMater, "Mod55",0,0,0); + physiMod55 = new G4PVPlacement(0, // no rotation + positionMod55, // at (x,y,z) + logicMod55, // its logical volume + "Mod55", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Sedic. fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod56 = G4ThreeVector(0*cm,0*cm,-0.39*cm); + solidMod56 = new G4Tubs("Mod56", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube16, + spanningAngleOfTheTube16); + + logicMod56 = new G4LogicalVolume(solidMod56, ModMater, "Mod56",0,0,0); + physiMod56 = new G4PVPlacement(0, // no rotation + positionMod56, // at (x,y,z) + logicMod56, // its logical volume + "Mod56", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Dicias. fetta Modulatore 3 + //---------------------------------------------------------- + + G4ThreeVector positionMod57 = G4ThreeVector(0*cm,0*cm,-0.45*cm); + solidMod57 = new G4Tubs("Mod57", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube17, + spanningAngleOfTheTube17); + + logicMod57 = new G4LogicalVolume(solidMod57, ModMater, "Mod57",0,0,0); + physiMod57 = new G4PVPlacement(0, // no rotation + positionMod57, // at (x,y,z) + logicMod57, // its logical volume + "Mod57", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Diciot. fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod58 = G4ThreeVector(0*cm,0*cm,-0.51*cm); + solidMod58 = new G4Tubs("Mod58", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube18, + spanningAngleOfTheTube18); + + logicMod58 = new G4LogicalVolume(solidMod58, ModMater, "Mod58",0,0,0); + physiMod58 = new G4PVPlacement(0, // no rotation + positionMod58, // at (x,y,z) + logicMod58, // its logical volume + "Mod58", // its name + logicMod40, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + //---------------------------------------------------------- + //Volume Madre 4/4 del Modulatore Mod 60 + //---------------------------------------------------------- + + + G4RotationMatrix rm60; + rm60.rotateZ(270 *deg); + + G4ThreeVector positionMod60 = G4ThreeVector(0*cm,0*cm,0*cm); + + solidMod60 = new G4Tubs("Mod60", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube0, + startAngleOfTheTube0, + spanningAngleOfTheTube0); + + logicMod60 = new G4LogicalVolume(solidMod60, Mod0Mater, "Mod60",0,0,0); + + + physiMod60 = new G4PVPlacement(G4Transform3D(rm60, positionMod60), + logicMod60, // its logical volume + "Mod60", // its name + logicMotherMod, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + //---------------------------------------------------------- + //Prima fetta Modulatore 4 + //---------------------------------------------------------- + + G4ThreeVector positionMod61 = G4ThreeVector(0*cm,0*cm,0.51*cm); + solidMod61 = new G4Tubs("Mod61", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube1, + spanningAngleOfTheTube1); + + logicMod61 = new G4LogicalVolume(solidMod61, ModMater, "Mod61",0,0,0); + + physiMod61 = new G4PVPlacement(0, // no rotation + positionMod61, // at (x,y,z) + logicMod61, // its logical volume + "Mod61", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Seconda fetta Modulatore 4 + //---------------------------------------------------------- + + G4ThreeVector positionMod62 = G4ThreeVector(0*cm,0*cm,0.45*cm); + + solidMod62 = new G4Tubs("Mod62", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube2, + spanningAngleOfTheTube2); + + logicMod62 = new G4LogicalVolume(solidMod62, ModMater, "Mod62",0,0,0); + + physiMod62 = new G4PVPlacement(0, // no rotation + positionMod62, // at (x,y,z) + logicMod62, // its logical volume + "Mod62", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Terza fetta Modulatore 4 + //---------------------------------------------------------- + + G4ThreeVector positionMod63 = G4ThreeVector(0*cm,0*cm,0.39*cm); + + solidMod63 = new G4Tubs("Mod63", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube3, + spanningAngleOfTheTube3); + + logicMod63 = new G4LogicalVolume(solidMod63, ModMater, "Mod63",0,0,0); + physiMod63 = new G4PVPlacement(0, // no rotation + positionMod63, // at (x,y,z) + logicMod63, // its logical volume + "Mod63", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Quarta fetta Modulatore 4 + //---------------------------------------------------------- + + + G4ThreeVector positionMod64 = G4ThreeVector(0*cm,0*cm,0.33*cm); + + solidMod64 = new G4Tubs("Mod64", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube4, + spanningAngleOfTheTube4); + + logicMod64 = new G4LogicalVolume(solidMod64, ModMater, "Mod64",0,0,0); + + physiMod64 = new G4PVPlacement(0, // no rotation + positionMod64, // at (x,y,z) + logicMod64, // its logical volume + "Mod64", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Quinta fetta Modulatore 3 + //---------------------------------------------------------- + + + + G4ThreeVector positionMod65 = G4ThreeVector(0*cm,0*cm,0.27*cm); + + solidMod65 = new G4Tubs("Mod65", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube5, + spanningAngleOfTheTube5); + + logicMod65 = new G4LogicalVolume(solidMod65, ModMater, "Mod65",0,0,0); + physiMod65 = new G4PVPlacement(0, // no rotation + positionMod65, // at (x,y,z) + logicMod65, // its logical volume + "Mod65", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Sesta fetta Modulatore 4 + //---------------------------------------------------------- + + + G4ThreeVector positionMod66 = G4ThreeVector(0*cm,0*cm,0.21*cm); + solidMod66 = new G4Tubs("Mod66", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube6, + spanningAngleOfTheTube6); + + logicMod66 = new G4LogicalVolume(solidMod66, ModMater, "Mod66",0,0,0); + physiMod66 = new G4PVPlacement(0, // no rotation + positionMod66, // at (x,y,z) + logicMod66, // its logical volume + "Mod66", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Settima fetta Modulatore 4 + //---------------------------------------------------------- + + + G4ThreeVector positionMod67 = G4ThreeVector(0*cm,0*cm,0.15*cm); + + solidMod67 = new G4Tubs("Mod67", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube7, + spanningAngleOfTheTube7); + + logicMod67 = new G4LogicalVolume(solidMod67, ModMater, "Mod67",0,0,0); + physiMod67 = new G4PVPlacement(0, // no rotation + positionMod67, // at (x,y,z) + logicMod67, // its logical volume + "Mod67", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + //---------------------------------------------------------- + //Ottava fetta Modulatore 4 + //---------------------------------------------------------- + + + G4ThreeVector positionMod68 = G4ThreeVector(0*cm,0*cm,0.09*cm); + solidMod68 = new G4Tubs("Mod68", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube8, + spanningAngleOfTheTube8); + + logicMod68 = new G4LogicalVolume(solidMod68, ModMater, "Mod68",0,0,0); + physiMod68 = new G4PVPlacement(0, // no rotation + positionMod68, // at (x,y,z) + logicMod68, // its logical volume + "Mod68", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + + + //---------------------------------------------------------- + //Nona fetta Modulatore 4 + //---------------------------------------------------------- + + + + G4ThreeVector positionMod69 = G4ThreeVector(0*cm,0*cm,0.03*cm); + solidMod69 = new G4Tubs("Mod69", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube9, + spanningAngleOfTheTube9); + + logicMod69 = new G4LogicalVolume(solidMod69, ModMater, "Mod69",0,0,0); + physiMod69 = new G4PVPlacement(0, // no rotation + positionMod69, // at (x,y,z) + logicMod69, // its logical volume + "Mod69", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Decima fetta Modulatore 4 + //---------------------------------------------------------- + + + G4ThreeVector positionMod70 = G4ThreeVector(0*cm,0*cm,-0.03*cm); + solidMod70 = new G4Tubs("Mod70", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube10, + spanningAngleOfTheTube10); + + logicMod70 = new G4LogicalVolume(solidMod70, ModMater, "Mod70",0,0,0); + physiMod70 = new G4PVPlacement(0, // no rotation + positionMod70, // at (x,y,z) + logicMod70, // its logical volume + "Mod70", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + // Undicesima fetta Modulatore 4 + //---------------------------------------------------------- + + G4ThreeVector positionMod71 = G4ThreeVector(0*cm,0*cm,-0.09*cm); + solidMod71 = new G4Tubs("Mod71", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube11, + spanningAngleOfTheTube11); + + logicMod71 = new G4LogicalVolume(solidMod71, ModMater, "Mod71",0,0,0); + physiMod71 = new G4PVPlacement(0, // no rotation + positionMod71, // at (x,y,z) + logicMod71, // its logical volume + "Mod71", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Dodicesima fetta Modulatore 4 + //---------------------------------------------------------- + + G4ThreeVector positionMod72 = G4ThreeVector(0*cm,0*cm,-0.15*cm); + solidMod72 = new G4Tubs("Mod72", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube12, + spanningAngleOfTheTube12); + + logicMod72 = new G4LogicalVolume(solidMod72, ModMater, "Mod72",0,0,0); + physiMod72 = new G4PVPlacement(0, // no rotation + positionMod72, // at (x,y,z) + logicMod72, // its logical volume + "Mod72", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Tredicesima fetta Modulatore 4 + //---------------------------------------------------------- + + G4ThreeVector positionMod73 = G4ThreeVector(0*cm,0*cm,-0.21*cm); + solidMod73 = new G4Tubs("Mod73", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube13, + spanningAngleOfTheTube13); + + logicMod73 = new G4LogicalVolume(solidMod73, ModMater, "Mod73",0,0,0); + physiMod73 = new G4PVPlacement(0, // no rotation + positionMod73, // at (x,y,z) + logicMod73, // its logical volume + "Mod73", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Quat. fetta Modulatore 4 + //---------------------------------------------------------- + + + G4ThreeVector positionMod74 = G4ThreeVector(0*cm,0*cm,-0.27*cm); + solidMod74 = new G4Tubs("Mod74", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube14, + spanningAngleOfTheTube14); + + logicMod74 = new G4LogicalVolume(solidMod74, ModMater, "Mod74",0,0,0); + physiMod74 = new G4PVPlacement(0, // no rotation + positionMod74, // at (x,y,z) + logicMod74, // its logical volume + "Mod174", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + + //---------------------------------------------------------- + //Quindicesima fetta Modulatore 4 + //---------------------------------------------------------- + + + G4ThreeVector positionMod75 = G4ThreeVector(0*cm,0*cm,-0.33*cm); + solidMod75 = new G4Tubs("Mod75", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube15, + spanningAngleOfTheTube15); + + logicMod75 = new G4LogicalVolume(solidMod75, ModMater, "Mod75",0,0,0); + physiMod75 = new G4PVPlacement(0, // no rotation + positionMod75, // at (x,y,z) + logicMod75, // its logical volume + "Mod75", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Sedic. fetta Modulatore 4 + //---------------------------------------------------------- + + + G4ThreeVector positionMod76 = G4ThreeVector(0*cm,0*cm,-0.39*cm); + solidMod76 = new G4Tubs("Mod76", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube16, + spanningAngleOfTheTube16); + + logicMod76 = new G4LogicalVolume(solidMod76, ModMater, "Mod76",0,0,0); + physiMod76 = new G4PVPlacement(0, // no rotation + positionMod76, // at (x,y,z) + logicMod76, // its logical volume + "Mod76", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Dicias. fetta Modulatore 4 + //---------------------------------------------------------- + + G4ThreeVector positionMod77 = G4ThreeVector(0*cm,0*cm,-0.45*cm); + solidMod77 = new G4Tubs("Mod57", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube17, + spanningAngleOfTheTube17); + + logicMod77 = new G4LogicalVolume(solidMod77, ModMater, "Mod77",0,0,0); + physiMod77 = new G4PVPlacement(0, // no rotation + positionMod77, // at (x,y,z) + logicMod77, // its logical volume + "Mod77", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + //---------------------------------------------------------- + //Diciot. fetta Modulatore 3 + //---------------------------------------------------------- + + + G4ThreeVector positionMod78 = G4ThreeVector(0*cm,0*cm,-0.51*cm); + solidMod78 = new G4Tubs("Mod78", + innerRadiusOfTheTube, + outerRadiusOfTheTube, + hightOfTheTube, + startAngleOfTheTube18, + spanningAngleOfTheTube18); + + logicMod78 = new G4LogicalVolume(solidMod78, ModMater, "Mod78",0,0,0); + physiMod78 = new G4PVPlacement(0, // no rotation + positionMod78, // at (x,y,z) + logicMod78, // its logical volume + "Mod78", // its name + logicMod60, // its mother volume + false, // no boolean operations + 0); // no particular field + + G4VisAttributes * red = new G4VisAttributes( G4Colour(1. ,0. ,0.)); + red-> SetVisibility(true); + red-> SetForceSolid(true); + logicMotherMod -> SetVisAttributes(G4VisAttributes::Invisible); + + logicMod0 ->SetVisAttributes(G4VisAttributes::Invisible); + logicMod20 ->SetVisAttributes(G4VisAttributes::Invisible); + logicMod40 ->SetVisAttributes(G4VisAttributes::Invisible); + logicMod60 ->SetVisAttributes(G4VisAttributes::Invisible); + logicMod1 -> SetVisAttributes(red); + logicMod2 -> SetVisAttributes(red); + logicMod3 -> SetVisAttributes(red); + logicMod4 -> SetVisAttributes(red); + logicMod5 -> SetVisAttributes(red); + logicMod6 -> SetVisAttributes(red); + logicMod7 -> SetVisAttributes(red); + logicMod8 -> SetVisAttributes(red); + logicMod9 -> SetVisAttributes(red); + logicMod10 -> SetVisAttributes(red); + logicMod11 -> SetVisAttributes(red); + logicMod12 -> SetVisAttributes(red); + logicMod13 -> SetVisAttributes(red); + logicMod14 -> SetVisAttributes(red); + logicMod15 -> SetVisAttributes(red); + logicMod16 -> SetVisAttributes(red); + logicMod17 -> SetVisAttributes(red); + logicMod18 -> SetVisAttributes(red); + logicMod21 -> SetVisAttributes(red); + logicMod22 -> SetVisAttributes(red); + logicMod23 -> SetVisAttributes(red); + logicMod24 -> SetVisAttributes(red); + logicMod25 -> SetVisAttributes(red); + logicMod26 -> SetVisAttributes(red); + logicMod27 -> SetVisAttributes(red); + logicMod28 -> SetVisAttributes(red); + logicMod29 -> SetVisAttributes(red); + logicMod30 -> SetVisAttributes(red); + logicMod31 -> SetVisAttributes(red); + logicMod32 -> SetVisAttributes(red); + logicMod33 -> SetVisAttributes(red); + logicMod34 -> SetVisAttributes(red); + logicMod35 -> SetVisAttributes(red); + logicMod36 -> SetVisAttributes(red); + logicMod37 -> SetVisAttributes(red); + logicMod38 -> SetVisAttributes(red); + logicMod41 -> SetVisAttributes(red); + logicMod42 -> SetVisAttributes(red); + logicMod43 -> SetVisAttributes(red); + logicMod44 -> SetVisAttributes(red); + logicMod45 -> SetVisAttributes(red); + logicMod46 -> SetVisAttributes(red); + logicMod47 -> SetVisAttributes(red); + logicMod48 -> SetVisAttributes(red); + logicMod49 -> SetVisAttributes(red); + logicMod50 -> SetVisAttributes(red); + logicMod51 -> SetVisAttributes(red); + logicMod52 -> SetVisAttributes(red); + logicMod53 -> SetVisAttributes(red); + logicMod54 -> SetVisAttributes(red); + logicMod55 -> SetVisAttributes(red); + logicMod56 -> SetVisAttributes(red); + logicMod57 -> SetVisAttributes(red); + logicMod58 -> SetVisAttributes(red); + logicMod61 -> SetVisAttributes(red); + logicMod62 -> SetVisAttributes(red); + logicMod63 -> SetVisAttributes(red); + logicMod64 -> SetVisAttributes(red); + logicMod65 -> SetVisAttributes(red); + logicMod66 -> SetVisAttributes(red); + logicMod67 -> SetVisAttributes(red); + logicMod68 -> SetVisAttributes(red); + logicMod69 -> SetVisAttributes(red); + logicMod70 -> SetVisAttributes(red); + logicMod71 -> SetVisAttributes(red); + logicMod72 -> SetVisAttributes(red); + logicMod73 -> SetVisAttributes(red); + logicMod74 -> SetVisAttributes(red); + logicMod75 -> SetVisAttributes(red); + logicMod76 -> SetVisAttributes(red); + logicMod77 -> SetVisAttributes(red); + logicMod78 -> SetVisAttributes(red); +} + +void HadrontherapyModulator::SetModulatorAngle(G4double angle) +{ + G4double rotationAngle = angle; + rm -> rotateZ(rotationAngle); + physiMotherMod -> SetRotation(rm); + G4cout << "MODULATOR HAS BEEN ROTATED OF " << rotationAngle/deg + << " deg" << G4endl; + G4RunManager::GetRunManager()-> GeometryHasBeenModified(); +} + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyMuonStandard.cc b/examples/advanced/hadrontherapy/src/HadrontherapyMuonStandard.cc new file mode 100644 index 0000000000..6bb9017621 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyMuonStandard.cc @@ -0,0 +1,97 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyMuonStandard.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyMuonStandard.hh" +#include "G4ProcessManager.hh" + +//muon: +#include "G4hIonisation.hh" +#include "G4MultipleScattering.hh" +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4MuonMinusCaptureAtRest.hh" +#include "G4StepLimiter.hh" + +HadrontherapyMuonStandard::HadrontherapyMuonStandard(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyMuonStandard::~HadrontherapyMuonStandard() +{ } + +void HadrontherapyMuonStandard::ConstructProcess() +{ + // Add standard processes for muons + + theParticleIterator -> reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle -> GetProcessManager(); + G4String particleName = particle -> GetParticleName(); + + if(( particleName == "mu+")|| (particleName == "mu-" )) + {//muon + G4VProcess* aMultipleScattering = new G4MultipleScattering(); + G4VProcess* aBremsstrahlung = new G4MuBremsstrahlung(); + G4VProcess* aPairProduction = new G4MuPairProduction(); + G4VProcess* anIonisation = new G4MuIonisation(); + // + // add processes + pmanager -> AddProcess(anIonisation); + pmanager -> AddProcess(aMultipleScattering); + pmanager -> AddProcess(aBremsstrahlung); + pmanager -> AddProcess(aPairProduction); + // + // set ordering for AlongStepDoIt + pmanager -> SetProcessOrdering(aMultipleScattering, idxAlongStep,1); + pmanager -> SetProcessOrdering(anIonisation, idxAlongStep,2); + pmanager -> SetProcessOrdering(aBremsstrahlung, idxAlongStep,3); + pmanager -> SetProcessOrdering(aPairProduction, idxAlongStep,4); + // + // set ordering for PostStepDoIt + pmanager -> SetProcessOrdering(aMultipleScattering, idxPostStep,1); + pmanager -> SetProcessOrdering(anIonisation, idxPostStep,2); + pmanager -> SetProcessOrdering(aBremsstrahlung, idxPostStep,3); + pmanager -> SetProcessOrdering(aPairProduction, idxPostStep,4); + pmanager -> AddProcess(new G4StepLimiter(), -1,-1, 3); + + if( particleName == "mu-" ) + pmanager -> AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1); + } + } +} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyParticles.cc b/examples/advanced/hadrontherapy/src/HadrontherapyParticles.cc new file mode 100644 index 0000000000..6075f250b0 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyParticles.cc @@ -0,0 +1,90 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyParticles.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#include "HadrontherapyParticles.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +HadrontherapyParticles::HadrontherapyParticles(const G4String& name) + : G4VPhysicsConstructor(name) +{ } + +HadrontherapyParticles::~HadrontherapyParticles() +{} + +void HadrontherapyParticles::ConstructParticle() +{ + G4Gamma::GammaDefinition(); + + // *******// + // leptons// + // *******// + + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); + + // ********// + // mesons // + // ********// + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + + // **********// + // barions // + // **********// + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); + + // ******// + // ions // + // ******// + G4Deuteron::DeuteronDefinition(); + G4Triton::TritonDefinition(); + G4He3::He3Definition(); + G4Alpha::AlphaDefinition(); + G4GenericIon::GenericIonDefinition(); +} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPhantomHit.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPhantomHit.cc new file mode 100644 index 0000000000..41f859b357 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPhantomHit.cc @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhantomHit.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyPhantomHit.hh" + +G4Allocator HadrontherapyPhantomHitAllocator; + +HadrontherapyPhantomHit::HadrontherapyPhantomHit() +{ + energyDeposit = 0; +} + +HadrontherapyPhantomHit::~HadrontherapyPhantomHit() +{ +} + +HadrontherapyPhantomHit::HadrontherapyPhantomHit(const HadrontherapyPhantomHit &right) + : G4VHit() +{ + xHitID = right.xHitID; + zHitID = right.zHitID; + yHitID = right.yHitID; + energyDeposit = right.energyDeposit; +} + +const HadrontherapyPhantomHit& HadrontherapyPhantomHit::operator=(const HadrontherapyPhantomHit &right) +{ + xHitID = right.xHitID; + zHitID = right.zHitID; + yHitID = right.yHitID; + energyDeposit = right.energyDeposit; + return *this; +} + +int HadrontherapyPhantomHit::operator==(const HadrontherapyPhantomHit &right) const +{ + return((xHitID==right.xHitID)&&(zHitID==right.zHitID)&&(yHitID==right.yHitID)); +} + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPhantomROGeometry.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPhantomROGeometry.cc new file mode 100644 index 0000000000..48244f5dcf --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPhantomROGeometry.cc @@ -0,0 +1,200 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhantomROGeometry.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyPhantomROGeometry.hh" +#include "HadrontherapyDummySD.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" +#include "G4Box.hh" +#include "G4ThreeVector.hh" +#include "G4Material.hh" + +HadrontherapyPhantomROGeometry::HadrontherapyPhantomROGeometry(G4String aString, + G4double phantomDimX, + G4double phantomDimY, + G4double phantomDimZ, + G4int numberOfVoxelsX, + G4int numberOfVoxelsY, + G4int numberOfVoxelsZ): + G4VReadOutGeometry(aString), + phantomSizeX(phantomDimX), + phantomSizeY(phantomDimY), + phantomSizeZ(phantomDimZ), + numberOfVoxelsAlongX(numberOfVoxelsX), + numberOfVoxelsAlongY(numberOfVoxelsY), + numberOfVoxelsAlongZ(numberOfVoxelsZ) +{ +} + +HadrontherapyPhantomROGeometry::~HadrontherapyPhantomROGeometry() +{ +} + +G4VPhysicalVolume* HadrontherapyPhantomROGeometry::Build() +{ + // A dummy material is used to fill the volumes of the readout geometry. + // (It will be allowed to set a NULL pointer in volumes of such virtual + // division in future, since this material is irrelevant for tracking.) + + G4Material* dummyMat = new G4Material(name="dummyMat", 1., 1.*g/mole, 1.*g/cm3); + + G4double worldSizeX = 200.0 *cm; + G4double worldSizeY = 200.0 *cm; + G4double worldSizeZ = 200.0 *cm; + + G4double halfPhantomSizeX = phantomSizeX; + G4double halfPhantomSizeY = phantomSizeY; + G4double halfPhantomSizeZ = phantomSizeZ; + + // World volume of ROGeometry ... + G4Box* ROWorld = new G4Box("ROWorld", + worldSizeX, + worldSizeY, + worldSizeZ); + + G4LogicalVolume* ROWorldLog = new G4LogicalVolume(ROWorld, dummyMat, + "ROWorldLog", 0,0,0); + + G4VPhysicalVolume* ROWorldPhys = new G4PVPlacement(0,G4ThreeVector(), + "ROWorldPhys", + ROWorldLog, + 0,false,0); + + // Phantom ROGeometry + G4Box *ROPhantom = new G4Box("ROPhantom", + halfPhantomSizeX, + halfPhantomSizeY, + halfPhantomSizeZ); + + G4LogicalVolume *ROPhantomLog = new G4LogicalVolume(ROPhantom, + dummyMat, + "ROPhantomLog", + 0,0,0); + + G4VPhysicalVolume *ROPhantomPhys = new G4PVPlacement(0, + G4ThreeVector(-180.0 *mm, + 0.0 *mm, + 0.0 *mm), + "PhantomPhys", + ROPhantomLog, + ROWorldPhys, + false,0); + + + // ROGeomtry: the phantom is divided in voxels along the axis X, Y, Z + + // Division along X axis: the phantom is devided in slices along the X axis + + G4double halfXVoxelSizeX = halfPhantomSizeX/numberOfVoxelsAlongX; + G4double halfXVoxelSizeY = halfPhantomSizeY; + G4double halfXVoxelSizeZ = halfPhantomSizeZ; + G4double voxelXThickness = 2*halfXVoxelSizeX; + + G4Box *ROPhantomXDivision = new G4Box("ROPhantomXDivision", + halfXVoxelSizeX, + halfXVoxelSizeY, + halfXVoxelSizeZ); + + G4LogicalVolume *ROPhantomXDivisionLog = new G4LogicalVolume(ROPhantomXDivision, + dummyMat, + "ROPhantomXDivisionLog", + 0,0,0); + + G4VPhysicalVolume *ROPhantomXDivisionPhys = new G4PVReplica("ROPhantomXDivisionPhys", + ROPhantomXDivisionLog, + ROPhantomPhys, + kXAxis, + numberOfVoxelsAlongX, + voxelXThickness); + + // Division along Y axis: the slices along the X axis are devided along the Y axis + + G4double halfYVoxelSizeX = halfXVoxelSizeX; + G4double halfYVoxelSizeY = halfPhantomSizeY/numberOfVoxelsAlongY; + G4double halfYVoxelSizeZ = halfPhantomSizeZ; + G4double voxelYThickness = 2*halfYVoxelSizeY; + + G4Box *ROPhantomYDivision = new G4Box("ROPhantomYDivision", + halfYVoxelSizeX, + halfYVoxelSizeY, + halfYVoxelSizeZ); + + G4LogicalVolume *ROPhantomYDivisionLog = new G4LogicalVolume(ROPhantomYDivision, + dummyMat, + "ROPhantomYDivisionLog", + 0,0,0); + + G4VPhysicalVolume *ROPhantomYDivisionPhys = new G4PVReplica("ROPhantomYDivisionPhys", + ROPhantomYDivisionLog, + ROPhantomXDivisionPhys, + kYAxis, + numberOfVoxelsAlongY, + voxelYThickness); + + // Division along Z axis: the slices along the Y axis are devided along the Z axis + + G4double halfZVoxelSizeX = halfXVoxelSizeX; + G4double halfZVoxelSizeY = halfYVoxelSizeY; + G4double halfZVoxelSizeZ = halfPhantomSizeZ/numberOfVoxelsAlongZ; + G4double voxelZThickness = 2*halfZVoxelSizeZ; + + G4Box *ROPhantomZDivision = new G4Box("ROPhantomZDivision", + halfZVoxelSizeX, + halfZVoxelSizeY, + halfZVoxelSizeZ); + + G4LogicalVolume *ROPhantomZDivisionLog = new G4LogicalVolume(ROPhantomZDivision, + dummyMat, + "ROPhantomZDivisionLog", + 0,0,0); + + ROPhantomZDivisionPhys = new G4PVReplica("ROPhantomZDivisionPhys", + ROPhantomZDivisionLog, + ROPhantomYDivisionPhys, + kZAxis, + numberOfVoxelsAlongZ, + voxelZThickness); + + HadrontherapyDummySD *dummySD = new HadrontherapyDummySD; + ROPhantomZDivisionLog -> SetSensitiveDetector(dummySD); + + return ROWorldPhys; +} + + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPhantomSD.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPhantomSD.cc new file mode 100644 index 0000000000..8079ddccb0 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPhantomSD.cc @@ -0,0 +1,102 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhantomSD.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyPhantomSD.hh" +#include "HadrontherapyPhantomHit.hh" +#include "G4Step.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" +#include "G4SDManager.hh" + +HadrontherapyPhantomSD::HadrontherapyPhantomSD(G4String name):G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="HadrontherapyPhantomHitsCollection"); + + HitsCollection = NULL; + G4String sensitiveDetectorName = name; +} + +HadrontherapyPhantomSD::~HadrontherapyPhantomSD() +{ +} + +void HadrontherapyPhantomSD::Initialize(G4HCofThisEvent*) +{ + HitsCollection = new HadrontherapyPhantomHitsCollection(sensitiveDetectorName, + collectionName[0]); +} + + +G4bool HadrontherapyPhantomSD::ProcessHits(G4Step* aStep, G4TouchableHistory* ROhist) +{ + if(!ROhist) + return false; + + if(aStep -> GetPreStepPoint() -> GetPhysicalVolume() -> GetName() != "PhantomPhys") + return false; + + G4double energyDeposit = aStep -> GetTotalEnergyDeposit(); + + if(energyDeposit == 0.) return false; + + // Read voxel indexes: i is the x index, k is the z index + + G4int k = ROhist -> GetReplicaNumber(0); + G4int i = ROhist -> GetReplicaNumber(2); + G4int j = ROhist -> GetReplicaNumber(1); + + if(energyDeposit != 0) + { + // Create a hit with the information of position in the phantom and energy deposit + HadrontherapyPhantomHit* phantomHit = new HadrontherapyPhantomHit(); + phantomHit -> SetEdepAndPosition(i, j, k, energyDeposit); + HitsCollection -> insert(phantomHit); + } + + return true; +} + +void HadrontherapyPhantomSD::EndOfEvent(G4HCofThisEvent* HCE) +{ + static G4int HCID = -1; + if(HCID < 0) + { + HCID = GetCollectionID(0); + } + HCE -> AddHitsCollection(HCID,HitsCollection); +} + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPhotonEPDL.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPhotonEPDL.cc new file mode 100644 index 0000000000..2a5dbddbeb --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPhotonEPDL.cc @@ -0,0 +1,72 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhotonEPDL.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#include "HadrontherapyPhotonEPDL.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4LowEnergyCompton.hh" +#include "G4LowEnergyGammaConversion.hh" +#include "G4LowEnergyPhotoElectric.hh" +#include "G4LowEnergyRayleigh.hh" +#include "G4StepLimiter.hh" + +HadrontherapyPhotonEPDL::HadrontherapyPhotonEPDL(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyPhotonEPDL::~HadrontherapyPhotonEPDL() +{ } + +void HadrontherapyPhotonEPDL::ConstructProcess() +{ + // Add EPDL processes for photons + + theParticleIterator -> reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator -> value(); + G4ProcessManager* manager = particle -> GetProcessManager(); + G4String particleName = particle -> GetParticleName(); + + if (particleName == "gamma") + { + manager -> AddDiscreteProcess(new G4LowEnergyPhotoElectric); + manager -> AddDiscreteProcess(new G4LowEnergyCompton); + manager -> AddDiscreteProcess(new G4LowEnergyGammaConversion); + manager -> AddDiscreteProcess(new G4LowEnergyRayleigh); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + } +} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPhotonPenelope.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPhotonPenelope.cc new file mode 100644 index 0000000000..b75ad445b5 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPhotonPenelope.cc @@ -0,0 +1,74 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: HadrontherapyPhotonPenelope.cc; Version 4.0 May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyPhotonPenelope.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4PenelopeCompton.hh" +#include "G4PenelopeGammaConversion.hh" +#include "G4PenelopePhotoElectric.hh" +#include "G4PenelopeRayleigh.hh" +#include "G4StepLimiter.hh" + +HadrontherapyPhotonPenelope::HadrontherapyPhotonPenelope(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyPhotonPenelope::~HadrontherapyPhotonPenelope() +{ } + +void HadrontherapyPhotonPenelope::ConstructProcess() +{ + theParticleIterator -> reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator -> value(); + G4ProcessManager* manager = particle -> GetProcessManager(); + G4String particleName = particle -> GetParticleName(); + + if (particleName == "gamma") + { + manager -> AddDiscreteProcess(new G4PenelopePhotoElectric); + manager -> AddDiscreteProcess(new G4PenelopeCompton); + manager -> AddDiscreteProcess(new G4PenelopeGammaConversion); + manager -> AddDiscreteProcess(new G4PenelopeRayleigh); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + } +} + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPhotonStandard.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPhotonStandard.cc new file mode 100644 index 0000000000..4fe3ce13d4 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPhotonStandard.cc @@ -0,0 +1,70 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhotonStandard.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#include "HadrontherapyPhotonStandard.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" +#include "G4StepLimiter.hh" + +HadrontherapyPhotonStandard::HadrontherapyPhotonStandard(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyPhotonStandard::~HadrontherapyPhotonStandard() +{ } + +void HadrontherapyPhotonStandard::ConstructProcess() +{ + // Add standard processes for photons + + theParticleIterator -> reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator -> value(); + G4ProcessManager* manager = particle -> GetProcessManager(); + G4String particleName = particle -> GetParticleName(); + + if (particleName == "gamma") + { + manager -> AddDiscreteProcess(new G4PhotoElectricEffect); + manager -> AddDiscreteProcess(new G4ComptonScattering); + manager -> AddDiscreteProcess(new G4GammaConversion); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + } +} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsList.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsList.cc old mode 100755 new mode 100644 index e6f86e9a3d..7a86757592 --- a/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsList.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsList.cc @@ -19,457 +19,343 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// // $Id: HadrontherapyPhysicsList.cc,v 1.0 -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + #include "globals.hh" -#include "HadrontherapyPhysicsList.hh" -#include "HadrontherapyDetectorConstruction.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" -#include "G4ProcessVector.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4Material.hh" -#include "G4VeLowEnergyLoss.hh" -#include "G4EnergyLossTables.hh" -#include "G4ios.hh" -#include +#include "G4Region.hh" +#include "G4RegionStore.hh" +#include "HadrontherapyPhysicsList.hh" +#include "HadrontherapyPhysicsListMessenger.hh" +#include "HadrontherapyParticles.hh" +#include "HadrontherapyPhotonStandard.hh" +#include "HadrontherapyPhotonEPDL.hh" +#include "HadrontherapyPhotonPenelope.hh" +#include "HadrontherapyElectronStandard.hh" +#include "HadrontherapyElectronEEDL.hh" +#include "HadrontherapyElectronPenelope.hh" +#include "HadrontherapyPositronStandard.hh" +#include "HadrontherapyPositronPenelope.hh" +#include "HadrontherapyIonLowE.hh" +#include "HadrontherapyIonStandard.hh" +#include "HadrontherapyProtonPrecompound.hh" +#include "HadrontherapyMuonStandard.hh" +#include "HadrontherapyDecay.hh" -// --------------------------------------------------------------------- -HadrontherapyPhysicsList::HadrontherapyPhysicsList(HadrontherapyDetectorConstruction* p) - :G4VUserPhysicsList() +HadrontherapyPhysicsList::HadrontherapyPhysicsList(): G4VModularPhysicsList(), + electronIsRegistered(false), + positronIsRegistered(false), + photonIsRegistered(false), + ionIsRegistered(false), + protonPrecompoundIsRegistered(false), + muonIsRegistered(false), + decayIsRegistered(false) { - pDet = p; - - currentDefaultCut = defaultCutValue = 10 *mm; - cutForGamma = defaultCutValue; - cutForElectron = defaultCutValue; - cutForProton = defaultCutValue; + // The threshold of production of secondaries is fixed to 10. mm + // for all the particles, in all the experimental set-up + defaultCutValue = 10. * mm; + messenger = new HadrontherapyPhysicsListMessenger(this); SetVerboseLevel(1); } -// ---------------------------------------------------------------------- HadrontherapyPhysicsList::~HadrontherapyPhysicsList() -{ +{ + delete messenger; } -// ----------------------------------------------------------------------- -void HadrontherapyPhysicsList::ConstructParticle() +void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name) { - // In this method, static member functions should be called - // for all particles which you want to use. - // This ensures that objects of these particle types will be - // created in the program. - - ConstructBosons(); - ConstructLeptons(); - ConstructMesons(); - ConstructBarions(); - ConstructIons(); -} - -// ----------------------------------------------------------------------- -void HadrontherapyPhysicsList::ConstructBosons() -{ - // ******* - // gamma - // ******* - G4Gamma::GammaDefinition(); + G4cout << "Adding PhysicsList component " << name << G4endl; - // **************** - // optical photons - // **************** - G4OpticalPhoton::OpticalPhotonDefinition(); -} + // + // Electromagnetic physics. + // + // The user can choose three alternative approaches: + // Standard, Low Energy based on the Livermore libraries and Low Energy Penelope + // -// ------------------------------------------------------------------------ -void HadrontherapyPhysicsList::ConstructLeptons() -{ - // ******* - // leptons - // ******* - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); -} - -// ------------------------------------------------------------------------ -void HadrontherapyPhysicsList::ConstructMesons() -{ - // ******** - // mesons - // ******** - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); -} - -// ------------------------------------------------------------------------ -void HadrontherapyPhysicsList::ConstructBarions() -{ - // ********** - // barions - // ********** - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); -} - -// ----------------------------------------------------------------------- -void HadrontherapyPhysicsList::ConstructIons() -{ - // ****** - // ions - // ****** - G4Deuteron::DeuteronDefinition(); - G4Triton::TritonDefinition(); - G4He3::He3Definition(); - G4Alpha::AlphaDefinition(); - G4GenericIon::GenericIonDefinition(); -} - -// ----------------------------------------------------------------------- -void HadrontherapyPhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructHad(); - ConstructGeneral(); -} - -// ----------------------------------------------------------------------- -// Electromagnetic processes valid for all charged particles -// ----------------------------------------------------------------------- -#include "G4MultipleScattering.hh" -// >>> gamma << -#include "G4LowEnergyRayleigh.hh" -#include "G4LowEnergyPhotoElectric.hh" -#include "G4LowEnergyCompton.hh" -#include "G4LowEnergyGammaConversion.hh" - -// >>> e- <<< -#include "G4LowEnergyIonisation.hh" -#include "G4LowEnergyBremsstrahlung.hh" - -// >>> e+ <<< -#include "G4eplusAnnihilation.hh" -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" - -// >>> Alpha and generic Ions, deuteron, triton, He3 <<< -#include "G4hLowEnergyIonisation.hh" -// hLowEnergyIonisation uses Ziegler 1988 as the default -#include "G4EnergyLossTables.hh" - -// >>> muon <<<< -#include "G4MuIonisation.hh" -#include "G4MuBremsstrahlung.hh" -#include "G4MuPairProduction.hh" -#include "G4MuonMinusCaptureAtRest.hh" - -// >>> Standard process for gamma <<< -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" - -// >>> Standard processes for hadro ionisation <<< -#include "G4hIonisation.hh" - -// ------------------------------------------------------------------------------ -void HadrontherapyPhysicsList::ConstructEM() -{ - G4int LowEnergy = 1; - // to active the Low Energy processes make LowEnergy =1; - - // *********** - // processes - // *********** - G4MultipleScattering* aMultipleScattering = new G4MultipleScattering(); - G4LowEnergyPhotoElectric* lowePhot = new G4LowEnergyPhotoElectric(); - G4LowEnergyIonisation* loweIon = new G4LowEnergyIonisation(); - G4LowEnergyBremsstrahlung* loweBrem = new G4LowEnergyBremsstrahlung(); - G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation(); - - if (LowEnergy == 1) - { - ahadronLowEIon -> SetNuclearStoppingPowerModel("ICRU_R49") ; // ICRU49 models for nuclear SP - ahadronLowEIon -> SetNuclearStoppingOn() ; - - // setting tables explicitly for electronic stopping power - ahadronLowEIon -> SetElectronicStoppingPowerModel(G4GenericIon::GenericIonDefinition(), - "ICRU_R49p") ; // ICRU49 models for elettronic SP - ahadronLowEIon -> SetElectronicStoppingPowerModel(G4Proton::ProtonDefinition(), - "ICRU_R49p") ; - // Switch off the Barkas and Bloch corrections - ahadronLowEIon -> SetBarkasOff(); - } - - theParticleIterator -> reset(); - while( (*theParticleIterator)() ) + // Register standard processes for photons + if (name == "photon-standard") { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - G4String particleType = particle->GetParticleType(); - G4double charge = particle->GetPDGCharge(); - - if (particleName == "gamma") + if (photonIsRegistered) { - // >>> gamma <<< - - if (LowEnergy == 1) { - // Low Energy processes - pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh()); - pmanager->AddDiscreteProcess(lowePhot); - pmanager->AddDiscreteProcess(new G4LowEnergyCompton()); - pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion()); - } - - else { - // Standard processes - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); - pmanager->AddDiscreteProcess(new G4ComptonScattering); - pmanager->AddDiscreteProcess(new G4GammaConversion); - } + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- photon List already existing" + << G4endl; } - - else if (particleName == "e-") - + else { - // >>> electron <<< - - if (LowEnergy == 1) { - // Low energy process - pmanager->AddProcess(aMultipleScattering, -1, 1, 1); - pmanager->AddProcess(loweIon, -1, 2, 2); - pmanager->AddProcess(loweBrem, -1,-1, 3); - } - - else { - // Standard processes - pmanager->AddProcess(aMultipleScattering, -1, 1, 1); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); - } - } - - else if (particleName == "e+") - { - // >>> positron <<< - - // Standard processes - pmanager->AddProcess(aMultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - - } - else if( particleName == "mu+" || - particleName == "mu-" ) - { - // >>> muon <<< - pmanager->AddProcess(aMultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4MuIonisation, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1,3); - pmanager->AddProcess(new G4MuPairProduction, -1,-1,4); - - } - else if ( - particleName == "proton" - || particleName == "antiproton" - || particleName == "pi+" - || particleName == "pi-" - || particleName == "kaon+" - || particleName == "kaon-" - ) - { - - if (LowEnergy == 1) { - pmanager->AddProcess(aMultipleScattering, -1,1,1); - pmanager->AddProcess(ahadronLowEIon, -1,2,2); - } - else { - pmanager->AddProcess(aMultipleScattering, -1,1,1); - pmanager->AddProcess(new G4hIonisation, -1,2,2); - } - } - - else if ((!particle->IsShortLived()) && - (charge != 0.0) ) - { - //all others charged particles except geantino - - if (LowEnergy == 1) { - pmanager->AddProcess(aMultipleScattering,-1,1,1); - pmanager->AddProcess(ahadronLowEIon, -1,2,2); - - } - else { - pmanager->AddProcess(aMultipleScattering,-1,1,1); - pmanager->AddProcess(new G4hIonisation(),-1, 2,2); - } - + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyPhotonStandard(name) ); + photonIsRegistered = true; } } -} -// ---------------------------------------------------------------------- -#include "G4Decay.hh" -void HadrontherapyPhysicsList::ConstructGeneral() -{ - G4Decay* theDecayProcess = new G4Decay(); - - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - - //add decay process - if (theDecayProcess->IsApplicable(*particle)) { - pmanager ->AddProcess(theDecayProcess); - // set ordering for PostStepDoIt and AtRestDoIt - pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); - pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); - } - } -} - -// ---------------------------------------------------------------------- -#include "G4ProtonInelasticProcess.hh" -#include "G4HadronElasticProcess.hh" -#include "G4LElastic.hh" -#include "G4LEProtonInelastic.hh" -#include "G4HEProtonInelastic.hh" - -void HadrontherapyPhysicsList:: ConstructHad() -{ - G4int Hadronic = 1; - // to activate the hadronic processes make Hadronic =1 - - if(Hadronic == 1) + // Register LowE-EPDL processes for photons + if (name == "photon-epdl") { - G4HadronElasticProcess* theElasticProcess = new G4HadronElasticProcess; - G4LElastic* theElasticModel = new G4LElastic; - theElasticProcess->RegisterMe(theElasticModel); - - theParticleIterator->reset(); - while ((*theParticleIterator)()) + if (photonIsRegistered) { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - - if (particleName == "proton") - { - pmanager->AddDiscreteProcess(theElasticProcess); - G4ProtonInelasticProcess* theInelasticProcess = new G4ProtonInelasticProcess("inelastic"); - G4LEProtonInelastic* theLEInelasticModel = new G4LEProtonInelastic; - theInelasticProcess->RegisterMe(theLEInelasticModel); - G4HEProtonInelastic* theHEInelasticModel = new G4HEProtonInelastic; - theInelasticProcess->RegisterMe(theHEInelasticModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- photon List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyPhotonEPDL(name) ); + photonIsRegistered = true; + } + } + + // Register processes a' la Penelope for photons + if (name == "photon-penelope") + { + if (photonIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- photon List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyPhotonPenelope(name) ); + photonIsRegistered = true; } } + + // Register standard processes for electrons + if (name == "electron-standard") + { + if (electronIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- electron List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyElectronStandard(name) ); + electronIsRegistered = true; + } + } + + // Register LowE-EEDL processes for electrons + if (name == "electron-eedl") + { + if (electronIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- electron List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyElectronEEDL(name) ); + electronIsRegistered = true; + } + } + + // Register processes a' la Penelope for electrons + if (name == "electron-penelope") + { + if (electronIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- electron List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyElectronPenelope(name) ); + electronIsRegistered = true; + } + } + + // Register standard processes for positrons + if (name == "positron-standard") + { + if (positronIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- positron List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyPositronStandard(name) ); + positronIsRegistered = true; + } + } + // Register penelope processes for positrons + if (name == "positron-penelope") + { + if (positronIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- positron List already existing" << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyPositronPenelope(name) ); + positronIsRegistered = true; + } + } + + // Register Low Energy ICRU processes for protons and ions + + if (name == "ion-LowE") + { + if (ionIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- proton List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyIonLowE(name) ); + ionIsRegistered = true; + } + } + + // Register Standard processes for protons and ions + + if (name == "ion-standard") + { + if (ionIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- ion List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyIonStandard(name) ); + ionIsRegistered = true; + } + } + + // Register the Standard processes for muons + if (name == "muon-standard") + { + if (muonIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- decay List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyMuonStandard(name) ); + muonIsRegistered = true; + } + } + + // Register the decay process + if (name == "decay") + { + if (decayIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- decay List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyDecay(name) ); + decayIsRegistered = true; + } + } + // + // + // Register the hadronic physics for protons, neutrons, ions + // + // + if (name == "proton-precompound") + { + if (protonPrecompoundIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- decay List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyProtonPrecompound(name) ); + protonPrecompoundIsRegistered = true; + } + } + + if (electronIsRegistered && positronIsRegistered && photonIsRegistered && + ionIsRegistered) + { + G4cout << + "Electromagnetic physics is registered for electron, positron, photons, protons" + << G4endl; + } + if (protonPrecompoundIsRegistered && muonIsRegistered && decayIsRegistered) + { + G4cout << " Hadronic physics is registered" << G4endl; + } } -#include "G4Region.hh" -#include "G4RegionStore.hh" + void HadrontherapyPhysicsList::SetCuts() -{ - // reactualise cutValues - if (currentDefaultCut != defaultCutValue) - { - if(cutForGamma == currentDefaultCut) cutForGamma = defaultCutValue; - if(cutForElectron == currentDefaultCut) cutForElectron = defaultCutValue; - if(cutForProton == currentDefaultCut) cutForProton = defaultCutValue; - currentDefaultCut = defaultCutValue; - } - - // set cut values for gamma at first and for e- second and next for e+, - // because some processes for e+/e- need cut values for gamma - SetCutValue(cutForGamma,"gamma"); - SetCutValue(cutForElectron,"e-"); - SetCutValue(cutForElectron,"e+"); +{ + // Set the threshold of production equal to the defaultCutValue + // in the experimental set-up + G4VUserPhysicsList::SetCutsWithDefault(); + + // Definition of a smaller threshold of production in the phantom region + // where high accuracy is required in the energy deposit calculation + + G4String regionName = "PhantomLog"; + G4Region* region = G4RegionStore::GetInstance()->GetRegion(regionName); + G4ProductionCuts* cuts = new G4ProductionCuts ; + G4double regionCut = 0.001*mm; + cuts -> SetProductionCut(regionCut,G4ProductionCuts::GetIndex("gamma")); + cuts -> SetProductionCut(regionCut,G4ProductionCuts::GetIndex("e-")); + cuts -> SetProductionCut(regionCut,G4ProductionCuts::GetIndex("e+")); + region -> SetProductionCuts(cuts); - - // Cut per region - // in region dosemeter we need a very accurate precision - G4Region* region; - G4String regName; - G4ProductionCuts* cuts; - - regName = "Dosemeter"; - region = G4RegionStore::GetInstance()->GetRegion(regName); - cuts = new G4ProductionCuts; - cuts->SetProductionCut(0.02*mm,G4ProductionCuts::GetIndex("gamma")); - cuts->SetProductionCut(0.02*mm,G4ProductionCuts::GetIndex("e-")); - cuts->SetProductionCut(0.02*mm,G4ProductionCuts::GetIndex("e+")); - region->SetProductionCuts(cuts); - - // SetCutValueForOthers(defaultCutValue); - - if (verboseLevel >0){ - G4cout << "HadrontherapyPhysicsList::SetCuts:"; - G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; - } - if (verboseLevel>0) DumpCutValuesTable(); } -// --------------------------------------------------------------------------- -void HadrontherapyPhysicsList::SetGammaCut(G4double val) -{ - ResetCuts(); - cutForGamma = val; -} - -// --------------------------------------------------------------------------- -void HadrontherapyPhysicsList::SetElectronCut(G4double val) -{ - ResetCuts(); - cutForElectron = val; -} - -// --------------------------------------------------------------------------- -void HadrontherapyPhysicsList::SetProtonCut(G4double val) -{ - ResetCuts(); - cutForProton = val; -} - -// --------------------------------------------------------------------------- -void HadrontherapyPhysicsList::GetRange(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetDosemeterMaterial(); - - G4ParticleDefinition* part; - G4double cut; - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - G4cout << "material : " << currMat->GetName() << G4endl; - G4cout << "particle : " << part->GetParticleName() << G4endl; - G4cout << "energy : " << G4BestUnit(val,"Energy") << G4endl; - G4cout << "range : " << G4BestUnit(cut,"Length") << G4endl; -} - diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsListMessenger.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsListMessenger.cc new file mode 100644 index 0000000000..7a069162e3 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsListMessenger.cc @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPhisicsListMessenger.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#include "HadrontherapyPhysicsListMessenger.hh" +#include "HadrontherapyPhysicsList.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithADouble.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithABool.hh" +#include "G4UIcmdWithAString.hh" + +HadrontherapyPhysicsListMessenger::HadrontherapyPhysicsListMessenger(HadrontherapyPhysicsList * physList) +:physicsList(physList) +{ + listDir = new G4UIdirectory("/physics/"); + // Building modular PhysicsList + + physicsListCmd = new G4UIcmdWithAString("/physics/addPhysics",this); + physicsListCmd->SetGuidance("Add chunks of PhysicsList."); + physicsListCmd->SetParameterName("physList",false); + physicsListCmd->AvailableForStates(G4State_PreInit); +} + +HadrontherapyPhysicsListMessenger::~HadrontherapyPhysicsListMessenger() +{ + delete physicsListCmd; + delete listDir; +} + +void HadrontherapyPhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if (command == physicsListCmd) + { physicsList->AddPhysicsList(newValue);} +} + + + + + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPositronPenelope.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPositronPenelope.cc new file mode 100644 index 0000000000..b0362ddc7a --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPositronPenelope.cc @@ -0,0 +1,72 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPositronPenelope.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyPositronPenelope.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4MultipleScattering.hh" +#include "G4PenelopeIonisation.hh" +#include "G4PenelopeBremsstrahlung.hh" +#include "G4PenelopeAnnihilation.hh" +#include "G4StepLimiter.hh" + +HadrontherapyPositronPenelope::HadrontherapyPositronPenelope(const G4String& name): + G4VPhysicsConstructor(name) +{ } + +HadrontherapyPositronPenelope::~HadrontherapyPositronPenelope() +{ } + +void HadrontherapyPositronPenelope::ConstructProcess() +{ + theParticleIterator->reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* manager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "e+") + { + manager -> AddProcess(new G4MultipleScattering, -1, 1,1); + manager -> AddProcess(new G4PenelopeIonisation, -1, 2,2); + manager -> AddProcess(new G4PenelopeBremsstrahlung,-1,-1,3); + manager -> AddProcess(new G4PenelopeAnnihilation, 0,-1,4); + manager -> AddProcess(new G4StepLimiter(), -1,-1,3); + } + } +} diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyHit.hh b/examples/advanced/hadrontherapy/src/HadrontherapyPositronStandard.cc old mode 100755 new mode 100644 similarity index 52% rename from examples/advanced/hadrontherapy/include/HadrontherapyHit.hh rename to examples/advanced/hadrontherapy/src/HadrontherapyPositronStandard.cc index 41e2eece07..1507a16820 --- a/examples/advanced/hadrontherapy/include/HadrontherapyHit.hh +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPositronStandard.cc @@ -19,74 +19,54 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyHit.hh,v 1.0 -// -------------------------------------------------------------- +// HadrontherapyPositronStandard.cc May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#include "HadrontherapyPositronStandard.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4MultipleScattering.hh" +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" +#include "G4StepLimiter.hh" -#ifndef HadrontherapyHit_h -#define HadrontherapyHit_h 1 -#include "G4VHit.hh" -#include "G4THitsCollection.hh" -#include "G4Allocator.hh" -#include "G4ThreeVector.hh" -#include "G4LogicalVolume.hh" -#include "G4Transform3D.hh" -#include "G4RotationMatrix.hh" +HadrontherapyPositronStandard::HadrontherapyPositronStandard(const G4String& name): G4VPhysicsConstructor(name) +{ } -// ------------------------------------------------------------------ -class HadrontherapyHit : public G4VHit +HadrontherapyPositronStandard::~HadrontherapyPositronStandard() +{ } + +void HadrontherapyPositronStandard::ConstructProcess() { -public: - HadrontherapyHit(G4int); - ~HadrontherapyHit(); - HadrontherapyHit(const HadrontherapyHit &right); - const HadrontherapyHit& operator=(const HadrontherapyHit &right); - int operator==(const HadrontherapyHit &right) const; + // Add standard processes for positrons - inline void *operator new(size_t); - inline void operator delete(void *aHit); - - void Draw(); - void Print(); - -private: + theParticleIterator -> reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator -> value(); + G4ProcessManager* manager = particle -> GetProcessManager(); + G4String particleName = particle -> GetParticleName(); - G4int slice; - G4double m_Edep; - -public: - inline G4int GetSliceID() {return slice;} - inline void SetSliceID(G4int sliceID) - {slice= sliceID;} - inline void SetEdep(G4double edep) - {m_Edep = edep;} - inline void AddEdep(G4double edep) - {m_Edep += edep;} - inline G4double GetEdep() - {return m_Edep;} -}; - -typedef G4THitsCollection HadrontherapyHitsCollection; -extern G4Allocator HadrontherapyHitAllocator; -inline void* HadrontherapyHit::operator new(size_t) -{ - void *aHit; - aHit = (void *) HadrontherapyHitAllocator.MallocSingle(); - return aHit; + if (particleName == "e+") + { + manager -> AddProcess(new G4MultipleScattering, -1, 1,1); + manager -> AddProcess(new G4eIonisation, -1, 2,2); + manager -> AddProcess(new G4eBremsstrahlung, -1,-1,3); + manager -> AddProcess(new G4eplusAnnihilation, 0,-1,4); + manager -> AddProcess(new G4StepLimiter(), -1,-1,3); + } + } } - -inline void HadrontherapyHit::operator delete(void *aHit) -{ - HadrontherapyHitAllocator.FreeSingle((HadrontherapyHit*) aHit); -} -#endif - - diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPrimaryGenerationAction.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPrimaryGeneratorAction.cc old mode 100755 new mode 100644 similarity index 56% rename from examples/advanced/hadrontherapy/src/HadrontherapyPrimaryGenerationAction.cc rename to examples/advanced/hadrontherapy/src/HadrontherapyPrimaryGeneratorAction.cc index d09701ae61..4f2c8bbb59 --- a/examples/advanced/hadrontherapy/src/HadrontherapyPrimaryGenerationAction.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPrimaryGeneratorAction.cc @@ -19,63 +19,81 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyPrimaryGeneratorAction.cc,v 1.0 -// -// -------------------------------------------------------------- +// $Id: HadrontherapyPositronPrimaryGeneratorAction.cc; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -------------------------------------------------------------- - +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- #include "HadrontherapyPrimaryGeneratorAction.hh" #include "HadrontherapyDetectorConstruction.hh" -//#include "HadrontherapyPrimaryGeneratorMessenger.hh" +#include "HadrontherapyPrimaryGeneratorMessenger.hh" #include "G4Event.hh" #include "G4ParticleGun.hh" #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" #include "Randomize.hh" -// ------------------------------------------------------------------------- -HadrontherapyPrimaryGeneratorAction::HadrontherapyPrimaryGeneratorAction( - HadrontherapyDetectorConstruction* HadrontherapyDC) - :HadrontherapyDetector(HadrontherapyDC) - +HadrontherapyPrimaryGeneratorAction::HadrontherapyPrimaryGeneratorAction() { + gunMessenger = new HadrontherapyPrimaryGeneratorMessenger(this); particleGun = new G4ParticleGun(); - SetDefaultKinematic(); - - //create a messenger for this class - //gunMessenger = new HadrontherapyPrimaryGeneratorMessenger(this); -} + SetDefaultPrimaryParticle(); +} -// ------------------------------------------------------------------------- HadrontherapyPrimaryGeneratorAction::~HadrontherapyPrimaryGeneratorAction() { delete particleGun; - //delete gunMessenger; + delete gunMessenger; } -// ------------------------------------------------------------------------ -void HadrontherapyPrimaryGeneratorAction::SetDefaultKinematic() +void HadrontherapyPrimaryGeneratorAction::SetDefaultPrimaryParticle() { // **************************** - // default particle kinematic + // Default primary particle // **************************** G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); G4ParticleDefinition* particle = particleTable->FindParticle("proton"); - particleGun -> SetParticleDefinition(particle); - particleGun -> SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); - particleGun -> SetParticleEnergy(63.4 *MeV); - particleGun -> SetParticlePosition(G4ThreeVector( -200.0 *cm, 0.0 *cm,0.0 *cm )); + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); + + G4double defaultMeanKineticEnergy = 63.450 *MeV; + meanKineticEnergy = defaultMeanKineticEnergy; + + G4double defaultsigmaEnergy = 400.0 *keV; + sigmaEnergy = defaultsigmaEnergy; + + G4double defaultX0 = -3248.59 *mm; + X0 = defaultX0; + + G4double defaultY0 = 0.0 *mm; + Y0 = defaultY0; + + G4double defaultZ0 = 0.0 *mm; + Z0 = defaultZ0; + + G4double defaultsigmaY = 1 *mm; + sigmaY = defaultsigmaY; + + G4double defaultsigmaZ = 1 *mm; + sigmaZ = defaultsigmaZ; + + G4double defaultsigmaMomentumY = 0.0001; + sigmaMomentumY = defaultsigmaMomentumY; + + G4double defaultsigmaMomentumZ = 0.0001; + sigmaMomentumZ = defaultsigmaMomentumZ; } -// ------------------------------------------------------------------------- void HadrontherapyPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { // **************************************** @@ -84,20 +102,14 @@ void HadrontherapyPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) // beam spot size // **************************************** - G4double X0 = -2000 *mm; - G4double Y0 = 0.0 *cm; - G4double Z0 = 0.0 *cm; - - G4double sigmaY = 1.0 *mm ; - G4double sigmaZ = 1.0 *mm ; - + // Set the position of the primary particles G4double x = X0; G4double y = Y0; G4double z = Z0; if ( sigmaY > 0.0 ) { - y += G4RandGauss::shoot( 0., sigmaY ); + y += G4RandGauss::shoot( Y0, sigmaY ); } if ( sigmaZ > 0.0 ) @@ -111,17 +123,12 @@ void HadrontherapyPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) // Set the beam energy and energy spread // ******************************************** - G4double meanKineticEnergy = 63.4 *MeV; - G4double sigmaK = 300.0 *keV; - G4double kineticEnergy = G4RandGauss::shoot ( meanKineticEnergy, sigmaK ); - + G4double kineticEnergy = G4RandGauss::shoot( meanKineticEnergy, sigmaEnergy ); particleGun -> SetParticleEnergy ( kineticEnergy ); - particleGun -> GeneratePrimaryVertex( anEvent ); + // Set the direction of the primary particles G4double momentumY = 0.0; G4double momentumZ = 0.0; - G4double sigmaMomentumY = 0.0001; - G4double sigmaMomentumZ = 0.0001; if ( sigmaMomentumY > 0.0 ) { @@ -132,7 +139,35 @@ void HadrontherapyPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) momentumZ += G4RandGauss::shoot( 0., sigmaMomentumZ ); } - particleGun -> SetParticleMomentumDirection(G4ThreeVector(1.,momentumY,momentumZ)); -} + particleGun->SetParticleMomentumDirection(G4ThreeVector(1,momentumY,momentumZ)); + // Generate a primary particle + particleGun -> GeneratePrimaryVertex( anEvent ); +} +void HadrontherapyPrimaryGeneratorAction::SetmeanKineticEnergy (G4double val ) +{ meanKineticEnergy = val;} + +void HadrontherapyPrimaryGeneratorAction::SetsigmaEnergy (G4double val ) +{ sigmaEnergy = val;} + +void HadrontherapyPrimaryGeneratorAction::SetXposition (G4double val ) +{ X0 = val;} + +void HadrontherapyPrimaryGeneratorAction::SetYposition (G4double val ) +{ Y0 = val;} + +void HadrontherapyPrimaryGeneratorAction::SetZposition (G4double val ) +{ Z0 = val;} + +void HadrontherapyPrimaryGeneratorAction::SetsigmaY (G4double val ) +{ sigmaY = val;} + +void HadrontherapyPrimaryGeneratorAction::SetsigmaZ (G4double val ) +{ sigmaZ = val;} + +void HadrontherapyPrimaryGeneratorAction::SetsigmaMomentumY (G4double val ) +{ sigmaMomentumY = val;} + +void HadrontherapyPrimaryGeneratorAction::SetsigmaMomentumZ (G4double val ) +{ sigmaMomentumZ = val;} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPrimaryGeneratorMessenger.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..92db9f843b --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPrimaryGeneratorMessenger.cc @@ -0,0 +1,177 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyPrimaryGeneratorMessenger.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyPrimaryGeneratorMessenger.hh" +#include "HadrontherapyPrimaryGeneratorAction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithADouble.hh" + +HadrontherapyPrimaryGeneratorMessenger::HadrontherapyPrimaryGeneratorMessenger( + HadrontherapyPrimaryGeneratorAction* HadrontherapyGun) +:HadrontherapyAction(HadrontherapyGun) +{ + beamParametersDir = new G4UIdirectory("/beam/"); + beamParametersDir -> SetGuidance("set parameters of beam"); + + EnergyDir = new G4UIdirectory("/beam/energy/"); + EnergyDir -> SetGuidance ("set energy of beam"); + + particlePositionDir = new G4UIdirectory("/beam/position/"); + particlePositionDir -> SetGuidance ("set position of particle"); + + MomentumDir = new G4UIdirectory("/beam/momentum/"); + MomentumDir -> SetGuidance ("set momentum of particle "); + + sigmaMomentumYCmd = new G4UIcmdWithADouble("/beam/momentum/sigmaY",this); + sigmaMomentumYCmd -> SetGuidance("set sigma momentum y"); + sigmaMomentumYCmd -> SetParameterName("momentum",false); + sigmaMomentumYCmd -> AvailableForStates(G4State_PreInit,G4State_Idle); + + + sigmaMomentumZCmd = new G4UIcmdWithADouble("/beam/momentum/sigmaZ",this); + sigmaMomentumZCmd -> SetGuidance("set sigma momentum z"); + sigmaMomentumZCmd -> SetParameterName("momentum",false); + sigmaMomentumZCmd -> AvailableForStates(G4State_PreInit,G4State_Idle); + + + meanKineticEnergyCmd = new G4UIcmdWithADoubleAndUnit("/beam/energy/meanEnergy",this); + meanKineticEnergyCmd->SetGuidance("set mean Kinetic energy"); + meanKineticEnergyCmd->SetParameterName("Energy",false); + meanKineticEnergyCmd->SetDefaultUnit("MeV"); + meanKineticEnergyCmd->SetUnitCandidates("eV keV MeV GeV TeV"); + meanKineticEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + + sigmaEnergyCmd = new G4UIcmdWithADoubleAndUnit("/beam/energy/sigmaEnergy",this); + sigmaEnergyCmd->SetGuidance("set sigma energy"); + sigmaEnergyCmd->SetParameterName("Energy",false); + sigmaEnergyCmd->SetDefaultUnit("keV"); + sigmaEnergyCmd->SetUnitCandidates("eV keV MeV GeV TeV"); + sigmaEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + + XpositionCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Xposition",this); + XpositionCmd->SetGuidance("set x coordinate of particle"); + XpositionCmd->SetParameterName("position",false); + XpositionCmd->SetDefaultUnit("mm"); + XpositionCmd->SetUnitCandidates("mm cm m"); + XpositionCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + + YpositionCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Yposition",this); + YpositionCmd->SetGuidance("set y coordinate of particle"); + YpositionCmd->SetParameterName("position",false); + YpositionCmd->SetDefaultUnit("mm"); + YpositionCmd->SetUnitCandidates("mm cm m"); + YpositionCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + sigmaYCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Yposition/sigmaY",this); + sigmaYCmd->SetGuidance("set sigma y"); + sigmaYCmd->SetParameterName("position",false); + sigmaYCmd->SetDefaultUnit("mm"); + sigmaYCmd->SetUnitCandidates("mm cm m"); + sigmaYCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + + ZpositionCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Zposition",this); + ZpositionCmd->SetGuidance("set z coordinate of particle"); + ZpositionCmd->SetParameterName("position",false); + ZpositionCmd->SetDefaultUnit("mm"); + ZpositionCmd->SetUnitCandidates("mm cm m"); + ZpositionCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + sigmaZCmd = new G4UIcmdWithADoubleAndUnit("/beam/position/Zposition/sigmaZ",this);sigmaZCmd->SetGuidance("set sigma z"); + sigmaZCmd->SetParameterName("position",false); + sigmaZCmd->SetDefaultUnit("mm"); + sigmaZCmd->SetUnitCandidates("mm cm m"); + sigmaZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} + +HadrontherapyPrimaryGeneratorMessenger::~HadrontherapyPrimaryGeneratorMessenger() +{ + delete beamParametersDir; + delete EnergyDir; + delete meanKineticEnergyCmd; + delete sigmaEnergyCmd; + delete particlePositionDir; + delete MomentumDir; + delete XpositionCmd; + delete YpositionCmd; + delete ZpositionCmd; + delete sigmaYCmd; + delete sigmaZCmd; + delete sigmaMomentumYCmd; + delete sigmaMomentumZCmd; +} + +void HadrontherapyPrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if ( command == meanKineticEnergyCmd ) + { HadrontherapyAction -> SetmeanKineticEnergy(meanKineticEnergyCmd + ->GetNewDoubleValue(newValue));} + if ( command == sigmaEnergyCmd ) + { HadrontherapyAction -> SetsigmaEnergy(sigmaEnergyCmd + ->GetNewDoubleValue(newValue));} + if ( command == XpositionCmd ) + { HadrontherapyAction -> SetXposition(XpositionCmd + ->GetNewDoubleValue(newValue));} + + if ( command == YpositionCmd ) + { HadrontherapyAction -> SetYposition(YpositionCmd + ->GetNewDoubleValue(newValue));} + + if ( command == ZpositionCmd ) + { HadrontherapyAction -> SetZposition(ZpositionCmd + ->GetNewDoubleValue(newValue));} + + if ( command == sigmaYCmd ) + { HadrontherapyAction -> SetsigmaY(sigmaYCmd + ->GetNewDoubleValue(newValue));} + + if ( command == sigmaZCmd ) + { HadrontherapyAction -> SetsigmaZ(sigmaZCmd + ->GetNewDoubleValue(newValue));} + + if ( command == sigmaMomentumYCmd ) + { HadrontherapyAction -> SetsigmaMomentumY(sigmaMomentumYCmd + ->GetNewDoubleValue(newValue));} + + if ( command == sigmaMomentumZCmd ) + { HadrontherapyAction -> SetsigmaMomentumZ(sigmaMomentumZCmd + ->GetNewDoubleValue(newValue));} +} diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompound.cc b/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompound.cc new file mode 100644 index 0000000000..50ce8bec33 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompound.cc @@ -0,0 +1,349 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyProtonPrecompound.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyProtonPrecompound.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4LElastic.hh" +#include "G4PionPlusInelasticProcess.hh" +#include "G4LEPionPlusInelastic.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4PionMinusInelasticProcess.hh" +#include "G4PiMinusAbsorptionAtRest.hh" +#include "G4PiNuclearCrossSection.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4NeutronInelasticCrossSection.hh" +#include "G4TripathiCrossSection.hh" +#include "G4IonsShenCrossSection.hh" +#include "G4HadronInelasticProcess.hh" +#include "G4BinaryLightIonReaction.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" +#include "G4HadronElasticProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4ProtonInelasticCrossSection.hh" +#include "G4HadronCaptureProcess.hh" +// +// PRECOMPOUND PHYSICS LIST +// +// PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION) NO FERMI BREAK-UP FOR PROTONS, NEUTRONS AND PIONS +// +// LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV +// FOR DEUTERON, TRITON, HE3, ALPHA +// +//FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV +// +HadrontherapyProtonPrecompound::HadrontherapyProtonPrecompound(const G4String& name): + G4VPhysicsConstructor(name) +{ + // Inelastic process, energy limits + + // Protons, neutrons and pions + // Energy limit of the precompound model + precompoundLowLimit = 0.*MeV; + precompoundHighLimit = 300.*MeV; + + // Energy limit of the neutron fission and capture + neutronLowLimit = 0.*TeV; + neutronHighLimit = 100.*TeV; + + // Ions + // Energy limit of the binary ion model + binaryLightIonLowLimit = 80.*MeV; + binaryLightIonHighLimit = 40.*GeV; + + // Energy limit of the LEP model for ions + LEPHighLimit = 100.*MeV; +} + +HadrontherapyProtonPrecompound::~HadrontherapyProtonPrecompound() +{} + +void HadrontherapyProtonPrecompound::ConstructProcess() +{ + + G4ParticleDefinition* particle = 0; + G4ProcessManager* pmanager = 0; + + // Elastic scattering + // for protons, neutrons, pions, ions + G4LElastic* elastic_Model = new G4LElastic(); + G4HadronElasticProcess* elastic = new G4HadronElasticProcess(); + elastic -> RegisterMe(elastic_Model); + + // Activation of Precompound model + evaporation (default evaporation) + // The Fermi break-up is not active (default condition) + // for protons, pions and neutrons + + G4PreCompoundModel* preEquilibrium = new G4PreCompoundModel(&theHandler); + preEquilibrium -> SetMinEnergy(precompoundLowLimit); + preEquilibrium -> SetMaxEnergy(precompoundHighLimit); + + //----------// + // Protons // + //----------// + + // Inelastic process for protons + particle = G4Proton::Proton(); + pmanager = particle -> GetProcessManager(); + + // Activation of the Precompound model for the proton + // inelastic process + //G4ProtonInelasticProcess protonInelasticScattering; + protonInelasticScattering.RegisterMe(preEquilibrium); + + // Set the cross section for the proton inelastic process + //G4ProtonInelasticCrossSection protonInelasticCrossSection; + protonInelasticScattering.AddDataSet(&protonInelasticCrossSection); + + // Set the proton hadronic processes: inelastic and elastic scattering + pmanager -> AddDiscreteProcess(&protonInelasticScattering); + pmanager -> AddDiscreteProcess(elastic); + + + //----------// + // Neutrons // + //----------// + + // Inelastic process for neutrons + particle = G4Neutron::Neutron(); + pmanager = particle -> GetProcessManager(); + + // Activation of the Precompound model for the neutrons + // inelastic process + + neutronInelasticScattering.RegisterMe(preEquilibrium); + + // Set the cross section for the neutron inelastic process + + neutronInelasticScattering.AddDataSet(&neutronInelasticCrossSection); + + // Set the neutron hadronic processes: inelastic and elastic scattering + pmanager -> AddDiscreteProcess(&neutronInelasticScattering); + pmanager -> AddDiscreteProcess(elastic); + + //----------// + // Pions // + //----------// + + // Inelastic process for pions + + // Pions plus + particle = G4PionPlus::PionPlus(); + pmanager = particle -> GetProcessManager(); + + // Activation of the Precompound model for the pion plus + // inelastic process + + pionPlusInelasticScattering.RegisterMe(preEquilibrium); + + // Set the cross section for the pion inelastic process + + pionPlusInelasticScattering.AddDataSet(&pionPlusInelasticCrossSection); + + // Set the pion plus hadronic processes: inelastic and elastic scattering + pmanager -> AddDiscreteProcess(&pionPlusInelasticScattering); + pmanager -> AddDiscreteProcess(elastic); + + // Pions minus + particle = G4PionMinus::PionMinus(); + pmanager = particle -> GetProcessManager(); + + // Activation of the Precompound model for the pion minus + // inelastic process + + pionMinusInelasticScattering.RegisterMe(preEquilibrium); + + // Set the cross section for the pion minus inelastic process + + pionMinusInelasticScattering.AddDataSet(&pionMinusInelasticCrossSection); + + // Set the pion minus hadronic processes: inelastic and elastic scattering + pmanager -> AddDiscreteProcess(&pionMinusInelasticScattering); + pmanager -> AddDiscreteProcess(elastic); + pmanager -> AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault); + + //------------------// + //d, t, 3He, alpha // + //------------------// + + //Inelastic scattering for d, t, 3He, alpha + + //Activation of the Low Energy Parameterised (LEP) model and binary ion model + // for the inelastic scattering + + G4BinaryLightIonReaction* binaryIonCascade = new G4BinaryLightIonReaction(); + binaryIonCascade -> SetMinEnergy(binaryLightIonLowLimit); + binaryIonCascade -> SetMaxEnergy(binaryLightIonHighLimit); + + // Set the cross section for the inelastic scattering + TripathiCrossSection = new G4TripathiCrossSection; + ShenCrossSection = new G4IonsShenCrossSection; + + // Deuteron + particle = G4Deuteron::Deuteron(); + pmanager = particle -> GetProcessManager(); + + // Activate the LEP model for the d inelastic scattering + G4LEDeuteronInelastic* deuteronLEPModel = new G4LEDeuteronInelastic; + deuteronLEPModel -> SetMaxEnergy(LEPHighLimit); + + // Activate the binary ion model model for the d inelastic scattering + + deuteronInelasticScattering.RegisterMe(deuteronLEPModel); + deuteronInelasticScattering.RegisterMe(binaryIonCascade); + + // Definition of the the deuteron inelastic scattering cross section + deuteronInelasticScattering.AddDataSet(TripathiCrossSection); + deuteronInelasticScattering.AddDataSet(ShenCrossSection); + + // Set the deuteron hadronic processes: inelastic and elastic scattering + pmanager -> AddDiscreteProcess(&deuteronInelasticScattering); + pmanager -> AddDiscreteProcess(elastic); + + // Triton + particle = G4Triton::Triton(); + pmanager = particle -> GetProcessManager(); + + // Activate the LEP model for the t inelastic scattering + G4LETritonInelastic* tritonLEPModel = new G4LETritonInelastic; + tritonLEPModel -> SetMaxEnergy(LEPHighLimit); + + // Activate the binary ion model model for the t inelastic scattering + + tritonInelasticScattering.RegisterMe(tritonLEPModel); + tritonInelasticScattering.RegisterMe(binaryIonCascade); + + // Definition of the the triton inelastic scattering cross section + tritonInelasticScattering.AddDataSet(TripathiCrossSection); + tritonInelasticScattering.AddDataSet(ShenCrossSection); + + // Set the triton hadronic processes: inelastic and elastic scattering + pmanager -> AddDiscreteProcess(&tritonInelasticScattering); + pmanager -> AddDiscreteProcess(elastic); + + // alpha + particle = G4Alpha::Alpha(); + pmanager = particle -> GetProcessManager(); + + // Activate the LEP model for the alpha inelastic scattering + G4LEAlphaInelastic* alphaLEPModel = new G4LEAlphaInelastic; + alphaLEPModel -> SetMaxEnergy(LEPHighLimit); + + // Activate the binary ion model model for the alpha inelastic scattering + alphaInelasticScattering.RegisterMe(alphaLEPModel); + alphaInelasticScattering.RegisterMe(binaryIonCascade); + + // Definition of the alpha inelastic scattering cross section + alphaInelasticScattering.AddDataSet(TripathiCrossSection); + alphaInelasticScattering.AddDataSet(ShenCrossSection); + + // Set the alpha hadronic processes: inelastic and elastic scattering + pmanager -> AddDiscreteProcess(&alphaInelasticScattering); + pmanager -> AddDiscreteProcess(elastic); + + + +///////////////////////////////////////////////////////////////////////////// +// NEW HE3 +///////////////////////////////////////////////////////////////////////////// + + //TripathiCrossSection = new G4TripathiCrossSection; + //ShenCrossSection = new G4IonsShenCrossSection; + + pmanager->AddDiscreteProcess(elastic); + He3InelasticProcess = new G4HadronInelasticProcess + ("He3Inelastic", G4He3::He3()); + + He3InelasticProcess->AddDataSet(TripathiCrossSection); + He3InelasticProcess->AddDataSet(ShenCrossSection); + He3InelasticProcess->RegisterMe(binaryIonCascade); + pmanager->AddDiscreteProcess(He3InelasticProcess); + + + // // He3 +// particle = G4He3::He3(); +// pmanager = particle -> GetProcessManager(); + +// // Only Binary Ion model activated +// // LEP model is not availaboe for 3He + +// G4HadronInelasticProcess* He3InelasticScattering = +// new G4HadronInelasticProcess("Inelastic scattering", particle); + +// // Change the binary ion model limits because the LEP is not available +// // +// binaryIonCascade -> SetMinEnergy(0.*MeV); +// binaryIonCascade -> SetMaxEnergy(binaryLightIonHighLimit); + +// // Definition of the 3He inelastic scattering cross section +// He3InelasticScattering -> AddDataSet(TripathiCrossSection); +// He3InelasticScattering -> AddDataSet(aShen); + +// He3InelasticScattering -> RegisterMe(binaryIonCascade); + +// // Set the He3 hadronic processes: inelastic and elastic scattering +// pmanager -> AddDiscreteProcess(He3InelasticScattering); +// pmanager -> AddDiscreteProcess(elastic); + + // Other neutron processes + + //Hadron Capture + G4HadronCaptureProcess* neutronCapture = new G4HadronCaptureProcess(); + G4LCapture* capture_model = new G4LCapture(); + capture_model -> SetMinEnergy(neutronLowLimit); + capture_model -> SetMaxEnergy(neutronHighLimit); + neutronCapture -> RegisterMe(capture_model); + pmanager -> AddDiscreteProcess(neutronCapture); + + //Fission + G4HadronFissionProcess* fission = new G4HadronFissionProcess(); + G4LFission* fission_model = new G4LFission(); + fission_model -> SetMinEnergy(neutronLowLimit); + fission_model -> SetMaxEnergy(neutronHighLimit); + fission -> RegisterMe(fission_model); + pmanager -> AddDiscreteProcess(fission); + +} + + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyRunAction.cc b/examples/advanced/hadrontherapy/src/HadrontherapyRunAction.cc old mode 100755 new mode 100644 index b2842eb06e..83eb1137b6 --- a/examples/advanced/hadrontherapy/src/HadrontherapyRunAction.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyRunAction.cc @@ -19,145 +19,48 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapyRunAction.cc,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyRunAction.cc,v 3.0, September 2004; +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + #include "HadrontherapyRunAction.hh" +#include "HadrontherapyEventAction.hh" #include "G4Run.hh" #include "G4RunManager.hh" #include "G4UImanager.hh" -#include "G4VVisManager.hh" #include "G4ios.hh" -#include -#include "Randomize.hh" +#include "HadrontherapyDetectorConstruction.hh" +#include "G4SDManager.hh" +#include "G4Timer.hh" +#include "HadrontherapyRunAction.hh" -#ifdef G4ANALYSIS_USE -#include "HadrontherapyAnalysisManager.hh" -#endif - -// --------------------------------------------------------------- HadrontherapyRunAction::HadrontherapyRunAction() -:NbOfLayer(20000) { } -// --------------------------------------------------------------- HadrontherapyRunAction::~HadrontherapyRunAction() -{ - // delete runMessenger; -} - -// --------------------------------------------------------------- -void HadrontherapyRunAction::BeginOfRunAction(const G4Run* aRun) { - for (G4int i=0; i < 50000; i++) - { - energy[i] = 0.0; - }; - -// ---------- Analysis preliminary implentation ------------------ -// for the registration of the Bragg curve file in a .xml file - -#ifdef G4ANALYSIS_USE -HadrontherapyAnalysisManager* analysis = HadrontherapyAnalysisManager::getInstance(); -analysis->book(); -#endif - -G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; - -// save Rndm status -G4RunManager::GetRunManager()->SetRandomNumberStore(true); -HepRandom::showEngineStatus(); } -// --------------------------------------------------------------------- -void HadrontherapyRunAction::EndOfRunAction(const G4Run*) -{ - // WRITE ASCII FILE FOR THE REGISTRATION OF THE BRAGG PEAK - // The a two column file (BraggPeak.out) is registered. - //The first column represents - // the ionization chamber position (in mm of water); the second - // is the energy deposited for each position of the chamber - - for (G4int i = 0; i < 20000; i++) { - -G4double depth = 0; -depth = i*0.002; //the number represents the thickness of the ionization chamber (in mm ofwater) - - std::ofstream pmtfile("BraggPeak.out", std::ios::app); - if(pmtfile.is_open()) - - { - pmtfile << depth << '\t' << energy[i] << '\t' << G4endl; - } - } - - -#ifdef G4ANALYSIS_USE - HadrontherapyAnalysisManager* analysis = HadrontherapyAnalysisManager::getInstance(); - - //histogram fill - - analysis -> Energy_Event( slice, energy[ slice ]); - - for (slice = 0; slice < 200; slice++) - // It is necessary to set here the Number of slice - { - //G4cout << "%%%%%%%" << slice << "%%%%%" << - //energy[ slice ] << "%%%%%" << G4endl; - - //n-tuple fill - analysis -> Energy_Dep( slice + 0.2, energy[ slice ]); - } - analysis -> finish(); - -#endif - - // show Rndm status - HepRandom::showEngineStatus(); +void HadrontherapyRunAction::BeginOfRunAction(const G4Run*) +{ + G4RunManager::GetRunManager()->SetRandomNumberStore(true); } -// ----------------------------------------------------------------------------- -void HadrontherapyRunAction::EnergyTotSlice(G4int slice, G4double energy_dep) +void HadrontherapyRunAction::EndOfRunAction(const G4Run*) { - energy[ slice ] = energy [ slice ] + energy_dep; - - //G4cout << "energy dalla funzione EnergyTotSlice" << energy[slice] - //<< "slice" << slice << G4endl; - } -/*void HadrontherapyRunAction::EnergyTotMarkus() -{ - - for (G4int i = 0; i < 250; i++) { - energyMarkus[i] = 0; - } - - for (i = 0; i < 191; i++) { - for (G4int j = 0; j < 10; j++) { - energyMarkus[ i ] = energy[ i+j ] + energyMarkus[ i ]; - } - } - -} -*/ - - - - - - - - - diff --git a/examples/advanced/hadrontherapy/src/HadrontherapySteppingAction.cc b/examples/advanced/hadrontherapy/src/HadrontherapySteppingAction.cc old mode 100755 new mode 100644 index 6cf87473a4..fd2b5d1639 --- a/examples/advanced/hadrontherapy/src/HadrontherapySteppingAction.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapySteppingAction.cc @@ -19,17 +19,21 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: HadrontherapySteppingAction.cc,v 1.0 -// -------------------------------------------------------------- +// $Id: HadrontherapyProtonSteppingAction.cc; May 2005 +// ---------------------------------------------------------------------------- // GEANT 4 - Hadrontherapy example -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- // Code developed by: // -// G.A.P. Cirrone, G. Russo -// Laboratori Nazionali del Sud - INFN, Catania, Italy -// -// -------------------------------------------------------------- +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the INFN, Catania, Italy +// (b) INFN Section of Genova, Genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + #include "HadrontherapyDetectorConstruction.hh" #include "G4EnergyLossTables.hh" #include "G4SteppingManager.hh" @@ -44,65 +48,16 @@ #include #include "G4UImanager.hh" -// ----------------------------------------------------------------- -HadrontherapySteppingAction::HadrontherapySteppingAction(HadrontherapyEventAction* EA) +HadrontherapySteppingAction::HadrontherapySteppingAction() { - eventaction = EA; } -// ---------------------------------------------------------------- HadrontherapySteppingAction::~HadrontherapySteppingAction() { } -// ----------------------------------------------------------------- -void HadrontherapySteppingAction::UserSteppingAction(const G4Step* aStep) +void HadrontherapySteppingAction::UserSteppingAction(const G4Step*) { - event_id = eventaction -> Trasporto(); - //the function Trasporto takes the event's number from EventAction Class - -G4double x = aStep -> GetPostStepPoint() -> GetPosition().x(); -G4double y = aStep -> GetPostStepPoint() -> GetPosition().y(); -G4double z = aStep -> GetPostStepPoint() -> GetPosition().z(); - -G4Track * theTrack = aStep -> GetTrack(); -G4double TrackID = theTrack -> GetTrackID(); -G4double KEnergy = theTrack -> GetKineticEnergy(); - -G4double thicknessPlane = 1 *mm; -G4double xPlane = 1048.59 *mm; - - -//------------------------------------------------------------ -// The PLANE that simulate radiochromic film -// Particles that interact within this "software plane" are registered; - - if (event_id == 0) {Controllo = 0;} - - if (x >= xPlane & x <= (xPlane+thicknessPlane) & Controllo != event_id & TrackID == 1) - { - Controllo = event_id; -// ---------------------------------------------------------- -// WRITE ASCII FILES -// Properties of the particles interacting with the plane -// are registered in two different files. Exactly -// Number of event and kinetic energy are registered in the disEnXX.dat file; -// Coordinates of the particles are registered in the disAngXX.dat file; - - std::ofstream pmtfile("energyDistribution.out", std::ios::app); - if(pmtfile.is_open()) - - { - pmtfile << KEnergy << '\t' << " " << event_id << '\t' << G4endl; - } - - std::ofstream pmtfile2("angularDistribution.out", std::ios::app); - if(pmtfile2.is_open()) - - { - pmtfile2 << x/mm << '\t' <<" " << y/mm << '\t' <<" " << z/mm << '\t' << G4endl; - } - } } diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyVisManager.cc b/examples/advanced/hadrontherapy/src/HadrontherapyVisManager.cc deleted file mode 100755 index d69ac2cbdd..0000000000 --- a/examples/advanced/hadrontherapy/src/HadrontherapyVisManager.cc +++ /dev/null @@ -1,144 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: HadrontherapyVisManager.cc -// -// -// John Allison 24th January 1998. - -#ifdef G4VIS_USE - -#include "HadrontherapyVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -HadrontherapyVisManager::HadrontherapyVisManager () {} - -void HadrontherapyVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - - #ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); - #endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} -#endif diff --git a/examples/advanced/hadrontherapy/visualisation.mac b/examples/advanced/hadrontherapy/visualisation.mac deleted file mode 100755 index a79465b7f1..0000000000 --- a/examples/advanced/hadrontherapy/visualisation.mac +++ /dev/null @@ -1,32 +0,0 @@ - -#*********************** -# visulisation.mac -# -#*********************** - -/process/activate Transportation all -/hits/activate -/hits/verbose 0 - -/gun/particle proton - - -/tracking/verbose 0 -/run/initialize -/vis/scene/create -/vis/open OGLIX - -/vis/viewer/set/viewpointThetaPhi 40 160 deg - -/vis/scene/endOfEventAction accumulate -/tracking/storeTrajectory 1 -/vis/scene/add/trajectories - -/vis/viewer/zoom 1.1 -##### Rotation of the modulator -#/modulator/angle/modAngle 45 deg -#/vis/viewer/refresh -####### -/run/beamOn 50 - - diff --git a/examples/advanced/hadrontherapy/visualisationMacro.mac b/examples/advanced/hadrontherapy/visualisationMacro.mac new file mode 100644 index 0000000000..1dc2f19159 --- /dev/null +++ b/examples/advanced/hadrontherapy/visualisationMacro.mac @@ -0,0 +1,64 @@ +#---------------------------------------------------------------------------- +# MACRO FILE FOR THE VISUALIZATION OF THE +# HADRONTHERAPY EXAMPLE USING THE OPENGL LIBRARIES +# +# +# THIS MACRO ILLUSTRATES THE POSSIBILITY +# FOR THE USER TO +# +# 1. Insert a range shifter of PMMA (default is air i.e. no range shifter!); +# 2. Define the thickness of the range shifter; +# +# +# NOTE THAT THE MODULATOR MATERIAL IS POLTMETHYLMETHACRILATE +# (PMMA) FOR DEFAULT. IF ONE WANT CARRY OUT A SIMULATION WITHOUT +# THE MODULATOR HE/SHE MUST SET "Air" the <> in the +# <> function of the HadrontherapyModulator.cc class +# +# THEN THE USER CAN RUN HIS/HER SIMULATION +# +# LOOKING ON THE HELP OF THE IDLE FOR HOW TO CHANGE OTHE TOPIC FEATURES +# OF THE BEAM LINE. +# ADDITIONAL INFORMATIONS ON THE MESSENGER AVAILABLE CAN BE FOUND +# INSIDE THE HADRONTHERAPY DOCUMENTATION (http://www.ge.infn.it/geant4/examples/). +# +# ANYWAY SEND ME AN E-MAIL FOR ANY QUESTION: cirrone@lns.infn.it. +#------------------------------------------------------------------------------ + +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard +/physics/addPhysics ion-LowE +/physics/addPhysics muon-standard +/physics/addPhysics decay +/physics/addPhysics proton-precompound + +/run/initialize + +# SET OF THE VISUALISATION CHARACTERISTICS +/vis/scene/create +/vis/open OGLIX +/vis/viewer/flush +/vis/viewer/set/viewpointThetaPhi 30 130 deg +/vis/viewer/zoom 3 +/vis/viewer/pan -10 80 cm +/tracking/storeTrajectory 1 +/vis/scene/endOfEventAction accumulate +/vis/viewer/update + +# SETTING FOR THE RANGE SHIFTER +/beamLine/RangeShifter/thickness 4 cm +/beamLine/RangeShifter/RSMat Water + +#/tracking/verbose 1 +/vis/viewer/flush +#/run/beamOn 1 + +#/run/beamOn 5000 + diff --git a/examples/advanced/lAr_calorimeter/History b/examples/advanced/lAr_calorimeter/History index 95a2ab4515..6a354f7a63 100644 --- a/examples/advanced/lAr_calorimeter/History +++ b/examples/advanced/lAr_calorimeter/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.11 2004/12/13 15:58:20 gcosmo Exp $ +$Id: History,v 1.12 2005/05/03 10:05:48 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,9 @@ $Id: History,v 1.11 2004/12/13 15:58:20 gcosmo Exp $ Category History file --------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 13.12.04 - G.Cosmo (lAr_calorimeter-V06-02-02) Use new phys-lists structure. diff --git a/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh b/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh index f27ff8fa7b..d128ea498f 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALCalorHit.hh,v 1.5 2004/11/29 18:03:04 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh b/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh index 54057bac57..139ab870f5 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALEMModuleSD.hh,v 1.7 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh b/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh index 764a9b5734..f93526f75d 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALHadModuleSD.hh,v 1.7 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh b/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh index c00fa635bb..81b126366d 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALPrimaryGeneratorAction.hh,v 1.5 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh b/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh index 95fb0d4f79..9256d89635 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALRunAction.hh,v 1.9 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh b/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh index cb90035df5..9c91cecfbb 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALSteppingAction.hh,v 1.6 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh b/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh index e62a9b4628..422672ba60 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALSteppingVerbose.hh,v 1.5 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh b/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh index 11a8797d03..241d47994c 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALTBEventAction.hh,v 1.10 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh index 4bca9dc7fa..ad819b3fd5 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALTestbeamSetupSD.hh,v 1.6 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALVisManager.hh b/examples/advanced/lAr_calorimeter/include/FCALVisManager.hh deleted file mode 100644 index f7b8db244a..0000000000 --- a/examples/advanced/lAr_calorimeter/include/FCALVisManager.hh +++ /dev/null @@ -1,69 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: FCALVisManager.hh,v 1.5 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef FCALVisManager_h -#define FCALVisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class FCALVisManager: public G4VisManager { - -public: - - FCALVisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -#endif - -#endif diff --git a/examples/advanced/lAr_calorimeter/lArCal.cc b/examples/advanced/lAr_calorimeter/lArCal.cc index 01f0f1f44c..0dd6fff441 100644 --- a/examples/advanced/lAr_calorimeter/lArCal.cc +++ b/examples/advanced/lAr_calorimeter/lArCal.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: lArCal.cc,v 1.8 2004/11/29 18:03:04 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: lArCal.cc,v 1.9 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -45,7 +45,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "FCALVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "FCALTestbeamSetup.hh" @@ -101,7 +101,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new FCALVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc b/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc index 3cd1c9a3e6..5654fcc7ea 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALCalorHit.cc,v 1.5 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc b/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc index 9b225e044d..c024c6d0ab 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALEMModuleSD.cc,v 1.9 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc b/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc index 1f62dda9b4..f45fdd2414 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALHadModuleSD.cc,v 1.7 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc b/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc index 2c572bf156..e55f738e30 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALPrimaryGeneratorAction.cc,v 1.6 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc b/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc index 537b52f2cb..4f4ea94ebe 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALRunAction.cc,v 1.6 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc b/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc index ab0731750a..10a1c117fb 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALSteppingAction.cc,v 1.5 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc b/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc index b525594a21..f6594ad4cf 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALSteppingVerbose.cc,v 1.6 2004/11/29 18:03:07 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc b/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc index bd1e574b63..1a9de00dea 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALTBEventAction.cc,v 1.11 2004/11/29 18:03:07 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc index d83110567a..35a27a67d2 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALTestbeamSetupSD.cc,v 1.9 2004/11/29 18:03:07 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALVisManager.cc b/examples/advanced/lAr_calorimeter/src/FCALVisManager.cc deleted file mode 100644 index 46faee695b..0000000000 --- a/examples/advanced/lAr_calorimeter/src/FCALVisManager.cc +++ /dev/null @@ -1,144 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: FCALVisManager.cc,v 1.9 2004/11/29 18:03:07 ribon Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifdef G4VIS_USE - -#include "FCALVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -FCALVisManager::FCALVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void FCALVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/medical_linac/History b/examples/advanced/medical_linac/History index b384e896a0..b918f65a89 100644 --- a/examples/advanced/medical_linac/History +++ b/examples/advanced/medical_linac/History @@ -1,4 +1,4 @@ -$Id: History,v 1.7 2004/11/25 16:28:39 mpiergen Exp $ +$Id: History,v 1.10 2005/06/02 13:57:07 mpiergen Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,15 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +02.06.2005 Michela Piergentili, tag medical_linac-V07-00-03 + code maintenance + +02.06.2005 Michela Piergentili, tag medical_linac-V07-00-02 + Bug fixed in ROGeometry + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 25.11.2004 Michela Piergentili, tag medical_linac-V06-02-00 Maintenance of the code. diff --git a/examples/advanced/medical_linac/MedLinac.cc b/examples/advanced/medical_linac/MedLinac.cc index 1356abf534..ee8a309846 100644 --- a/examples/advanced/medical_linac/MedLinac.cc +++ b/examples/advanced/medical_linac/MedLinac.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinac.cc,v 1.4 2004/11/24 16:53:28 mpiergen Exp $ +// $Id: MedLinac.cc,v 1.5 2005/05/03 10:21:16 allison Exp $ // // -------------------------------------------------------------- // GEANT 4 - medical_linac @@ -54,7 +54,7 @@ #endif #ifdef G4VIS_USE -#include "MedLinacVisManager.hh" +#include "G4VisExecutive.hh" #endif int main(int argc ,char ** argv) @@ -78,7 +78,7 @@ int main(int argc ,char ** argv) #ifdef G4VIS_USE // Visualization manager - G4VisManager* visManager = new MedLinacVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/advanced/medical_linac/README b/examples/advanced/medical_linac/README index 733f3d5689..3bba912ca6 100644 --- a/examples/advanced/medical_linac/README +++ b/examples/advanced/medical_linac/README @@ -1,4 +1,4 @@ -$Id: README,v 1.4 2004/11/25 16:28:39 mpiergen Exp $ +$Id: README,v 1.5 2005/06/02 12:22:11 mpiergen Exp $ ------------------------------------------------------------------- @@ -60,7 +60,7 @@ setenv CLHEP_BASE_DIR points to the installation directory of CHLEP; setenv G4LEDATA points to the low energy electromagnetic libraries - G4EMLOW2.3 -setup for analysis: AIDA 3.2.1, PI 1.2.1 +setup for analysis: AIDA 3.2.1, PI 1.3.3 Users can download the analysis tools from: diff --git a/examples/advanced/medical_linac/src/MedLinacAnalysisManager.cc b/examples/advanced/medical_linac/src/MedLinacAnalysisManager.cc index d4e9b4ac43..fc6dcd5bee 100644 --- a/examples/advanced/medical_linac/src/MedLinacAnalysisManager.cc +++ b/examples/advanced/medical_linac/src/MedLinacAnalysisManager.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinacAnalysisManager.cc,v 1.4 2004/06/18 09:17:41 gunter Exp $ +// $Id: MedLinacAnalysisManager.cc,v 1.6 2005/06/02 13:57:07 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -56,8 +56,8 @@ MedLinacAnalysisManager::MedLinacAnalysisManager(): //parameters for the TreeFactory - std::string fileName = "MedLinac.hbk"; - theTree = treeFact->create(fileName,"hbook",false, true); + std::string fileName = "MedLinac.xml"; + theTree = treeFact->create(fileName,"XML",false, true, "uncompress"); delete treeFact; @@ -86,8 +86,8 @@ void MedLinacAnalysisManager::book() { //creating a 2D histogram ... h1 = histFact->createHistogram2D("10","Energy, pos x z", //histoID,histo name - 340 ,-170.,170., //bins'number,xmin,xmax - 340,-170.,170. );//bins'number,zmin,zmax + 300 ,-150.,150., //bins'number,xmin,xmax + 300,-150.,150. );//bins'number,zmin,zmax @@ -100,11 +100,11 @@ void MedLinacAnalysisManager::book() //creating an other 2D histogram ... h3 = histFact->createHistogram2D("30","Energy, pos x y", //histoID,histo name - 340 ,-170.,170., //bins'number,xmin,xmax - 340,-170.,170. );//bins'number,ymin,ymax + 300 ,-150.,150., //bins'number,xmin,xmax + 300,-150.,150. );//bins'number,ymin,ymax - //creating an other 1D histogram ... - h4 = histFact->createHistogram1D("40","PDD", //histoID,histo name + //creating an other 1D histogram ... + h4 = histFact->createHistogram1D("40","PDD", //histoID,histo name 300,-150.0,150.0); //bins' number, zmin, zmax //creating an other 1D histogram ... h5 = histFact->createHistogram1D("50","Flatness at build-up depth", //histoID,histo name diff --git a/examples/advanced/medical_linac/src/MedLinacDetectorConstruction.cc b/examples/advanced/medical_linac/src/MedLinacDetectorConstruction.cc index 2815bfcf80..ac2ab14dc7 100644 --- a/examples/advanced/medical_linac/src/MedLinacDetectorConstruction.cc +++ b/examples/advanced/medical_linac/src/MedLinacDetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacDetectorConstruction.cc,v 1.6 2004/11/24 16:53:29 mpiergen Exp $ +// $Id: MedLinacDetectorConstruction.cc,v 1.7 2005/06/02 13:57:07 mpiergen Exp $ // // Code developed by: M. Piergentili // @@ -64,6 +64,9 @@ #include "G4SubtractionSolid.hh" #include "G4VSolid.hh" #include "G4Region.hh" +#include "G4UserLimits.hh" + + #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" @@ -383,8 +386,11 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () vacuumBlock_log->SetVisAttributes(simpleWorldVisAtt); // Sets a max Step length in the detector - G4double maxStep = 0.1*mm; - Phantom_log->SetUserLimits(new G4UserLimits(maxStep)); + + G4UserLimits *l = new G4UserLimits(); + G4double maxStep= 0.1*mm; + l->SetMaxAllowedStep(maxStep); + Phantom_log->SetUserLimits(l); ConstructVolume(); diff --git a/examples/advanced/medical_linac/src/MedLinacPhantomROGeometry.cc b/examples/advanced/medical_linac/src/MedLinacPhantomROGeometry.cc index 103425331e..62bd0ceb93 100644 --- a/examples/advanced/medical_linac/src/MedLinacPhantomROGeometry.cc +++ b/examples/advanced/medical_linac/src/MedLinacPhantomROGeometry.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinacPhantomROGeometry.cc,v 1.3 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacPhantomROGeometry.cc,v 1.4 2005/06/02 12:22:11 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -86,17 +86,11 @@ G4VPhysicalVolume* MedLinacPhantomROGeometry::Build() G4double expHall_y = 3.0*m; G4double expHall_z = 3.0*m; - // variables for x division ... + // variables for division ... G4double halfXVoxelDimensionX = PhantomDimensionX/NumberOfVoxelsAlongX; G4double halfXVoxelDimensionZ = PhantomDimensionZ; G4double voxelXThickness = 2*halfXVoxelDimensionX; - // variables for y division ... - G4double halfZVoxelDimensionX = PhantomDimensionX; - G4double halfZVoxelDimensionZ = PhantomDimensionZ/NumberOfVoxelsAlongZ; - G4double voxelZThickness = 2*halfZVoxelDimensionZ; - - // world volume of ROGeometry ... G4Box *ROWorld = new G4Box("ROWorld", @@ -155,9 +149,9 @@ G4VPhysicalVolume* MedLinacPhantomROGeometry::Build() // ...then Z division G4Box *ROPhantomZDivision = new G4Box("ROPhantomZDivision", - halfZVoxelDimensionX, - halfZVoxelDimensionX, - halfZVoxelDimensionZ); + halfXVoxelDimensionX, + halfXVoxelDimensionZ, + halfXVoxelDimensionX); G4LogicalVolume *ROPhantomZDivisionLog = new G4LogicalVolume(ROPhantomZDivision, H2O, @@ -169,13 +163,13 @@ G4VPhysicalVolume* MedLinacPhantomROGeometry::Build() ROPhantomXDivisionPhys, kZAxis, NumberOfVoxelsAlongZ, - voxelZThickness); + voxelXThickness); // ...then Y division G4Box *ROPhantomYDivision = new G4Box("ROPhantomYDivision", - halfZVoxelDimensionX, - halfZVoxelDimensionX, - halfZVoxelDimensionX); + halfXVoxelDimensionX, + halfXVoxelDimensionX, + halfXVoxelDimensionX); G4LogicalVolume *ROPhantomYDivisionLog = new G4LogicalVolume(ROPhantomYDivision, H2O, @@ -187,7 +181,8 @@ G4VPhysicalVolume* MedLinacPhantomROGeometry::Build() ROPhantomZDivisionPhys, kYAxis, NumberOfVoxelsAlongZ, - voxelZThickness); + voxelXThickness); + MedLinacDummySD *dummySD = new MedLinacDummySD; ROPhantomYDivisionLog->SetSensitiveDetector(dummySD); diff --git a/examples/advanced/medical_linac/src/MedLinacVisManager.cc b/examples/advanced/medical_linac/src/MedLinacVisManager.cc deleted file mode 100644 index a486ffe1de..0000000000 --- a/examples/advanced/medical_linac/src/MedLinacVisManager.cc +++ /dev/null @@ -1,100 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: MedLinacVisManager.cc,v 1.3 2004/05/14 18:25:40 mpiergen Exp $ -// -// -// Code developed by: M. Piergentili - - -#ifdef G4VIS_USE - -#include "MedLinacVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//************************************************************* - -MedLinacVisManager::MedLinacVisManager () {} - -//************************************************************* - -void MedLinacVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - diff --git a/examples/advanced/purging_magnet/History b/examples/advanced/purging_magnet/History index e4aa02e1ae..e891d6f3fd 100644 --- a/examples/advanced/purging_magnet/History +++ b/examples/advanced/purging_magnet/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.6 2004/11/29 14:13:10 guatelli Exp $ +$Id: History,v 1.7 2005/05/03 10:05:48 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,9 @@ $Id: History,v 1.6 2004/11/29 14:13:10 guatelli Exp $ Category History file --------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 29.11.2004 - S. Guatelli purtag-V06-02-00 Compilation warnings concelead Migration to diff --git a/examples/advanced/purging_magnet/PurgMag.cc b/examples/advanced/purging_magnet/PurgMag.cc index 36c275247d..85b0f167d6 100644 --- a/examples/advanced/purging_magnet/PurgMag.cc +++ b/examples/advanced/purging_magnet/PurgMag.cc @@ -29,8 +29,8 @@ // * * // ********************* // -// $Id: PurgMag.cc,v 1.2 2004/06/18 09:17:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PurgMag.cc,v 1.3 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Comments: Main program for the Purgin Magnet example. // @@ -41,7 +41,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "PurgMagVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "PurgMagDetectorConstruction.hh" @@ -73,7 +73,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new PurgMagVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh b/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh index bfb992d060..80fae64ba2 100644 --- a/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh +++ b/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh @@ -30,7 +30,7 @@ // ************************************ // // $Id: PurgMagAnalysisManager.hh,v 1.2 2004/06/18 09:17:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifdef G4ANALYSIS_USE diff --git a/examples/advanced/purging_magnet/include/PurgMagDetectorConstruction.hh b/examples/advanced/purging_magnet/include/PurgMagDetectorConstruction.hh index f78bb2a57c..194c0d6a8c 100644 --- a/examples/advanced/purging_magnet/include/PurgMagDetectorConstruction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagDetectorConstruction.hh @@ -30,7 +30,7 @@ // ***************************************** // // $Id: PurgMagDetectorConstruction.hh,v 1.2 2004/06/18 09:17:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/include/PurgMagEventAction.hh b/examples/advanced/purging_magnet/include/PurgMagEventAction.hh index eae3a7588f..4d6f3c7bc8 100644 --- a/examples/advanced/purging_magnet/include/PurgMagEventAction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagEventAction.hh @@ -30,7 +30,7 @@ // ******************************** // // $Id: PurgMagEventAction.hh,v 1.2 2004/06/18 09:17:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/include/PurgMagPhysicsList.hh b/examples/advanced/purging_magnet/include/PurgMagPhysicsList.hh index e579fca689..b56ff4da32 100644 --- a/examples/advanced/purging_magnet/include/PurgMagPhysicsList.hh +++ b/examples/advanced/purging_magnet/include/PurgMagPhysicsList.hh @@ -31,7 +31,7 @@ // // // $Id: PurgMagPhysicsList.hh,v 1.2 2004/06/18 09:17:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/include/PurgMagPrimaryGeneratorAction.hh b/examples/advanced/purging_magnet/include/PurgMagPrimaryGeneratorAction.hh index 52d4305d39..14ab58b817 100644 --- a/examples/advanced/purging_magnet/include/PurgMagPrimaryGeneratorAction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagPrimaryGeneratorAction.hh @@ -31,7 +31,7 @@ // ******************************************** // // $Id: PurgMagPrimaryGeneratorAction.hh,v 1.2 2004/06/18 09:17:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/include/PurgMagRunAction.hh b/examples/advanced/purging_magnet/include/PurgMagRunAction.hh index d440889876..cdb9ef4a99 100644 --- a/examples/advanced/purging_magnet/include/PurgMagRunAction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagRunAction.hh @@ -30,7 +30,7 @@ // ****************************** // // $Id: PurgMagRunAction.hh,v 1.2 2004/06/18 09:17:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef PurgMagRunAction_h diff --git a/examples/advanced/purging_magnet/include/PurgMagSteppingAction.hh b/examples/advanced/purging_magnet/include/PurgMagSteppingAction.hh index 5e8bcc35fa..d593851924 100644 --- a/examples/advanced/purging_magnet/include/PurgMagSteppingAction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagSteppingAction.hh @@ -30,7 +30,7 @@ // *********************************** // // $Id: PurgMagSteppingAction.hh,v 1.2 2004/06/18 09:17:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/include/PurgMagSteppingVerbose.hh b/examples/advanced/purging_magnet/include/PurgMagSteppingVerbose.hh index 2ee673b82d..f6a0418082 100644 --- a/examples/advanced/purging_magnet/include/PurgMagSteppingVerbose.hh +++ b/examples/advanced/purging_magnet/include/PurgMagSteppingVerbose.hh @@ -31,7 +31,7 @@ // ************************************ // // $Id: PurgMagSteppingVerbose.hh,v 1.2 2004/06/18 09:17:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // class PurgMagSteppingVerbose; diff --git a/examples/advanced/purging_magnet/include/PurgMagTabulatedField3D.hh b/examples/advanced/purging_magnet/include/PurgMagTabulatedField3D.hh index c4be7dc689..f86eadb75a 100644 --- a/examples/advanced/purging_magnet/include/PurgMagTabulatedField3D.hh +++ b/examples/advanced/purging_magnet/include/PurgMagTabulatedField3D.hh @@ -30,7 +30,7 @@ // ************************************* // // $Id: PurgMagTabulatedField3D.hh,v 1.2 2004/06/18 09:17:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/advanced/purging_magnet/include/PurgMagTrackingAction.hh b/examples/advanced/purging_magnet/include/PurgMagTrackingAction.hh index 98a664614e..d9eb3c21aa 100644 --- a/examples/advanced/purging_magnet/include/PurgMagTrackingAction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagTrackingAction.hh @@ -30,7 +30,7 @@ // ********************************** // // $Id: PurgMagTrackingAction.hh,v 1.2 2004/06/18 09:17:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef PurgMagTrackingAction_h diff --git a/examples/advanced/purging_magnet/include/PurgMagVisManager.hh b/examples/advanced/purging_magnet/include/PurgMagVisManager.hh deleted file mode 100644 index df8b785941..0000000000 --- a/examples/advanced/purging_magnet/include/PurgMagVisManager.hh +++ /dev/null @@ -1,70 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// Code developed by: -// S.Larsson -// -// ******************************* -// * * -// * PurgMagVisManager.hh * -// * * -// ******************************* -// -// $Id: PurgMagVisManager.hh,v 1.2 2004/06/18 09:17:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef PurgMagVisManager_h -#define PurgMagVisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class PurgMagVisManager: public G4VisManager { - -public: - - PurgMagVisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -#endif diff --git a/examples/advanced/purging_magnet/src/PurgMagAnalysisManager.cc b/examples/advanced/purging_magnet/src/PurgMagAnalysisManager.cc index 144301fc7e..d7272bbec5 100644 --- a/examples/advanced/purging_magnet/src/PurgMagAnalysisManager.cc +++ b/examples/advanced/purging_magnet/src/PurgMagAnalysisManager.cc @@ -30,7 +30,7 @@ // ************************************ // // $Id: PurgMagAnalysisManager.cc,v 1.2 2004/06/18 09:17:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifdef G4ANALYSIS_USE #include diff --git a/examples/advanced/purging_magnet/src/PurgMagDetectorConstruction.cc b/examples/advanced/purging_magnet/src/PurgMagDetectorConstruction.cc index cb1c4c80ba..4b6a5b7550 100644 --- a/examples/advanced/purging_magnet/src/PurgMagDetectorConstruction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagDetectorConstruction.cc @@ -30,7 +30,7 @@ // ***************************************** // // $Id: PurgMagDetectorConstruction.cc,v 1.2 2004/06/18 09:17:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "PurgMagDetectorConstruction.hh" #include "PurgMagTabulatedField3D.hh" diff --git a/examples/advanced/purging_magnet/src/PurgMagEventAction.cc b/examples/advanced/purging_magnet/src/PurgMagEventAction.cc index 420c6cec2a..c88cacb061 100644 --- a/examples/advanced/purging_magnet/src/PurgMagEventAction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagEventAction.cc @@ -30,7 +30,7 @@ // ******************************** // // $Id: PurgMagEventAction.cc,v 1.2 2004/06/18 09:17:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/src/PurgMagPhysicsList.cc b/examples/advanced/purging_magnet/src/PurgMagPhysicsList.cc index 4814b3ba6c..e022e195e3 100644 --- a/examples/advanced/purging_magnet/src/PurgMagPhysicsList.cc +++ b/examples/advanced/purging_magnet/src/PurgMagPhysicsList.cc @@ -31,7 +31,7 @@ // // // $Id: PurgMagPhysicsList.cc,v 1.2 2004/06/18 09:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/src/PurgMagPrimaryGeneratorAction.cc b/examples/advanced/purging_magnet/src/PurgMagPrimaryGeneratorAction.cc index 26ddeb8967..3d3376220a 100644 --- a/examples/advanced/purging_magnet/src/PurgMagPrimaryGeneratorAction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagPrimaryGeneratorAction.cc @@ -30,7 +30,7 @@ // ******************************************** // // $Id: PurgMagPrimaryGeneratorAction.cc,v 1.2 2004/06/18 09:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/src/PurgMagRunAction.cc b/examples/advanced/purging_magnet/src/PurgMagRunAction.cc index 2359ff81f8..a9a82d1640 100644 --- a/examples/advanced/purging_magnet/src/PurgMagRunAction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagRunAction.cc @@ -30,7 +30,7 @@ // ****************************** // // $Id: PurgMagRunAction.cc,v 1.2 2004/06/18 09:18:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "PurgMagRunAction.hh" diff --git a/examples/advanced/purging_magnet/src/PurgMagSteppingAction.cc b/examples/advanced/purging_magnet/src/PurgMagSteppingAction.cc index f284e97993..1f307a79db 100644 --- a/examples/advanced/purging_magnet/src/PurgMagSteppingAction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagSteppingAction.cc @@ -30,7 +30,7 @@ // *********************************** // // $Id: PurgMagSteppingAction.cc,v 1.4 2004/12/07 13:45:02 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/src/PurgMagSteppingVerbose.cc b/examples/advanced/purging_magnet/src/PurgMagSteppingVerbose.cc index 5bc8d98dbc..1ac78fe2e1 100644 --- a/examples/advanced/purging_magnet/src/PurgMagSteppingVerbose.cc +++ b/examples/advanced/purging_magnet/src/PurgMagSteppingVerbose.cc @@ -30,7 +30,7 @@ // ************************************ // // $Id: PurgMagSteppingVerbose.cc,v 1.2 2004/06/18 09:18:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "PurgMagSteppingVerbose.hh" diff --git a/examples/advanced/purging_magnet/src/PurgMagTabulatedField3D.cc b/examples/advanced/purging_magnet/src/PurgMagTabulatedField3D.cc index a196ad36ab..8a897d7c41 100644 --- a/examples/advanced/purging_magnet/src/PurgMagTabulatedField3D.cc +++ b/examples/advanced/purging_magnet/src/PurgMagTabulatedField3D.cc @@ -30,7 +30,7 @@ // ************************************* // // $Id: PurgMagTabulatedField3D.cc,v 1.3 2004/11/29 14:13:20 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "PurgMagTabulatedField3D.hh" diff --git a/examples/advanced/purging_magnet/src/PurgMagTrackingAction.cc b/examples/advanced/purging_magnet/src/PurgMagTrackingAction.cc index 351f30b338..576d267bbf 100644 --- a/examples/advanced/purging_magnet/src/PurgMagTrackingAction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagTrackingAction.cc @@ -30,7 +30,7 @@ // *********************************** // // $Id: PurgMagTrackingAction.cc,v 1.2 2004/06/18 09:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "PurgMagTrackingAction.hh" diff --git a/examples/advanced/purging_magnet/src/PurgMagVisManager.cc b/examples/advanced/purging_magnet/src/PurgMagVisManager.cc deleted file mode 100644 index 4570d49cb0..0000000000 --- a/examples/advanced/purging_magnet/src/PurgMagVisManager.cc +++ /dev/null @@ -1,162 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// Code developed by: -// S.Larsson -// -// ******************************* -// * * -// * PurgMagVisManager.cc * -// * * -// ******************************* -// -// $Id: PurgMagVisManager.cc,v 1.2 2004/06/18 09:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// - -#ifdef G4VIS_USE - -#include "PurgMagVisManager.hh" - -// Supported drivers... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_DAWNFILE -#include "G4DAWNFILE.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - - -/*#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - -#ifdef G4VIS_USE_RAYTRACER -#include "G4RayTracer.hh" -#endif -*/ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -PurgMagVisManager::PurgMagVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagVisManager::RegisterGraphicsSystems () { - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_DAWNFILE - RegisterGraphicsSystem (new G4DAWNFILE); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - - /* -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); -#endif - -#ifdef G4VIS_USE_RAYTRACER - RegisterGraphicsSystem (new G4RayTracer); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } - */ -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/radioprotection/History b/examples/advanced/radioprotection/History index f6e7de387b..96d95f14b2 100644 --- a/examples/advanced/radioprotection/History +++ b/examples/advanced/radioprotection/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.7 2004/11/23 14:39:27 guatelli Exp $ +$Id: History,v 1.9 2005/05/30 09:41:25 guatelli Exp $ ------------------------------------------------------------------- ========================================================= @@ -8,6 +8,11 @@ $Id: History,v 1.7 2004/11/23 14:39:27 guatelli Exp $ Category History file --------------------- +30th May 2005 Susanna Guatelli (radioprotection-V07-00-05) +- Code review, analysis with AIDA 3.2.1 and PI 1.3.3 + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. 11.2004 - Binary cascade approach added diff --git a/examples/advanced/radioprotection/README b/examples/advanced/radioprotection/README index f52d90713f..aea0c86047 100644 --- a/examples/advanced/radioprotection/README +++ b/examples/advanced/radioprotection/README @@ -157,20 +157,20 @@ alpha: speZ=2.txt 3.1 UI -The user can define primary particles with the following command: -/gun/particleType proton -/gun/particleType alpha -/gun/particleType IonC12 -/gun/particleType IonO16 -/gun/particleType IonSi28 -/gun/particleType IonFe52 - The user can select interactively the configuration with the following UI commands: /gun/generator Basic /gun/generator Interplanetary /gun/generator Moon +After that the user can define primary particles with the following command: +/gun/particle proton +/gun/particle alpha +/gun/particle IonC12 +/gun/particle IonO16 +/gun/particle IonSi28 +/gun/particle IonFe52 + In the Basic configuration, the user can change interactively the energy of primary particles: example: /gun/energy 1. MeV @@ -196,7 +196,7 @@ The file contains histograms: - 10 (1) Energy Deposit (MeV)in the phantom (astronaut) versus the depth along Z axis - - 20 (1) Initial energy (MeV) of primary particles + - 20 (1) Initial energy per nucleon (MeV) of primary particles - 30 (1) Energy Deposit (MeV) in the phantom given by secondaries versus the depth along Z axis @@ -230,12 +230,12 @@ compiler = gcc-3.2.3 G4SYSTEM = linux-g++ The following environment variables need to be set for the physics packages: -G4LEDATA points to low energy data base - G4EMLOW2.3 +G4LEDATA points to low energy data base - G4EMLOW3.0 G4LEVELGAMMADATA points to PhotoEvaporation data G4RADIOACTIVEDATA points to Radioactive Decay data NeutronHPCrossSections points to neutron data - G4NDL3.7 -Setup for analysis: AIDA 3.2.1, PI 1.2.1 +Setup for analysis: AIDA 3.2.1, PI 1.3.3 Users can download the analysis tools from: @@ -263,6 +263,6 @@ Author : Susanna Guatelli for comments, advices, doubts and questions: guatelli@ge.infn.it -last modified: Susanna Guatelli 23/11/2004 +last modified: Susanna Guatelli 27/5/2005 diff --git a/examples/advanced/radioprotection/include/G4IonC12.hh b/examples/advanced/radioprotection/include/G4IonC12.hh index 9234fecdab..c0364f75b6 100644 --- a/examples/advanced/radioprotection/include/G4IonC12.hh +++ b/examples/advanced/radioprotection/include/G4IonC12.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonC12.hh,v 1.1 2004/05/14 12:29:32 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/radioprotection/include/G4IonFe52.hh b/examples/advanced/radioprotection/include/G4IonFe52.hh index 43a9fc9920..f4796034df 100644 --- a/examples/advanced/radioprotection/include/G4IonFe52.hh +++ b/examples/advanced/radioprotection/include/G4IonFe52.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonFe52.hh,v 1.1 2004/05/14 12:29:32 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/radioprotection/include/G4IonSi28.hh b/examples/advanced/radioprotection/include/G4IonSi28.hh index 9e93c618e6..b1ea8455eb 100644 --- a/examples/advanced/radioprotection/include/G4IonSi28.hh +++ b/examples/advanced/radioprotection/include/G4IonSi28.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonSi28.hh,v 1.1 2004/05/14 12:29:32 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/radioprotection/include/RemSimAstronautDecorator.hh b/examples/advanced/radioprotection/include/RemSimAstronautDecorator.hh index 3710d0e186..e37b63233c 100644 --- a/examples/advanced/radioprotection/include/RemSimAstronautDecorator.hh +++ b/examples/advanced/radioprotection/include/RemSimAstronautDecorator.hh @@ -26,7 +26,7 @@ // * * // ********************************** // -// $Id: RemSimAstronautDecorator.hh,v 1.6 2004/05/22 12:57:04 guatelli Exp $ +// $Id: RemSimAstronautDecorator.hh,v 1.7 2005/05/27 14:21:42 guatelli Exp $ // // Author:Susanna Guatelli, guatelli@ge.infn.it @@ -45,25 +45,24 @@ class RemSimVGeometryComponent; class RemSimDecorator; class G4VPhysicalVolume; class G4VisAttributes; +class RemSimSensitiveDetector; class RemSimAstronautDecorator: public RemSimDecorator { public: - RemSimAstronautDecorator(RemSimVGeometryComponent*); + RemSimAstronautDecorator(RemSimVGeometryComponent*, G4bool); ~RemSimAstronautDecorator(); void ConstructComponent(G4VPhysicalVolume*); void DestroyComponent(); void ChangeThickness(G4double); void PrintDetectorParameters(); - G4VPhysicalVolume* GetShelter(){return 0;}; - void ChangeMother(G4VPhysicalVolume*); private: void ConstructAstronaut(G4VPhysicalVolume*); G4Box* phantom; G4LogicalVolume* phantomLog; G4VPhysicalVolume* phantomPhys; - G4VPhysicalVolume* motherAstronaut; G4bool flag; + RemSimSensitiveDetector* sensitiveDetector; }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimBasicGenerator.hh b/examples/advanced/radioprotection/include/RemSimBasicGenerator.hh index 077bc7782f..b170133eba 100644 --- a/examples/advanced/radioprotection/include/RemSimBasicGenerator.hh +++ b/examples/advanced/radioprotection/include/RemSimBasicGenerator.hh @@ -27,8 +27,8 @@ // * * // ********************************** // -// $Id: RemSimBasicGenerator.hh,v 1.8 2004/11/22 16:51:38 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimBasicGenerator.hh,v 1.9 2005/05/19 13:30:59 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it @@ -52,14 +52,14 @@ public: void GeneratePrimaries(G4Event* anEvent); G4double GetInitialEnergy(); void SetMoon(G4bool){;}; - void SetParticle(G4String); + void Read(G4String); private: G4ParticleGun* particleGun; G4String randomDirection; G4String spectrum; G4double energy; - RemSimRunAction* run; + // RemSimRunAction* run; }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimDecay.hh b/examples/advanced/radioprotection/include/RemSimDecay.hh index 4f47cc130f..709e77e3a3 100644 --- a/examples/advanced/radioprotection/include/RemSimDecay.hh +++ b/examples/advanced/radioprotection/include/RemSimDecay.hh @@ -28,7 +28,7 @@ // ************************ // // $Id: RemSimDecay.hh,v 1.2 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimDecorator.hh b/examples/advanced/radioprotection/include/RemSimDecorator.hh index 3d2661b265..8f48781093 100644 --- a/examples/advanced/radioprotection/include/RemSimDecorator.hh +++ b/examples/advanced/radioprotection/include/RemSimDecorator.hh @@ -27,8 +27,8 @@ // * * // *************************** // -// $Id: RemSimDecorator.hh,v 1.7 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimDecorator.hh,v 1.8 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // @@ -49,7 +49,6 @@ public: virtual void ConstructComponent(G4VPhysicalVolume*); virtual void DestroyComponent(); virtual void ChangeThickness(G4double) = 0; - virtual void ChangeMother(G4VPhysicalVolume*) = 0; private: RemSimVGeometryComponent* component; diff --git a/examples/advanced/radioprotection/include/RemSimDetectorConstruction.hh b/examples/advanced/radioprotection/include/RemSimDetectorConstruction.hh index da3b3f3dfe..d89102d847 100644 --- a/examples/advanced/radioprotection/include/RemSimDetectorConstruction.hh +++ b/examples/advanced/radioprotection/include/RemSimDetectorConstruction.hh @@ -26,8 +26,8 @@ // * * // ************************************** // -// $Id: RemSimDetectorConstruction.hh,v 1.10 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimDetectorConstruction.hh,v 1.11 2005/05/19 14:28:09 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // @@ -67,10 +67,9 @@ private: G4LogicalVolume* experimentalHall_log; G4VPhysicalVolume* experimentalHall_phys; G4VPhysicalVolume* phantomPhys; - G4VPhysicalVolume* detectorPhys; + G4VPhysicalVolume* detectorPhys; + RemSimVGeometryComponent* geometry; RemSimMaterial* pMaterial; - RemSimVGeometryComponent* pVehicle; - RemSimVGeometryComponent* pMoon; RemSimDetectorMessenger* messenger; G4String decoratorValue; G4String astronautValue; diff --git a/examples/advanced/radioprotection/include/RemSimDetectorMessenger.hh b/examples/advanced/radioprotection/include/RemSimDetectorMessenger.hh index d59f63e4b0..7790bc673c 100644 --- a/examples/advanced/radioprotection/include/RemSimDetectorMessenger.hh +++ b/examples/advanced/radioprotection/include/RemSimDetectorMessenger.hh @@ -28,7 +28,7 @@ // ***************************************** // // $Id: RemSimDetectorMessenger.hh,v 1.8 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // #ifndef RemSimDetectorMessenger_h diff --git a/examples/advanced/radioprotection/include/RemSimElectronEEDL.hh b/examples/advanced/radioprotection/include/RemSimElectronEEDL.hh index 5be83d8e06..970bf6954d 100644 --- a/examples/advanced/radioprotection/include/RemSimElectronEEDL.hh +++ b/examples/advanced/radioprotection/include/RemSimElectronEEDL.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimElectronEEDL.hh,v 1.3 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/include/RemSimEventAction.hh b/examples/advanced/radioprotection/include/RemSimEventAction.hh index 36248fa353..f429065a14 100644 --- a/examples/advanced/radioprotection/include/RemSimEventAction.hh +++ b/examples/advanced/radioprotection/include/RemSimEventAction.hh @@ -28,7 +28,7 @@ // ********************************** // // $Id: RemSimEventAction.hh,v 1.4 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimHadronicBertini.hh b/examples/advanced/radioprotection/include/RemSimHadronicBertini.hh index 659c46b1e7..f408c8218a 100644 --- a/examples/advanced/radioprotection/include/RemSimHadronicBertini.hh +++ b/examples/advanced/radioprotection/include/RemSimHadronicBertini.hh @@ -27,7 +27,7 @@ // ************************************** // // $Id: RemSimHadronicBertini.hh,v 1.1 2004/11/23 14:37:47 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimHadronicBinary.hh b/examples/advanced/radioprotection/include/RemSimHadronicBinary.hh index 4edf62806a..e9b6ac752e 100644 --- a/examples/advanced/radioprotection/include/RemSimHadronicBinary.hh +++ b/examples/advanced/radioprotection/include/RemSimHadronicBinary.hh @@ -27,7 +27,7 @@ // ************************************** // // $Id: RemSimHadronicBinary.hh,v 1.1 2004/11/23 14:37:47 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimInterplanetarySpaceConfiguration.hh b/examples/advanced/radioprotection/include/RemSimInterplanetarySpaceConfiguration.hh index 6f69f3247f..7e29aae5a1 100644 --- a/examples/advanced/radioprotection/include/RemSimInterplanetarySpaceConfiguration.hh +++ b/examples/advanced/radioprotection/include/RemSimInterplanetarySpaceConfiguration.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RemSimInterplanetarySpaceConfiguration.hh,v 1.8 2004/11/22 16:51:38 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimInterplanetarySpaceConfiguration.hh,v 1.9 2005/05/19 13:30:59 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // @@ -50,13 +50,18 @@ public: void MoonConfiguration(); G4double GetInitialEnergy(); void SetMoon(G4bool); - void SetParticle(G4String); + void Read(G4String); + void ReadData(G4double, G4String); + G4double GetPrimaryParticleEnergyDistributionSum(); + private: G4ParticleGun* particleGun; G4String spectrum; G4double energy; - RemSimRunAction* run; G4bool moon; + G4DataVector* energies; + G4DataVector* data; + }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimIonICRU.hh b/examples/advanced/radioprotection/include/RemSimIonICRU.hh index 8ccbc72c9a..0595c3aa8c 100644 --- a/examples/advanced/radioprotection/include/RemSimIonICRU.hh +++ b/examples/advanced/radioprotection/include/RemSimIonICRU.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimIonICRU.hh,v 1.3 2004/12/15 15:41:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/include/RemSimMaterial.hh b/examples/advanced/radioprotection/include/RemSimMaterial.hh index a6801231c0..94844f47d7 100644 --- a/examples/advanced/radioprotection/include/RemSimMaterial.hh +++ b/examples/advanced/radioprotection/include/RemSimMaterial.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimMaterial.hh,v 1.5 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/advanced/radioprotection/include/RemSimMoonHabitat.hh b/examples/advanced/radioprotection/include/RemSimMoonHabitat.hh index f6a1499e57..0d0204a5cf 100644 --- a/examples/advanced/radioprotection/include/RemSimMoonHabitat.hh +++ b/examples/advanced/radioprotection/include/RemSimMoonHabitat.hh @@ -27,8 +27,8 @@ // * * // ************************************** // -// $Id: RemSimMoonHabitat.hh,v 1.3 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimMoonHabitat.hh,v 1.4 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // @@ -49,10 +49,9 @@ public: ~RemSimMoonHabitat(); void ConstructComponent(G4VPhysicalVolume*); void DestroyComponent(); - G4VPhysicalVolume* GetShelter(); private: RemSimMaterial* pMaterial; - G4VPhysicalVolume* shelterPhys; + G4VPhysicalVolume* moonPhys; }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimMuonStandard.hh b/examples/advanced/radioprotection/include/RemSimMuonStandard.hh index dedb331684..929334bdc3 100644 --- a/examples/advanced/radioprotection/include/RemSimMuonStandard.hh +++ b/examples/advanced/radioprotection/include/RemSimMuonStandard.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimMuonStandard.hh,v 1.2 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimParticles.hh b/examples/advanced/radioprotection/include/RemSimParticles.hh index 6581989419..9f99f5b7a8 100644 --- a/examples/advanced/radioprotection/include/RemSimParticles.hh +++ b/examples/advanced/radioprotection/include/RemSimParticles.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimParticles.hh,v 1.4 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimPhotonEPDL.hh b/examples/advanced/radioprotection/include/RemSimPhotonEPDL.hh index c961db63e5..71e5ce72e2 100644 --- a/examples/advanced/radioprotection/include/RemSimPhotonEPDL.hh +++ b/examples/advanced/radioprotection/include/RemSimPhotonEPDL.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimPhotonEPDL.hh,v 1.3 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimPhysicsList.hh b/examples/advanced/radioprotection/include/RemSimPhysicsList.hh index f9f6176870..87825eb796 100644 --- a/examples/advanced/radioprotection/include/RemSimPhysicsList.hh +++ b/examples/advanced/radioprotection/include/RemSimPhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimPhysicsList.hh,v 1.5 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/include/RemSimPhysicsListMessenger.hh b/examples/advanced/radioprotection/include/RemSimPhysicsListMessenger.hh index d5aa7592b8..631e27c0fe 100644 --- a/examples/advanced/radioprotection/include/RemSimPhysicsListMessenger.hh +++ b/examples/advanced/radioprotection/include/RemSimPhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimPhysicsListMessenger.hh,v 1.3 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/include/RemSimPositronStandard.hh b/examples/advanced/radioprotection/include/RemSimPositronStandard.hh index 171a0f25b2..5297922f77 100644 --- a/examples/advanced/radioprotection/include/RemSimPositronStandard.hh +++ b/examples/advanced/radioprotection/include/RemSimPositronStandard.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimPositronStandard.hh,v 1.3 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorAction.hh b/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorAction.hh index 4f76f0e15a..d73c300760 100644 --- a/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorAction.hh +++ b/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: RemSimPrimaryGeneratorAction.hh,v 1.9 2004/11/22 16:51:38 guatelli Exp $// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimPrimaryGeneratorAction.hh,v 1.10 2005/05/19 13:30:59 guatelli Exp $// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it // @@ -45,12 +45,11 @@ public: G4double GetInitialEnergy(); void GeneratePrimaries(G4Event* anEvent); void SelectPrimaries(G4String value); - void SetNewParticle(G4String); + void Read(G4String); private: G4String value; - RemSimVPrimaryGeneratorFactory* primaryFactory1; - RemSimVPrimaryGeneratorFactory* primaryFactory2; + RemSimVPrimaryGeneratorFactory* primaryFactory; RemSimPrimaryGeneratorMessenger* messenger; }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorMessenger.hh b/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorMessenger.hh index eb52ee3311..9222dd1be0 100644 --- a/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorMessenger.hh +++ b/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorMessenger.hh @@ -27,8 +27,8 @@ // * * // ************************************************ // -// $Id: RemSimPrimaryGeneratorMessenger.hh,v 1.5 2004/11/22 16:51:38 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimPrimaryGeneratorMessenger.hh,v 1.6 2005/05/19 13:30:59 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //Code developed by: S.Guatelli, guatelli@ge.infn.it // @@ -60,6 +60,7 @@ private: G4UIdirectory* gunDir; G4UIcmdWithAString* fluxCmd; //change vehicle G4UIcmdWithAString* particleCmd; //change vehicle + G4UIcmdWithAString* dataCmd; }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimROGeometry.hh b/examples/advanced/radioprotection/include/RemSimROGeometry.hh index 3b14dbd188..7034aeabcc 100644 --- a/examples/advanced/radioprotection/include/RemSimROGeometry.hh +++ b/examples/advanced/radioprotection/include/RemSimROGeometry.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimROGeometry.hh,v 1.5 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ************************************ // * * diff --git a/examples/advanced/radioprotection/include/RemSimRoofDecorator.hh b/examples/advanced/radioprotection/include/RemSimRoofDecorator.hh index f8240d0f33..65c1f93058 100644 --- a/examples/advanced/radioprotection/include/RemSimRoofDecorator.hh +++ b/examples/advanced/radioprotection/include/RemSimRoofDecorator.hh @@ -29,8 +29,8 @@ // Code developed by: S.Guatelli, guatelli@ge.infn.it // // -// $Id: RemSimRoofDecorator.hh,v 1.3 2004/06/18 09:18:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimRoofDecorator.hh,v 1.4 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef RemSimRoofDecorator_h @@ -58,8 +58,6 @@ public: void DestroyComponent(); void ChangeThickness(G4double); void PrintDetectorParameters(); - G4VPhysicalVolume* GetShelter(){return 0;}; - void ChangeMother(G4VPhysicalVolume*){;}; private: diff --git a/examples/advanced/radioprotection/include/RemSimRunAction.hh b/examples/advanced/radioprotection/include/RemSimRunAction.hh index b6716f59eb..69262535b9 100644 --- a/examples/advanced/radioprotection/include/RemSimRunAction.hh +++ b/examples/advanced/radioprotection/include/RemSimRunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RemSimRunAction.hh,v 1.7 2004/05/27 10:13:54 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimRunAction.hh,v 1.8 2005/05/19 13:30:59 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // @@ -41,7 +41,6 @@ class G4Run; class RemSimAnalysisManager; -class RemSimRunMessenger; class RemSimRunAction : public G4UserRunAction { @@ -52,21 +51,10 @@ public: public: void BeginOfRunAction(const G4Run*); void EndOfRunAction(const G4Run* ); - void Read(G4String); - void ReadData(G4double, G4String); - - G4DataVector* GetPrimaryParticleEnergy(); - G4DataVector* GetPrimaryParticleEnergyDistribution(); - G4double GetPrimaryParticleEnergyDistributionSum(); G4int GetRunID() {return runID;}; - G4bool GetFile(); private: - G4DataVector* energies; - G4DataVector* data; G4int runID; - RemSimRunMessenger* messenger; - G4String file; }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimSensitiveDetector.hh b/examples/advanced/radioprotection/include/RemSimSensitiveDetector.hh index 10c3b83f05..2a9bcd788b 100644 --- a/examples/advanced/radioprotection/include/RemSimSensitiveDetector.hh +++ b/examples/advanced/radioprotection/include/RemSimSensitiveDetector.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimSensitiveDetector.hh,v 1.2 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimShelterSPEDecorator.hh b/examples/advanced/radioprotection/include/RemSimShelterSPEDecorator.hh index 2dbc17dcbf..bff0144313 100644 --- a/examples/advanced/radioprotection/include/RemSimShelterSPEDecorator.hh +++ b/examples/advanced/radioprotection/include/RemSimShelterSPEDecorator.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimShelterSPEDecorator.hh,v 1.2 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimShelterSPEDecorator.hh,v 1.3 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // @@ -51,8 +51,6 @@ public: void DestroyComponent(); void ChangeThickness(G4double); void PrintDetectorParameters(); - G4VPhysicalVolume* GetShelter(){return 0;}; - void ChangeMother(G4VPhysicalVolume*){;}; private: void ConstructShelterSPE(G4VPhysicalVolume*); diff --git a/examples/advanced/radioprotection/include/RemSimShieldingDecorator.hh b/examples/advanced/radioprotection/include/RemSimShieldingDecorator.hh index de21524ba5..99caef7c79 100644 --- a/examples/advanced/radioprotection/include/RemSimShieldingDecorator.hh +++ b/examples/advanced/radioprotection/include/RemSimShieldingDecorator.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimShieldingDecorator.hh,v 1.4 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimShieldingDecorator.hh,v 1.5 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // @@ -50,8 +50,6 @@ public: void DestroyComponent(); void ChangeThickness(G4double); void PrintDetectorParameters(); - G4VPhysicalVolume* GetShelter(){return 0;}; - void ChangeMother(G4VPhysicalVolume*){;}; private: void ConstructShielding(G4VPhysicalVolume*); diff --git a/examples/advanced/radioprotection/include/RemSimSteppingAction.hh b/examples/advanced/radioprotection/include/RemSimSteppingAction.hh index 7e81405ccf..9cbcca775a 100644 --- a/examples/advanced/radioprotection/include/RemSimSteppingAction.hh +++ b/examples/advanced/radioprotection/include/RemSimSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimSteppingAction.hh,v 1.3 2004/05/17 10:34:57 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli (guatelli@ge.infn.it) // diff --git a/examples/advanced/radioprotection/include/RemSimSteppingActionMessenger.hh b/examples/advanced/radioprotection/include/RemSimSteppingActionMessenger.hh index 7ab1688bcc..4e81dd5e3c 100644 --- a/examples/advanced/radioprotection/include/RemSimSteppingActionMessenger.hh +++ b/examples/advanced/radioprotection/include/RemSimSteppingActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimSteppingActionMessenger.hh,v 1.2 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimVGeometryComponent.hh b/examples/advanced/radioprotection/include/RemSimVGeometryComponent.hh index 984cce356b..4c3eb3cfae 100644 --- a/examples/advanced/radioprotection/include/RemSimVGeometryComponent.hh +++ b/examples/advanced/radioprotection/include/RemSimVGeometryComponent.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimVGeometryComponent.hh,v 1.5 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimVGeometryComponent.hh,v 1.6 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // @@ -39,6 +39,5 @@ public: virtual void ConstructComponent(G4VPhysicalVolume*) = 0; virtual void DestroyComponent() = 0; - virtual G4VPhysicalVolume* GetShelter() = 0; }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimVPrimaryGeneratorFactory.hh b/examples/advanced/radioprotection/include/RemSimVPrimaryGeneratorFactory.hh index f203a929d2..f2cd9ea33a 100644 --- a/examples/advanced/radioprotection/include/RemSimVPrimaryGeneratorFactory.hh +++ b/examples/advanced/radioprotection/include/RemSimVPrimaryGeneratorFactory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RemSimVPrimaryGeneratorFactory.hh,v 1.8 2004/11/22 16:51:38 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimVPrimaryGeneratorFactory.hh,v 1.9 2005/05/19 13:30:59 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // @@ -42,7 +42,7 @@ public: virtual void GeneratePrimaries(G4Event* anEvent)=0; virtual G4double GetInitialEnergy()=0; virtual void SetMoon(G4bool)=0; // Set moon configuration - virtual void SetParticle(G4String)=0; + virtual void Read(G4String)=0; }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimVehicle1.hh b/examples/advanced/radioprotection/include/RemSimVehicle1.hh index 1bd069a5bb..c81b37ed3b 100644 --- a/examples/advanced/radioprotection/include/RemSimVehicle1.hh +++ b/examples/advanced/radioprotection/include/RemSimVehicle1.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimVehicle1.hh,v 1.7 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimVisManager.hh b/examples/advanced/radioprotection/include/RemSimVisManager.hh deleted file mode 100644 index 3b7c076ee3..0000000000 --- a/examples/advanced/radioprotection/include/RemSimVisManager.hh +++ /dev/null @@ -1,60 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: RemSimVisManager.hh,v 1.4 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -#ifndef RemSimVisManager_h -#define RemSimVisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -class RemSimVisManager: public G4VisManager { - -public: - - RemSimVisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; -#endif -#endif diff --git a/examples/advanced/radioprotection/moon.mac b/examples/advanced/radioprotection/moon.mac index de71c93f10..e4f160d6d7 100644 --- a/examples/advanced/radioprotection/moon.mac +++ b/examples/advanced/radioprotection/moon.mac @@ -11,17 +11,34 @@ #/physics/addPhysics muon-standard #/physics/addPhysics decay # Sets some default verbose -####################################### /control/verbose 1 /run/verbose 1 /event/verbose 0 -#/tracking/verbose 1 /run/initialize -/gun/particleType proton -/gun/generator Moon -/run/data gcrZ=1.txt +####################################### +## Visualisation +#/vis/scene/create +# --- Choose one the following visualisation tools +#/vis/open OGLIX +#/vis/open DAWNFILE +#/vis/open VRML2FILE +# -------- +#/vis/drawVolume +##/vis/viewer/zoom 2 +#/vis/viewer/set/viewpointThetaPhi 90 180 deg +#/tracking/storeTrajectory 1 +#/vis/scene/endOfEventAction accumulate +######################################## /configuration/choose moon /configuration/AddRoof On -#/configuration/AddRoof Off -/roof/thickness 1. m -/run/beamOn 100 +/roof/thickness 2. m +/gun/generator Interplanetary +/gun/data gcrZ=26.txt +#/tracking/verbose 1 +/gun/particle IonFe52 +/run/beamOn 10 + + + + + diff --git a/examples/advanced/radioprotection/remsim.cc b/examples/advanced/radioprotection/remsim.cc index 9c88b4b712..600175d8fa 100644 --- a/examples/advanced/radioprotection/remsim.cc +++ b/examples/advanced/radioprotection/remsim.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: remsim.cc,v 1.8 2004/11/23 11:43:21 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: remsim.cc,v 1.10 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4RunManager.hh" #include "G4UImanager.hh" @@ -34,7 +34,7 @@ #include "RemSimRunAction.hh" #include "RemSimSteppingAction.hh" #ifdef G4VIS_USE -#include "RemSimVisManager.hh" +#include "G4VisExecutive.hh" #endif #ifdef G4ANALYSIS_USE #include "RemSimAnalysisManager.hh" @@ -72,7 +72,7 @@ int main(int argc,char** argv) #ifdef G4VIS_USE // Visualisation - G4VisManager* visManager = new RemSimVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager -> Initialize(); #endif diff --git a/examples/advanced/radioprotection/src/G4IonC12.cc b/examples/advanced/radioprotection/src/G4IonC12.cc index a14fdede8f..6e2e8eb659 100644 --- a/examples/advanced/radioprotection/src/G4IonC12.cc +++ b/examples/advanced/radioprotection/src/G4IonC12.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonC12.cc,v 1.1 2004/05/14 12:29:33 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ---------------------------------------------------------------------- diff --git a/examples/advanced/radioprotection/src/G4IonFe52.cc b/examples/advanced/radioprotection/src/G4IonFe52.cc index de296732f1..661a35690b 100644 --- a/examples/advanced/radioprotection/src/G4IonFe52.cc +++ b/examples/advanced/radioprotection/src/G4IonFe52.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonFe52.cc,v 1.1 2004/05/14 12:29:33 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ---------------------------------------------------------------------- diff --git a/examples/advanced/radioprotection/src/G4IonSi28.cc b/examples/advanced/radioprotection/src/G4IonSi28.cc index 3c94afc8dc..541ff8cda8 100644 --- a/examples/advanced/radioprotection/src/G4IonSi28.cc +++ b/examples/advanced/radioprotection/src/G4IonSi28.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonSi28.cc,v 1.1 2004/05/14 12:29:33 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ---------------------------------------------------------------------- diff --git a/examples/advanced/radioprotection/src/RemSimAnalysisManager.cc b/examples/advanced/radioprotection/src/RemSimAnalysisManager.cc index 7d95706356..a97f39c118 100644 --- a/examples/advanced/radioprotection/src/RemSimAnalysisManager.cc +++ b/examples/advanced/radioprotection/src/RemSimAnalysisManager.cc @@ -26,7 +26,7 @@ // * * // ******************************* // -// $Id: RemSimAnalysisManager.cc,v 1.7 2004/11/23 11:43:21 guatelli Exp $ +// $Id: RemSimAnalysisManager.cc,v 1.8 2005/05/27 14:21:42 guatelli Exp $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // @@ -137,7 +137,7 @@ void RemSimAnalysisManager::book() primary = histogramFactory -> createHistogram1D("20", "Initial energy of primary particles", - 200000,0.,100000.); + 100000,0.,100000.); secondaryDeposit = histogramFactory -> createHistogram1D("30", "EnergyDeposit given by secondaries", @@ -145,21 +145,21 @@ void RemSimAnalysisManager::book() primaryInitialE = histogramFactory -> createHistogram1D("40", "Initial energy of primaries reaching the phantom", - 200000,0.,100000.); + 100000,0.,100000.); primaryInitialEout = histogramFactory -> createHistogram1D("50", "Initial energy of primaries ougoing the phantom", - 200000,0.,100000.); + 100000,0.,100000.); initialE = histogramFactory -> createHistogram1D("60", "Energy of primaries reaching the phantom", - 200000,0.,100000.); + 100000,0.,100000.); initialEout = histogramFactory -> createHistogram1D("70", "Energy of primaries outgoing the phantom", - 200000,0.,100000.); + 100000,0.,100000.); shape = histogramFactory -> createHistogram2D("80", "Shape", diff --git a/examples/advanced/radioprotection/src/RemSimAstronautDecorator.cc b/examples/advanced/radioprotection/src/RemSimAstronautDecorator.cc index 6945f94935..73ad8ac302 100644 --- a/examples/advanced/radioprotection/src/RemSimAstronautDecorator.cc +++ b/examples/advanced/radioprotection/src/RemSimAstronautDecorator.cc @@ -26,7 +26,7 @@ // * * // ********************************** // -// $Id: RemSimAstronautDecorator.cc,v 1.5 2004/05/22 12:57:06 guatelli Exp $ +// $Id: RemSimAstronautDecorator.cc,v 1.6 2005/05/27 14:21:42 guatelli Exp $ // // Author:Susanna Guatelli, guatelli@ge.infn.it @@ -46,12 +46,13 @@ #include "G4SDManager.hh" #include "G4RunManager.hh" #include "G4UserLimits.hh" +#include "RemSimMoonHabitat.hh" -RemSimAstronautDecorator::RemSimAstronautDecorator(RemSimVGeometryComponent* comp) +RemSimAstronautDecorator::RemSimAstronautDecorator(RemSimVGeometryComponent* comp, G4bool moon) : RemSimDecorator(comp), phantom(0), phantomLog(0), phantomPhys(0) { - motherAstronaut = 0; - flag = false; + flag = moon; + sensitiveDetector = 0; } RemSimAstronautDecorator::~RemSimAstronautDecorator() { @@ -59,8 +60,7 @@ RemSimAstronautDecorator::~RemSimAstronautDecorator() void RemSimAstronautDecorator::ConstructComponent(G4VPhysicalVolume* motherVolume) { RemSimDecorator::ConstructComponent(motherVolume); - if (flag == false) ConstructAstronaut(motherVolume); - else ConstructAstronaut(motherAstronaut); + ConstructAstronaut(motherVolume); } void RemSimAstronautDecorator::DestroyComponent() @@ -83,22 +83,25 @@ void RemSimAstronautDecorator::ConstructAstronaut(G4VPhysicalVolume* motherVolum G4double phantomY = 3. *m; G4double phantomZ = 30. *cm; + phantom = new G4Box("phantom",phantomX/2.,phantomY/2.,phantomZ/2.); phantomLog = new G4LogicalVolume(phantom, water, "phantom", 0,0,0); + G4double translation1 = 0.; + if (flag == true) + { + G4double thickShelter = 4.5 *m; + translation1 = 0.5*m + thickShelter/2.; + } phantomPhys = new G4PVPlacement(0, - G4ThreeVector(0.,0.,0.), + G4ThreeVector(0.,0.,translation1), "phantom",phantomLog, motherVolume,false,0); - G4cout << "The mother volume of the phantom is: " - << motherVolume -> GetName() - << G4endl; - // Visualisation attributes G4Colour lblue (0.0, 0.0,.75); G4VisAttributes* phantomVisAtt = new G4VisAttributes(lblue); @@ -111,11 +114,11 @@ void RemSimAstronautDecorator::ConstructAstronaut(G4VPhysicalVolume* motherVolum G4String sensitiveDetectorName = "AstronautSD"; - RemSimSensitiveDetector* sensitiveDetector = new - RemSimSensitiveDetector(sensitiveDetectorName); + + sensitiveDetector = new RemSimSensitiveDetector(sensitiveDetectorName); G4int VoxelNbAlongZ = 30; - G4double translation = 0; + G4double translation = 0; if (flag == true) { @@ -132,7 +135,7 @@ void RemSimAstronautDecorator::ConstructAstronaut(G4VPhysicalVolume* motherVolum sensitiveDetector -> SetROgeometry(ROGeometry); SDman->AddNewDetector(sensitiveDetector); phantomLog -> SetSensitiveDetector(sensitiveDetector); - + // Set max step allowd to particles in the phantom phantomLog -> SetUserLimits(new G4UserLimits(0.1*cm)); } @@ -155,8 +158,4 @@ void RemSimAstronautDecorator::PrintDetectorParameters() << phantomLog -> GetMaterial() -> GetName() < GetParticleEnergy(); return primaryParticleEnergy; } -void RemSimBasicGenerator:: SetParticle(G4String particle) -{ - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4String particleName = particle; - particleGun -> SetParticleDefinition(particleTable->FindParticle(particleName)); + +void RemSimBasicGenerator::Read(G4String) +{ + G4cout << " Sorry!The basic generator has no option to load the energy spectrum from a data.txt file" << G4endl; } diff --git a/examples/advanced/radioprotection/src/RemSimDecay.cc b/examples/advanced/radioprotection/src/RemSimDecay.cc index cc776d1e06..675524dd87 100644 --- a/examples/advanced/radioprotection/src/RemSimDecay.cc +++ b/examples/advanced/radioprotection/src/RemSimDecay.cc @@ -28,7 +28,7 @@ // *********************** // // $Id: RemSimDecay.cc,v 1.2 2004/05/22 12:57:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimDecorator.cc b/examples/advanced/radioprotection/src/RemSimDecorator.cc index 756f36516c..2566e371f7 100644 --- a/examples/advanced/radioprotection/src/RemSimDecorator.cc +++ b/examples/advanced/radioprotection/src/RemSimDecorator.cc @@ -28,7 +28,7 @@ // *************************** // // $Id: RemSimDecorator.cc,v 1.5 2004/05/22 12:57:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimDetectorConstruction.cc b/examples/advanced/radioprotection/src/RemSimDetectorConstruction.cc index 5690651e3f..8bd8880a89 100644 --- a/examples/advanced/radioprotection/src/RemSimDetectorConstruction.cc +++ b/examples/advanced/radioprotection/src/RemSimDetectorConstruction.cc @@ -27,8 +27,8 @@ // * * // ************************************** // -// $Id: RemSimDetectorConstruction.cc,v 1.13 2004/05/27 08:36:51 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimDetectorConstruction.cc,v 1.15 2005/05/27 14:20:50 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // @@ -61,13 +61,10 @@ RemSimDetectorConstruction::RemSimDetectorConstruction() : experimentalHall_log(0), experimentalHall_phys(0), - phantomPhys(0), detectorPhys(0) + phantomPhys(0), detectorPhys(0), geometry(0) { pMaterial = new RemSimMaterial(); - pVehicle = new RemSimVehicle1(); - pMoon = new RemSimMoonHabitat(); - messenger = new RemSimDetectorMessenger(this); decoratorValue ="Nothing"; astronautValue ="On"; @@ -90,8 +87,7 @@ RemSimDetectorConstruction::~RemSimDetectorConstruction() delete decoratorSPE; delete decorator; delete messenger; - delete pMoon; - delete pVehicle; + delete geometry; delete pMaterial; } @@ -116,20 +112,22 @@ G4VPhysicalVolume* RemSimDetectorConstruction::Construct() false,0); return experimentalHall_phys; } + void RemSimDetectorConstruction::ConstructVolume() { if (moon == true) { - pMoon -> ConstructComponent(experimentalHall_phys); - decorator1 = new RemSimAstronautDecorator(pMoon); - G4VPhysicalVolume* shelter = pMoon -> GetShelter(); - decorator1 -> ChangeMother(shelter); + + geometry = new RemSimMoonHabitat(); + geometry -> ConstructComponent(experimentalHall_phys); + decorator1 = new RemSimAstronautDecorator(geometry, moon); decorator1 -> ConstructComponent(experimentalHall_phys); } else { - pVehicle -> ConstructComponent(experimentalHall_phys); - decorator1 = new RemSimAstronautDecorator(pVehicle); + geometry = new RemSimVehicle1(); + geometry -> ConstructComponent(experimentalHall_phys); + decorator1 = new RemSimAstronautDecorator(geometry, moon); decorator1 -> ConstructComponent(experimentalHall_phys); } } @@ -144,7 +142,7 @@ void RemSimDetectorConstruction::AddShielding(G4String value) { if (decorator == 0) { - decorator = new RemSimShieldingDecorator(pVehicle); + decorator = new RemSimShieldingDecorator(geometry); decorator -> ConstructComponent(experimentalHall_phys); G4RunManager::GetRunManager() -> DefineWorldVolume(experimentalHall_phys); } @@ -174,7 +172,7 @@ void RemSimDetectorConstruction::AddShelterSPE(G4String value) { if (decoratorSPE == 0) { - decoratorSPE = new RemSimShelterSPEDecorator(pVehicle); + decoratorSPE = new RemSimShelterSPEDecorator(geometry); decoratorSPE -> ConstructComponent(experimentalHall_phys); G4RunManager::GetRunManager() -> DefineWorldVolume(experimentalHall_phys); } @@ -201,15 +199,15 @@ void RemSimDetectorConstruction::AddHabitatRoof(G4String value) if (moon == true) { if (value == "On") - { + { if (decoratorRoof == 0) { - decoratorRoof = new RemSimRoofDecorator(pMoon); + decoratorRoof = new RemSimRoofDecorator(geometry); decoratorRoof -> ConstructComponent(experimentalHall_phys); G4RunManager::GetRunManager() -> DefineWorldVolume(experimentalHall_phys); } - else G4cout<<" The roof alread exists!"< DefineWorldVolume(experimentalHall_phys); - flag = true; - } - else - G4cout<< "The configurations vehicle/moon can not be switched" << G4endl; + flag = true; + } + else + G4cout<< "The configurations vehicle/moon can not be switched" << G4endl; } diff --git a/examples/advanced/radioprotection/src/RemSimDetectorMessenger.cc b/examples/advanced/radioprotection/src/RemSimDetectorMessenger.cc index 45e1e802c6..2f529713ed 100644 --- a/examples/advanced/radioprotection/src/RemSimDetectorMessenger.cc +++ b/examples/advanced/radioprotection/src/RemSimDetectorMessenger.cc @@ -31,8 +31,8 @@ // ********************************* // // -// $Id: RemSimDetectorMessenger.cc,v 1.9 2004/05/22 12:57:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimDetectorMessenger.cc,v 1.10 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // @@ -57,13 +57,13 @@ RemSimDetectorMessenger::RemSimDetectorMessenger( RemSimDetectorConstruction* De shieldingCmd -> SetGuidance("Add shielding layer in vehicle configuration."); shieldingCmd -> SetParameterName("choice",true); shieldingCmd -> SetCandidates("On Off"); - shieldingCmd -> AvailableForStates(G4State_PreInit,G4State_Idle); + shieldingCmd -> AvailableForStates(G4State_Idle); SPECmd = new G4UIcmdWithAString("/configuration/AddSPE",this); SPECmd -> SetGuidance("Add SPE shelter in vehicle configuration."); SPECmd -> SetParameterName("choice",true); SPECmd -> SetCandidates("On Off"); - SPECmd -> AvailableForStates(G4State_PreInit,G4State_Idle); + SPECmd -> AvailableForStates(G4State_Idle); roofCmd = new G4UIcmdWithAString("/configuration/AddRoof",this); roofCmd -> SetGuidance("Add the Roof to the moon habitat."); diff --git a/examples/advanced/radioprotection/src/RemSimElectronEEDL.cc b/examples/advanced/radioprotection/src/RemSimElectronEEDL.cc index 914f5bdd92..c013fcf167 100644 --- a/examples/advanced/radioprotection/src/RemSimElectronEEDL.cc +++ b/examples/advanced/radioprotection/src/RemSimElectronEEDL.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimElectronEEDL.cc,v 1.3 2004/05/22 12:57:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimElectronEEDL.cc,v 1.4 2005/05/19 13:46:29 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelloi@ge.infn.it @@ -31,6 +31,7 @@ #include "G4MultipleScattering.hh" #include "G4LowEnergyIonisation.hh" #include "G4LowEnergyBremsstrahlung.hh" +#include "G4StepLimiter.hh" RemSimElectronEEDL::RemSimElectronEEDL(const G4String& name): G4VPhysicsConstructor(name) { } @@ -55,6 +56,7 @@ void RemSimElectronEEDL::ConstructProcess() manager -> AddProcess(new G4MultipleScattering, -1, 1,1); manager -> AddProcess(new G4LowEnergyIonisation, -1, 2,2); manager -> AddProcess(new G4LowEnergyBremsstrahlung,-1,-1,3); + manager -> AddProcess(new G4StepLimiter(),-1,-1,3); } } } diff --git a/examples/advanced/radioprotection/src/RemSimEventAction.cc b/examples/advanced/radioprotection/src/RemSimEventAction.cc index a1424e129a..72b4566a21 100644 --- a/examples/advanced/radioprotection/src/RemSimEventAction.cc +++ b/examples/advanced/radioprotection/src/RemSimEventAction.cc @@ -28,7 +28,7 @@ // // // $Id: RemSimEventAction.cc,v 1.7 2004/05/27 12:31:31 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimHadronicBertini.cc b/examples/advanced/radioprotection/src/RemSimHadronicBertini.cc index 12fa0436cc..a3aa8a6d8c 100644 --- a/examples/advanced/radioprotection/src/RemSimHadronicBertini.cc +++ b/examples/advanced/radioprotection/src/RemSimHadronicBertini.cc @@ -27,7 +27,7 @@ // ************************************** // // $Id: RemSimHadronicBertini.cc,v 1.1 2004/11/23 14:37:47 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimHadronicBinary.cc b/examples/advanced/radioprotection/src/RemSimHadronicBinary.cc index 2321bf905f..6f58829367 100644 --- a/examples/advanced/radioprotection/src/RemSimHadronicBinary.cc +++ b/examples/advanced/radioprotection/src/RemSimHadronicBinary.cc @@ -27,7 +27,7 @@ // ************************************** // // $Id: RemSimHadronicBinary.cc,v 1.1 2004/11/23 14:37:47 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimInterplanetarySpaceConfiguration.cc b/examples/advanced/radioprotection/src/RemSimInterplanetarySpaceConfiguration.cc index b0da8d2c64..c577fc8b1d 100644 --- a/examples/advanced/radioprotection/src/RemSimInterplanetarySpaceConfiguration.cc +++ b/examples/advanced/radioprotection/src/RemSimInterplanetarySpaceConfiguration.cc @@ -44,8 +44,6 @@ RemSimInterplanetarySpaceConfiguration::RemSimInterplanetarySpaceConfiguration() G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle); - run = new RemSimRunAction(); - moon = false; G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); @@ -55,23 +53,20 @@ RemSimInterplanetarySpaceConfiguration::RemSimInterplanetarySpaceConfiguration() G4ThreeVector v(0.0,0.0,1.0); particleGun -> SetParticleEnergy(1.*MeV); particleGun -> SetParticleMomentumDirection(v); + + energies = new G4DataVector; + data = new G4DataVector; } RemSimInterplanetarySpaceConfiguration::~RemSimInterplanetarySpaceConfiguration() { - delete run; + delete data; + delete energies; delete particleGun; } void RemSimInterplanetarySpaceConfiguration::GeneratePrimaries(G4Event* anEvent){ - // Read the ASCII files containing the fluxes of particles in respect - // to the energy in MeV - G4bool value = run -> GetFile(); - if (value == true) - { - G4DataVector* energies = run -> GetPrimaryParticleEnergy(); - G4DataVector* data = run -> GetPrimaryParticleEnergyDistribution(); - G4double sum = run -> GetPrimaryParticleEnergyDistributionSum(); + G4double sum = GetPrimaryParticleEnergyDistributionSum(); G4double partSum = 0; G4int j = 0; G4double random = sum*G4UniformRand(); @@ -80,13 +75,35 @@ void RemSimInterplanetarySpaceConfiguration::GeneratePrimaries(G4Event* anEvent) partSum += (*data)[j]; j++; } - - particleGun -> SetParticleEnergy((*energies)[j]); + + G4String particleName = particleGun -> GetParticleDefinition() -> + GetParticleName(); + + G4int n = 0; + + if (particleName == "alpha") n = 4; + else { + if (particleName == "IonC12") n = 12; + else + { if (particleName == "IonSi28") n = 28; + else { + if (particleName == "IonFe52") n = 52; + else { + if (particleName == "IonO16") n = 16; + else { + if (particleName == "proton") n = 1 ; + } + } + } + } + } + + particleGun -> SetParticleEnergy((*energies)[j] * n); #ifdef G4ANALYSIS_USE G4double energy = particleGun -> GetParticleEnergy(); RemSimAnalysisManager* analysis = RemSimAnalysisManager::getInstance(); - analysis -> primaryParticleEnergyDistribution(energy/MeV); + analysis -> primaryParticleEnergyDistribution((energy/n) / MeV); #endif if (moon == true) MoonConfiguration(); @@ -95,16 +112,9 @@ void RemSimInterplanetarySpaceConfiguration::GeneratePrimaries(G4Event* anEvent) particleGun -> SetParticlePosition(G4ThreeVector(0., 0., -25.*m)); G4ThreeVector v(0.0,0.0,1.0); particleGun -> SetParticleMomentumDirection(v); - } - + particleGun -> GeneratePrimaryVertex(anEvent); - } - else - { - G4String excep = "Load data file"; - G4Exception(excep); - } } void RemSimInterplanetarySpaceConfiguration:: MoonConfiguration() @@ -113,9 +123,9 @@ void RemSimInterplanetarySpaceConfiguration:: MoonConfiguration() //position G4double radius = 25.* m; G4double angle = pi * G4UniformRand()*rad; - G4double y0 = radius*cos(angle); + G4double y0 = radius*std::cos(angle); G4double x0 = 0.*m; - G4double z0 = -radius*sin(angle); + G4double z0 = -radius*std::sin(angle); if ( z0 < 0. *m) { @@ -127,9 +137,9 @@ void RemSimInterplanetarySpaceConfiguration:: MoonConfiguration() if ((angledir> (pi/2.-angle)) && angledir<(3*pi/2.-angle)) { G4double a,b,c; - b=cos(angledir); + b=std::cos(angledir); a=0.; - c=sin(angledir); + c=std::sin(angledir); G4ThreeVector direction(a,b,c); particleGun -> SetParticleMomentumDirection(direction); } @@ -144,10 +154,75 @@ void RemSimInterplanetarySpaceConfiguration::SetMoon(G4bool value) { moon = value; } -void RemSimInterplanetarySpaceConfiguration::SetParticle(G4String particle) -{ - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4String particleName = particle; - particleGun -> SetParticleDefinition(particleTable->FindParticle(particleName)); + +void RemSimInterplanetarySpaceConfiguration::Read(G4String name) +{ + ReadData(MeV,name); + G4cout << name << " is the input file!" << G4endl; } +void RemSimInterplanetarySpaceConfiguration::ReadData(G4double unitE, G4String fileName) +{ + char nameChar[100] = {""}; + std::ostrstream ost(nameChar, 100, std::ios::out); + + ost << fileName; + + G4String name(nameChar); + + std::ifstream file(fileName); + std::filebuf* lsdp = file.rdbuf(); + + if (! (lsdp->is_open()) ) + { + G4String excep = "RemSimInterplanteraySpaceConfiguration - data file: not found"; + G4Exception(excep); + } + G4double a = 0; + G4int k = 1; + + do + { + file >> a; + G4int nColumns = 2; + // The file is organized into two columns: + // 1st column is the energy + // 2nd column is the corresponding value + // The file terminates with the pattern: -1 -1 + // -2 -2 + if (a == -1 || a == -2) + { + + } + else + { + if (k%nColumns != 0) + { + G4double e = a * unitE; + energies->push_back(e); + // G4cout<push_back(value); + //G4cout<<" "< size(); + for (size_t i = 0; i < size; i++) + { + sum+=(*data)[i]; + } + return sum; + } diff --git a/examples/advanced/radioprotection/src/RemSimIonICRU.cc b/examples/advanced/radioprotection/src/RemSimIonICRU.cc index 81249fd5f7..bbb789fdd1 100644 --- a/examples/advanced/radioprotection/src/RemSimIonICRU.cc +++ b/examples/advanced/radioprotection/src/RemSimIonICRU.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimIonICRU.cc,v 1.5 2004/11/23 14:37:47 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimIonICRU.cc,v 1.6 2005/05/19 13:46:29 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it @@ -32,6 +32,7 @@ #include "G4hLowEnergyIonisation.hh" #include "G4hIonisation.hh" #include "G4hLowEnergyLoss.hh" +#include "G4StepLimiter.hh" RemSimIonICRU::RemSimIonICRU(const G4String& name): G4VPhysicsConstructor(name) { } @@ -60,6 +61,7 @@ void RemSimIonICRU::ConstructProcess() G4VProcess* multipleScattering = new G4MultipleScattering(); manager -> AddProcess(multipleScattering, -1,1,1); manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1,3); } } } diff --git a/examples/advanced/radioprotection/src/RemSimMaterial.cc b/examples/advanced/radioprotection/src/RemSimMaterial.cc index 6e2bff80c0..0d03797132 100644 --- a/examples/advanced/radioprotection/src/RemSimMaterial.cc +++ b/examples/advanced/radioprotection/src/RemSimMaterial.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: RemSimMaterial.cc,v 1.5 2004/05/22 12:57:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4MaterialPropertiesTable.hh" diff --git a/examples/advanced/radioprotection/src/RemSimMoonHabitat.cc b/examples/advanced/radioprotection/src/RemSimMoonHabitat.cc index bc192ff4ac..c0f40dc0e9 100644 --- a/examples/advanced/radioprotection/src/RemSimMoonHabitat.cc +++ b/examples/advanced/radioprotection/src/RemSimMoonHabitat.cc @@ -27,8 +27,8 @@ // * * // ************************************** // -// $Id: RemSimMoonHabitat.cc,v 1.4 2004/05/22 12:57:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimMoonHabitat.cc,v 1.5 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // @@ -45,11 +45,11 @@ #include "G4UserLimits.hh" #include "RemSimDecorator.hh" #include "RemSimAstronautDecorator.hh" - +#include "G4SubtractionSolid.hh" RemSimMoonHabitat::RemSimMoonHabitat() { pMaterial = new RemSimMaterial(); - shelterPhys = 0; + moonPhys = 0; } RemSimMoonHabitat::~RemSimMoonHabitat() { @@ -60,7 +60,6 @@ void RemSimMoonHabitat::ConstructComponent(G4VPhysicalVolume* motherVolume) pMaterial -> DefineMaterials(); G4Material* moonMaterial = pMaterial->GetMaterial("moon"); - G4Material* air = pMaterial -> GetMaterial("Air"); // Moon Surface definition G4double sizeX = 30.*m; @@ -69,47 +68,30 @@ void RemSimMoonHabitat::ConstructComponent(G4VPhysicalVolume* motherVolume) G4Box* moon = new G4Box("moon",sizeX,sizeY,sizeZ); - G4LogicalVolume* moonLogical = new G4LogicalVolume(moon, - moonMaterial, - "moon",0,0,0); - - G4VPhysicalVolume* moonPhys = new G4PVPlacement(0, - G4ThreeVector(0.,0.,sizeZ), "moon",moonLogical, - motherVolume, - false,0); - G4double thick = 4.5 *m; G4Box* shelter = new G4Box("shelter",5.*m,5.*m,thick/2.); - G4LogicalVolume* shelterLog = new G4LogicalVolume(shelter, - air, - "shelter", - 0,0,0); - - G4double translation = - sizeZ + thick/2. + 0.5 *m; - - shelterPhys = new G4PVPlacement(0, - G4ThreeVector(0.,0.,translation), - "shelter",shelterLog, - moonPhys,false,0); - - G4Colour red (1.0,0.0,0.0); - G4Colour blue (0.,0.,1.); + G4ThreeVector translation(0, 0, -sizeZ + 0.5 * m + thick/2.); + G4SubtractionSolid* solid = new G4SubtractionSolid ("moon-shelter", moon, + shelter, 0, translation); + + G4LogicalVolume* moonLogical = new G4LogicalVolume(solid, + moonMaterial, + "moon",0,0,0); + + moonPhys = new G4PVPlacement(0, + G4ThreeVector(0.,0.,sizeZ), "moon",moonLogical, + motherVolume, + false,0); + + G4Colour red (1.0,0.0,0.0); + G4VisAttributes* moonVisAtt = new G4VisAttributes(red); moonVisAtt -> SetVisibility(true); moonVisAtt -> SetForceWireframe(true); moonLogical -> SetVisAttributes(moonVisAtt); - - G4VisAttributes* shelterVisAtt = new G4VisAttributes(blue); - shelterVisAtt -> SetVisibility(true); - shelterVisAtt -> SetForceWireframe(true); - shelterLog -> SetVisAttributes(shelterVisAtt); } void RemSimMoonHabitat::DestroyComponent() {} -G4VPhysicalVolume* RemSimMoonHabitat::GetShelter() -{ - return shelterPhys; -} diff --git a/examples/advanced/radioprotection/src/RemSimMuonStandard.cc b/examples/advanced/radioprotection/src/RemSimMuonStandard.cc index bea5c758ac..5772a313c9 100644 --- a/examples/advanced/radioprotection/src/RemSimMuonStandard.cc +++ b/examples/advanced/radioprotection/src/RemSimMuonStandard.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimMuonStandard.cc,v 1.3 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimMuonStandard.cc,v 1.4 2005/05/19 13:46:29 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // @@ -35,6 +35,7 @@ #include "G4MuBremsstrahlung.hh" #include "G4MuPairProduction.hh" #include "G4MuonMinusCaptureAtRest.hh" +#include "G4StepLimiter.hh" RemSimMuonStandard::RemSimMuonStandard(const G4String& name): G4VPhysicsConstructor(name) { } @@ -78,6 +79,7 @@ void RemSimMuonStandard::ConstructProcess() pmanager -> SetProcessOrdering(anIonisation, idxPostStep,2); pmanager -> SetProcessOrdering(aBremsstrahlung, idxPostStep,3); pmanager -> SetProcessOrdering(aPairProduction, idxPostStep,4); + pmanager -> AddProcess(new G4StepLimiter(),-1,-1,3); if( particleName == "mu-" ) pmanager -> AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1); diff --git a/examples/advanced/radioprotection/src/RemSimParticles.cc b/examples/advanced/radioprotection/src/RemSimParticles.cc index 45c69db0e6..706d825b3a 100644 --- a/examples/advanced/radioprotection/src/RemSimParticles.cc +++ b/examples/advanced/radioprotection/src/RemSimParticles.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimParticles.cc,v 1.4 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimPhotonEPDL.cc b/examples/advanced/radioprotection/src/RemSimPhotonEPDL.cc index 32452d85c0..9f0d00b1b7 100644 --- a/examples/advanced/radioprotection/src/RemSimPhotonEPDL.cc +++ b/examples/advanced/radioprotection/src/RemSimPhotonEPDL.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimPhotonEPDL.cc,v 1.4 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimPhotonEPDL.cc,v 1.5 2005/05/19 13:46:29 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // @@ -34,6 +34,7 @@ #include "G4LowEnergyGammaConversion.hh" #include "G4LowEnergyPhotoElectric.hh" #include "G4LowEnergyRayleigh.hh" +#include "G4StepLimiter.hh" RemSimPhotonEPDL::RemSimPhotonEPDL(const G4String& name): G4VPhysicsConstructor(name) @@ -60,6 +61,7 @@ void RemSimPhotonEPDL::ConstructProcess() manager -> AddDiscreteProcess(new G4LowEnergyCompton); manager -> AddDiscreteProcess(new G4LowEnergyGammaConversion); manager -> AddDiscreteProcess(new G4LowEnergyRayleigh); + manager -> AddProcess(new G4StepLimiter(),-1,-1,3); } } } diff --git a/examples/advanced/radioprotection/src/RemSimPhysicsList.cc b/examples/advanced/radioprotection/src/RemSimPhysicsList.cc index d7a72b7e30..712611ee6c 100644 --- a/examples/advanced/radioprotection/src/RemSimPhysicsList.cc +++ b/examples/advanced/radioprotection/src/RemSimPhysicsList.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimPhysicsList.cc,v 1.8 2004/11/23 15:43:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli diff --git a/examples/advanced/radioprotection/src/RemSimPhysicsListMessenger.cc b/examples/advanced/radioprotection/src/RemSimPhysicsListMessenger.cc index 758a775d42..9d9693df28 100644 --- a/examples/advanced/radioprotection/src/RemSimPhysicsListMessenger.cc +++ b/examples/advanced/radioprotection/src/RemSimPhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimPhysicsListMessenger.cc,v 1.3 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/src/RemSimPositronStandard.cc b/examples/advanced/radioprotection/src/RemSimPositronStandard.cc index d8307979db..08b245126d 100644 --- a/examples/advanced/radioprotection/src/RemSimPositronStandard.cc +++ b/examples/advanced/radioprotection/src/RemSimPositronStandard.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimPositronStandard.cc,v 1.3 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimPositronStandard.cc,v 1.4 2005/05/19 13:46:29 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it #include "RemSimPositronStandard.hh" @@ -32,6 +32,7 @@ #include "G4eIonisation.hh" #include "G4eBremsstrahlung.hh" #include "G4eplusAnnihilation.hh" +#include "G4StepLimiter.hh" RemSimPositronStandard::RemSimPositronStandard(const G4String& name): G4VPhysicsConstructor(name) { } @@ -56,7 +57,8 @@ void RemSimPositronStandard::ConstructProcess() manager -> AddProcess(new G4MultipleScattering, -1, 1,1); manager -> AddProcess(new G4eIonisation, -1, 2,2); manager -> AddProcess(new G4eBremsstrahlung, -1,-1,3); - manager -> AddProcess(new G4eplusAnnihilation, 0,-1,4); + manager -> AddProcess(new G4eplusAnnihilation, 0,-1,4); + manager -> AddProcess(new G4StepLimiter(), -1,-1,3); } } } diff --git a/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorAction.cc b/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorAction.cc index 49574ab650..c502e052c9 100644 --- a/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorAction.cc +++ b/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: RemSimPrimaryGeneratorAction.cc,v 1.9 2004/11/22 16:51:39 guatelli Exp $// Author: Susanna Guatelli, guatelli@ge.infn.it +// $Id: RemSimPrimaryGeneratorAction.cc,v 1.11 2005/05/27 14:21:42 guatelli Exp $// Author: Susanna Guatelli, guatelli@ge.infn.it #include "RemSimPrimaryGeneratorAction.hh" #include "RemSimPrimaryGeneratorMessenger.hh" @@ -37,48 +37,38 @@ RemSimPrimaryGeneratorAction::RemSimPrimaryGeneratorAction() { value = "Basic"; - primaryFactory1 = new RemSimBasicGenerator(); - primaryFactory2 = new RemSimInterplanetarySpaceConfiguration(); + primaryFactory = new RemSimBasicGenerator(); messenger = new RemSimPrimaryGeneratorMessenger(this); } RemSimPrimaryGeneratorAction::~RemSimPrimaryGeneratorAction() { delete messenger; - delete primaryFactory2; - delete primaryFactory1; + delete primaryFactory; } G4double RemSimPrimaryGeneratorAction::GetInitialEnergy() { G4double initialEnergy = 0.; - if(value == "Basic") - initialEnergy = primaryFactory1 -> GetInitialEnergy(); + initialEnergy = primaryFactory -> GetInitialEnergy(); - else if(value == "Interplanetary") - initialEnergy = primaryFactory2 -> GetInitialEnergy(); - return initialEnergy; } void RemSimPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { - if(value == "Basic") - primaryFactory1 -> GeneratePrimaries(anEvent); - - else if(value == "Interplanetary") + if(value == "Interplanetary") { - primaryFactory2 -> SetMoon(false); - primaryFactory2 -> GeneratePrimaries(anEvent); + primaryFactory -> SetMoon(false); } else if(value == "Moon") { - primaryFactory2 -> SetMoon(true); - primaryFactory2 -> GeneratePrimaries(anEvent); + primaryFactory -> SetMoon(true); } -} + primaryFactory -> GeneratePrimaries(anEvent); +} void RemSimPrimaryGeneratorAction::SelectPrimaries(G4String val) { @@ -93,6 +83,9 @@ void RemSimPrimaryGeneratorAction::SelectPrimaries(G4String val) < SetParticle(valueParticle); - if(value == "Basic") - primaryFactory1 -> SetParticle(valueParticle); +void RemSimPrimaryGeneratorAction::Read(G4String fileName) +{ + primaryFactory -> Read(fileName); } diff --git a/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorMessenger.cc b/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorMessenger.cc index 03af54bdec..bbcd76ae74 100644 --- a/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorMessenger.cc +++ b/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorMessenger.cc @@ -30,8 +30,8 @@ // ***************************************** // // -// $Id: RemSimPrimaryGeneratorMessenger.cc,v 1.6 2004/11/22 16:51:39 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimPrimaryGeneratorMessenger.cc,v 1.7 2005/05/19 13:30:59 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // @@ -55,16 +55,15 @@ RemSimPrimaryGeneratorMessenger::RemSimPrimaryGeneratorMessenger( RemSimPrimaryG fluxCmd -> SetCandidates("Moon Interplanetary Basic"); fluxCmd -> AvailableForStates(G4State_PreInit,G4State_Idle); - particleCmd = new G4UIcmdWithAString("/gun/particleType",this); - particleCmd -> SetGuidance("Primary particle type"); - particleCmd -> SetParameterName("choice",true); - particleCmd -> AvailableForStates(G4State_PreInit,G4State_Idle); - + dataCmd = new G4UIcmdWithAString("/gun/data",this); + dataCmd -> SetGuidance("Primary particle spectrum"); + dataCmd -> SetParameterName("choice",true); + dataCmd -> AvailableForStates(G4State_PreInit,G4State_Idle); } RemSimPrimaryGeneratorMessenger::~RemSimPrimaryGeneratorMessenger() { - delete particleCmd; + delete dataCmd; delete fluxCmd; delete gunDir; } @@ -72,6 +71,6 @@ RemSimPrimaryGeneratorMessenger::~RemSimPrimaryGeneratorMessenger() void RemSimPrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if(command == fluxCmd) primary -> SelectPrimaries(newValue); - if (command == particleCmd) primary -> SetNewParticle(newValue); + if (command == dataCmd) primary -> Read(newValue); } diff --git a/examples/advanced/radioprotection/src/RemSimROGeometry.cc b/examples/advanced/radioprotection/src/RemSimROGeometry.cc index ae08b54c14..ebdc3fa3be 100644 --- a/examples/advanced/radioprotection/src/RemSimROGeometry.cc +++ b/examples/advanced/radioprotection/src/RemSimROGeometry.cc @@ -30,7 +30,7 @@ // ************************************ // // $Id: RemSimROGeometry.cc,v 1.5 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RemSimROGeometry.hh" #include "RemSimDummySD.hh" diff --git a/examples/advanced/radioprotection/src/RemSimRoofDecorator.cc b/examples/advanced/radioprotection/src/RemSimRoofDecorator.cc index 1e1a2880d1..6cf0e1afd3 100644 --- a/examples/advanced/radioprotection/src/RemSimRoofDecorator.cc +++ b/examples/advanced/radioprotection/src/RemSimRoofDecorator.cc @@ -29,8 +29,8 @@ // Code developed by: S.Guatelli, guatelli@ge.infn.it // // -// $Id: RemSimRoofDecorator.cc,v 1.4 2004/06/18 09:18:08 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimRoofDecorator.cc,v 1.5 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RemSimVGeometryComponent.hh" #include "RemSimMaterial.hh" @@ -91,7 +91,7 @@ void RemSimRoofDecorator::ConstructRoof(G4VPhysicalVolume* motherVolume) G4Material* moonMaterial = pMaterial -> GetMaterial("moon"); - roof = new G4Trd("roof",2.25*m,7.*m,5.*m, 8.*m, 1.5 *m); + roof = new G4Trd("roof",2.25*m,7.*m,5.*m, 8.*m, 0.5 *m); roofLog = new G4LogicalVolume(roof, moonMaterial, @@ -99,7 +99,7 @@ void RemSimRoofDecorator::ConstructRoof(G4VPhysicalVolume* motherVolume) 0,0,0); roofPhys = new G4PVPlacement(0, - G4ThreeVector(0.,0., - 1.5 *m), + G4ThreeVector(0.,0., - 0.5 *m), "roof",roofLog, motherVolume,false,0); diff --git a/examples/advanced/radioprotection/src/RemSimRunAction.cc b/examples/advanced/radioprotection/src/RemSimRunAction.cc index 1e6b579e2f..cfc8dbe6a4 100644 --- a/examples/advanced/radioprotection/src/RemSimRunAction.cc +++ b/examples/advanced/radioprotection/src/RemSimRunAction.cc @@ -29,8 +29,8 @@ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // -// $Id: RemSimRunAction.cc,v 1.10 2004/11/23 11:43:21 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimRunAction.cc,v 1.11 2005/05/19 13:30:59 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RemSimRunAction.hh" @@ -39,7 +39,6 @@ #ifdef G4ANALYSIS_USE #include "RemSimAnalysisManager.hh" #endif -#include "RemSimRunMessenger.hh" #include "G4Run.hh" #include "G4RunManager.hh" #include "G4ios.hh" @@ -49,18 +48,11 @@ RemSimRunAction::RemSimRunAction() { - //Read the input file concerning the generation of primary particles - energies = new G4DataVector; - data = new G4DataVector; - messenger = new RemSimRunMessenger(this); - file = ""; } RemSimRunAction::~RemSimRunAction() { - delete messenger; - delete energies; - delete data; + } void RemSimRunAction::BeginOfRunAction(const G4Run* aRun) @@ -82,94 +74,3 @@ void RemSimRunAction::EndOfRunAction(const G4Run* aRun) G4cout<< "Number of events:" << numberEvents << G4endl; } -void RemSimRunAction::Read(G4String name) -{ - file = name; - ReadData(MeV,name); - G4cout << name << " is the input file!" << G4endl; -} - -void RemSimRunAction::ReadData(G4double unitE, G4String fileName) -{ - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); - - ost << fileName; - - G4String name(nameChar); - - std::ifstream file(fileName); - std::filebuf* lsdp = file.rdbuf(); - - if (! (lsdp->is_open()) ) - { - G4String excep = "RemSimRunAction - data file: not found"; - G4Exception(excep); - } - G4double a = 0; - G4int k = 1; - - do - { - file >> a; - G4int nColumns = 2; - // The file is organized into two columns: - // 1st column is the energy - // 2nd column is the corresponding value - // The file terminates with the pattern: -1 -1 - // -2 -2 - if (a == -1 || a == -2) - { - - } - else - { - if (k%nColumns != 0) - { - G4double e = a * unitE; - energies->push_back(e); - // G4cout<push_back(value); - //G4cout<<" "< size(); - for (size_t i = 0; i < size; i++) - { - sum+=(*data)[i]; - } - return sum; -} - -G4bool RemSimRunAction::GetFile() -{ - if (file == "") return false; - else return true; -} diff --git a/examples/advanced/radioprotection/src/RemSimSensitiveDetector.cc b/examples/advanced/radioprotection/src/RemSimSensitiveDetector.cc index d1008955d1..5e44f27bf6 100644 --- a/examples/advanced/radioprotection/src/RemSimSensitiveDetector.cc +++ b/examples/advanced/radioprotection/src/RemSimSensitiveDetector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RemSimSensitiveDetector.cc,v 1.8 2004/11/23 15:43:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RemSimSensitiveDetector.cc,v 1.9 2005/05/27 14:21:42 guatelli Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // @@ -75,9 +75,10 @@ G4bool RemSimSensitiveDetector::ProcessHits(G4Step* aStep, // Energy deposit in the phantom analysis -> energyDepositStore(i,edep/MeV); - + // G4cout << "energy deposit:"<< i <<","<< edep/MeV << G4endl; G4double xx = aStep -> GetPreStepPoint() -> GetPosition().x(); G4double yy = aStep -> GetPreStepPoint() -> GetPosition().y(); + //G4double zz = aStep -> GetPreStepPoint() -> GetPosition().z(); // Project the hits of primary and secondary particles // in the phantom in the plane x, y diff --git a/examples/advanced/radioprotection/src/RemSimShelterSPEDecorator.cc b/examples/advanced/radioprotection/src/RemSimShelterSPEDecorator.cc index 34d9cc3f50..c497a7fa61 100644 --- a/examples/advanced/radioprotection/src/RemSimShelterSPEDecorator.cc +++ b/examples/advanced/radioprotection/src/RemSimShelterSPEDecorator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimShelterSPEDecorator.cc,v 1.2 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimShieldingDecorator.cc b/examples/advanced/radioprotection/src/RemSimShieldingDecorator.cc index 7a9ad13ee0..df236c4722 100644 --- a/examples/advanced/radioprotection/src/RemSimShieldingDecorator.cc +++ b/examples/advanced/radioprotection/src/RemSimShieldingDecorator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimShieldingDecorator.cc,v 1.5 2004/05/27 08:36:52 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimSteppingAction.cc b/examples/advanced/radioprotection/src/RemSimSteppingAction.cc index e9391c8cc3..8f4efe7650 100644 --- a/examples/advanced/radioprotection/src/RemSimSteppingAction.cc +++ b/examples/advanced/radioprotection/src/RemSimSteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: RemSimSteppingAction.cc,v 1.6 2004/11/23 15:43:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Author: Susanna Guatelli (guatelli@ge.infn.it) diff --git a/examples/advanced/radioprotection/src/RemSimSteppingActionMessenger.cc b/examples/advanced/radioprotection/src/RemSimSteppingActionMessenger.cc index b1c651d823..89060db03e 100644 --- a/examples/advanced/radioprotection/src/RemSimSteppingActionMessenger.cc +++ b/examples/advanced/radioprotection/src/RemSimSteppingActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -//$Id: RemSimSteppingActionMessenger.cc,v 1.3 2004/11/23 15:43:41 guatelli Exp $// GEANT4 tag $Name: geant4-07-00-cand-01 $ +//$Id: RemSimSteppingActionMessenger.cc,v 1.3 2004/11/23 15:43:41 guatelli Exp $// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimVGeometryComponent.cc b/examples/advanced/radioprotection/src/RemSimVGeometryComponent.cc index e02e9342ed..dc9dfc5ed6 100644 --- a/examples/advanced/radioprotection/src/RemSimVGeometryComponent.cc +++ b/examples/advanced/radioprotection/src/RemSimVGeometryComponent.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimVGeometryComponent.cc,v 1.3 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimVPrimaryGeneratorFactory.cc b/examples/advanced/radioprotection/src/RemSimVPrimaryGeneratorFactory.cc index 3f50ae4080..f6b79bd03e 100644 --- a/examples/advanced/radioprotection/src/RemSimVPrimaryGeneratorFactory.cc +++ b/examples/advanced/radioprotection/src/RemSimVPrimaryGeneratorFactory.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimVPrimaryGeneratorFactory.cc,v 1.5 2004/05/22 12:57:07 guatelli Exp $Name: geant4-07-00-cand-01 $ +// $Id: RemSimVPrimaryGeneratorFactory.cc,v 1.5 2004/05/22 12:57:07 guatelli Exp $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimVehicle1.cc b/examples/advanced/radioprotection/src/RemSimVehicle1.cc index 9e8140e448..0ff03caecf 100644 --- a/examples/advanced/radioprotection/src/RemSimVehicle1.cc +++ b/examples/advanced/radioprotection/src/RemSimVehicle1.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimVehicle1.cc,v 1.8 2004/05/27 08:36:52 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimVisManager.cc b/examples/advanced/radioprotection/src/RemSimVisManager.cc deleted file mode 100755 index 8289ef2c56..0000000000 --- a/examples/advanced/radioprotection/src/RemSimVisManager.cc +++ /dev/null @@ -1,136 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: RemSimVisManager.cc,v 1.4 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -#ifdef G4VIS_USE - -#include "RemSimVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -RemSimVisManager::RemSimVisManager () -{} - -void RemSimVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} -#endif diff --git a/examples/advanced/radioprotection/vehicle1.mac b/examples/advanced/radioprotection/vehicle1.mac index 2689ce5258..b163a419f8 100644 --- a/examples/advanced/radioprotection/vehicle1.mac +++ b/examples/advanced/radioprotection/vehicle1.mac @@ -32,18 +32,15 @@ ################ # Generation of primary particles /gun/generator Basic -#/tracking/verbose 1 -/gun/particleType proton +/gun/particle proton /gun/energy 600. MeV # Geometrical configuration /configuration/choose vehicle /configuration/AddShielding On -#/configuration/AddSPE On -/shielding/thickness 10. cm #/analysis/formatFile xml #/analysis/formatFile hbook # Number of events -/run/beamOn 50 +/run/beamOn 2 diff --git a/examples/advanced/radioprotection/vehicle2.mac b/examples/advanced/radioprotection/vehicle2.mac index ed5588ba41..c60c026129 100644 --- a/examples/advanced/radioprotection/vehicle2.mac +++ b/examples/advanced/radioprotection/vehicle2.mac @@ -32,8 +32,8 @@ /run/initialize # Generation of primary particles /gun/generator Interplanetary -/gun/particleType proton -/run/data gcrZ=1.txt +/gun/particle proton +/gun/data gcrZ=1.txt # Geometry configuration /configuration/choose vehicle /configuration/AddShielding On diff --git a/examples/advanced/radioprotection/vis.mac b/examples/advanced/radioprotection/vis.mac index a3fc86811f..2e16caaefd 100644 --- a/examples/advanced/radioprotection/vis.mac +++ b/examples/advanced/radioprotection/vis.mac @@ -16,26 +16,25 @@ /event/verbose 0 ################ ## Visualisation -#/vis/scene/create +/vis/scene/create # --- Choose one the following visualisation tools /vis/open OGLIX #/vis/open DAWNFILE #/vis/open VRML2FILE # -------- /vis/drawVolume -#/vis/viewer/zoom 2 +/vis/viewer/zoom 2 /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate ###################### /run/initialize /vis/viewer/set/viewpointThetaPhi 90 180 deg -/gun/particleType proton /gun/generator Basic -/gun/energy 100. MeV +/gun/energy 400. MeV /configuration/choose vehicle /configuration/AddShielding On - - +#/tracking/verbose 1 +/run/beamOn 10 diff --git a/examples/advanced/underground_physics/DMX.cc b/examples/advanced/underground_physics/DMX.cc index b7d1167d77..b84d9cf6dc 100644 --- a/examples/advanced/underground_physics/DMX.cc +++ b/examples/advanced/underground_physics/DMX.cc @@ -48,7 +48,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "DMXVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "DMXDetectorConstruction.hh" @@ -92,7 +92,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new DMXVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/advanced/underground_physics/History b/examples/advanced/underground_physics/History index 25b8e76b38..2ddb051880 100644 --- a/examples/advanced/underground_physics/History +++ b/examples/advanced/underground_physics/History @@ -9,6 +9,9 @@ $Id: Category History file --------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 07.12.2004 - S. Guatelli (DMX-V06-02-02) G4VParticleChange migrated diff --git a/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh b/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh index 10664580a9..11aa97a1d1 100644 --- a/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh +++ b/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh @@ -22,7 +22,7 @@ // // // $Id: DMXMinEkineCuts.hh,v 1.2 2002/06/18 10:17:30 ahoward Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/underground_physics/include/DMXVisManager.hh b/examples/advanced/underground_physics/include/DMXVisManager.hh deleted file mode 100644 index f92e556145..0000000000 --- a/examples/advanced/underground_physics/include/DMXVisManager.hh +++ /dev/null @@ -1,80 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// -------------------------------------------------------------- -// GEANT 4 - Underground Dark Matter Detector Advanced Example -// -// For information related to this code contact: Alex Howard -// e-mail: a.s.howard@ic.ac.uk -// -------------------------------------------------------------- -// Comments -// -// Underground Advanced -// by A. Howard and H. Araujo -// (27th November 2001) -// -// VisManager header -// -------------------------------------------------------------- -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* DMXVisManager = new MyVisManager; -// DMXVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef DMXVisManager_h -#define DMXVisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class DMXVisManager: public G4VisManager { - -public: - - DMXVisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -#endif - -#endif - diff --git a/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc b/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc index 494c7a1a6b..da17d322ba 100644 --- a/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc +++ b/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc @@ -22,7 +22,7 @@ // // // $Id: DMXMinEkineCuts.cc,v 1.4 2003/12/02 16:59:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/advanced/underground_physics/src/DMXVisManager.cc b/examples/advanced/underground_physics/src/DMXVisManager.cc deleted file mode 100755 index 76e6ad297f..0000000000 --- a/examples/advanced/underground_physics/src/DMXVisManager.cc +++ /dev/null @@ -1,151 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// -------------------------------------------------------------- -// GEANT 4 - Underground Dark Matter Detector Advanced Example -// -// For information related to this code contact: Alex Howard -// e-mail: a.s.howard@ic.ac.uk -// -------------------------------------------------------------- -// Comments -// -// Underground Advanced -// by A. Howard and H. Araujo -// (27th November 2001) -// -// VisManager program -// -------------------------------------------------------------- - -#ifdef G4VIS_USE - -#include "DMXVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -DMXVisManager::DMXVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void DMXVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/xray_fluorescence/FlatSpectrum.dat b/examples/advanced/xray_fluorescence/FlatSpectrum.dat new file mode 100755 index 0000000000..c5007817e4 --- /dev/null +++ b/examples/advanced/xray_fluorescence/FlatSpectrum.dat @@ -0,0 +1,52 @@ +0.0 0.02 +0.2 0.02 +0.4 0.02 +0.6 0.02 +0.8 0.02 +1.0 0.02 +1.2 0.02 +1.4 0.02 +1.6 0.02 +1.8 0.02 +2.0 0.02 +2.2 0.02 +2.4 0.02 +2.6 0.02 +2.8 0.02 +3.0 0.02 +3.2 0.02 +3.4 0.02 +3.6 0.02 +3.8 0.02 +4.0 0.02 +4.2 0.02 +4.4 0.02 +4.6 0.02 +4.8 0.02 +5.0 0.02 +5.2 0.02 +5.4 0.02 +5.6 0.02 +5.8 0.02 +6.2 0.02 +6.4 0.02 +6.6 0.02 +6.8 0.02 +7.0 0.02 +7.2 0.02 +7.4 0.02 +7.6 0.02 +7.8 0.02 +8.0 0.02 +8.2 0.02 +8.4 0.02 +8.6 0.02 +8.8 0.02 +9.0 0.02 +9.2 0.02 +9.4 0.02 +9.6 0.02 +9.8 0.02 +10.0 0.02 +-1 -1 +-2 -2 diff --git a/examples/advanced/xray_fluorescence/G4History.macro b/examples/advanced/xray_fluorescence/G4History.macro index b15b8cd650..ec26b91df9 100644 --- a/examples/advanced/xray_fluorescence/G4History.macro +++ b/examples/advanced/xray_fluorescence/G4History.macro @@ -1,15 +1,2 @@ /run/verbose 2 -/vis/scene/create -/vis/open OGLIX -/vis/sceneHandler/create OGLIX -/vis/sceneHandler/attach -/vis/viewer/create ! ! 600 -/vis/viewer/refresh -/vis/viewer/flush -/vis/viewer/refresh viewer-0 -/vis/viewer/update viewer-0 -/tracking/storeTrajectory 1 -/vis/viewer/set/viewpointThetaPhi 60 30 -/vis/viewer/refresh -/vis/scene/endOfEventAction accumulate -/analysis/update +/run/beamOn 100000 diff --git a/examples/advanced/xray_fluorescence/History b/examples/advanced/xray_fluorescence/History index f2d464461b..b44a97366a 100644 --- a/examples/advanced/xray_fluorescence/History +++ b/examples/advanced/xray_fluorescence/History @@ -1,6 +1,6 @@ -# $Id: History,v 1.4 2004/12/10 13:08:42 gcosmo Exp $ +# $Id: History,v 1.5 2005/05/03 10:05:48 allison Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-05 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- ========================================================= @@ -19,6 +19,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 10-12-2004 Alfonso Mantero: XrayFluo-V06-02-01 - Can now be used in batch mode without histograms. diff --git a/examples/advanced/xray_fluorescence/README b/examples/advanced/xray_fluorescence/README index 009a6f8990..75aedcf67b 100644 --- a/examples/advanced/xray_fluorescence/README +++ b/examples/advanced/xray_fluorescence/README @@ -1,4 +1,4 @@ -$Id: README,v 1.12 2004/12/08 10:47:07 gcosmo Exp $ +$Id: README,v 1.13 2005/05/03 14:47:36 mantero Exp $ ------------------------------------------------------------------- ========================================================= @@ -23,14 +23,6 @@ with different shapes of the primary generator. Apart from the sample and the detector there are two diaphragm reproducing those used to collimate the incident beam during the test beam. -Other two geometries are present for the user: an infinte-plane geometry and -a planetary one, with the status of "beta release". The user must select, -at the moment of the execution, which geometry wants to use. -If the program is executed in batch mode, it is possible to specify -geometry from command line. Example: -/path/XrayFluo macro.mac 1 (for test beam Geometry) -/path/XrayFluo macro.mac 2 (for infinite plane Geometry) - The aim of this advanced example is to illustrate the use of particle generation and analysis schemes available in Geant4: @@ -47,69 +39,86 @@ generation and analysis schemes available in Geant4: particles again respectively during solar maximum and solar minimum conditions. - - histograming facilities are presently provided for the Linux environment - by using the AIDA3 interfaces. - The AIDA compliant version has not been tested by the developers and is - here as a example of "forward compatibility" on how to use analysis. +- histograming facilities are presently provided for the Linux environment + by using the AIDA3 interfaces. + The AIDA compliant version has not been tested by the developers and is + here as a example of "forward compatibility" on how to use analysis. In order to be able to use any of these packages, prior installation is necessary and a number of environment variables will have to be set. + #set up VRMLview setenv G4VRMLFILE_MAX_FILE_NUM 100 setenv G4VRMLFILE_VIEWER vrmlview #if installed - -Then define the in PATH the path where the 'vrmlview' binary application -is installed. +setenv PATH ${PATH}:"/afs/cern.ch/sw/contrib/VRML/bin/Linux" #set up OpenGL or Mesa setenv G4VIS_BUILD_OPENGLX_DRIVER 1 setenv G4VIS_USE_OPENGLX 1 +setenv OGLHOME /afs/cern.ch/sw/geant4/dev/Mesa/Linux-g++ #set up DAWN setenv G4VIS_BUILD_DAWN_DRIVER 1 setenv G4VIS_USE_DAWN 1 - -Then define the in PATH the path where the 'dawn' binary application -is installed. +setenv PATH ${PATH}:"/afs/cern.ch/sw/geant4/dev/DAWN/Linux-g++" # flag that we want to use analysis: -setenv G4ANALYSIS_USE 1 +setenv G4ANALYSIS_USE 1 -#select AIDA implementation: for instance, PI (http://cern.ch/pi) - -Define in PATH/LD_LIBRARY_PATH the paths where the your analysis tool -and libs are installed. -e.g., for PI-1.2.1: - -setenv PATH ${PATH}:[your-PI-installation-path]/PI/1.2.1/app/releases/PI_1_2_1/rh73_gcc32/bin -setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:[your-PI-installation-path]/PI/1.2.1/app/releases/PI_1_2_1/rh73_gcc32/lib -setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:[your-PI-installation-path]/PI/1.2.1/app/releases/SEAL/SEAL_1_3_4/rh73_gcc32/lib +#select AIDA implementation: PI 1.3.0 (for cern AFS) +setenv G4ANALYSIS_BUILD 1 +setenv PI_VERSION 1_3_0 +setenv PATH /afs/cern.ch/sw/lcg/app/releases/PI/PI_1_3_0/slc3_ia32_gcc323/bin/:${PATH} eval `aida-config -r csh` +setenv ANAPHE_REL_DIR /afs/cern.ch/sw/lcg/app/releases/PI/PI_1_3_0/slc3_ia32_gcc323/ +setenv AIDA_DIR /afs/cern.ch/sw/lcg/external/AIDA/3.2.1/share/src/cpp/ + +setenv LD_LIBRARY_PATH $OGLHOME/lib:$LD_LIBRARY_PATH +setenv LD_LIBRARY_PATH "/usr/local/gcc-alt-3.2/lib:${LD_LIBRARY_PATH}" + + #path to the lowEnergy data base -setenv G4LEDATA [your-data-path]:/G4EMLOW2.3 +setenv G4LEDATA /afs/cern.ch/sw/geant4/dev/data/G4EMLOW2.3 #path to Xray_Fluorescence data files, if not set, PWD is assumed: -setenv XRAYDATA $G4INSTALL/examples/advanced/xray_fluorescence +setenv XRAYDATA /afs/cern.ch/user/u/username 1. Run -To execute a sample simulation with visualisation of tracks -reaching the detector run: +After the compilation of the program, to execute a sample simulation type (for example): -XrayFluo +$G4WORKDIR/bin/Linux-g++/XrayFluo -execute command "/control/execute xxxxx.mac" +The program gives, at tis point,the user 4 options: +Please Select Simulation Geometrical Set-Up: +1 - Test Beam +2 - Infinite Plane +3 - Planet and Sun +4 - Phase-Space Production + +The first three choices are to choose different experimental set-ups +(a test beam one, an infite plane and a planetary geometry), while +the fourth is a simplified version of the first, without a detector, +only to generate a tuple with particles genereted or exiting the sample. + +In order to run a macro, type the following command: + +idle> execute command "/control/execute xxxxx.mac" If the analysis options are set, histograms will automatically stored in the corresponding files (hbook or XML) -2. Detector description +In order to launch the application in batch mode, it is necessary to specify, +after the executable file name, the name of the macro file and the number of the choice: +$G4WORKDIR/bin/Linux-g++/XrayFluo xxxxx.mac 1 + +2. Detector description The telescope and detector geometry is defined in XrayFluoDetectorConstruction.cc @@ -135,33 +144,43 @@ The main process in this example is fluorescence emission from the sample. This is done using the G4ParticleGun with some modifications. See XrayFluoParticleGeneratorAction.cc +Event generation is controlled by commands in the /gun/category (see help for further details). +In this readme only two commands are undrlined: + +- /gun/loadGunData : to be used with the setup #1, loads the ntuple created + in the setup #4. The loaded particles will be generated and will be directed + ALL OF THEM to the detector. This can be useful to perform detector studies + with encreased efiiciency. + +- /gun/loadRayleighFlag This is used to let the user decide if backscattered + primary particles should be loaded and directed toward the detector. This command, + in order to be useful, must be used BEFORE the previous one. + 6. Analysis At present the analisys is provided by any AIDA-3.2.1 compliant analysis system. -In the example the PI toolkit is used. +In the example the Anaphe toolkit is used. -AIDA / PI configuration for compilation and link are in GNUmakefile, once +AIDA / Anaphe configuration for compilation and link are in GNUmakefile, once is set the environmente as above: ifdef G4ANALYSIS_USE CPPFLAGS += `aida-config --include` LDFLAGS += `aida-config --lib` + LOADLIBS += `aida-config --lib` endif To build and execute the example on platforms where there is no implementation of the analysis system, the environment variables must not be set. -It is possible to visualize the output of the simulation. In order to do this -is necessary to uncomment all lines in XrayFluoAnalysisManager.cc / .hh regarding plotting; -and the same must be done for plotting refernces in XrayFluoRunManager.cc and XrayFluoEventAction.cc. -And link against other AIDA compliant analysis sistems, such as PI or JAS. - -Finally, by setting visPlotter variable in XrayFluoAnalysisManager to true, +By setting visPlotter variable in XrayFluoAnalysisManager to true, it is possible to display the simulated output of the detector while -simulation is in progress. Graph window is updated every 100000 events. +simulation is in progress. Graph window is updated every 1000 events. -The example provides also a simple Python file used to display histograms. +The example provides also a simple Python file (readPY) used to display +histograms with the python interface of PI. This must be run after the +configuration script config.csh and the python interpreter. Various commads, with help, are available for Geant4 UI. /analysis/outputFile and /analysis/fileType respectively for diff --git a/examples/advanced/xray_fluorescence/SILIefficiency.dat b/examples/advanced/xray_fluorescence/SILIefficiency.dat old mode 100755 new mode 100644 diff --git a/examples/advanced/xray_fluorescence/SILIresponse.dat b/examples/advanced/xray_fluorescence/SILIresponse.dat old mode 100755 new mode 100644 diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh index 05d36a2d1c..3c4dfe418b 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh @@ -79,6 +79,13 @@ public: inline void CreatePersistency() {CreatePersistency(outputFileName,persistencyType);} + // methods to set the flag for the storage of the space of phases into ntuple + inline void PhaseSpaceOn(){phaseSpaceFlag = true;} + + inline void PhaseSpaceOff(){phaseSpaceFlag = false;} + + void ExtractData(); + //method to chenge the name of the output file void SetOutputFileName(G4String); @@ -89,9 +96,15 @@ public: G4bool GetDeletePersistencyFileFlag(); // methods used by RunManager and EvenManager to visualize partial results - // void InitializePlotter(); + void InitializePlotter(); - // void PlotCurrentResults(); + void PlotCurrentResults(); + + std::vector* GetEmittedParticleEnergies(); + std::vector* GetEmittedParticleTypes(); + void LoadGunData(G4String, G4bool); + + void SetPhysicFlag(G4bool); private: //private constructor in order to create a singleton @@ -99,12 +112,20 @@ private: G4String outputFileName; - // G4bool visPlotter; + G4bool visPlotter; + + G4bool phaseSpaceFlag; + + G4bool physicFlag; G4String persistencyType; G4bool deletePersistencyFile; + + std::vector* gunParticleEnergies; + std::vector* gunParticleTypes; + //Instance for singleton implementation this is the returned static XrayFluoAnalysisManager* instance; @@ -117,10 +138,9 @@ private: AIDA::IAnalysisFactory* analysisFactory; AIDA::ITree* tree; - AIDA::IHistogramFactory* histogramFactory; - // AIDA::IPlotterFactory* plotterFactory; - // AIDA::IPlotter* plotter; + AIDA::ITree* treeDet; + AIDA::IHistogramFactory* histogramFactory; AIDA::IHistogram1D* histo_1; AIDA::IHistogram1D* histo_2; AIDA::IHistogram1D* histo_3; @@ -133,6 +153,21 @@ private: //AIDA::IHistogram1D* histo_10; // //AIDA::IHistogram1D* histo_12; // Created for debuggig purpose //AIDA::IHistogram1D* histo_11; // + + AIDA::ICloud1D* beamCloud; + AIDA::ICloud1D* cloud_1; + AIDA::ICloud1D* cloud_2; + AIDA::ICloud1D* cloud_3; + + AIDA::ITupleFactory* tupleFactory; + AIDA::ITupleFactory* tupleDetFactory; + + AIDA::ITuple* tupleFluo; + AIDA::ITuple* tupleDetFluo; + + AIDA::IPlotterFactory* plotterFactory; + AIDA::IPlotter* plotter; + }; #endif diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisMessenger.hh b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisMessenger.hh index 9b8bd05b34..aa147a7b63 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisMessenger.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisMessenger.hh @@ -47,7 +47,10 @@ #include "G4UIcmdWithoutParameter.hh" #include "XrayFluoAnalysisManager.hh" #include "G4UIdirectory.hh" +#include "G4UIcmdWithABool.hh" class XrayFluoAnalysisManager; + + //class G4UIdirectory; //class G4UIcmdWithAString; @@ -71,6 +74,8 @@ private: G4UIcmdWithAString* outputFileCommand; G4UIcmdWithAString* outputFileType; G4UIcmdWithoutParameter* persistencyUpdateCommand; + G4UIcmdWithABool* physicFlagCmd; + }; #endif #endif diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh index e68ab1ccab..0b7614c619 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh @@ -74,6 +74,7 @@ public: void UpdateGeometry(); + void SetOhmicPosThickness(G4double); void SetSampleMaterial(G4String newMaterial); @@ -84,6 +85,15 @@ public: inline void SetSampleGranularity(G4bool granularity) {sampleGranularity = granularity;}; + inline void PhaseSpaceOn() + {phaseSpaceFlag = true;}; + + inline void PhaseSpaceOff() + {phaseSpaceFlag = false;}; + + inline G4bool GetPhaseSpaceFlag() + {return phaseSpaceFlag;}; + inline void SetGrainDia(G4double size) {grainDia = size;}; @@ -115,6 +125,9 @@ public: G4Material* GetOhmicNegMaterial() {return OhmicNegMaterial;}; G4double GetOhmicNegThickness() {return OhmicNegThickness;}; + G4ThreeVector GetDetectorPosition(); + G4ThreeVector GetSamplePosition() {return G4ThreeVector(0,0,0);}; + const G4VPhysicalVolume* GetphysiWorld() {return physiWorld;}; const G4VPhysicalVolume* GetHPGe() {return physiHPGe;}; const G4VPhysicalVolume* GetSample() {return physiSample;}; @@ -134,6 +147,7 @@ private: XrayFluoVDetectorType* detectorType; G4bool sampleGranularity; + G4bool phaseSpaceFlag; G4double DeviceSizeX; G4double DeviceSizeY; @@ -282,19 +296,28 @@ inline void XrayFluoDetectorConstruction::ComputeApparateParameters() { // Compute derived parameters of the apparate - DeviceThickness = PixelThickness+OhmicNegThickness+OhmicPosThickness; + if (phaseSpaceFlag) { - G4cout << "DeviceThickness(cm): "<< DeviceThickness/cm << G4endl; + WorldSizeZ = 10 *m; + WorldSizeXY = 10 *m; - DeviceSizeY =(NbOfPixelRows * std::max(ContactSizeXY,PixelSizeXY)); - DeviceSizeX =(NbOfPixelColumns * std::max(ContactSizeXY,PixelSizeXY)); - - G4cout << "DeviceSizeX(cm): "<< DeviceSizeX/cm < class G4ParticleGun; class G4Event; @@ -70,6 +73,13 @@ class XrayFluoPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction //set the flag for shooting particles from an isotropic source void SetIsoVert (G4String val) { isoVert = val ;} + //load data created in previous runs + void ActivatePhaseSpace(G4String); + + //load Raileigh scattered photon from previously loaded data + void SetRayleighFlag (G4bool); + + private: //pointer a to G4 service class G4ParticleGun* particleGun; @@ -92,6 +102,21 @@ private: //flag for shooting particles from an isotropic source G4String isoVert; + + //flag for the use of phase-space created with a previous run + G4bool phaseSpaceGunFlag; + + // the flag to load particle coming from Rayleigh scattering + G4bool rayleighFlag; + + // data for storage of phase space previously created + std::vector* particleEnergies; + std::vector* particleTypes; + + G4ThreeVector detectorPosition; + + + }; #endif diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorMessenger.hh b/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorMessenger.hh index aac0b99269..7b386cba70 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorMessenger.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorMessenger.hh @@ -41,7 +41,7 @@ class XrayFluoPrimaryGeneratorAction; class G4UIcmdWithAString; - +class G4UIcmdWithABool; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... class XrayFluoPrimaryGeneratorMessenger: public G4UImessenger @@ -59,15 +59,24 @@ private: //command to set a random impact point G4UIcmdWithAString* RndmCmd; - //command to choose a plane circular source + //command to choose a plane circular source G4UIcmdWithAString* RndmVert; //command to shot particles according to certain spectra - G4UIcmdWithAString* spectrum; + G4UIcmdWithAString* spectrum; + + //command to shot particles from an isotropic source + G4UIcmdWithAString* isoVert; + + //command to shot particles created during previous runs + G4UIcmdWithAString* loadPahseSpace; + + //command to set the flag to load Data abaout particle coming from Rayleigh scattering + G4UIcmdWithABool* loadRayleighData; - //command to shot particles from an isotropic source - G4UIcmdWithAString* isoVert; }; + + #endif diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoSimulation.hh b/examples/advanced/xray_fluorescence/include/XrayFluoSimulation.hh old mode 100755 new mode 100644 index f53f685f15..8284d23c63 --- a/examples/advanced/xray_fluorescence/include/XrayFluoSimulation.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoSimulation.hh @@ -42,7 +42,7 @@ public: ~XrayFluoSimulation(); - void RunSimulation(int argc,char** argv); + void RunSimulation(int argc,char* argv[]); private: diff --git a/examples/advanced/xray_fluorescence/initInter.mac b/examples/advanced/xray_fluorescence/initInter.mac index b9e4a6b3d6..0b60d324f1 100644 --- a/examples/advanced/xray_fluorescence/initInter.mac +++ b/examples/advanced/xray_fluorescence/initInter.mac @@ -10,7 +10,7 @@ # # create empty scene # -/vis/scene/create +#/vis/scene/create # # Create a scene handler for a specific graphics system # (Edit the next line(s) to choose another graphic system) diff --git a/examples/advanced/xray_fluorescence/readHbkAida3.py b/examples/advanced/xray_fluorescence/readHbkAida3.py deleted file mode 100644 index e7c491bbb1..0000000000 --- a/examples/advanced/xray_fluorescence/readHbkAida3.py +++ /dev/null @@ -1,5 +0,0 @@ -tree = tf.create("xrayfluo.hbk", "hbook", 1,0) -hf = af.createHistogramFactory(tree) -h1 = tree.findH1D("1") -pl.currentRegion().plot(h1) -pl.refresh() diff --git a/examples/advanced/xray_fluorescence/readPY.py b/examples/advanced/xray_fluorescence/readPY.py new file mode 100644 index 0000000000..afcfbb177b --- /dev/null +++ b/examples/advanced/xray_fluorescence/readPY.py @@ -0,0 +1,6 @@ +from AidaProxy import * +treeSim = Proxy_Store("xrayfluo.xml","xml",3) +histoSim = treeSim.retrieveH1D("1") +from rootPlotter2 import * +pl = RootPlotter() +pl.plot(histoSim) diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc index 8ab5c74b31..0821b23c69 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc @@ -48,8 +48,8 @@ XrayFluoAnalysisManager* XrayFluoAnalysisManager::instance = 0; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoAnalysisManager::XrayFluoAnalysisManager() - :outputFileName("xrayfluo"), /*visPlotter(false),*/ persistencyType("xml"), - deletePersistencyFile(true), analysisFactory(0), tree(0),histogramFactory(0)//, plotter(0) + :outputFileName("xrayfluo"), visPlotter(false), phaseSpaceFlag(false), physicFlag (false), persistencyType("xml"), + deletePersistencyFile(true), gunParticleEnergies(0), gunParticleTypes(0), analysisFactory(0), tree(0),histogramFactory(0), plotter(0) { //creating the messenger analisysMessenger = new XrayFluoAnalysisMessenger(this); @@ -58,19 +58,18 @@ XrayFluoAnalysisManager::XrayFluoAnalysisManager() // creating Analysis factroy, necessary to create/manage analysis analysisFactory = AIDA_createAnalysisFactory(); - // creating persistency - CreatePersistency(outputFileName,persistencyType); -// if(analysisFactory) { - + if(analysisFactory) { -// // Creating the plotter factory -// plotterFactory = analysisFactory->createPlotterFactory(); -// } - + // Creating the plotter factory + if (visPlotter){ + plotterFactory = analysisFactory->createPlotterFactory(); + } + } + G4cout << "XrayFluoAnalysisManager created" << G4endl; } @@ -84,11 +83,16 @@ XrayFluoAnalysisManager::~XrayFluoAnalysisManager() delete analysisFactory; analysisFactory = 0; - // delete plotterFactory; - // plotterFactory=0; + delete plotterFactory; + plotterFactory=0; delete tree; + if ( gunParticleEnergies ) delete gunParticleEnergies; + gunParticleEnergies = 0; + if ( gunParticleTypes ) delete gunParticleTypes; + gunParticleTypes = 0; + delete instance; G4cout << "XrayFluoAnalysisManager delete" << G4endl; @@ -110,106 +114,254 @@ void XrayFluoAnalysisManager::CreatePersistency(G4String fileName,G4String persi G4bool readOnly, G4bool createNew) { - if (tree) delete tree; - if (histogramFactory) delete histogramFactory; + if (tree) { + delete tree; + tree = 0; + } + if (treeDet) { + delete treeDet; + treeDet =0; + } + if (histogramFactory) { + delete histogramFactory; + histogramFactory = 0; + } + if (tupleFactory) { + delete tupleFactory; + tupleFactory = 0; + } - AIDA::ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); - if(treeFactory) { - if (persistencyType == "hbook") { - fileName = fileName + ".hbk"; - } - else if (persistencyType == "xml"){ - fileName = fileName + ".xml"; + if (tupleDetFactory) { + delete tupleDetFactory; + tupleDetFactory = 0; + } + G4String fileNameDet = fileName+"Detector"; + + AIDA::ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); + if(treeFactory) { + if (persistencyType == "hbook") { + fileName = fileName + ".hbk"; + fileNameDet = fileNameDet + ".hbk"; + } + else if (persistencyType == "xml"){ + fileName = fileName + ".xml"; + fileNameDet = fileNameDet + ".xml"; + } + + if (phaseSpaceFlag) { + + tree = treeFactory->create(fileName,persistencyType,readOnly,createNew); // output file + treeDet = treeFactory->create(fileNameDet,persistencyType,readOnly,createNew); // output file + if(analysisFactory) { + + tupleDetFactory = analysisFactory->createTupleFactory(*treeDet); + tupleFactory = analysisFactory->createTupleFactory(*tree); + } + } + + // trees to be stored in case of phase-space production + else { + tree = treeFactory->create(fileName,persistencyType,readOnly,createNew); // output file - delete treeFactory; // Will not delete the ITree. + if(analysisFactory) { + + histogramFactory = analysisFactory->createHistogramFactory(*tree); + + } } - if(analysisFactory) { - - - histogramFactory = analysisFactory->createHistogramFactory(*tree); - + + delete treeFactory; // Will not delete the ITree. } } void XrayFluoAnalysisManager::book() { - // Book histograms - - histo_1 = histogramFactory->createHistogram1D("1","Energy Deposit", 500,0.,10.); //20eV def. - histo_2 = histogramFactory->createHistogram1D("2","Gamma born in the sample", 100,0.,10.); - histo_3 = histogramFactory->createHistogram1D("3","Electrons born in the sample", 100,0.,10.); - histo_4 = histogramFactory->createHistogram1D("4","Gammas leaving the sample", 300,0.,10.); - histo_5 = histogramFactory->createHistogram1D("5","Electrons leaving the sample ",200000 ,0.,10.0); // .05 eV def. - histo_6 = histogramFactory->createHistogram1D("6","Gammas reaching the detector", 100,0.,10.); - histo_7 = histogramFactory->createHistogram1D("7","Spectrum of the incident particles", 100,0.,10.); - histo_8 = histogramFactory->createHistogram1D("8","Protons reaching the detector", 100,0.,10.); - histo_9 = histogramFactory->createHistogram1D("9","Protons leaving the sample", 100,0.,10.); - - // Debugging-purpose Histos - - //histo_10 = histogramFactory->createHistogram1D("10","Photon Origin", 4,0.,3.); - //histo_11 = histogramFactory->createHistogram1D("11","Spectrum from LowEnPhotoELectric", 300,0.,10.); - //histo_12 = histogramFactory->createHistogram1D("12","Spectrum From the other processes (unknown)", 300,0.,10.); - - // IHistogram2D* histo_20 = histogramFactory-> - //create2D("20","Phi, Theta",80 ,-3.14,3.14,80,0.,3.14); + if (phaseSpaceFlag) { + /* + // Book clouds + + cloud_1 = histogramFactory->createCloud1D("Gamma Exting Sample","ciao!",-1); + cloud_2 = histogramFactory->createCloud1D("Gamma Incident on the detector","ciao!",-1); + cloud_3 = histogramFactory->createCloud1D("Electrons Exiting the Sample","ciao!",-1); + beamCloud = histogramFactory->createCloud1D("Incident Radiation Spectrum","ciao!",-1); + */ + // Book output Tuple + + // Book tuple + std::vector columnNames; + columnNames.push_back("Particle"); + columnNames.push_back("Energies"); + columnNames.push_back("momentumTheta"); + columnNames.push_back("momentumPhi"); + columnNames.push_back("Processes"); + + std::vector columnTypes; + columnTypes.push_back("int"); + columnTypes.push_back("double"); + columnTypes.push_back("double"); + columnTypes.push_back("double"); + columnTypes.push_back("int"); // useful for hbk + + + tupleFluo = tupleFactory->create("10", "Total Tuple", columnNames, columnTypes, ""); + assert(tupleFluo); + + } + + else { + // Book histograms + + histo_1 = histogramFactory->createHistogram1D("1","Energy Deposit", 500,0.,10.); //20eV def. + histo_2 = histogramFactory->createHistogram1D("2","Gamma born in the sample", 100,0.,10.); + histo_3 = histogramFactory->createHistogram1D("3","Electrons born in the sample", 100,0.,10.); + histo_4 = histogramFactory->createHistogram1D("4","Gammas leaving the sample", 300,0.,10.); + histo_5 = histogramFactory->createHistogram1D("5","Electrons leaving the sample ",200000 ,0.,10.0); // .05 eV def. + histo_6 = histogramFactory->createHistogram1D("6","Gammas reaching the detector", 100,0.,10.); + histo_7 = histogramFactory->createHistogram1D("7","Spectrum of the incident particles", 100,0.,10.); + histo_8 = histogramFactory->createHistogram1D("8","Protons reaching the detector", 100,0.,10.); + histo_9 = histogramFactory->createHistogram1D("9","Protons leaving the sample", 100,0.,10.); + + // Debugging-purpose Histos + + //histo_10 = histogramFactory->createHistogram1D("10","Photon Origin", 4,0.,3.); + //histo_11 = histogramFactory->createHistogram1D("11","Spectrum from LowEnPhotoELectric", 300,0.,10.); + //histo_12 = histogramFactory->createHistogram1D("12","Spectrum From the other processes (unknown)", 300,0.,10.); + + // IHistogram2D* histo_20 = histogramFactory-> + //create2D("20","Phi, Theta",80 ,-3.14,3.14,80,0.,3.14); + } } - + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void XrayFluoAnalysisManager::LoadGunData(G4String fileName, G4bool raileighFlag) { + + // gunParticleEnergies = new std::vector; + // gunParticleTypes = new std::vector; + + G4String ext = fileName.substr(fileName.size()-3,fileName.size()-1); + G4String persistencyType; + + if (ext == "xml") { + + persistencyType = "xml"; + } + else if (ext == "hbk") { + + persistencyType = "hbook"; + } + + gunParticleEnergies = new std::vector; + gunParticleTypes = new std::vector; + + AIDA::ITreeFactory* treeDataFactory = analysisFactory->createTreeFactory(); + AIDA::ITree* treeData = treeDataFactory->create(fileName,persistencyType,true,false); // input file + AIDA::IManagedObject* mo = treeData->find("10"); + AIDA::ITuple* tupleData = dynamic_cast(mo); + tupleData->start(); + + while (tupleData->next()) { + if (raileighFlag ^ (!raileighFlag && (tupleData->getInt(4)) ) ) { + gunParticleEnergies->push_back(tupleData->getDouble(1)); + if (tupleData->getInt(0) == 1 ) gunParticleTypes->push_back("gamma"); + if (tupleData->getInt(0) == 0 ) gunParticleTypes->push_back("e-"); + } + + } + G4cout << "Maximum mumber of events: "<< gunParticleEnergies->size() <* XrayFluoAnalysisManager::GetEmittedParticleEnergies() { + + return gunParticleEnergies; + +} + +std::vector* XrayFluoAnalysisManager::GetEmittedParticleTypes() { + + return gunParticleTypes; + +} + + void XrayFluoAnalysisManager::finish() { -// if(plotter) { -// // Wait for the keyboard return to avoid destroying the plotter window too quickly. -// G4cout << "Press to exit" << G4endl; -// G4cin.get(); -// plotter->hide(); //hide plotter windows, but doesn't delete plotter -// } + if (tupleFluo) {ExtractData();}; + if(plotter) { + // Wait for the keyboard return to avoid destroying the plotter window too quickly. + G4cout << "Press to exit" << G4endl; + G4cin.get(); + plotter->hide(); //hide plotter windows, but doesn't delete plotter + } + if(tree) { tree->commit(); // Write histos in file. tree->close(); } - + if (treeDet) { + treeDet->commit(); + treeDet->close(); + } + deletePersistencyFile = false; - + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// void XrayFluoAnalysisManager::InitializePlotter() -// { +void XrayFluoAnalysisManager::InitializePlotter() +{ -// // If speciefied (visPlotter=true), -// // a window for the visulizaton of partial results is created -// if(plotterFactory && visPlotter && deletePersistencyFile) -// { -// plotter = plotterFactory->create(); -// // Set the page title : -// plotter->setParameter("pageTitle","XrayFluo"); -// } + // If speciefied (visPlotter=true), + // a window for the visulizaton of partial results is created + if(plotterFactory && visPlotter && deletePersistencyFile) + { + plotter = plotterFactory->create(); + // Set the page title : + plotter->setParameter("pageTitle","XrayFluo"); + } -// if(plotter && visPlotter) { -// plotter->show(); // shows plotter window -// } + if(plotter && visPlotter) { + plotter->show(); // shows plotter window + } -// } +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// void XrayFluoAnalysisManager::PlotCurrentResults() -// { -// if(plotter) { -// // Plotting the Detector Energy Deposit - histo_1 -// AIDA::IHistogram1D& histo1p = *histo_1; -// plotter->currentRegion().plot( histo1p, "Detector Energy Deposition" ); -// plotter->refresh(); -// } -// } +void XrayFluoAnalysisManager::PlotCurrentResults() +{ + if(plotter) { + if (phaseSpaceFlag){ + // Plotting the spectrum of Gamma exiting the sample - cloud1 + AIDA::ICloud1D& cloud = *cloud_1; + AIDA::IFilter* filterGamma = tupleFactory->createFilter( + " Particle == std::string(\"gamma\") "); + AIDA::IEvaluator* evaluatorEnergy = tupleFactory->createEvaluator("Energies"); + filterGamma->initialize(*tupleFluo); + evaluatorEnergy->initialize(*tupleFluo); + tupleFluo->project(cloud,*evaluatorEnergy,*filterGamma); + + plotter->currentRegion().plot( cloud, "Exiting Gammas " ); + plotter->refresh(); + } + + else{ + // Plotting the Detector Energy Deposit - histo_1 + AIDA::IHistogram1D& histo1p = *histo_1; + plotter->currentRegion().plot( histo1p, "Detector Energy Deposition" ); + plotter->refresh(); + } + + } +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4bool XrayFluoAnalysisManager::GetDeletePersistencyFileFlag() @@ -217,13 +369,74 @@ G4bool XrayFluoAnalysisManager::GetDeletePersistencyFileFlag() return deletePersistencyFile; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void XrayFluoAnalysisManager::SetPhysicFlag(G4bool val) +{ + physicFlag = val; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) { - + if (phaseSpaceFlag){ + + + G4String particleType=""; + G4String parentProcess=""; + G4ThreeVector momentum=0; + G4double particleEnergy=0; + + // Select volume from wich the step starts + if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Sample"){ + // Select volume in wich the step ends + if (physicFlag ^ (!physicFlag && (aStep->GetTrack()->GetNextVolume()->GetName() == "World" ))) { + // + // + // G4cout << "physicFlag: "<< physicFlag << G4endl + // << "NextVolume: "<< aStep->GetTrack()->GetNextVolume()->GetName() << G4endl; + + // extracting information needed + particleType = aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->GetParticleName(); + momentum = aStep->GetTrack()->GetDynamicParticle()->GetMomentum(); + particleEnergy = aStep->GetPreStepPoint()->GetKineticEnergy(); + G4int parent; + if(aStep->GetTrack()->GetCreatorProcess()){ + parentProcess = aStep->GetTrack()->GetCreatorProcess()->GetProcessName(); + parent = 1; + } + else { + parentProcess = "Not Known"; + parent = 0; + } + // filling tuple + + // G4cout<< particleType << G4endl; + G4int part = 2 ; + if (particleType == "gamma") part =1; + if (particleType == "e-") part = 0; + + tupleFluo->fill(0,part); + tupleFluo->fill(1,particleEnergy); + tupleFluo->fill(2,momentum.theta()); + tupleFluo->fill(3,momentum.phi()); + tupleFluo->fill(4,parent); //hacked to be useful for hbk + + tupleFluo->addRow(); + } + } + } + + + // Normal behaviour, without creation of phase space + else { + G4double gammaAtTheDetPre=0; G4double protonsAtTheDetPre=0; G4double gammaLeavingSample=0; @@ -408,7 +621,7 @@ void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) {if(0 != aStep->GetTrack()->GetParentID()) {if(aStep->GetTrack()->GetVolume()->GetName() == "Sample") - { +{ eleBornInSample = (aStep->GetPreStepPoint()->GetKineticEnergy()); if(histo_3) { histo_3->fill(eleBornInSample/keV); @@ -447,11 +660,45 @@ void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) } //} close of if(aStep->GetTrack()->GetVolume()->GetName() == "World"){ } - + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void XrayFluoAnalysisManager::ExtractData(){ + + if (tupleFluo->rows()) { + + + // AIDA::IFilter* filterGamma = tupleFactory->createFilter(" Particle == std::string(\"gamma\")"); + // AIDA::IFilter* filterEminus = tupleFactory->createFilter(" Particle == std::string(\"e-\")"); + + + AIDA::IFilter* filterAngle = tupleFactory->createFilter("(momentumPhi >= (220. * (3.1415926/180.) )) && + (momentumPhi <= (230. * (3.1415926/180.) )) && + (momentumTheta >= (130. * (3.1415926/180.) )) && + (momentumTheta <= (140. * (3.1415926/180.) )) " ); + + + // filterGamma ->initialize(*tupleFluo); + // filterEminus ->initialize(*tupleFluo); + filterAngle->initialize(*tupleFluo); + + // Create IEvaluator and initialize it to this ITuple + // AIDA::IEvaluator* evaluatorEnergy = tupleFactory->createEvaluator("Energies"); + // evaluatorEnergy->initialize(*tupleFluo); + + // tupleFluo->project(*cloud_1,*evaluatorEnergy,*filterGamma); + // tupleFluo->project(*cloud_2,*evaluatorEnergy,*filterAngle); + // tupleFluo->project(*cloud_3,*evaluatorEnergy,*filterEminus); + + tupleDetFluo = tupleDetFactory->createFiltered("1", *tupleFluo, *filterAngle); + assert(tupleDetFluo); + } +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + void XrayFluoAnalysisManager::analyseEnergyDep(G4double energyDep) { @@ -468,7 +715,12 @@ void XrayFluoAnalysisManager::analysePrimaryGenerator(G4double energy) // Filling of energy spectrum histogram of the primary generator + if (phaseSpaceFlag){ + // beamCloud->fill(energy/keV); + } + else { histo_7->fill(energy/keV); + } } diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisMessenger.cc index 7b4c52836d..723edea00d 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisMessenger.cc @@ -67,6 +67,14 @@ XrayFluoAnalysisMessenger::XrayFluoAnalysisMessenger(XrayFluoAnalysisManager* an outputFileCommand->SetGuidance("Update persistency file"); outputFileCommand->SetGuidance("This command MUST be used after outputFile or outputFileType commands"); outputFileCommand->AvailableForStates(G4State_Idle); + + physicFlagCmd = new G4UIcmdWithABool("/analysis/setPhysicProduction",this); + physicFlagCmd->SetGuidance("Select if data stored in the Pahse-Space must contain physical data or particles exiting the sample"); + physicFlagCmd->SetGuidance("To be used before and togheter with /gun/loadGunData"); + physicFlagCmd->SetParameterName("Physyc Flag",true); + physicFlagCmd->SetDefaultValue(false); + physicFlagCmd->AvailableForStates(G4State_Idle); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -96,7 +104,11 @@ void XrayFluoAnalysisMessenger::SetNewValue(G4UIcommand* command,G4String newVal if (xrayFluoAnalysis->GetDeletePersistencyFileFlag()) remove("xrayfluo.hbk"); xrayFluoAnalysis->SetOutputFileType(newValue); } - + if( command == physicFlagCmd ) + { + G4bool newPhysFlag = physicFlagCmd->GetNewBoolValue(newValue); + xrayFluoAnalysis->SetPhysicFlag(newPhysFlag); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc index be4355a2ef..0ffbfb426e 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc @@ -132,22 +132,23 @@ void XrayFluoDataSet::LoadData(const G4String& fileName) { // Build the complete string identifying the file with the data set - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); - - ost << fileName <<".dat"; - - G4String name(nameChar); - G4String dirFile = name; + G4String dirFile = ""; + + char* path; + +#ifndef XRAYDATA +#define XRAYDATA PWD +#endif + + path = getenv("XRAYDATA"); + + G4cout << path << G4endl; + G4cout << fileName << G4endl; + - if (!(getenv("XRAYDATA"))) { - - char* path = getenv("PWD"); - G4String pathString(path); - dirFile = pathString + "/" + name; - } + dirFile = pathString + "/" + fileName + ".dat"; std::ifstream file(dirFile); std::filebuf* lsdp = file.rdbuf(); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc index 65a7ae916f..04e3841856 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoDetectorConstruction.cc -// GEANT4 tag $Name: xray_fluo-V06-02-00 +// GEANT4 tag $Name: xray_fluo-V03-02-00 // // Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it) // @@ -32,7 +32,6 @@ // Nov 2002 Alfonso Mantero materials added, // Material selection implementation // 16 Jul 2003 Alfonso Mantero Detector type selection added + minor fixes -// 28 May 2004 Alfonso Mantero sample material selection + bug fixes // ------------------------------------------------------------------- #include "XrayFluoDetectorConstruction.hh" @@ -63,8 +62,8 @@ XrayFluoDetectorConstruction::XrayFluoDetectorConstruction() - : detectorType(0),sampleGranularity(false), DeviceSizeX(0), - DeviceSizeY(0),DeviceThickness(0), + : detectorType(0),sampleGranularity(false), phaseSpaceFlag(false), + DeviceSizeX(0), DeviceSizeY(0),DeviceThickness(0), solidWorld(0),logicWorld(0),physiWorld(0), solidHPGe(0),logicHPGe(0),physiHPGe(0), solidSample (0),logicSample(0),physiSample (0), @@ -92,7 +91,7 @@ XrayFluoDetectorConstruction::XrayFluoDetectorConstruction() G4cout << "PixelThickness(mm): "<< PixelThickness/mm << G4endl; G4cout << "PixelSizeXY(cm): "<< PixelSizeXY/cm << G4endl; - ContactSizeXY = std::sqrt(40.) * mm; //should be the same as PixelSizeXY + ContactSizeXY = std::sqrt(40.) * mm; //std::sqrt(40) * mm; //should be the same as PixelSizeXY SampleThickness = 4 * mm; SampleSizeXY = 3. * cm; Dia1Thickness = 1. *mm; @@ -101,7 +100,7 @@ XrayFluoDetectorConstruction::XrayFluoDetectorConstruction() Dia3SizeXY = 3. *cm; - DiaInnerSize = 1 * mm; //(Hole in the detector's diaphragm) + DiaInnerSize = 1.0 * mm; //(Hole in the detector's diaphragm) OhmicNegThickness = 0.005*mm;// 0.005 @@ -124,13 +123,12 @@ XrayFluoDetectorConstruction::XrayFluoDetectorConstruction() +PixelThickness)/2+OhmicPosThickness ; grainDia = 1 * mm; - - PixelCopyNb=0; grainCopyNb=0; G4String defaultDetectorType = "sili"; ComputeApparateParameters(); - SetDetectorType(defaultDetectorType); + + if (!phaseSpaceFlag) SetDetectorType(defaultDetectorType); // create commands for interactive definition of the apparate @@ -203,17 +201,39 @@ void XrayFluoDetectorConstruction::DefineDefaultMaterials() //define materials of the apparate - sampleMaterial = materials->GetMaterial("Anorthosite"); + sampleMaterial = materials->GetMaterial("MadaBasalt"); Dia1Material = materials->GetMaterial("Lead"); - Dia3Material = materials->GetMaterial("Lead"); + Dia3Material = materials->GetMaterial("Galactic"); pixelMaterial = materials->GetMaterial("Silicon"); - OhmicPosMaterial = materials->GetMaterial("Galactic"); + OhmicPosMaterial = materials->GetMaterial("Copper"); OhmicNegMaterial = materials->GetMaterial("Lead"); defaultMaterial = materials->GetMaterial("Galactic"); } + void XrayFluoDetectorConstruction::SetOhmicPosThickness(G4double val) +{ + + if (!phaseSpaceFlag) { + + + if (val == 0.0) { + OhmicPosMaterial = materials->GetMaterial("Galactic"); + } + else { + OhmicPosThickness = val; + OhmicPosMaterial = materials->GetMaterial("Copper"); + } + + } + else{ + G4cout << "Not available in this configuration" << G4cout; + } + +} + + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4VPhysicalVolume* XrayFluoDetectorConstruction::ConstructApparate() @@ -239,127 +259,129 @@ G4VPhysicalVolume* XrayFluoDetectorConstruction::ConstructApparate() 0); //copy number //HPGeDetector - - solidHPGe = 0; physiHPGe = 0; logicHPGe=0; - solidPixel=0; logicPixel=0; physiPixel=0; - - if (DeviceThickness > 0.) - { - solidHPGe = new G4Box("HPGeDetector", //its name - DeviceSizeX/2,DeviceSizeY/2,DeviceThickness/2);//size - - - logicHPGe = new G4LogicalVolume(solidHPGe, //its solid - defaultMaterial, //its material - "HPGeDetector"); //its name - - zRotPhiHPGe.rotateX(PhiHPGe); - G4double x,y,z; - z = DistDe * std::cos(ThetaHPGe); - y =DistDe * std::sin(ThetaHPGe); - x = 0.*cm; - physiHPGe = new G4PVPlacement(G4Transform3D(zRotPhiHPGe,G4ThreeVector(x,y,z)), - "HPGeDetector", //its name - logicHPGe, //its logical volume - physiWorld, //its mother volume - false, //no boolean operation - 0); //copy number - } - // Pixel - - - - for ( G4int j=0; j < NbOfPixelColumns ; j++ ) - { for ( G4int i=0; i < NbOfPixelRows ; i++ ) - { - solidPixel=0; logicPixel=0; physiPixel=0; - if (PixelThickness > 0.) - solidPixel = new G4Box("Pixel", - PixelSizeXY/2,PixelSizeXY/2, PixelThickness/2); + if (!phaseSpaceFlag) { + + solidHPGe = 0; physiHPGe = 0; logicHPGe=0; + solidPixel=0; logicPixel=0; physiPixel=0; + + if (DeviceThickness > 0.) + { + solidHPGe = new G4Box("HPGeDetector", //its name + DeviceSizeX/2,DeviceSizeY/2,DeviceThickness/2);//size + + + logicHPGe = new G4LogicalVolume(solidHPGe, //its solid + defaultMaterial, //its material + "HPGeDetector"); //its name - logicPixel = new G4LogicalVolume(solidPixel, - pixelMaterial, //its material - "Pixel"); //its name - - /* zRotPhiHPGe.rotateX(PhiHPGe); G4double x,y,z; z = DistDe * std::cos(ThetaHPGe); y =DistDe * std::sin(ThetaHPGe); - x = 0.*cm;*/ - physiPixel = new G4PVPlacement(0, - G4ThreeVector(0, - i*PixelSizeXY, - j*PixelSizeXY ), - "Pixel", - logicPixel, //its logical volume - physiHPGe, //its mother volume - false, //no boolean operation - PixelCopyNb);//copy number - - - - - - - // OhmicNeg - - solidOhmicNeg=0; logicOhmicNeg=0; physiOhmicNeg=0; - - if (OhmicNegThickness > 0.) - { solidOhmicNeg = new G4Box("OhmicNeg", //its name - PixelSizeXY/2,PixelSizeXY/2,OhmicNegThickness/2); - - logicOhmicNeg = new G4LogicalVolume(solidOhmicNeg, //its solid - OhmicNegMaterial, //its material - "OhmicNeg"); //its name - - physiOhmicNeg = new G4PVPlacement(0, - G4ThreeVector - (0., - 0., - (PixelThickness+OhmicNegThickness)/2), - "OhmicNeg", //its name - logicOhmicNeg, //its logical volume - physiHPGe, //its mother - false, //no boulean operat - PixelCopyNb); //copy number - - } - // OhmicPos - solidOhmicPos=0; logicOhmicPos=0; physiOhmicPos=0; - - if (OhmicPosThickness > 0.) - { solidOhmicPos = new G4Box("OhmicPos", //its name - PixelSizeXY/2,PixelSizeXY/2,OhmicPosThickness/2); - - logicOhmicPos = new G4LogicalVolume(solidOhmicPos, //its solid - OhmicPosMaterial, //its material - "OhmicPos"); //its name - - physiOhmicPos = new G4PVPlacement(0, - G4ThreeVector(0., - 0., - (-PixelThickness-OhmicPosThickness)/2), - "OhmicPos", - logicOhmicPos, - physiHPGe, - false, - PixelCopyNb); - - } - - PixelCopyNb += PixelCopyNb; - G4cout << "PixelCopyNb: " << PixelCopyNb << G4endl; + x = 0.*cm; + physiHPGe = new G4PVPlacement(G4Transform3D(zRotPhiHPGe,G4ThreeVector(x,y,z)), + "HPGeDetector", //its name + logicHPGe, //its logical volume + physiWorld, //its mother volume + false, //no boolean operation + 0); //copy number } - - } + // Pixel + + + + + for ( G4int j=0; j < NbOfPixelColumns ; j++ ) + { for ( G4int i=0; i < NbOfPixelRows ; i++ ) + { + solidPixel=0; logicPixel=0; physiPixel=0; + if (PixelThickness > 0.) + solidPixel = new G4Box("Pixel", + PixelSizeXY/2,PixelSizeXY/2, PixelThickness/2); + + logicPixel = new G4LogicalVolume(solidPixel, + pixelMaterial, //its material + "Pixel"); //its name + + /* + zRotPhiHPGe.rotateX(PhiHPGe); + G4double x,y,z; + z = DistDe * std::cos(ThetaHPGe); + y =DistDe * std::sin(ThetaHPGe); + x = 0.*cm;*/ + physiPixel = new G4PVPlacement(0, + G4ThreeVector(0, + i*PixelSizeXY, + j*PixelSizeXY ), + "Pixel", + logicPixel, //its logical volume + physiHPGe, //its mother volume + false, //no boolean operation + PixelCopyNb);//copy number + + + + + + + // OhmicNeg + + solidOhmicNeg=0; logicOhmicNeg=0; physiOhmicNeg=0; + + if (OhmicNegThickness > 0.) + { solidOhmicNeg = new G4Box("OhmicNeg", //its name + PixelSizeXY/2,PixelSizeXY/2,OhmicNegThickness/2); + + logicOhmicNeg = new G4LogicalVolume(solidOhmicNeg, //its solid + OhmicNegMaterial, //its material + "OhmicNeg"); //its name + + physiOhmicNeg = new G4PVPlacement(0, + G4ThreeVector + (0., + 0., + (PixelThickness+OhmicNegThickness)/2), + "OhmicNeg", //its name + logicOhmicNeg, //its logical volume + physiHPGe, //its mother + false, //no boulean operat + PixelCopyNb); //copy number + + } + // OhmicPos + solidOhmicPos=0; logicOhmicPos=0; physiOhmicPos=0; + + if (OhmicPosThickness > 0.) + { solidOhmicPos = new G4Box("OhmicPos", //its name + PixelSizeXY/2,PixelSizeXY/2,OhmicPosThickness/2); + + logicOhmicPos = new G4LogicalVolume(solidOhmicPos, //its solid + OhmicPosMaterial, //its material + "OhmicPos"); //its name + + physiOhmicPos = new G4PVPlacement(0, + G4ThreeVector(0., + 0., + (-PixelThickness-OhmicPosThickness)/2), + "OhmicPos", + logicOhmicPos, + physiHPGe, + false, + PixelCopyNb); + + } + + PixelCopyNb += PixelCopyNb; + G4cout << "PixelCopyNb: " << PixelCopyNb << G4endl; + } + + } + + } + + //Sample - - - //Sample - if (sampleGranularity) { solidSample=0; logicSample=0; physiSample=0; @@ -410,10 +432,10 @@ G4VPhysicalVolume* XrayFluoDetectorConstruction::ConstructApparate() sampleMaterial, //its material "Grain"); //its name G4ThreeVector grainPosition; - G4double grainInitPositionX = 0.; - G4double grainInitPositionY = 0.; + G4double grainInitPositionX = 0; + G4double grainInitPositionY = 0; G4double grainInitPositionZ = (-1.*SampleThickness/2.+grainDia/2.); - G4double grainStepX = grainDia; + G4double grainStepX = grainDia = 0; G4double grainStepY = grainDia*(1.-(0.5-(std::sqrt(3.)/4.))); G4double grainStepZ = grainDia*std::sqrt(2./3.); @@ -502,52 +524,53 @@ G4VPhysicalVolume* XrayFluoDetectorConstruction::ConstructApparate() } } + + if (!phaseSpaceFlag) { + //Diaphragm1 - //Diaphragm1 + solidDia1 = 0; physiDia1 = 0; logicDia1=0; - solidDia1 = 0; physiDia1 = 0; logicDia1=0; - - if (Dia1Thickness > 0.) - { - solidDia1 = new G4Tubs("Diaphragm1", //its name - DiaInnerSize/2, - Dia1SizeXY/2, - Dia1Thickness/2, - 0, - 360);//size - - - logicDia1 = new G4LogicalVolume(solidDia1, //its solid - Dia1Material, //its material - "Diaphragm1"); //its name - - zRotPhiDia1.rotateX(AlphaDia1); - G4double x,y,z; - z = DistDia * std::cos(ThetaDia1); - y =DistDia * std::sin(ThetaDia1); - x = 0.*cm; - physiDia1 = new G4PVPlacement(G4Transform3D(zRotPhiDia1,G4ThreeVector(x,y,z)), - "Diaphragm1", //its name - logicDia1, //its logical volume - physiWorld, //its mother volume - false, //no boolean operation - 0); //copy number - } - - //Diaphragm3 - - solidDia3 = 0; physiDia3 = 0; logicDia3 =0; - - if (Dia3Thickness > 0.) - { - solidDia3 = new G4Tubs("Diaphragm3", - Dia3InnerSize/2, - Dia3SizeXY/2, - Dia3Thickness/2, - 0, - 360); - - + if (Dia1Thickness > 0.) + { + solidDia1 = new G4Tubs("Diaphragm1", //its name + DiaInnerSize/2, + Dia1SizeXY/2, + Dia1Thickness/2, + 0, + 360);//size + + + logicDia1 = new G4LogicalVolume(solidDia1, //its solid + Dia1Material, //its material + "Diaphragm1"); //its name + + zRotPhiDia1.rotateX(AlphaDia1); + G4double x,y,z; + z = DistDia * std::cos(ThetaDia1); + y =DistDia * std::sin(ThetaDia1); + x = 0.*cm; + physiDia1 = new G4PVPlacement(G4Transform3D(zRotPhiDia1,G4ThreeVector(x,y,z)), + "Diaphragm1", //its name + logicDia1, //its logical volume + physiWorld, //its mother volume + false, //no boolean operation + 0); //copy number + } + + //Diaphragm3 + + solidDia3 = 0; physiDia3 = 0; logicDia3 =0; + + if (Dia3Thickness > 0.) + { + solidDia3 = new G4Tubs("Diaphragm3", + Dia3InnerSize/2, + Dia3SizeXY/2, + Dia3Thickness/2, + 0, + 360); + + logicDia3 = new G4LogicalVolume(solidDia3, //its solid Dia3Material, //its material "Diaphragm3"); //its name @@ -562,40 +585,43 @@ G4VPhysicalVolume* XrayFluoDetectorConstruction::ConstructApparate() physiWorld, //its mother volume false, //no boolean operation 0); //copy number - } + } + } + + if (!phaseSpaceFlag) { + + G4SDManager* SDman = G4SDManager::GetSDMpointer(); - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - - if(!HPGeSD) - { - HPGeSD = new XrayFluoSD ("HPGeSD",this); - SDman->AddNewDetector(HPGeSD); - } - - - if (logicPixel) - { - logicPixel->SetSensitiveDetector(HPGeSD); - } - + + if(!HPGeSD) + { + HPGeSD = new XrayFluoSD ("HPGeSD",this); + SDman->AddNewDetector(HPGeSD); + } + + + if (logicPixel) + { + logicPixel->SetSensitiveDetector(HPGeSD); + } + } // cut per region - - + + logicSample->SetRegion(sampleRegion); sampleRegion->AddRootLogicalVolume(logicSample); - + // Visualization attributes logicWorld->SetVisAttributes (G4VisAttributes::Invisible); - G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - G4VisAttributes * yellow= new G4VisAttributes( G4Colour(255/255. ,255/255. ,51/255. )); - G4VisAttributes * red= new G4VisAttributes( G4Colour(255/255. , 0/255. , 0/255. )); - G4VisAttributes * blue= new G4VisAttributes( G4Colour(0/255. , 0/255. , 255/255. )); - G4VisAttributes * gray= new G4VisAttributes( G4Colour(128/255. , 128/255. , 128/255. )); - G4VisAttributes * lightGray= new G4VisAttributes( G4Colour(178/255. , 178/255. , 178/255. )); + G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + G4VisAttributes * yellow= new G4VisAttributes( G4Colour(255/255. ,255/255. ,51/255. )); + G4VisAttributes * red= new G4VisAttributes( G4Colour(255/255. , 0/255. , 0/255. )); + G4VisAttributes * blue= new G4VisAttributes( G4Colour(0/255. , 0/255. , 255/255. )); + G4VisAttributes * gray= new G4VisAttributes( G4Colour(128/255. , 128/255. , 128/255. )); + G4VisAttributes * lightGray= new G4VisAttributes( G4Colour(178/255. , 178/255. , 178/255. )); yellow->SetVisibility(true); yellow->SetForceSolid(true); red->SetVisibility(true); @@ -606,19 +632,20 @@ G4VPhysicalVolume* XrayFluoDetectorConstruction::ConstructApparate() lightGray->SetVisibility(true); lightGray->SetForceSolid(true); simpleBoxVisAtt->SetVisibility(true); - - logicPixel->SetVisAttributes(red); //modified!!! - logicHPGe->SetVisAttributes(blue); - + if (!phaseSpaceFlag) { + logicPixel->SetVisAttributes(red); //modified!!! + logicHPGe->SetVisAttributes(blue); + + logicDia1->SetVisAttributes(lightGray); + logicDia3->SetVisAttributes(lightGray); + + logicOhmicNeg->SetVisAttributes(yellow); + logicOhmicPos->SetVisAttributes(yellow); + + } logicSample->SetVisAttributes(simpleBoxVisAtt); if (sampleGranularity) logicSample->SetVisAttributes(simpleBoxVisAtt); // mandatory - - logicDia1->SetVisAttributes(lightGray); - logicDia3->SetVisAttributes(lightGray); - - logicOhmicNeg->SetVisAttributes(yellow); - logicOhmicPos->SetVisAttributes(yellow); @@ -647,12 +674,14 @@ void XrayFluoDetectorConstruction::PrintApparateParameters() << " cm" << G4endl <<" Material: " << logicSample->GetMaterial()->GetName() - <GetName() - <GetName() + <GetName() + <DefineWorldVolume(ConstructApparate()); + } @@ -695,6 +727,22 @@ void XrayFluoDetectorConstruction::DeleteGrainObjects() } } + +G4ThreeVector XrayFluoDetectorConstruction::GetDetectorPosition() +{ + + + + G4double z = DistDe * std::cos(ThetaHPGe); + G4double y = DistDe * std::sin(ThetaHPGe); + G4double x = 0.*cm; + + G4ThreeVector position(x,y,z); + + return position; + +} + void XrayFluoDetectorConstruction::SetSampleMaterial(G4String newMaterial) { diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc index 24ae82188a..37a09d8cfb 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc @@ -59,7 +59,7 @@ XrayFluoDetectorMessenger::XrayFluoDetectorMessenger(XrayFluoDetectorConstructio sampleCmd->SetGuidance("select a diferent material for the sample"); sampleCmd->SetParameterName("material",true); sampleCmd->SetDefaultValue("mars1"); - sampleCmd->SetCandidates("Dolorite Iron Silicon Aluinium Oxigen Titanium Tin Lead Neodimium Magnesium Copper Anorthosite Mars1"); + sampleCmd->SetCandidates("Dolorite Iron Silicon Aluinium Oxigen Titanium Tin Lead Neodimium Magnesium Copper Anorthosite Mars1 IceBasalt Silver Gold Caesium Potassium Manganese Phosphorus Sulphur Calcium Sodium Uranium HPGe"); sampleCmd->AvailableForStates(G4State_Idle); detectorCmd = new G4UIcmdWithAString("/apparate/detector",this); @@ -85,6 +85,14 @@ XrayFluoDetectorMessenger::XrayFluoDetectorMessenger(XrayFluoDetectorConstructio granularityFlagCmd->SetDefaultValue(false); granularityFlagCmd->AvailableForStates(G4State_Idle); + OhmicPosThicknessCmd = new G4UIcmdWithADoubleAndUnit( "/apparate/ohmicPosThickness",this ); + OhmicPosThicknessCmd->SetGuidance( "Changes thickness of the detector anode" ); + OhmicPosThicknessCmd->SetGuidance( "After this, /apparate/update must be executed before BeamOn" ); + OhmicPosThicknessCmd->SetGuidance( "Default: 0.005 mm " ); + OhmicPosThicknessCmd->SetParameterName( "OhmicPos Thickness", true, true ); + OhmicPosThicknessCmd->SetDefaultUnit( "mm" ); + OhmicPosThicknessCmd->SetUnitCategory( "Length" ); + OhmicPosThicknessCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -120,7 +128,11 @@ void XrayFluoDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newVal G4bool newGranFlag = granularityFlagCmd->GetNewBoolValue(newValue); Detector->SetSampleGranularity(newGranFlag); } - + else if ( command == OhmicPosThicknessCmd ) + { + G4double newSize = OhmicPosThicknessCmd->GetNewDoubleValue(newValue); + Detector->SetOhmicPosThickness(newSize); + } } diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc index 6eaacc600e..79623015e6 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc @@ -60,14 +60,18 @@ XrayFluoEventAction::XrayFluoEventAction(XrayFluoDetectorConstruction* det) :drawFlag("all"), - HPGeCollID(-1), + HPGeCollID(0), eventMessenger(0), printModulo(1), detectorType(0) { eventMessenger = new XrayFluoEventActionMessenger(this); - detectorType = det->GetDetectorType(); - + + if (!(det->GetPhaseSpaceFlag()) ){ + detectorType = det->GetDetectorType(); + HPGeCollID=-1; + } + //runManager = new XrayFluoRunAction(); G4cout << "XrayFluoEventAction created" << G4endl; } @@ -104,6 +108,10 @@ XrayFluoEventAction::XrayFluoEventAction(XrayFluoMercuryDetectorConstruction* de G4cout << "XrayFluoEventAction created" << G4endl; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoEventAction::~XrayFluoEventAction() @@ -132,10 +140,9 @@ void XrayFluoEventAction::BeginOfEventAction(const G4Event* evt) if ( eventNumber % (G4int)5e6 != 0 ) G4cout << "#" << std::flush; else G4cout << "#"<< G4endl; // if ( eventNumber % 5e6 == 0 ) G4cout << "#"<< G4endl; - // #ifdef G4ANALYSIS_USE - // XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); - // analysis->PlotCurrentResults(); - // #endif + + XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); + analysis->PlotCurrentResults(); } if (HPGeCollID==-1) @@ -151,45 +158,47 @@ void XrayFluoEventAction::BeginOfEventAction(const G4Event* evt) void XrayFluoEventAction::EndOfEventAction(const G4Event* evt) { - // extracted from hits, compute the total energy deposit (and total charged - // track length) - G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - - - XrayFluoSensorHitsCollection* HPGeHC = 0; - G4int n_hit = 0; - G4double totEnergyDetect=0., totEnergy=0., energyD=0.; - - if (HCE) HPGeHC = (XrayFluoSensorHitsCollection*)(HCE->GetHC(HPGeCollID)); - if(HPGeHC) - - - { - n_hit = HPGeHC->entries(); + if (detectorType) { + + // extracted from hits, compute the total energy deposit (and total charged + // track length) + G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); + + XrayFluoSensorHitsCollection* HPGeHC = 0; + G4int n_hit = 0; + G4double totEnergyDetect=0., totEnergy=0., energyD=0.; + + if (HCE) HPGeHC = (XrayFluoSensorHitsCollection*)(HCE->GetHC(HPGeCollID)); + if(HPGeHC) - // if (n_hit) {G4cout << "Number of Hits in the detector "<< n_hit << G4endl;} - for (G4int i=0;iGetEdepTot(); - - - - energyD = detectorType->ResponseFunction(totEnergy); - // energyD = totEnergy; - // G4cout << "energy deposit: "<< totEnergy << G4endl; -#ifdef G4ANALYSIS_USE - XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); - analysis->analyseEnergyDep(energyD); -#endif - totEnergyDetect += energyD; - - - } - } - + { + n_hit = HPGeHC->entries(); + + // if (n_hit) {G4cout << "Ecco quante hit ho nel detector "<< n_hit << G4endl;} + + for (G4int i=0;iGetEdepTot(); + + + + energyD = detectorType->ResponseFunction(totEnergy); + // energyD = totEnergy; + // G4cout << "energy deposit: "<< totEnergy << G4endl; + + XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); + analysis->analyseEnergyDep(energyD); + + totEnergyDetect += energyD; + + + } + } + } + // extract the trajectories and draw them if (G4VVisManager::GetConcreteInstance()) diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoMaterials.cc b/examples/advanced/xray_fluorescence/src/XrayFluoMaterials.cc index 23ad0b9a5c..147d46a0c3 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoMaterials.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoMaterials.cc @@ -113,6 +113,12 @@ void XrayFluoMaterials::CreateMaterials() a = 50.942*g/mole; G4Element* V = new G4Element(name="Vanadium" ,symbol="V" , z= 39., a); + //define Vanadium + + a = 183.84*g/mole; + G4Element* W = new G4Element(name="Tungsten" ,symbol="W" , z= 74., a); + + //define Cromium a = 51.996*g/mole; @@ -147,7 +153,7 @@ void XrayFluoMaterials::CreateMaterials() //Define Zolfo a = 32.064*g/mole; - G4Element* elS = new G4Element(name="Zolfo" ,symbol="S" , z= 16., a); + G4Element* elS = new G4Element(name="Sulphur" ,symbol="S" , z= 16., a); //define carbon @@ -183,8 +189,8 @@ void XrayFluoMaterials::CreateMaterials() //define germanium a = 72.61*g/mole; G4Element* Ge = new G4Element(name="Germanium",symbol="Ge", z= 32.,a); - //define phosporus + //define phosporus a = 30.97*g/mole; G4Element* P = new G4Element(name="Phosporus",symbol="P", z= 15., a); @@ -246,17 +252,156 @@ void XrayFluoMaterials::CreateMaterials() a = 35.453 * g/mole; G4Element * Cl = new G4Element( name="Chlorine",symbol="Cl",z= 17.,a); + // define Lantanium + a = 138.91 * g/mole; + G4Element * La = new G4Element( name="Lantanium",symbol="La",z= 57.,a); + + // define Molibdenum + a = 95.94 * g/mole; + G4Element * Mo = new G4Element( name="Molibdenum",symbol="Mo",z= 42.,a); + + // define Thorium + a = 232.0381*g/mole; + G4Element* Th = new G4Element(name="Thorium",symbol="Th" , z= 90., a); + + // define Samarium + a = 150.36*g/mole; + G4Element* Sm = new G4Element(name="Samarium",symbol="Sm" , z= 62., a); + + // define Europium + a = 151.964*g/mole; + G4Element* Eu = new G4Element(name="Europium",symbol="Eu" , z= 63., a); + + // define Gadolinium + a = 157.25*g/mole; + G4Element* Gd = new G4Element(name="Gadolinium",symbol="Gd" , z= 64., a); + + // define Terbium + a = 158.92534*g/mole; + G4Element* Tb = new G4Element(name="Terbium",symbol="Tb" , z= 65., a); + + // define Ytterbium + a = 173.04*g/mole; + G4Element* Yb = new G4Element(name="Ytterbium",symbol="Yb" , z= 70., a); + + // define Lutetium + a = 174.967*g/mole; + G4Element* Lu = new G4Element(name="Lutetium",symbol="Lu" , z= 71., a); + + // define Tantalum + a = 180.9479*g/mole; + G4Element* Ta = new G4Element(name="Tantalum",symbol="Ta" , z= 73., a); + + // define Hafnium + a = 178.49*g/mole; + G4Element* Hf = new G4Element(name="Hafnium",symbol="Hf" , z= 73., a); G4cout << "Elements created" << G4endl; - - - - // Materials Definitions - // Define dolorite main components + // Define Madagascar Basalt main components 0054.PP.0044 sample + density = 3*g/cm3; + G4Material* madaBasaltMain= new G4Material(name="MadaBasaltMain", density, ncomponents=11); + madaBasaltMain->AddElement(elSi,fractionmass=0.1992); // 0.007093 mol/g(mat) + madaBasaltMain->AddElement(elTi,fractionmass=0.02027); // 4.235e-4 + madaBasaltMain->AddElement(elAl,fractionmass=0.04758); // 0.001763 + madaBasaltMain->AddElement(Fe, fractionmass=0.1303); // 0.002333 + madaBasaltMain->AddElement(Mn, fractionmass=0.001549);// 2.820e-5 + madaBasaltMain->AddElement(Mg, fractionmass=0.08141); // 0.003350 + madaBasaltMain->AddElement(Ca, fractionmass=0.06468); // 0.001614 + madaBasaltMain->AddElement(Na, fractionmass=0.01692); // 7.360e-4 + madaBasaltMain->AddElement(K, fractionmass=0.008576);// 2.193e-4 + madaBasaltMain->AddElement(P, fractionmass=0.001977);// 6.383e-5 + madaBasaltMain->AddElement(O, fractionmass=0.427538);// 0.02672 + // sum is 0.04434383 total number of moles of atoms in one gram of material + // 2.248766e8 g per 10.000.000 moles. + +// Define Madagascar Basalt traces components 0054.PP.0044 sample + density = 3*g/cm3; + G4Material* madaBasaltTraces= new G4Material(name="MadaBasaltTraces", density, ncomponents=24); + + madaBasaltTraces->AddElement(elTi,natoms=33); + madaBasaltTraces->AddElement(Ba ,natoms=4131); + madaBasaltTraces->AddElement(Ce ,natoms=694); + madaBasaltTraces->AddElement(Co ,natoms=965); + madaBasaltTraces->AddElement(Cr ,natoms=5584); + madaBasaltTraces->AddElement(La ,natoms=269); + madaBasaltTraces->AddElement(Nb ,natoms=259); + madaBasaltTraces->AddElement(Nd ,natoms=410); + madaBasaltTraces->AddElement(Ni ,natoms=389); + madaBasaltTraces->AddElement(Rb ,natoms=227); + madaBasaltTraces->AddElement(Sc ,natoms=212); + madaBasaltTraces->AddElement(Sr ,natoms=8686); + madaBasaltTraces->AddElement(V ,natoms=4203); + madaBasaltTraces->AddElement(Y ,natoms=272); + madaBasaltTraces->AddElement(Zn ,natoms=1440); + madaBasaltTraces->AddElement(Th ,natoms=19); + madaBasaltTraces->AddElement(Sm ,natoms=93); + madaBasaltTraces->AddElement(Eu ,natoms=32); + madaBasaltTraces->AddElement(Gd ,natoms=89); + madaBasaltTraces->AddElement(Tb ,natoms=13); + madaBasaltTraces->AddElement(Yb ,natoms=15); + madaBasaltTraces->AddElement(Lu ,natoms=2); + madaBasaltTraces->AddElement(Ta ,natoms=15); + madaBasaltTraces->AddElement(Hf ,natoms=62); //tot 28114/10e7 weight: 2335253.28 g per 10e6 moles + + // Define Madacagascar Basalt complete material 0054.PP.0044 sample + density = 3*g/cm3; + G4Material* madaBasalt= new G4Material(name="MadaBasalt", density, ncomponents=2); + madaBasalt->AddMaterial(madaBasaltMain, fractionmass=0.9897); + madaBasalt->AddMaterial(madaBasaltTraces, fractionmass=0.0103); + + // Define Icelandic Basalt main components 0029.PP.0035 sample + density = 3*g/cm3; + G4Material* icelandicBasaltMain= new G4Material(name="IceBasaltMain", density, ncomponents=12); + icelandicBasaltMain->AddElement(elSi,fractionmass=0.2313); + icelandicBasaltMain->AddElement(elTi,fractionmass=0.0127); + icelandicBasaltMain->AddElement(elAl,fractionmass=0.0702); + icelandicBasaltMain->AddElement(Fe, fractionmass=0.1134); + icelandicBasaltMain->AddElement(Mn, fractionmass=0.0019); + icelandicBasaltMain->AddElement(Mg, fractionmass=0.0349); + icelandicBasaltMain->AddElement(Ca, fractionmass=0.0756); + icelandicBasaltMain->AddElement(Na, fractionmass=0.0892); + icelandicBasaltMain->AddElement(K, fractionmass=0.0032); + icelandicBasaltMain->AddElement(P, fractionmass=0.00096); + icelandicBasaltMain->AddElement(elS, fractionmass=0.0004); + icelandicBasaltMain->AddElement(O, fractionmass=0.36624); + + // Define Icelandic Basalt traces components 0029.PP.0035 sample + density = 3*g/cm3; + G4Material* icelandicBasaltTraces= new G4Material(name="IceBasaltTraces", density, ncomponents=20); + icelandicBasaltTraces->AddElement(Ba, natoms=756); + icelandicBasaltTraces->AddElement(Ce ,natoms=328); + icelandicBasaltTraces->AddElement(Co ,natoms=643); + icelandicBasaltTraces->AddElement(Cr ,natoms=1000); + icelandicBasaltTraces->AddElement(elCu,natoms=1396); + icelandicBasaltTraces->AddElement(Ga ,natoms=190); + icelandicBasaltTraces->AddElement(La ,natoms=103); + icelandicBasaltTraces->AddElement(Mo ,natoms=9); + icelandicBasaltTraces->AddElement(Nb ,natoms=114); + icelandicBasaltTraces->AddElement(Nd ,natoms=104); + icelandicBasaltTraces->AddElement(Ni ,natoms=544); + icelandicBasaltTraces->AddElement(Rb ,natoms=78); + icelandicBasaltTraces->AddElement(elS ,natoms=5550); + icelandicBasaltTraces->AddElement(Sc ,natoms=531); + icelandicBasaltTraces->AddElement(Sr ,natoms=1353); + icelandicBasaltTraces->AddElement(elU ,natoms=22); + icelandicBasaltTraces->AddElement(V ,natoms=4533); + icelandicBasaltTraces->AddElement(Y ,natoms=408); + icelandicBasaltTraces->AddElement(Zn ,natoms=1259); + icelandicBasaltTraces->AddElement(Zr ,natoms=1274); + + + // Define Icelandic Basalt complete material 0029.PP.0035 sample + density = 3*g/cm3; + G4Material* icelandicBasalt= new G4Material(name="IceBasalt", density, ncomponents=2); + icelandicBasalt->AddMaterial(icelandicBasaltMain, fractionmass=0.9978); + icelandicBasalt->AddMaterial(icelandicBasaltTraces, fractionmass=0.0022); + + + // Define dolorite main components 0055.PP.0038 sample density = 3*g/cm3; G4Material* diorite = new G4Material(name="Diorite", density, ncomponents=11); @@ -272,7 +417,7 @@ void XrayFluoMaterials::CreateMaterials() diorite->AddElement(K , fractionmass=0.0011); diorite->AddElement(P , fractionmass=0.0006); - // define traces in dolorite + // define traces in dolorite 0055.PP.0038 sample density = 3*g/cm3; G4Material* tracesOfDolorite = new G4Material(name="TracesOfDolorite", density, ncomponents=16); @@ -293,14 +438,14 @@ void XrayFluoMaterials::CreateMaterials() tracesOfDolorite->AddElement(Ce, natoms=15); tracesOfDolorite->AddElement(Nd, natoms=9); - // define dolorite (full) + // define dolorite (full) -- 0055.PP.0038 sample density = 3*g/cm3; dolorite = new G4Material(name="Dolorite", density, ncomponents=2); dolorite->AddMaterial(tracesOfDolorite, fractionmass=0.0027842352); dolorite->AddMaterial(diorite, fractionmass=0.9972157648); - // define mars1 + // define mars1 -- 01.PP.0030 sample density = 3*g/cm3; G4Material* mars1Main = new G4Material(name="Mars1 Main components", density, ncomponents=11); @@ -355,7 +500,7 @@ void XrayFluoMaterials::CreateMaterials() anorthosite->AddElement(elAl, fractionmass=0.0800355); anorthosite->AddElement(elSi, fractionmass=0.232204); anorthosite->AddElement(Ca, fractionmass=0.0635368); - anorthosite->AddElement(K, fractionmass=0.00464912); + anorthosite->AddElement(K, fractionmass=0.00464912); anorthosite->AddElement(C, fractionmass=0.000837803); anorthosite->AddElement(P, fractionmass=0.00176742); anorthosite->AddElement(elTi, fractionmass=0.0240879); @@ -369,18 +514,30 @@ void XrayFluoMaterials::CreateMaterials() anorthosite->AddElement(O, fractionmass=0.447026); - //define Neodimuim density = 6800*kg/m3; materialNd = new G4Material(name="Neodimuim" ,density , ncomponents=1); materialNd ->AddElement(Nd,natoms=1); + // define Berillium + density = 1848 * kg/m3; + a = 9.012182 * g / mole; + Be = new G4Material(name="Beryllium",z=4., a,density); + + // Define Magnesium - density = 1738*kg/m3; + density = 1738 * kg/m3; materialMg = new G4Material(name="Magnesium",density , ncomponents=1); materialMg->AddElement(Mg,natoms=1); + + //define Tungsten + density = 19250 * kg/m3; + materialW = new G4Material(name="Tungsten",density , ncomponents=1); + materialW->AddElement(W,natoms=1); + + //define iron density = 7.86 * g/cm3; @@ -434,10 +591,10 @@ void XrayFluoMaterials::CreateMaterials() Ti = new G4Material(name="Titanium",z=22.,a,density); - //define Uranium - // density = 19050*kg/m3; - // a = 238.02891*g/mole; - // G4Material* U = new G4Material(name="Uranium",z=92.,a,density); + //define Uranium + density = 19050*kg/m3; + a = 238.02891*g/mole; + U = new G4Material(name="Uranium",z=92.,a,density); //define Tin density = 7310*kg/m3; @@ -448,7 +605,60 @@ void XrayFluoMaterials::CreateMaterials() density = 11.35*g/cm3; a=207.19*g/mole; - Pb = new G4Material(name="Lead",z=82.,a,density); + Pb = new G4Material(name="Lead",z=82.,a,density); + + // define Silver material + density = 10490*kg/m3; + materialAg = new G4Material(name="Silver" ,density , ncomponents=1); + materialAg ->AddElement(Ag,natoms=1); + + //define gold + + density = 19300*kg/m3; + a= 196.96655*g/mole; + Au = new G4Material(name="Gold",z=79.,a,density); + + //define caesium + + density = 1879*kg/m3; + a= 132.90545*g/mole; + Cs = new G4Material(name="Caesium",z=55.,a,density); + + // define Potassium material + density = 1879*kg/m3; + materialK = new G4Material(name="Potassium" ,density , ncomponents=1); + materialK ->AddElement(K,natoms=1); + + // define Manganese material + density = 7470*kg/m3; + materialMn = new G4Material(name="Manganese" ,density , ncomponents=1); + materialMn ->AddElement(Mn,natoms=1); + + // define Phosphorus material + density = 1823*kg/m3; + materialP = new G4Material(name="Phosphorus" ,density , ncomponents=1); + materialP ->AddElement(P,natoms=1); + + // define Sufur material + density = 1960*kg/m3; + materialS = new G4Material(name="Sulphur" ,density , ncomponents=1); + materialS ->AddElement(elS,natoms=1); + + // define Calcium material + density = 1550*kg/m3; + materialCa = new G4Material(name="Calcium" ,density , ncomponents=1); + materialCa ->AddElement(Ca,natoms=1); + + // define Sodium material + density = 968*kg/m3; + materialNa = new G4Material(name="Sodium" ,density , ncomponents=1); + materialNa ->AddElement(Na,natoms=1); + + + + + + //define scintillator @@ -460,7 +670,6 @@ void XrayFluoMaterials::CreateMaterials() //define air - density = 1.290*mg/cm3; Air = new G4Material(name="Air" , density, ncomponents=2); Air->AddElement(N, fractionmass=0.7); @@ -474,10 +683,6 @@ void XrayFluoMaterials::CreateMaterials() Vacuum = new G4Material(name="Galactic", z=1., a=1.01*g/mole, density, kStateGas,temperature,pressure); - - - - //define basalt density = 3.*g/cm3; basalt = new G4Material(name="Basalt", density, ncomponents=7); @@ -489,8 +694,7 @@ void XrayFluoMaterials::CreateMaterials() basalt->AddElement(Mg, fractionmass=0.0590); basalt->AddElement(O , fractionmass=0.4430); - // end basalt - + G4cout << *(G4Material::GetMaterialTable()) << G4endl; } diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorConstruction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorConstruction.cc index 0a4a2ea75a..67a994b6b6 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorConstruction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorConstruction.cc @@ -77,23 +77,23 @@ XrayFluoMercuryDetectorConstruction::XrayFluoMercuryDetectorConstruction() NbOfPixelRows = 1; // should be 1 NbOfPixelColumns = 1; // should be 1 NbOfPixels = NbOfPixelRows*NbOfPixelColumns; - PixelSizeXY = std::sqrt(40.) * mm ; // should be std::sqrt(40) * mm - PixelThickness = 3.5 * mm ; //should be 3.5 mm + PixelSizeXY = std::sqrt(40.) * mm *0.5e6; // should be std::sqrt(40) * mm + PixelThickness = 3.5 * mm * 1e6; //should be 3.5 mm G4cout << "PixelThickness(mm): "<< PixelThickness/mm << G4endl; G4cout << "PixelSizeXY(cm): "<< PixelSizeXY/cm << G4endl; - ContactSizeXY = std::sqrt(40.) * mm ; //should be the same as PixelSize or lower + ContactSizeXY = std::sqrt(40.) * mm * 0.5e6; //should be the same as PixelSize or lower mercuryDia = 2 * 4880 * km ; sunDia = 1390000 * km ; mercurySunDistance = 57910000 * km ; - OhmicNegThickness = 0.005*mm ; - OhmicPosThickness = 0.005*mm ; + OhmicNegThickness = 0.005*mm *0.5e6 ; + OhmicPosThickness = 0.005*mm *0.5e6 ; - screenThickness = 5 * mm ; + screenThickness = 5 * mm *0.5e6; ThetaHPGe = 135. * deg ; PhiHPGe = 225. * deg ; @@ -103,10 +103,10 @@ XrayFluoMercuryDetectorConstruction::XrayFluoMercuryDetectorConstruction() distScreen = distDe + (screenThickness+PixelThickness)/2+OhmicPosThickness ; - distOptic = distDe - 1.*m; + distOptic = distDe - 1.*m * 1e5;//!!! - opticThickness = 1.* cm ; - opticDia = 21. * cm ; + opticThickness = 1.* cm *0.5e6; + opticDia = 21. * cm *0.5e6; opticAperture = 1. * deg; PixelCopyNb=0; @@ -440,6 +440,7 @@ G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::ConstructApparate() G4VisAttributes * red= new G4VisAttributes( G4Colour(255/255. , 0/255. , 0/255. )); G4VisAttributes * blue= new G4VisAttributes( G4Colour(0/255. , 0/255. , 255/255. )); G4VisAttributes * gray= new G4VisAttributes( G4Colour(128/255. , 128/255. , 128/255. )); + G4VisAttributes * darkGray= new G4VisAttributes( G4Colour(95/255. , 95/255. , 95/255. )); //G4VisAttributes * green= new G4VisAttributes( G4Colour(25/255. , 255/255. , 25/255. )); yellow->SetVisibility(true); yellow->SetForceSolid(true); @@ -452,10 +453,10 @@ G4VPhysicalVolume* XrayFluoMercuryDetectorConstruction::ConstructApparate() //logicWorld->SetVisAttributes (simpleBoxVisAtt); - logicPixel->SetVisAttributes(blue); + logicPixel->SetVisAttributes(red); logicHPGe->SetVisAttributes(G4VisAttributes::Invisible); - logicMercury->SetVisAttributes(gray); + logicMercury->SetVisAttributes(darkGray); logicScreen->SetVisAttributes(red); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorMessenger.cc index af8bf3b733..2b947b8922 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorMessenger.cc @@ -61,7 +61,7 @@ XrayFluoMercuryDetectorMessenger::XrayFluoMercuryDetectorMessenger(XrayFluoMercu sampleCmd->SetGuidance("select a diferent material for the mercury"); sampleCmd->SetParameterName("material",true); sampleCmd->SetDefaultValue("mars1"); - sampleCmd->SetCandidates("Dolorite Anorthosite Mars1"); + sampleCmd->SetCandidates("Dolorite Anorthosite Mars1 IceBasalt"); sampleCmd->AvailableForStates(G4State_Idle); detectorCmd = new G4UIcmdWithAString("/apparate/detector",this); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoNormalization.cc b/examples/advanced/xray_fluorescence/src/XrayFluoNormalization.cc index 052a56ef35..b48dcd33c4 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoNormalization.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoNormalization.cc @@ -50,21 +50,14 @@ const XrayFluoDataSet* XrayFluoNormalization::Normalize(G4double minIntExtreme, G4VDataSetAlgorithm* interpolation = new G4LogLogInterpolation(); - char* path = getenv("XRAYDATA"); - G4String dirFile; - if (path) { - G4String pathString(path); - dirFile = pathString + "/" + fileName; - } - else{ dirFile = fileName;} XrayFluoDataSet* dataSet = - new XrayFluoDataSet(1,dirFile,interpolation,keV,1); + new XrayFluoDataSet(1,fileName,interpolation,keV,1); G4double integral = Integrate(minIntExtreme, maxIntExtreme, nBins, dataSet); G4VDataSetAlgorithm* interpolation2 = new G4LogLogInterpolation(); - XrayFluoDataSet* finalDataSet = new XrayFluoDataSet(1,dirFile,interpolation2,keV,1/(integral/keV)); + XrayFluoDataSet* finalDataSet = new XrayFluoDataSet(1,fileName,interpolation2,keV,1/(integral/keV)); return finalDataSet; } diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc index b965989216..1bb4a95a08 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc @@ -37,6 +37,7 @@ #include "XrayFluoDetectorConstruction.hh" #include "XrayFluoPlaneDetectorConstruction.hh" #include "XrayFluoMercuryDetectorConstruction.hh" + #include "G4ParticleDefinition.hh" #include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" @@ -58,7 +59,7 @@ XrayFluoPhysicsList::XrayFluoPhysicsList(XrayFluoDetectorConstruction* p) // SetGELowLimit(250*eV); - defaultCutValue = 0.1*mm; + defaultCutValue = 10e-6*mm; cutForGamma = defaultCutValue; cutForElectron = defaultCutValue; @@ -69,6 +70,7 @@ XrayFluoPhysicsList::XrayFluoPhysicsList(XrayFluoDetectorConstruction* p) G4String regName = "SampleRegion"; G4double cutValue = 0.000001 * mm; G4Region* reg = G4RegionStore::GetInstance()->GetRegion(regName); + G4ProductionCuts* cuts = new G4ProductionCuts; cuts->SetProductionCut(cutValue); reg->SetProductionCuts(cuts); @@ -115,6 +117,7 @@ XrayFluoPhysicsList::XrayFluoPhysicsList(XrayFluoMercuryDetectorConstruction* p) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + XrayFluoPhysicsList::~XrayFluoPhysicsList() { delete physicsListMessenger; @@ -255,42 +258,45 @@ void XrayFluoPhysicsList::ConstructEM() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// void XrayFluoPhysicsList::SetGELowLimit(G4double lowcut) -// { -// if (verboseLevel >0){ -// G4cout << "XrayFluoPhysicsList::SetCuts:"; -// G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; -// } +void XrayFluoPhysicsList::SetGELowLimit(G4double lowcut) +{ + if (verboseLevel >0){ + G4cout << "XrayFluoPhysicsList::SetCuts:"; + G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; + } -// G4Gamma::SetEnergyRange(lowcut,1e5); -// G4Electron::SetEnergyRange(lowcut,1e5); -// G4Positron::SetEnergyRange(lowcut,1e5); + G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(lowcut,1e5); -// } -// void XrayFluoPhysicsList::SetGammaLowLimit(G4double lowcut) -// { -// if (verboseLevel >0){ -// G4cout << "XrayFluoPhysicsList::SetCuts:"; -// G4cout << "Gamma cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; -// } +} + +void XrayFluoPhysicsList::SetGammaLowLimit(G4double lowcut) +{ + if (verboseLevel >0){ + G4cout << "XrayFluoPhysicsList::SetCuts:"; + G4cout << "Gamma cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; + } + + SetGELowLimit(lowcut); // G4Gamma::SetEnergyRange(lowcut,1e5); -// } +} -// void XrayFluoPhysicsList::SetElectronLowLimit(G4double lowcut) -// { -// if (verboseLevel >0){ +void XrayFluoPhysicsList::SetElectronLowLimit(G4double lowcut) +{ + if (verboseLevel >0){ -// G4cout << "XrayFluoPhysicsList::SetCuts:"; -// G4cout << "Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; + G4cout << "XrayFluoPhysicsList::SetCuts:"; + G4cout << "Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; -// } + } + + SetGELowLimit(lowcut); // G4Electron::SetEnergyRange(lowcut,1e5); -// } +} @@ -334,16 +340,16 @@ void XrayFluoPhysicsList::SetLowEnSecPhotCut(G4double cut){ void XrayFluoPhysicsList::SetLowEnSecElecCut(G4double cut){ G4cout<<"Low energy secondary electrons cut is now set to: "<SetCutForLowEnSecElectrons(cut); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void XrayFluoPhysicsList::SetProtonCut(G4double val) { - // ResetCuts(); + ResetCuts(); cutForProton = val; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -353,7 +359,7 @@ void XrayFluoPhysicsList::SetCutsByEnergy(G4double val) { G4ParticleTable* theXrayFluoParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat=0; + G4Material* currMat = 0; if(pDet){ currMat = pDet->XrayFluoDetectorConstruction::GetSampleMaterial(); @@ -365,7 +371,7 @@ void XrayFluoPhysicsList::SetCutsByEnergy(G4double val) else if(mercuryDet){ currMat = mercuryDet->GetMercuryMaterial(); } - + G4ParticleDefinition* part; G4double cut; diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc index 931f454c73..979b2fe2ed 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc @@ -49,26 +49,26 @@ XrayFluoPhysicsListMessenger::XrayFluoPhysicsListMessenger(XrayFluoPhysicsList * lowEnDir = new G4UIdirectory("/lowenergy/"); lowEnDir->SetGuidance("LowEnergy commands"); -// cutGLowLimCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/lowlimG",this); -// cutGLowLimCmd->SetGuidance("Set ENERGY low limit for Gamma."); -// cutGLowLimCmd->SetParameterName("energy",true); -// cutGLowLimCmd->SetDefaultValue(1e-3); -// cutGLowLimCmd->SetDefaultUnit("MeV"); -// cutGLowLimCmd->AvailableForStates(G4State_Idle); + cutGLowLimCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/lowlimG",this); + cutGLowLimCmd->SetGuidance("Set ENERGY low limit for Gamma."); + cutGLowLimCmd->SetParameterName("energy",true); + cutGLowLimCmd->SetDefaultValue(1e-3); + cutGLowLimCmd->SetDefaultUnit("MeV"); + cutGLowLimCmd->AvailableForStates(G4State_Idle); -// cutELowLimCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/lowlimE",this); -// cutELowLimCmd->SetGuidance("Set ENERGY low limit for e-."); -// cutELowLimCmd->SetParameterName("energy",true); -// cutELowLimCmd->SetDefaultValue(1e-3); -// cutELowLimCmd->SetDefaultUnit("MeV"); -// cutELowLimCmd->AvailableForStates(G4State_Idle); + cutELowLimCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/lowlimE",this); + cutELowLimCmd->SetGuidance("Set ENERGY low limit for e-."); + cutELowLimCmd->SetParameterName("energy",true); + cutELowLimCmd->SetDefaultValue(1e-3); + cutELowLimCmd->SetDefaultUnit("MeV"); + cutELowLimCmd->AvailableForStates(G4State_Idle); -// cutGELowLimCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/lowlimGE",this); -// cutGELowLimCmd->SetGuidance("Set ENERGY low limit for e- and Gamma."); -// cutGELowLimCmd->SetParameterName("energy",true); -// cutGELowLimCmd->SetDefaultValue(1e-3); -// cutGELowLimCmd->SetDefaultUnit("MeV"); -// cutGELowLimCmd->AvailableForStates(G4State_Idle); + cutGELowLimCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/lowlimGE",this); + cutGELowLimCmd->SetGuidance("Set ENERGY low limit for e- and Gamma."); + cutGELowLimCmd->SetParameterName("energy",true); + cutGELowLimCmd->SetDefaultValue(1e-3); + cutGELowLimCmd->SetDefaultUnit("MeV"); + cutGELowLimCmd->AvailableForStates(G4State_Idle); cutSecPhotCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/secphotcut",this); cutSecPhotCmd->SetGuidance("Set production threshold for secondary Gamma."); @@ -119,9 +119,9 @@ XrayFluoPhysicsListMessenger::XrayFluoPhysicsListMessenger(XrayFluoPhysicsList * XrayFluoPhysicsListMessenger::~XrayFluoPhysicsListMessenger() { -// delete cutGLowLimCmd; -// delete cutELowLimCmd; -// delete cutGELowLimCmd; + delete cutGLowLimCmd; + delete cutELowLimCmd; + delete cutGELowLimCmd; delete cutSecElecCmd; delete cutSecPhotCmd; delete cutGCmd; @@ -135,14 +135,14 @@ XrayFluoPhysicsListMessenger::~XrayFluoPhysicsListMessenger() void XrayFluoPhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { - // if(command == cutGLowLimCmd) - // { XrayFluoList->SetGammaLowLimit(cutGLowLimCmd->GetNewDoubleValue(newValue));} + if(command == cutGLowLimCmd) + { XrayFluoList->SetGammaLowLimit(cutGLowLimCmd->GetNewDoubleValue(newValue));} - // if(command == cutELowLimCmd) - // { XrayFluoList->SetElectronLowLimit(cutELowLimCmd->GetNewDoubleValue(newValue));} + if(command == cutELowLimCmd) + { XrayFluoList->SetElectronLowLimit(cutELowLimCmd->GetNewDoubleValue(newValue));} - // if(command == cutGELowLimCmd) - // { XrayFluoList->SetGELowLimit(cutGELowLimCmd->GetNewDoubleValue(newValue));} + if(command == cutGELowLimCmd) + { XrayFluoList->SetGELowLimit(cutGELowLimCmd->GetNewDoubleValue(newValue));} if(command == cutSecPhotCmd) { XrayFluoList->SetLowEnSecPhotCut(cutSecPhotCmd->GetNewDoubleValue(newValue));} diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorConstruction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorConstruction.cc index 5188d6bdf7..b0a56abdbe 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorConstruction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorConstruction.cc @@ -407,10 +407,10 @@ G4VPhysicalVolume* XrayFluoPlaneDetectorConstruction::ConstructApparate() planeMaterial, //its material "Grain"); //its name G4ThreeVector grainPosition; - G4double grainInitPositionX = 0.; - G4double grainInitPositionY = 0.; + G4double grainInitPositionX = 0; + G4double grainInitPositionY = 0; G4double grainInitPositionZ = (-1.*planeThickness/2.+grainDia/2.); - G4double grainStepX = grainDia; + G4double grainStepX = grainDia = 0; G4double grainStepY = grainDia*(1.-(0.5-(std::sqrt(3.)/4.))); G4double grainStepZ = grainDia*std::sqrt(2./3.); @@ -584,9 +584,6 @@ void XrayFluoPlaneDetectorConstruction::PrintApparateParameters() void XrayFluoPlaneDetectorConstruction::UpdateGeometry() { - delete solidWorld; - delete logicWorld; - delete physiWorld; delete solidHPGe; delete logicHPGe; delete physiHPGe; @@ -605,6 +602,9 @@ void XrayFluoPlaneDetectorConstruction::UpdateGeometry() delete solidScreen; delete logicScreen; delete physiScreen; + delete solidWorld; + delete logicWorld; + delete physiWorld; zRotPhiHPGe.rotateX(-1.*PhiHPGe); G4RunManager::GetRunManager()->DefineWorldVolume(ConstructApparate()); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorMessenger.cc index 6c05c6c566..b54a44f047 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorMessenger.cc @@ -61,7 +61,7 @@ XrayFluoPlaneDetectorMessenger::XrayFluoPlaneDetectorMessenger(XrayFluoPlaneDete sampleCmd->SetGuidance("select a diferent material for the plane"); sampleCmd->SetParameterName("material",true); sampleCmd->SetDefaultValue("mars1"); - sampleCmd->SetCandidates("Dolorite Anorthosite Mars1"); + sampleCmd->SetCandidates("Dolorite Anorthosite Mars1 IceBasalt"); sampleCmd->AvailableForStates(G4State_Idle); detectorCmd = new G4UIcmdWithAString("/apparate/detector",this); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc index 9514417e4a..9d47d32228 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc @@ -33,7 +33,7 @@ // ------------------------------------------------------------------- #include "XrayFluoPrimaryGeneratorAction.hh" -#include "G4DataVector.hh" +//#include "G4DataVector.hh" #include "XrayFluoDetectorConstruction.hh" #include "XrayFluoPrimaryGeneratorMessenger.hh" #include "XrayFluoRunAction.hh" @@ -44,11 +44,13 @@ #include "Randomize.hh" #include "XrayFluoAnalysisManager.hh" #include "XrayFluoDataSet.hh" +#include "AIDA/AIDA.h" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoPrimaryGeneratorAction::XrayFluoPrimaryGeneratorAction(XrayFluoDetectorConstruction* XrayFluoDC) - :rndmFlag("off"),beam("off"),spectrum("off"),isoVert("off") + :rndmFlag("off"),beam("off"),spectrum("off"),isoVert("off"),phaseSpaceGunFlag(false), + rayleighFlag(true), particleEnergies(0), particleTypes(0), detectorPosition(0) { XrayFluoDetector = XrayFluoDC; @@ -68,17 +70,47 @@ XrayFluoPrimaryGeneratorAction::XrayFluoPrimaryGeneratorAction(XrayFluoDetectorC = particleTable->FindParticle(particleName="gamma"); particleGun->SetParticleDefinition(particle); particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.)); - - particleGun->SetParticleEnergy(10.*keV); + G4double position = -0.5*(XrayFluoDetector->GetWorldSizeZ()); particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,position)); + + G4cout << "XrayFluoPrimaryGeneratorAction created" << G4endl; } +void XrayFluoPrimaryGeneratorAction::ActivatePhaseSpace(G4String fileName) { + + // load phase-space +#ifdef G4ANALYSIS_USE + phaseSpaceGunFlag = true; + + // reads the data stored on disk form previous runs + // and get these data to data members + + XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); + analysis->LoadGunData(fileName, rayleighFlag); + particleEnergies = analysis->GetEmittedParticleEnergies(); + particleTypes = analysis->GetEmittedParticleTypes(); + detectorPosition = XrayFluoDetector->GetDetectorPosition(); + detectorPosition.setR(detectorPosition.r()-(5.*cm)); // 5 cm dietro +#endif + +} + + +void XrayFluoPrimaryGeneratorAction::SetRayleighFlag (G4bool value) +{ + + G4cout << "value: " << value << G4endl; + rayleighFlag = value; + +} + + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoPrimaryGeneratorAction::~XrayFluoPrimaryGeneratorAction() @@ -100,8 +132,9 @@ void XrayFluoPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) G4double z0 = -0.5*(XrayFluoDetector->GetWorldSizeZ()); G4double y0 = 0.*cm, x0 = 0.*cm; if (rndmFlag == "on") - {y0 = (XrayFluoDetector->GetDia3SizeXY())/std::sqrt(2.)*(G4UniformRand()-0.5); // it was GetSampleSizeXY(), - x0 = (XrayFluoDetector->GetDia3SizeXY())/std::sqrt(2.)*(G4UniformRand()-0.5); // not divided by std::sqrt(2.) + { + y0 = (XrayFluoDetector->GetDia3SizeXY())/std::sqrt(2.)*(G4UniformRand()-0.5); // it was GetSampleSizeXY(), + x0 = (XrayFluoDetector->GetDia3SizeXY())/std::sqrt(2.)*(G4UniformRand()-0.5); // not divided by std::sqrt(2.) } particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); @@ -169,6 +202,8 @@ void XrayFluoPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) particleGun->SetParticleEnergy(particleEnergy); } } + + // Randomize starting point and direction if (isoVert == "on") { @@ -192,6 +227,34 @@ void XrayFluoPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) particleGun->SetParticleMomentumDirection(G4ThreeVector(-x+Dx,-y+Dy,-z)); } + + + if (phaseSpaceGunFlag){ + + size_t i = anEvent->GetEventID(); + + particleGun->SetParticlePosition(detectorPosition); + particleGun->SetParticleMomentumDirection(detectorPosition); + G4double energy; + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* particle; + if (i < particleEnergies->size()) { + energy = (*particleEnergies)[i]; + particle = particleTable->FindParticle((*particleTypes)[i]); + } + + else { + energy = 0.; + particle = particleTable->FindParticle("gamma"); + } + + particleGun->SetParticleEnergy(energy); + + + + particleGun->SetParticleDefinition(particle); + } + #ifdef G4ANALYSIS_USE G4double partEnergy = particleGun->GetParticleEnergy(); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorMessenger.cc index 043a3520f4..f2aea1dc60 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorMessenger.cc @@ -35,11 +35,12 @@ #include "XrayFluoPrimaryGeneratorMessenger.hh" #include "XrayFluoPrimaryGeneratorAction.hh" #include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithABool.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoPrimaryGeneratorMessenger::XrayFluoPrimaryGeneratorMessenger(XrayFluoPrimaryGeneratorAction* XrayFluoGun) -:XrayFluoAction(XrayFluoGun) + :XrayFluoAction(XrayFluoGun) { RndmCmd = new G4UIcmdWithAString("/gun/random",this); RndmCmd->SetGuidance("Shoot randomly the incident particle."); @@ -73,6 +74,19 @@ XrayFluoPrimaryGeneratorMessenger::XrayFluoPrimaryGeneratorMessenger(XrayFluoPri isoVert->SetCandidates("on off"); isoVert->AvailableForStates(G4State_PreInit,G4State_Idle); + loadPahseSpace=new G4UIcmdWithAString("/gun/loadGunData",this); + loadPahseSpace->SetGuidance("Load emission from samples form previous runs"); + loadPahseSpace->SetGuidance("Please enter the filename"); + loadPahseSpace->SetParameterName("choice",true); + loadPahseSpace->AvailableForStates(G4State_Idle); + + loadRayleighData=new G4UIcmdWithABool("/gun/loadRayleighFlag",this); + loadRayleighData->SetGuidance("Select if data form rayleigh scattering must be loaded"); + loadRayleighData->SetGuidance("To be used before and togheter with /gun/loadGunData"); + loadRayleighData->SetParameterName("Rayleigh Flag",true); + loadRayleighData->SetDefaultValue(true); + loadRayleighData->AvailableForStates(G4State_Idle); + G4cout << "XrayFluoPrimaryGeneratorMessenger created" << G4endl; } @@ -85,7 +99,8 @@ XrayFluoPrimaryGeneratorMessenger::~XrayFluoPrimaryGeneratorMessenger() delete RndmVert; delete spectrum; delete isoVert; - + delete loadPahseSpace; + delete loadRayleighData; G4cout << "XrayFluoPrimaryGeneratorMessenger deleted" << G4endl; } @@ -102,6 +117,15 @@ void XrayFluoPrimaryGeneratorMessenger::SetNewValue(G4UIcommand * command,G4Stri { XrayFluoAction->SetSpectrum(newValue);} if( command == isoVert ) { XrayFluoAction->SetIsoVert(newValue);} + if( command == loadPahseSpace ) + { XrayFluoAction->ActivatePhaseSpace(newValue);} + if( command == loadRayleighData ) + { + G4cout << "newValue: " << newValue << G4endl; + + G4bool newRayFlag = loadRayleighData->GetNewBoolValue(newValue); + XrayFluoAction->SetRayleighFlag(newRayFlag); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc index 446b961376..05cd6c3c7b 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc @@ -136,7 +136,7 @@ void XrayFluoRunAction::BeginOfRunAction(const G4Run* aRun) // Book histograms and ntuples XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); analysis->book(); - // analysis->InitializePlotter(); + analysis->InitializePlotter(); #endif } @@ -203,18 +203,29 @@ void XrayFluoRunAction::ReadData(G4double unitE, G4String fileName) ost << fileName <<".dat"; G4String name(nameChar); + char* path; + + if (!(getenv("XRAYDATA"))) { + + path = getenv("PWD"); + } + + else { + path = getenv("XRAYDATA"); + } - char* path = getenv("XRAYDATA"); G4String pathString(path); - G4String dirFile = pathString + "/" + name; - std::ifstream file(dirFile); + name = pathString + "/" + name; + + + std::ifstream file(name); std::filebuf* lsdp = file.rdbuf(); if (! (lsdp->is_open()) ) { - G4String excep = "XrayFluoRunAction - data file: " + dirFile + " not found"; - G4Exception(excep); + G4String excep = "XrayFluoRunAction - data file: " + name + " not found"; + G4Exception(excep); } G4double a = 0; G4int k = 1; diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoSiLiDetectorType.cc b/examples/advanced/xray_fluorescence/src/XrayFluoSiLiDetectorType.cc index 2ac8e38e18..be563a4361 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoSiLiDetectorType.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoSiLiDetectorType.cc @@ -169,24 +169,19 @@ G4double XrayFluoSiLiDetectorType::ResponseFunction(G4double energy) else - { - - G4double mean = -14.03 * eV + 1.0047*energy/eV; - G4double stdDev = 35.38 * eV + 0.004385*energy/eV; - - - value = (G4RandGauss::shoot(mean,stdDev))*eV; - -// G4double infEnergy = eMax/keV - 1. *keV; -// G4double supEnergy = eMax; + { -// G4double infData = Manager->GetInfData(eMax, random); -// G4double supData = Manager->GetSupData(eMax,random); -// value = (std::log10(infData)*std::log10(supEnergy/eMax) + -// std::log10(supData)*std::log10(eMax/infEnergy)) / -// std::log10(supEnergy/infEnergy); -// value = std::pow(10,value); -// value = value+energy- eMax; + energyNumber = 1; + + value = (GetInfData(energy, random, energyNumber))+(energy - 1.486* keV); + + + // G4double mean = -14.03 * eV + 1.0047*energy/eV; + // G4double stdDev = 35.38 * eV + 0.004385*energy/eV; + + + // value = (G4RandGauss::shoot(mean,stdDev))*eV; + } G4double RandomNum = G4UniformRand(); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc b/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc index ec848fe493..5866dbbfb4 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc @@ -40,7 +40,7 @@ #endif #include "Randomize.hh" #ifdef G4VIS_USE -#include "XrayFluoVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "XrayFluoDetectorConstruction.hh" #include "XrayFluoPlaneDetectorConstruction.hh" @@ -54,10 +54,7 @@ #include "XrayFluoSteppingAction.hh" #include "XrayFluoSteppingVerbose.hh" #include "XrayFluoSimulation.hh" - -#ifdef G4ANALYSIS_USE #include "XrayFluoAnalysisManager.hh" -#endif XrayFluoSimulation::XrayFluoSimulation(G4int seed):dir(seed) @@ -86,40 +83,50 @@ void XrayFluoSimulation::RunSimulation(int argc,char* argv[]) // chosing Geometry setup - G4int GeometryNumber; - + G4int geometryNumber; if (argc == 3){ - GeometryNumber = atoi(argv[2]); + geometryNumber = atoi(argv[2]); + } - while ( (GeometryNumber != 1) && (GeometryNumber !=2) && (GeometryNumber !=3) ) { + while ( (geometryNumber != 1) && (geometryNumber !=2) && (geometryNumber !=3) && (geometryNumber !=4)) { G4cout << "Please Select Simulation Geometrical Set-Up: "<< G4endl; G4cout << "1 - Test Beam" << G4endl; G4cout << "2 - Infinite Plane" << G4endl; - G4cout << "3 - Planet and Sun (beta)"<< G4endl; - G4cin >> GeometryNumber; + G4cout << "3 - Planet and Sun"<< G4endl; + G4cout << "4 - Phase-Space Production"<< G4endl; + + + G4cin >> geometryNumber; } XrayFluoDetectorConstruction* testBeamDetector = 0; XrayFluoPlaneDetectorConstruction* planeDetector = 0; XrayFluoMercuryDetectorConstruction* mercuryDetector = 0; - if (GeometryNumber == 1) { + + + if (geometryNumber == 1 || geometryNumber == 4) { testBeamDetector = XrayFluoDetectorConstruction::GetInstance(); + if (geometryNumber == 4) { + testBeamDetector->PhaseSpaceOn(); + } runManager->SetUserInitialization(testBeamDetector); xrayList = new XrayFluoPhysicsList(testBeamDetector); } - else if (GeometryNumber == 2) { + else if (geometryNumber == 2) { planeDetector = XrayFluoPlaneDetectorConstruction::GetInstance(); runManager->SetUserInitialization(planeDetector); xrayList = new XrayFluoPhysicsList(planeDetector); } - else if (GeometryNumber == 3) { + else if (geometryNumber == 3) { mercuryDetector = XrayFluoMercuryDetectorConstruction::GetInstance(); runManager->SetUserInitialization(mercuryDetector); xrayList = new XrayFluoPhysicsList(mercuryDetector); } + + runManager->SetUserInitialization(xrayList); G4UIsession* session=0; @@ -128,7 +135,7 @@ void XrayFluoSimulation::RunSimulation(int argc,char* argv[]) { // G4UIterminal is a (dumb) terminal. #ifdef G4UI_USE_XM - session = new G4UIXm(argc,argv); + session = new G4UIXm(argc,argv[1]); #else #ifdef G4UI_USE_TCSH session = new G4UIterminal(new G4UItcsh); @@ -142,17 +149,12 @@ void XrayFluoSimulation::RunSimulation(int argc,char* argv[]) #ifdef G4VIS_USE //visualization manager - G4VisManager* visManager = new XrayFluoVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif // set analysis to have the messenger running... - // XrayFluoAnalysisManager* analysis = - -#ifdef G4ANALYSIS_USE - XrayFluoAnalysisManager::getInstance(); -#endif - + XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); XrayFluoEventAction* eventAction = 0; XrayFluoRunAction* runAction = new XrayFluoRunAction(); XrayFluoSteppingAction* stepAction = new XrayFluoSteppingAction(); @@ -160,21 +162,26 @@ void XrayFluoSimulation::RunSimulation(int argc,char* argv[]) //Selecting the PrimaryGenerator depending upon Geometry setup selected - if (GeometryNumber == 1) { + if (geometryNumber == 1 || geometryNumber == 4) { + if (geometryNumber == 4) { + analysis->PhaseSpaceOn(); + analysis->CreatePersistency(); + } eventAction = new XrayFluoEventAction(testBeamDetector); runManager->SetUserAction(new XrayFluoPrimaryGeneratorAction(testBeamDetector)); - } - else if (GeometryNumber == 2) { + + else if (geometryNumber == 2) { eventAction = new XrayFluoEventAction(planeDetector); runManager->SetUserAction(new XrayFluoPlanePrimaryGeneratorAction(planeDetector)); } - else if (GeometryNumber == 3) { + + else if (geometryNumber == 3) { stepAction->SetMercuryFlag(true); eventAction = new XrayFluoEventAction(mercuryDetector); runManager->SetUserAction(new XrayFluoMercuryPrimaryGeneratorAction(mercuryDetector)); } - + runManager->SetUserAction(eventAction); runManager->SetUserAction(runAction); runManager->SetUserAction(stepAction); @@ -209,12 +216,14 @@ void XrayFluoSimulation::RunSimulation(int argc,char* argv[]) delete visManager; G4cout << "visManager deleted"<< G4endl; #endif + +// if (testBeamDetector) delete testBeamDetector; +// if (planeDetector) delete planeDetector; +// if (mercuryDetector) delete mercuryDetector; + delete runManager; - if (testBeamDetector) delete testBeamDetector; - if (planeDetector) delete planeDetector; - if (mercuryDetector) delete mercuryDetector; } diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc b/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc deleted file mode 100755 index db68ec87eb..0000000000 --- a/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc +++ /dev/null @@ -1,163 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: XrayFluoVisManager.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 -// -// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) -// -// History: -// ----------- -// 28 Nov 2001 Elena Guardincerri Created -// -// ------------------------------------------------------------------- - -#ifdef G4VIS_USE - -#include "XrayFluoVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -XrayFluoVisManager::XrayFluoVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void XrayFluoVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - - /* -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - */ - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - - - diff --git a/examples/advanced/xray_fluorescence/testhbk.xml b/examples/advanced/xray_fluorescence/testhbk.xml deleted file mode 100644 index d8d118436f3596ebf1628243abbb488699e66d7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1621 zcmV-b2CDfViwFRwT)0301MON{Z`(E$e&4Uq^g5L0{W3Hyur(V7EKSjL8~Ui)iY?TV z3`uFzf4?KSv8fBGq$aj@iyn$br1+7C-}%nrp`Sj#&9~8qw5qeRIEx9wag-Lza+MY9 zv-r2G%O_e3^Mu6DpMCfA`xlo#zj^!WJW8@v5?#H$dUJje#ha$t{kT}P@6dIXrkiw! z%4)r+mzy+C>IFj-k$v;3S;Y|y)O~*d?K;HpI?H$4G*62rX`mt6CCm58Iz5YbS!_)) zUO?APRyXCkN^-J_iX>0l_wYfpIg1x@)MU*TUY!?dwf+>nNOxtOH7!C?6y<*O7OqM2 z=zaR>EPm7W2aIHUGyZJR>-rMF4n4`B@w{lNEUgdic+h^4CdIK4VR+IX@UYkGyq@oL ze%n+@GzWMIX1m^&ADtckC{~j_7ClQPw^<#nvMOCR-5%V=QJ&m(bouBQ{AJKtLX;qa~I~*sR z5+>vxW0Pj*6uOuEs8 z4u~d@7K~xHB_*@a8qw3g13PCGk4*&5 zE%-=P7Ik!r?DyE06e5q_G_8=YLWBT0_mM-`-r5F>a|}XCfg9 z)(=xZYSFq=!ac7!B9syE2-fE{=v!~SeO|*Ps3b&5kv_p>O8qP}W;u~!6g*v%J{X%3 zzm^o8%T9yY+9xc1py29K8QljHGukJ(0cnTUX)s~i@rVYKRMcq3#L$kyV@H7`Wro4y zK(m90vB3IExC1jY(kCgW?c)Hm<0G*)Z5nL&eyDuZ(0%JPm3rt4Vum6CTKS{p|^VnUH2 zS{Y1T8^>_K#j*C-0;!B~9&SlMhl7=W=7|f~Gy4`Y2r%#f>OZSU^h(1czBEJZK>;30h9A)(JEjP`Ti+$b|5r_5AIaE_1|$ z)Xg8Bj{Cd~4G|(I5?C%tm`a*_}Hs8tZ7ACLgk5{lzzplOuS_ z?R>7>?kl!SP<=Tp*xSW+iTJ)^Hmd4R7Tkw-lB0tAu){xIaA(+4aGx)?cLt*ej_%9t zdn0v-cZRxGx&89b^Vh%pe)(6>GDy!NQ$?4Mb&!EM9_U2EcXu`Rg6IqGuBJxuIMeWE z>hUKbvktXSZoleZg-EAZS81}`-0@?THZZrcdZ=Dc58`3j=<@QBWvASeehm~;V~Snv zS`oU*qw>0AMpi7d6-*jBRsgUC``?#n_ZZ4Ux8Y^_zfLzY>Nn04MqU0-l)G1^fbn#$ zKpeRO_2vrvp}|{^8ULy(n>Og4rmFr?JUrK58_yqQ^;B6kZjzmF&hiZ5q1W&SnUD1P T#^}}kiv8K&Een9gG%o-E#<2@M diff --git a/examples/advanced/xray_fluorescence/xrayfluo.xml b/examples/advanced/xray_fluorescence/xrayfluo.xml index 7134f3a7415344c5525a23e494744e912431635d..fbb13c66decbbf2a71b6681f79720c5462f27e6f 100644 GIT binary patch literal 28000 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 literal 1033 zcmV+k1orzMiwFR9cep_S1MQh@Z`(Ey$KUT$aC$pL79T`OL)`*fyn~t0+yihiy$FS_dlL~SO z&%M8{mKSjxCKuRy_420|Kfhl7e*OOK0tuB0boKt~dU1)ojkUX9XR~t5zco^BhTNqksY1W_7Yq`q{WlII2bzXZf<*dxm2l;vKU6=Nt zA+~qJ$7UVVHz3wn;@;#!Tcc#r%m=;sODXiXNk4#({3YmHy~~Pmqs87DfyM-vkha@x z{^_W}KRP{VG3#VX>{WqMW#r0M?_lqtOzbOMzJ4G=cmbKx_aQf7BYl_MNVB~CP3dCp zg_(zOl%$>v)KLcxw8#ir)P)xJX&5sHR@@Ibq4FZ=yLqZuVFy-p9IHBEgi_kV zs!9^!1hXblhp>WQZj=Uq;OCpW44$K2TO3Jaa#OA{5TxB+99$28>!C(M7ueM2Nt8IiCSbsS1gIfTqf}Sf zig^_A7S&aTNXTj8JS+!Phb^da3+nCy?xF6FccBh_7R2@JMNk*f-WFn+Co2x zos>kugiOMIM(k041Hg|SoJNY(=AMsKT8J$- z=boL1oj54t&y<}@nd{>87!Zqwh+XZ&_6|@svIdF>} z8*X@%w}Hiv1l*uzFaKS<`{VEBf9=8@G?g1V0ZvF1aqg(xczE?|&9ZYVcRa-Xt;ua! zaUXW1y1h6cAM}dO;@e /vis/viewer/set/viewpointThetaPhi. diff --git a/examples/advanced/xray_telescope/XrayTel.cc b/examples/advanced/xray_telescope/XrayTel.cc index d6bb9ee9d3..16ea20912c 100644 --- a/examples/advanced/xray_telescope/XrayTel.cc +++ b/examples/advanced/xray_telescope/XrayTel.cc @@ -79,7 +79,7 @@ #include "G4UItcsh.hh" #include "XrayTelDetectorConstruction.hh" #include "XrayTelPhysicsList.hh" -#include "XrayTelVisManager.hh" +#include "G4VisExecutive.hh" #include "XrayTelEventAction.hh" #include "XrayTelRunAction.hh" #include "XrayTelSteppingAction.hh" @@ -103,7 +103,7 @@ int main( int argc, char** argv ) runManager->SetUserAction(new XrayTelSteppingAction); // visualization manager - G4VisManager* visManager = new XrayTelVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); //Initialize G4 kernel diff --git a/examples/advanced/xray_telescope/analysis/Lab/cloud.tcl b/examples/advanced/xray_telescope/analysis/Lab/cloud.tcl deleted file mode 100644 index d9b7819ab7..0000000000 --- a/examples/advanced/xray_telescope/analysis/Lab/cloud.tcl +++ /dev/null @@ -1,92 +0,0 @@ -# -# ******************************************************************** -# * DISCLAIMER * -# * * -# * The following disclaimer summarizes all the specific disclaimers * -# * of contributors to this software. The specific disclaimers,which * -# * govern, are listed with their locations in: * -# * http://cern.ch/geant4/license * -# * * -# * Neither the authors of this software system, nor their employing * -# * institutes,nor the agencies providing financial support for this * -# * work make any representation or warranty, express or implied, * -# * regarding this software system or assume any liability for its * -# * use. * -# * * -# * This code implementation is the intellectual property of the * -# * GEANT4 collaboration. * -# * By copying, distributing or modifying the Program (or any work * -# * based on the Program) you indicate your acceptance of this * -# * statement, and all its terms. * -# ******************************************************************** -# -#///////////////////////////////////////////////////////////////////////////// -#///////////////////////////////////////////////////////////////////////////// -#///////////////////////////////////////////////////////////////////////////// -delete v -# -# Get a SWIG handler over the current viewer : -IViewer v -this [ui getCurrentViewer] -v reset page -# -# 2x2 regions : -v set page "1 2" -v set pageTitle "Xray telescope" -# -#///////////////////////////////////////////////////////////////////////////// -#delete storage -# -#RioStorage storage g4osc.root READ -#storage ls -# -#delete hEnteringEnergy -# -# Get some histograms with the H1Get -# builtin procedure defined in Lab/user/init.tcl : -# H1DGet -#H1DGet hEnteringEnergy storage "Entering energy" -# -# Plot the histo : -#hEnteringEnergy vis -# -#v set textContext "color black fontName TTF/couri" -#v set histogramContext "color red modeling solid" -# -#///////////////////////////////////////////////////////////////////////////// -delete s2 -delete tuple -delete t_energy -# -v set region 1 -# -RioStorage s2 XrayTel.root READ -RioTuple tuple [& s2] "XrayTel" -tuple print -# -H1D t_energy "Entering energy" 100 0 0.002 -set cuts "" -t_energy project [& tuple] EnteringEnergy $cuts -t_energy vis -unset cuts -# -# Fitting : -#delete fitGauss -# -#Gaussian fitGauss 100 0.0008 0.0012 -#fitGauss fit [& t_energy] -# -#fitGauss vis -# -#///////////////////////////////////////////////////////////////////////////// -delete yz -# -v set region 2 -# -Cloud2D yz YZ -set cuts "" -yz project [& tuple] y z $cuts -yz vis -unset cuts -# -v set cloudContext "modeling cloud color blue markerStyle plus markerSize 10" -# diff --git a/examples/advanced/xray_telescope/analysis/Lab/g4Xt.xrm b/examples/advanced/xray_telescope/analysis/Lab/g4Xt.xrm deleted file mode 100644 index be0d65964c..0000000000 --- a/examples/advanced/xray_telescope/analysis/Lab/g4Xt.xrm +++ /dev/null @@ -1,364 +0,0 @@ - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!! -!!!! A X11 resource file to customize G4UI sessions and -!!!! visualization viewers based over Xt. You use it by -!!!! setting the XENVIRONMENT environment variable to point -!!!! to this file, for example : -!!!! csh> setenv XENVIRONMENT g4Xt.xrm -!!!! sh> XENVIRONMENT=g4Xt.xrm;export XENVIRONMENT -!!!! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -*topShadowColor :white -*bottomShadowColor :black -*foreground :black -*background :lightgrey -*borderColor :lightgrey -*fontList :-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!! G4UIXm -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -*text.background :white -*text.fontList :*courier*-r-*--14-* -*text.maxLength :8000 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!! OPACS/Xo/XoCamera widget -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -*XoCamera.width:400 -*XoCamera.height:400 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! OpenInventor resources, copied from file : -! OpenInventor2.4.1/app-defaults/Inventor -! -!################################################# -! RESSOURCE FILE FOR OPEN INVENTOR ! -!################################################# -! -! You must put this file in -! /usr/lib/X11/app-defaults -! or set up XAPPLRESDIR (see X window documentation) -! -!################################################# -!!################################################ -!! POPUP MENU -!!------------------------------------------------ -!! FUNCTIONS MENU -!!------------------------------------------------ -*IvMenu.IvFunctions1.labelString: Functions -*IvFunctions2.IvHelp.labelString: Help -*IvFunctions2.IvHome.labelString: Home -*IvFunctions2.IvSetHome.labelString: Set Home -*IvFunctions2.IvViewAll.labelString: View All -*IvFunctions2.IvSeek.labelString: Seek -*IvFunctions2.IvCopyView.labelString: Copy View -*IvFunctions2.IvPasteView.labelString: Paste View -!!------------------------------------------------ -!! DRAW STYLE MENU -!!------------------------------------------------ -*IvMenu.IvDrawStyle1.labelString: Draw Style -*IvDrawStyle2.IvAsIs.labelString: as is -*IvDrawStyle2.IvHiddenLine.labelString: hidden line -*IvDrawStyle2.IvNoTexture.labelString: no texture -*IvDrawStyle2.IvLowResolution.labelString: low resolution -*IvDrawStyle2.IvWireFrame.labelString: wireframe -*IvDrawStyle2.IvPoints.labelString: points -*IvDrawStyle2.IvBoundingBoxNoDepth.labelString: bounding box ( no depth ) -*IvDrawStyle2.IvMoveSameAsStill.labelString: move same as still -*IvDrawStyle2.IvMoveNoTexture.labelString: move no texture. -*IvDrawStyle2.IvMoveLowRes.labelString: move low res -*IvDrawStyle2.IvMoveWireFrame.labelString: move wireframe -*IvDrawStyle2.IvMoveLowResWireFrameNoDepth.labelString: move low res wire frame ( no depth ) -*IvDrawStyle2.IvMovePoints.labelString: move points -*IvDrawStyle2.IvMoveLowResPointsNoDepth.labelString: move low res points ( no depth ) -*IvDrawStyle2.IvMoveBoundingBoxNoDepth.labelString: move bounding box ( no depth ) -*IvDrawStyle2.IvSingleBuffer.labelString: single buffer -*IvDrawStyle2.IvDoubleBuffer.labelString: Double buffer -*IvDrawStyle2.IvInteractiveBuffer.labelString: interactive buffer -!!------------------------------------------------ -*IvMenu.IvViewing.labelString: Viewing -!!------------------------------------------------ -*IvMenu.IvDecoration.labelString: Decoration -!!------------------------------------------------ -*IvMenu.IvHeadlight.labelString: Headlight -!!------------------------------------------------ -*IvMenu.IvPreferences.labelString: Preferences ... - -!!------------------------------------------------ -!! PREFERENCES -!!------------------------------------------------ -*IvFormPreference1.IvSeekAnimationTime.labelString: Seek animation time -*IvFormPreference1.IvSeconds.labelString: seconds -*IvFormPreference1.IvSeekTo.labelString: Seek to: -*IvFormPreference1.IvPoint.labelString: point -*IvFormPreference1.IvObject.labelString: object -*IvFormPreference2.IvSeekDistance.labelString: Seek distance: -*IvFormPreference2.IvPercentage.labelString: percentage -*IvFormPreference2.IvAbsolute.labelString: absolute -*IvZoomForm.IvCameraZoom.labelString: Camera zoom -*IvZoomForm.IvZoomSliderRangesFrom.labelString: Zoom slider ranges from: -*IvZoomForm.IvTo.labelString: to: -*IvZoomForm.IvZoomSlider.labelString: Zoom slider -*IvZoomForm.IvZoomField.labelString: Zoom field -*IvZoomForm.IvZoomFrom.labelString: Zoom from -*IvZoomForm.IvZoomTo.labelString: Zoom to -*IvFormPreference3.IvAutoClippingPlanes.labelString: Auto clipping planes -*IvFormPreference4.IvStereoViewing.labelString: Stereo Viewing -*IvFormPreference6.IvNearPlane.labelString: near plane -*IvFormPreference6.IvFarPlane.labelString: far plane -*IvStereoThumbForm.IvCameraRotation.labelString: Camera rotation - -!!------------------------------------------------ -!! Preferences for Examiner Viewer -!!------------------------------------------------ -*IvFormExaminer1.IvEnableSpinAnimation.labelString: Enable spin animation -*IvFormExaminer1.IvShowPointOfRotationAxes.labelString: Show point of rotation axes -*IvFormExaminer1.IvAxesSize.labelString: axes size -*IvFormExaminer1.IvPixels.labelString: pixels -!!------------------------------------------------ -!! Decorations for Examiner Viewer !! -!!------------------------------------------------ -*IvExamTitle.labelString: Examiner Viewer -*IvExamPrefTitle.labelString: Examiner Viewer Preference Sheet -*IvExamPopupTitle.labelString: Examiner Viewer -*IvExamIconTitle.labelString: Examiner Viewer -*IvExamRotx.labelString: Rotx -*IvExamRoty.labelString: Roty -*IvExamZoom.labelString: Zoom -*IvExamDolly.labelString: Dolly -!!------------------------------------------------ -!! Decorations for Plane Viewer !! -!!------------------------------------------------ -*IvPlaneTitle.labelString: Plane Viewer -*IvPlanePrefTitle.labelString: Plane Viewer Preference Sheet -*IvPlanePopupTitle.labelString: Plane Viewer -*IvPlaneIconTitle.labelString: Plane Viewer -*IvPlaneTransx.labelString: transX -*IvPlaneTransy.labelString: transY -*IvPlaneZoom.labelString: Zoom -*IvPlaneDolly.labelString: Dolly -!!------------------------------------------------ -!! Decorations for Fly Viewer !! -!!------------------------------------------------ -*IvFlyTitle.labelString: Fly Viewer -*IvFlyPrefTitle.labelString: Fly Viewer Preference Sheet -*IvFlyPopupTitle.labelString: Fly Viewer -*IvFlyIconTitle.labelString: Fly Viewer -!! Same for Walk Viewer !! -*IvFlyWalkRotate.labelString: Rotate -!! Same for Walk Viewer !! -*IvFlyWalkTilt.labelString: Tilt -!! Same for Walk Viewer !! -*IvFlyWalkDolly.labelString: Dolly -!!------------------------------------------------ -!! Preferences for Fly Viewer !! -!!------------------------------------------------ -*FlyPreference.FlyingSpeed.labelString: Flying speed: -*FlyPreference.Increase.labelString: increase -*FlyPreference.Decrease.labelString: decrease -!!------------------------------------------------ -!! Decorations for Walk Viewer !! -!!------------------------------------------------ -*IvWalkTitle.labelString: Walk Viewer -*IvWalkPrefTitle.labelString: Walk Viewer Preference Sheet -*IvWalkPopupTitle.labelString: Walk Viewer -*IvWalkIconTitle.labelString: Walk Viewer -*IvLeftTrimForm.IvH.labelString: H -!!------------------------------------------------ -!! Preferences for Walk Viewer !! -!!------------------------------------------------ -*IvFormPreference5.IvViewerSpeed.labelString: Viewer speed -*IvFormPreference5.IvIncrease.labelString: increase -*IvFormPreference5.IvDecrease.labelString: decrease -!!------------------------------------------------ -!! EDITORS -!!------------------------------------------------ -!! Drectional Light Editor !! -!!------------------------------------------------ -*IvDirectLightTitle.labelString: Dir Light Editor -*IvDirectLightIconTitle.labelString: Dir Light Ed -*IvDirectLightInten.labelString: Inten -*IvDirectLightColorEditor.labelString: Directional Light Color -*IvDLMenuBar.IvEdit.labelString: Edit -*IvDLMenuBar*IvControlPullDown*IvColorEditor.labelString: Color Editor -*IvDLMenuBar*IvControlPullDown*IvCopy.labelString: Copy -*IvDLMenuBar*IvControlPullDown*IvPaste.labelString: Paste -*IvDLMenuBar*IvControlPullDown*IvHelp.labelString: Help -!!------------------------------------------------ -!! Color Editor !! -!!------------------------------------------------ -*IvColorEditorTitle.labelString: Color Editor -*IvColorEditorIconTitle.labelString: Color Editor -*IvColorEditorR.labelString: R -*IvColorEditorG.labelString: G -*IvColorEditorB.labelString: B -*IvColorEditorH.labelString: H -*IvColorEditorS.labelString: S -*IvColorEditorV.labelString: V -*IvColorEditorRight.labelString: Right -*IvColorEditorSwitch.labelString: Switch -*IvColorEditorCont.labelString: Continuous -*IvColorEditorManu.labelString: Manual -*IvColorEditorWysi.labelString: WYSIWYG -*IvColorEditorCopy.labelString: Copy -*IvColorEditorPaste.labelString: Paste -*IvColorEditorHelp.labelString: Help -*IvColorEditorNone.labelString: None -*IvColorEditorValue.labelString: Value -*IvColorEditorRGB.labelString: RGB -*IvColorEditorHSV.labelString: HSV -*IvColorEditorRGBV.labelString: RGB V -*IvColorEditorRGBHSV.labelString: RGB HSV - -*IvCEMenuBar.IvEdit.labelString: Edit -*IvCEMenuBar.IvSliders.labelString: Sliders -*IvButtonsForm.IvAccept.labelString: Accept -!!------------------------------------------------ -!! Material Editor !! -!!------------------------------------------------ -*IvMaterialEditorTitle.labelString: Material Editor -*IvMaterialEditorIconTitle.labelString: Mat Editor -*IvMaterialAmbientTitle.labelString: Material Ambient Color -*IvMaterialDiffuseTitle.labelString: Material Diffuse Color -*IvMaterialSpecularTitle.labelString: Material Specular Color -*IvMaterialEmissiveTitle.labelString: -Material Emissive Color -*IvMaterialEditorMaterial.labelString: Material / -*IvMaterialEditorAmb.labelString: Amb / -*IvMaterialEditorDiff.labelString: Diff / -*IvMaterialEditorSpec.labelString: Spec / -*IvMaterialEditorEmis.labelString: Emis / -*IvMaterialEditorColor.labelString: Color -*IvMEMenuBar.IvEdit.labelString: Edit -*IvMEMenuBar*IvEditPullDown.IvMaterialList.labelString: Material List -*IvMEMenuBar*IvEditPullDown.IvContinuous.labelString: Continuous -*IvMEMenuBar*IvEditPullDown.IvManual.labelString: Manual -*IvMEMenuBar*IvEditPullDown.IvCopy.labelString: Copy -*IvMEMenuBar*IvEditPullDown.IvPaste.labelString: Paste -*IvMEMenuBar*IvEditPullDown.IvHelp.labelString: Help -*IvControls.IvEditColor.labelString: Edit Color -*IvsliderForm.IvtextForm.IvAmb.labelString: Amb: -*IvsliderForm.IvtextForm.IvDiff.labelString: Diff -*IvsliderForm.IvtextForm.IvSpec.labelString: Spec -*IvsliderForm.IvtextForm.IvEmis.labelString: Emis -*IvsliderForm.IvtextForm.IvShininess.labelString: Shininess -*IvsliderForm.IvtextForm.IvTransp.labelString: Transp: -*IvMETop.IvAccept.labelString: Accept -!!------------------------------------------------ -!! Material List !! -!!------------------------------------------------ -*IvMaterialListTitle.labelString: Material List -*IvMaterialListeIconTitle.labelString: Mat List -*IvMLMenuBar*IvPalettes.labelString: Palettes -!!------------------------------------------------ -!! Print Dialog -!!------------------------------------------------ -*IvPrintDialTitle.labelString: Print Dialog -*IvPrintDialIconTitle.labelString: -rint Dialog -*IvPrintDialPrinter.labelString: Printer: -*IvPrintDialPageOut.labelString: Page Output: -*IvPrintDialToPrinter.labelString: To Printer -*IvPrintDialToFile.labelString: To File -*IvPrintDialQuit.labelString: Quit -*IvPrintDialPrint.labelString: Print -*IvPrintDialMessage.labelString: Message: -*IvPrintDialFileFormat.labelString: File Format: -*IvPrintDialPostScript.labelString: PostScript -*IvPrintDialRGB.labelString: RGB -*IvPrintDialPrintQuality.labelString: Print Quality: -*IvPrintDialHigh.labelString: High -*IvPrintDialDraft.labelString: Draft -*IvPrintDialPageFormat.labelString: Page Format -*IvPrintDialPortrait.labelString: Portrait -*IvPrintDialLandscape.labelString: Landscape -*IvPrintDialPrintSize.labelString: Print Size (inches): -*IvPrintDialFileName.labelString: File Name: -*IvPrintDialResolution.labelString: Resolution -*IvPrintDialBy.labelString: by -*IvPrintDialDpi.labelString: DPI: -*IvPrintDialMess1.labelString: Printing in progress... -*IvPrintDialMess2.labelString: ERROR: Empty database. -*IvPrintDialMess3.labelString: ERROR: Exceeds -*IvPrintDialMess4.labelString: ERROR: Could not execute print. -*IvPrintDialMess5.labelString: ERROR: Could not execute print. -*IvPrintDialMess6.labelString: ERROR: No printer. -*IvPrintDialMess7.labelString: ERROR: Couldn't open -*IvPrintDialMess8.labelString: ERROR: No file name. -*IvPrintDialMess9.labelString: ERROR: Could not open file. -*IvPrintDialMess10.labelString: ERROR: Could not get data. -*IvPrintDialMess11.labelString: ERROR: Could not get data. -*IvPrintDialMess12.labelString: Printing completed. - -!!------------------------------------------------ -!! Xt Component ( For Light and Material Sliders Set ) -!!------------------------------------------------ -*IvXtComponentTitle.labelString: Xt Component -*IvTGSXtComponentTitle.labelString: TGS: Xt Component -!!------------------------------------------------ -!! For All Sliders -!!------------------------------------------------ -*IvSlidersMin.labelString: min -*IvSlidersMax.labelString: max -*IvSlidersStyle.labelString: style -!!------------------------------------------------ -!! Light Slider Set -!!------------------------------------------------ -*IvLightSliderColor.labelString: COLOR -*IvLightSliderRed.labelString: Red -*IvLightSliderGreen.labelString: Green -*IvLightSliderBlue.labelString: Blue -*IvLightSliderIntensity1.labelString: INTENSITY -*IvLightSliderIntensity2.labelString: Intensity -!!------------------------------------------------ -!! Material Slider Set -!!------------------------------------------------ -*IvMaterialSliderAmbient.labelString: AMBIENT -*IvMaterialSliderAmbientRed.labelString: Ambient Red -*IvMaterialSliderAmbientGreen.labelString: Ambient Green -*IvMaterialSliderAmbientBleu.labelString: Ambient Blue -*IvMaterialSliderDiffuse.labelString: DIFFUSE -*IvMaterialSliderDiffuseRed.labelString: Diffuse Red -*IvMaterialSliderDiffuseGreen.labelString: Diffuse Green -*IvMaterialSliderDiffuseBleu.labelString: Diffuse Blue -*IvMaterialSliderSpecular.labelString: SPECULAR -*IvMaterialSliderSpecularRed.labelString: Specular Red -*IvMaterialSliderSpecularGreen.labelString: Specular Green -*IvMaterialSliderSpecularBleu.labelString: Specular Blue -*IvMaterialSliderEmissive.labelString: EMISSIVE -*IvMaterialSliderEmissiveRed.labelString: Emissive Red -*IvMaterialSliderEmissiveGreen.labelString: Emissive Green -*IvMaterialSliderEmissiveBlue.labelString: Emissive Blue -*IvMaterialSliderShininess.labelString: SHININESS -*IvMaterialSliderShininessShininess.labelString: shininess -*IvMaterialSliderTransparency.labelString: TRANSPARENCY -*IvMaterialSliderTransparencyTransparency.labelString: transparency -!!------------------------------------------------ -!! Transform Slider Set -!!------------------------------------------------ -*IvTransformSliderTrans.labelString: TRANSLATIONS -*IvTransformSliderTransX.labelString: X Translation -*IvTransformSliderTransY.labelString: Y Translation -*IvTransformSliderTransZ.labelString: Z Translation -*IvTransformSliderScale.labelString: SCALES -*IvTransformSliderScaleX.labelString: X Scale -*IvTransformSliderScaleY.labelString: Y Scale -*IvTransformSliderScaleZ.labelString: Z Scale -*IvTransformSliderRotate.labelString: ROTATIONS -*IvTransformSliderRotateX.labelString: X Rotate -*IvTransformSliderRotateY.labelString: Y Rotate -*IvTransformSliderRotateZ.labelString: Z Rotate -*IvTransformSliderScaleOrient.labelString: SCALE ORIENTATION -*IvTransformSliderScaleOrientX.labelString: X Rotate -*IvTransformSliderScaleOrientY.labelString: Y Rotate -*IvTransformSliderScaleOrientZ.labelString: Z Rotate -*IvTransformSliderCenter.labelString: CENTER -*IvTransformSliderCenterX.labelString: X Center -*IvTransformSliderCenterY.labelString: Y Center -*IvTransformSliderCenterZ.labelString: Z Center -*IvTransformSliderTitle.labelString: Transform Editor -*IvTransformSliderIconTitle.labelString: Xf Editor - - -!!------------------- THE END -------------------- diff --git a/examples/advanced/xray_telescope/analysis/Lab/gui.mac b/examples/advanced/xray_telescope/analysis/Lab/gui.mac deleted file mode 100644 index 3e919f2da8..0000000000 --- a/examples/advanced/xray_telescope/analysis/Lab/gui.mac +++ /dev/null @@ -1,21 +0,0 @@ -# -# This file permits to customize, with commands, -# the menu bar of the G4UIXm, G4UIWin32 sessions. -# It has no effect with G4UIterminal. -# -# File : -/gui/addMenu file File -/gui/addButton file Continue continue -/gui/addButton file Exit "exit" -# -# Run menu : -/gui/addMenu run Run -/gui/addButton run run "/control/execute run.mac" -/gui/addButton run "Long Section" "/control/execute longsection.macro" -# -# Analysis : -/gui/addMenu analysis Analysis -/gui/addButton analysis "Lab/oxm" "/gui/system oxm&" -/gui/addButton analysis "Lab/ogtk" "/gui/system ogtk&" -/gui/addButton analysis "jas" "/gui/system jas&" -# diff --git a/examples/advanced/xray_telescope/analysis/Lab/jas.sh b/examples/advanced/xray_telescope/analysis/Lab/jas.sh deleted file mode 100755 index de838a8933..0000000000 --- a/examples/advanced/xray_telescope/analysis/Lab/jas.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -f -cd /lal/jas/2.0alpha4/release -./jas diff --git a/examples/advanced/xray_telescope/analysis/Lab/main.xml b/examples/advanced/xray_telescope/analysis/Lab/main.xml deleted file mode 100755 index d61b4ed635..0000000000 --- a/examples/advanced/xray_telescope/analysis/Lab/main.xml +++ /dev/null @@ -1,380 +0,0 @@ - - - source $env(ONXHOME)/user/init.tcl; - source $env(ONXHOME)/user/ui.tcl; - source $env(LABHOME)/user/init.tcl; - delete v; - IViewer v -this [ui getCurrentViewer]; - v set pageTitle "XrayTel"; - v set page "2 1"; - v set region 2; - v set cloudContext "modeling cloud color blue markerStyle cross markerSize 10"; - v set region 1; - ui synchronize; - #out disable; - - - - Window - consoleWindow - 500x300-0+0 - OnX/Console - no - - VBox - - ScrolledText - consoleText - - - Entry - consoleEntry - tcl> - ui execute "[ui getResource consoleEntry prompt] [ui getValue consoleEntry]" - - - - - - - Window - 500x500+0+0 - Lab/Main - - - VBox - - MenuBar - menuBar - - CascadeButton - - - Menu - - MenuItem - - ui show consoleWindow - - - MenuItem - - setTclFileChooser;ui show fileChooser - - - MenuItem - - source session.tcl - - - MenuItem - - setCintFileChooser;ui show fileChooser - - - MenuItem - - setKuipFileChooser;ui show fileChooser - - - MenuItem - - /LIB/LOAD LABLIBLABKUIPWRAP LabKuip - exec session - - - MenuItem - - out disable - - - MenuItem - - - ui setPrompt tcl> - ui exit - - - MenuItem - - ui exit - - - - - - CascadeButton - - - Menu - - MenuItem - - Do3 set region next - - - MenuItem - - Do3 page 1 1 - - - MenuItem - - Do3 page 2 2 - - - MenuItem - - Do3 page 1 2 - - - MenuItem - - Do3 page 2 1 - - - MenuItem - - Do3 set region page - - - MenuItem - - Do3 set viewing 2D - - - MenuItem - - Do3 set viewing 3D - - - MenuItem - - Do3 set regionColor "0 0 0" - - - MenuItem - - Do3 set regionColor "1 1 1" - - - MenuItem - - Do3 set regionColor "0.8 0.8 0.8" - - - MenuItem - - Do1 viewAll - - - MenuItem - - Do2 producePS out.ps - - - MenuItem - - Do3 writeImage out.ps PostScript - - - MenuItem - - exec ghostview out.ps - - - MenuItem - - Do3 writeImage out.gif GIF - - - MenuItem - - exec xv out.gif - - - MenuItem - - Do2 reset page - - - MenuItem - - Do2 erase page - - - MenuItem - - Do2 reset region - - - MenuItem - - Do2 erase region - - - MenuItem - - Do2 erase static - - - MenuItem - - Do2 erase dynamic - - - MenuItem - - Do2 toggle pageTitleVisible - - - MenuItem - - Do2 toggle autoClipping - - - MenuItem - - ui createViewer "" examiner - - - - - - CascadeButton - - - Menu - - MenuItem - - Do2 toggle vAxisLogScale - - - MenuItem - - Do2 toggle xAxisLogScale - - - MenuItem - - Do2 toggle wallVisible - - - MenuItem - - Do2 toggle gridVisible - - - MenuItem - - Do2 toggle innerFrameVisible - - - MenuItem - - Do2 toggle infosVisible - - - MenuItem - - Do2 toggle titleVisible - - - MenuItem - - Do2 toggle titleUp - - - MenuItem - - Do2 toggle errorsVisible - - - MenuItem - - Do2 toggle superposeHistograms - - - MenuItem - - Do3 set xyModeling RANDOM - - - MenuItem - - Do3 set xyModeling BOX - - - MenuItem - - Do3 set xyModeling TEXT - - - MenuItem - - Do3 set xyModeling COLOR - - - MenuItem - - Lego - - - - - - CascadeButton - - - Menu - - MenuItem - - x $LABHOME/examples/cint/gauss.cint - - - MenuItem - - session load LABLIBLABCINTWRAP LabCint - { - ISession* session = OnXCintGetSession(); - /* If on the stack, I have a crash at exit. */ - HCL_Histogram1D* hclHisto = new HCL_Histogram1D("",10,-5.,5.); - Lib_RandomGauss randomGauss; - for(int count=0;count < 1000;count++) { - hclHisto->fill(randomGauss.shoot()); - } - hclHisto->dump(session->out()); - } - - - - - - CascadeButton - - - Menu - viewers - - - - - - Viewer - OnX/Main/Viewer - - - - - FileSelection - fileChooser - File selection - no - - - - - diff --git a/examples/advanced/xray_telescope/analysis/Lab/run.mac b/examples/advanced/xray_telescope/analysis/Lab/run.mac deleted file mode 100644 index cff0a8c12d..0000000000 --- a/examples/advanced/xray_telescope/analysis/Lab/run.mac +++ /dev/null @@ -1,9 +0,0 @@ -/run/verbose 2 -/run/particle/dumpCutValues -/tracking/storeTrajectory 1 -/gun/random aperture -/gun/particle proton -/gun/energy 0.5 MeV -#/run/beamOn 1000 -/run/beamOn 1000000 - diff --git a/examples/advanced/xray_telescope/analysis/Lab/session.tcl b/examples/advanced/xray_telescope/analysis/Lab/session.tcl deleted file mode 100644 index e682c96e22..0000000000 --- a/examples/advanced/xray_telescope/analysis/Lab/session.tcl +++ /dev/null @@ -1,59 +0,0 @@ -# -# ******************************************************************** -# * DISCLAIMER * -# * * -# * The following disclaimer summarizes all the specific disclaimers * -# * of contributors to this software. The specific disclaimers,which * -# * govern, are listed with their locations in: * -# * http://cern.ch/geant4/license * -# * * -# * Neither the authors of this software system, nor their employing * -# * institutes,nor the agencies providing financial support for this * -# * work make any representation or warranty, express or implied, * -# * regarding this software system or assume any liability for its * -# * use. * -# * * -# * This code implementation is the intellectual property of the * -# * GEANT4 collaboration. * -# * By copying, distributing or modifying the Program (or any work * -# * based on the Program) you indicate your acceptance of this * -# * statement, and all its terms. * -# ******************************************************************** -# -#///////////////////////////////////////////////////////////////////////////// -#///////////////////////////////////////////////////////////////////////////// -#///////////////////////////////////////////////////////////////////////////// -delete v -# -# Get a SWIG handler over the current viewer : -IViewer v -this [ui getCurrentViewer] -v reset page -# -# 2x2 regions : -v set page "1 2" -v set pageTitle "Xray telescope" -# -#///////////////////////////////////////////////////////////////////////////// -delete storage -# -RioStorage storage g4osc.root READ -storage ls -# -delete hEnteringEnergy -delete hYZ -# -# Get some histograms with the H1Get -# builtin procedure defined in Lab/user/init.tcl : -# H1DGet -H1DGet hEnteringEnergy storage "Entering energy" -# -# Plot the histo : -hEnteringEnergy vis -# -v set textContext "color black fontName TTF/couri" -v set histogramContext "color red modeling solid" -# -delete hYZ -H2DGet hYZ storage "YZ" -v set region 2 -hYZ vis diff --git a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh index 25ab31312d..b8ee5c6a1c 100644 --- a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh +++ b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh @@ -22,7 +22,7 @@ // // // $Id: XrayTelAnalysis.hh,v 1.8 2004/05/28 15:56:58 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) // (copy of his UserAnalyser class) diff --git a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc index 63af2fc2d8..d6fd619c30 100644 --- a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc +++ b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc @@ -22,7 +22,7 @@ // // // $Id: XrayTelAnalysis.cc,v 1.11 2004/05/28 15:56:59 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) // (copied from his UserAnalyser class) diff --git a/examples/advanced/xray_telescope/src/XrayTelVisManager.cc b/examples/advanced/xray_telescope/src/XrayTelVisManager.cc deleted file mode 100755 index 973e71ce45..0000000000 --- a/examples/advanced/xray_telescope/src/XrayTelVisManager.cc +++ /dev/null @@ -1,160 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// ********************************************************************** -// * * -// * GEANT 4 xray_telescope advanced example * -// * * -// * MODULE: XrayTelVisManager.cc * -// * ------- * -// * * -// * Version: 0.4 * -// * Date: 06/11/00 * -// * Author: R Nartallo * -// * Organisation: ESA/ESTEC, Noordwijk, THe Netherlands * -// * * -// ********************************************************************** -// -// CHANGE HISTORY -// -------------- -// -// 06.11.2000 R.Nartallo -// - First implementation of xray_telescope Physics list -// - Based on Chandra and XMM models -// -// -// ********************************************************************** - -#ifdef G4VIS_USE - -#include "XrayTelVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -XrayTelVisManager::XrayTelVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void XrayTelVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/xray_telescope/test.out b/examples/advanced/xray_telescope/test.out index 9bb1f33799..f92cd3117a 100644 --- a/examples/advanced/xray_telescope/test.out +++ b/examples/advanced/xray_telescope/test.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (19-May-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/analysis/A01/.cvsignore b/examples/extended/analysis/A01/.cvsignore index 1c44a5e0eb..a3a7067684 100644 --- a/examples/extended/analysis/A01/.cvsignore +++ b/examples/extended/analysis/A01/.cvsignore @@ -1,3 +1,17 @@ A01.aida -G4Output.zip - +A01Output.heprep.zip +A01Output.bheprep.zip +A01Output.heprep.gz +A01Output.bheprep.gz +A01Output.heprep.gz.no-gz +A01Output.bheprep.gz.no-gz +A01Output.heprep +A01Output.bheprep +A01Output-*.heprep.zip +A01Output-*.bheprep.zip +A01Output-*.heprep.gz +A01Output-*.bheprep.gz +A01Output-*.heprep.gz.no-gz +A01Output-*.bheprep.gz.no-gz +A01Output-*.heprep +A01Output-*.bheprep diff --git a/examples/extended/analysis/A01/A01app.cc b/examples/extended/analysis/A01/A01app.cc index d7a16eec83..ee5fb61bc1 100644 --- a/examples/extended/analysis/A01/A01app.cc +++ b/examples/extended/analysis/A01/A01app.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01app.cc,v 1.5 2003/10/13 01:55:51 asaim Exp $ +// $Id: A01app.cc,v 1.6 2005/05/03 10:21:16 allison Exp $ // -------------------------------------------------------------- // // -------------------------------------------------------------- @@ -45,7 +45,7 @@ #include "A01EventAction.hh" #ifdef G4VIS_USE -#include "A01VisManager.hh" +#include "G4VisExecutive.hh" #endif int main(int argc,char** argv) @@ -55,7 +55,7 @@ int main(int argc,char** argv) #ifdef G4VIS_USE // Visualization manager construction - G4VisManager* visManager = new A01VisManager(); + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/analysis/A01/GNUmakefile b/examples/extended/analysis/A01/GNUmakefile index 318319cd19..4009e32f07 100644 --- a/examples/extended/analysis/A01/GNUmakefile +++ b/examples/extended/analysis/A01/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.8 2004/11/23 04:02:01 tkoi Exp $ +# $Id: GNUmakefile,v 1.9 2005/03/31 16:04:00 duns Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module # -------------------------------------------------------------- @@ -53,5 +53,5 @@ endif ifdef G4ANALYSIS_USE CPPFLAGS += `aida-config --include` - LOADLIBS += `aida-config --lib` + LDLIBS += `aida-config --lib` endif diff --git a/examples/extended/analysis/A01/History b/examples/extended/analysis/A01/History index 020b75f8f6..0fa7850a8f 100644 --- a/examples/extended/analysis/A01/History +++ b/examples/extended/analysis/A01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.28 2004/12/13 16:02:49 gcosmo Exp $ +$Id: History,v 1.36 2005/06/02 10:06:36 perl Exp $ ------------------------------------------------------------------- ========================================================= @@ -10,6 +10,28 @@ $Id: History,v 1.28 2004/12/13 16:02:49 gcosmo Exp $ ---------------------------------------------------------- --------------------------------------------------------------------------- +2 June 2005 - Joseph Perl (exampleA01-V07-00-05) +- Add G4Atts to the four hit classes. + +1 June 2005 - Mark Donszelmann (exampleA01-V07-00-04) +- Updated documentation for the use of Binary HepRep. + +31st May 2005 - Mark Donszelmann (exampleA01-V07-00-03) +- Added setting of initial viewpoint to macro files for heprep and bheprep. + +26th May 2005 - Mark Donszelmann (exampleA01-V07-00-02) +- Fixed filling of hit histograms. + +16th May 2005 - Mark Donszelmann (exampleA01-V07-00-01) +- Added bheprep example files. + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +31 March 2005 Mark Donszelmann (exampleA01-V07-00-00) +- Fixed linking problem with AIDA by replacing LOADLIBS with LDLIBS + which is not touched by the replacement strategy in binmake.gmk + for WIN32-VC. 13th December 2004 Gabriele Cosmo (exampleA01-V06-02-03) - Modified hadlists.gmk to new phys-lists structure. diff --git a/examples/extended/analysis/A01/README b/examples/extended/analysis/A01/README index 3e20f9d51f..ec53f316fa 100644 --- a/examples/extended/analysis/A01/README +++ b/examples/extended/analysis/A01/README @@ -1,4 +1,4 @@ -$Id: README,v 1.8 2003/12/01 19:12:38 perl Exp $ +$Id: README,v 1.9 2005/06/01 18:10:15 duns Exp $ ========================================================= Geant4 - an Object-Oriented Toolkit for Simulation in HEP @@ -143,7 +143,7 @@ $Id: README,v 1.8 2003/12/01 19:12:38 perl Exp $ heprep2zip.mac outputs a single zip file that unzips to a series of HepRep version 2 files, each each containing a single event (unzip the single file by hand, then view the resulting individial HepRep - files in WIRED). + files in WIRED 3). heprep2-000-zip.mac outputs a series of zipped HepRep version 2 files each containing a single event (not yet viewable in WIRED unless you @@ -157,6 +157,13 @@ $Id: README,v 1.8 2003/12/01 19:12:38 perl Exp $ appended to a single file in an experimental manner (not yet viewable in WIRED). + Any of the heprep mac files above with the name bheprep (for instance + bheprep2zip.mac) will write a Binary HepRep version 2 file, readable + by WIRED 4. + + WIRED 4 can read Binary HepRep and XML HepRep version 2 files without + the need for manual unzipping. + For more information on visualization with this A01 example, see the visualization tutorials on the Geant4 Workshop Tutorial CD available at: diff --git a/examples/extended/analysis/A01/bheprep2-000-gz.mac b/examples/extended/analysis/A01/bheprep2-000-gz.mac new file mode 100755 index 0000000000..68715d70cd --- /dev/null +++ b/examples/extended/analysis/A01/bheprep2-000-gz.mac @@ -0,0 +1,44 @@ +# +# Macro file for A01app +# +# This file does visualization using the HepRep2 format. +# This format is not yet ready for general use (still being debugged). +# +/run/verbose 2 +# +# +# Create empty scene ("world" is default) +# +/vis/scene/create A01Output.bheprep.gz +/vis/heprep/setEventNumberSuffix -000 + +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open HepRepXML +/vis/viewer/set/culling global false +/vis/viewer/zoom 0.0001 +/vis/viewer/set/viewpointThetaPhi 90 90.0001 deg +#/vis/scene/endOfEventAction accumulate +# +# Add volume to scene +# +/vis/scene/add/volume +# +# Add trajectories to scene +# +/vis/scene/add/trajectories +# +# Add hits to scene +# +/vis/scene/add/hits +# +# Do runs +# +/tracking/storeTrajectory 1 +/mydet/armAngle 60. deg +/mydet/fieldValue 4. tesla +/mydet/momentum 2. GeV +/gun/particle e+ +/run/beamOn 10 diff --git a/examples/extended/analysis/A01/bheprep2-000-zip.mac b/examples/extended/analysis/A01/bheprep2-000-zip.mac new file mode 100755 index 0000000000..d7d524f5e3 --- /dev/null +++ b/examples/extended/analysis/A01/bheprep2-000-zip.mac @@ -0,0 +1,44 @@ +# +# Macro file for A01app +# +# This file does visualization using the HepRep2 format. +# This format is not yet ready for general use (still being debugged). +# +/run/verbose 2 +# +# +# Create empty scene ("world" is default) +# +/vis/scene/create A01Output.bheprep.zip +/vis/heprep/setEventNumberSuffix -000 + +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open HepRepXML +/vis/viewer/set/culling global false +/vis/viewer/zoom 0.0001 +/vis/viewer/set/viewpointThetaPhi 90 90.0001 deg +#/vis/scene/endOfEventAction accumulate +# +# Add volume to scene +# +/vis/scene/add/volume +# +# Add trajectories to scene +# +/vis/scene/add/trajectories +# +# Add hits to scene +# +/vis/scene/add/hits +# +# Do runs +# +/tracking/storeTrajectory 1 +/mydet/armAngle 60. deg +/mydet/fieldValue 4. tesla +/mydet/momentum 2. GeV +/gun/particle e+ +/run/beamOn 10 diff --git a/examples/extended/analysis/A01/bheprep2.mac b/examples/extended/analysis/A01/bheprep2.mac new file mode 100755 index 0000000000..9572100863 --- /dev/null +++ b/examples/extended/analysis/A01/bheprep2.mac @@ -0,0 +1,39 @@ +# +# Macro file for A01app +# +/run/verbose 2 +# +# +# Create empty scene ("world" is default) +# +/vis/scene/create A01Output.bheprep +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open HepRepXML +/vis/viewer/set/culling global false +/vis/viewer/zoom 0.0001 +/vis/viewer/set/viewpointThetaPhi 90 90.0001 deg +#/vis/scene/endOfEventAction accumulate +# +# Add volume to scene +# +/vis/scene/add/volume +# +# Add trajectories to scene +# +/vis/scene/add/trajectories +# +# Add hits to scene +# +/vis/scene/add/hits +# +# Do runs +# +/tracking/storeTrajectory 1 +/mydet/armAngle 60. deg +/mydet/fieldValue 4. tesla +/mydet/momentum 2. GeV +/gun/particle e+ +/run/beamOn 10 diff --git a/examples/extended/analysis/A01/bheprep2gz.mac b/examples/extended/analysis/A01/bheprep2gz.mac new file mode 100755 index 0000000000..214970b667 --- /dev/null +++ b/examples/extended/analysis/A01/bheprep2gz.mac @@ -0,0 +1,41 @@ +# +# Macro file for A01app +# +# This file does visualization using the HepRep2 format. +# This format is not yet ready for general use (still being debugged). +# +/run/verbose 2 +# +# +# Create empty scene ("world" is default) +# +/vis/scene/create A01Output.bheprep.gz +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open HepRepXML +/vis/viewer/set/culling global false +/vis/viewer/zoom 0.0001 +/vis/viewer/set/viewpointThetaPhi 90 90.0001 deg +# +# Add volume to scene +# +/vis/scene/add/volume +# +# Add trajectories to scene +# +/vis/scene/add/trajectories +# +# Add hits to scene +# +/vis/scene/add/hits +# +# Do runs +# +/tracking/storeTrajectory 1 +/mydet/armAngle 60. deg +/mydet/fieldValue 4. tesla +/mydet/momentum 2. GeV +/gun/particle e+ +/run/beamOn 10 diff --git a/examples/extended/analysis/A01/bheprep2zip.mac b/examples/extended/analysis/A01/bheprep2zip.mac new file mode 100755 index 0000000000..3d03df6d64 --- /dev/null +++ b/examples/extended/analysis/A01/bheprep2zip.mac @@ -0,0 +1,42 @@ +# +# Macro file for A01app +# +# This file does visualization using the HepRep2 format. +# This format is not yet ready for general use (still being debugged). +# +/run/verbose 2 +# +# +# Create empty scene ("world" is default) +# +/vis/scene/create A01Output.bheprep.zip +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open HepRepXML +/vis/heprep/appendGeometry true +/vis/viewer/set/culling global false +/vis/viewer/zoom 0.0001 +/vis/viewer/set/viewpointThetaPhi 90 90.0001 deg +# +# Add volume to scene +# +/vis/scene/add/volume +# +# Add trajectories to scene +# +/vis/scene/add/trajectories +# +# Add hits to scene +# +/vis/scene/add/hits +# +# Do runs +# +/tracking/storeTrajectory 1 +/mydet/armAngle 60. deg +/mydet/fieldValue 4. tesla +/mydet/momentum 2. GeV +/gun/particle e+ +/run/beamOn 10 diff --git a/examples/extended/analysis/A01/heprep2-000-gz.mac b/examples/extended/analysis/A01/heprep2-000-gz.mac index 5abbd34dc1..799d1f1810 100644 --- a/examples/extended/analysis/A01/heprep2-000-gz.mac +++ b/examples/extended/analysis/A01/heprep2-000-gz.mac @@ -17,9 +17,9 @@ # Edit the next line(s) to choose another graphic system # /vis/open HepRepXML -/vis/heprep/setCoordinateSystem zxy /vis/viewer/set/culling global false /vis/viewer/zoom 0.0001 +/vis/viewer/set/viewpointThetaPhi 90 90.0001 deg #/vis/scene/endOfEventAction accumulate # # Add volume to scene diff --git a/examples/extended/analysis/A01/heprep2-000-zip.mac b/examples/extended/analysis/A01/heprep2-000-zip.mac index af0b5758b9..cf3c0e94e5 100644 --- a/examples/extended/analysis/A01/heprep2-000-zip.mac +++ b/examples/extended/analysis/A01/heprep2-000-zip.mac @@ -17,9 +17,9 @@ # Edit the next line(s) to choose another graphic system # /vis/open HepRepXML -/vis/heprep/setCoordinateSystem zxy /vis/viewer/set/culling global false /vis/viewer/zoom 0.0001 +/vis/viewer/set/viewpointThetaPhi 90 90.0001 deg #/vis/scene/endOfEventAction accumulate # # Add volume to scene diff --git a/examples/extended/analysis/A01/heprep2.mac b/examples/extended/analysis/A01/heprep2.mac index bf1681a4ff..a338452cd9 100644 --- a/examples/extended/analysis/A01/heprep2.mac +++ b/examples/extended/analysis/A01/heprep2.mac @@ -12,10 +12,9 @@ # Edit the next line(s) to choose another graphic system # /vis/open HepRepXML -/vis/heprep/setCoordinateSystem zxy /vis/viewer/set/culling global false /vis/viewer/zoom 0.0001 -#/vis/viewer/set/viewpointThetaPhi 20 40 deg +/vis/viewer/set/viewpointThetaPhi 90 90.0001 deg #/vis/scene/endOfEventAction accumulate # # Add volume to scene diff --git a/examples/extended/analysis/A01/heprep2gz.mac b/examples/extended/analysis/A01/heprep2gz.mac index a9bdd3dfad..7482781eda 100644 --- a/examples/extended/analysis/A01/heprep2gz.mac +++ b/examples/extended/analysis/A01/heprep2gz.mac @@ -15,9 +15,9 @@ # Edit the next line(s) to choose another graphic system # /vis/open HepRepXML -/vis/heprep/setCoordinateSystem zxy /vis/viewer/set/culling global false /vis/viewer/zoom 0.0001 +/vis/viewer/set/viewpointThetaPhi 90 90.0001 deg # # Add volume to scene # diff --git a/examples/extended/analysis/A01/heprep2zip.mac b/examples/extended/analysis/A01/heprep2zip.mac index 75c7ed28ca..90839e7ccf 100644 --- a/examples/extended/analysis/A01/heprep2zip.mac +++ b/examples/extended/analysis/A01/heprep2zip.mac @@ -15,10 +15,10 @@ # Edit the next line(s) to choose another graphic system # /vis/open HepRepXML -/vis/heprep/appendGeometry false -/vis/heprep/setCoordinateSystem zxy +/vis/heprep/appendGeometry true /vis/viewer/set/culling global false /vis/viewer/zoom 0.0001 +/vis/viewer/set/viewpointThetaPhi 90 90.0001 deg # # Add volume to scene # diff --git a/examples/extended/analysis/A01/include/A01DriftChamberHit.hh b/examples/extended/analysis/A01/include/A01DriftChamberHit.hh index 24077438a3..3b1e3b5993 100644 --- a/examples/extended/analysis/A01/include/A01DriftChamberHit.hh +++ b/examples/extended/analysis/A01/include/A01DriftChamberHit.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01DriftChamberHit.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// $Id: A01DriftChamberHit.hh,v 1.4 2005/06/02 10:06:36 perl Exp $ // -------------------------------------------------------------- // #ifndef A01DriftChamberHit_h @@ -34,6 +34,9 @@ #include "G4Transform3D.hh" #include "G4RotationMatrix.hh" +class G4AttDef; +class G4AttValue; + class A01DriftChamberHit : public G4VHit { public: @@ -52,6 +55,8 @@ class A01DriftChamberHit : public G4VHit inline float y(); virtual void Draw(); + virtual const std::map* GetAttDefs() const; + virtual std::vector* CreateAttValues() const; virtual void Print(); private: diff --git a/examples/extended/analysis/A01/include/A01EmCalorimeterHit.hh b/examples/extended/analysis/A01/include/A01EmCalorimeterHit.hh index 493a605d86..bfcb42e722 100644 --- a/examples/extended/analysis/A01/include/A01EmCalorimeterHit.hh +++ b/examples/extended/analysis/A01/include/A01EmCalorimeterHit.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EmCalorimeterHit.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// $Id: A01EmCalorimeterHit.hh,v 1.4 2005/06/02 10:06:36 perl Exp $ // -------------------------------------------------------------- // #ifndef A01EmCalorimeterHit_h @@ -34,6 +34,9 @@ #include "G4Transform3D.hh" #include "G4RotationMatrix.hh" +class G4AttDef; +class G4AttValue; + class A01EmCalorimeterHit : public G4VHit { public: @@ -49,6 +52,8 @@ class A01EmCalorimeterHit : public G4VHit inline void operator delete(void *aHit); virtual void Draw(); + virtual const std::map* GetAttDefs() const; + virtual std::vector* CreateAttValues() const; virtual void Print(); private: diff --git a/examples/extended/analysis/A01/include/A01HadCalorimeterHit.hh b/examples/extended/analysis/A01/include/A01HadCalorimeterHit.hh index 6fcb1a0ac9..885effb540 100644 --- a/examples/extended/analysis/A01/include/A01HadCalorimeterHit.hh +++ b/examples/extended/analysis/A01/include/A01HadCalorimeterHit.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01HadCalorimeterHit.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// $Id: A01HadCalorimeterHit.hh,v 1.4 2005/06/02 10:06:36 perl Exp $ // -------------------------------------------------------------- // #ifndef A01HadCalorimeterHit_h @@ -34,6 +34,9 @@ #include "G4Transform3D.hh" #include "G4RotationMatrix.hh" +class G4AttDef; +class G4AttValue; + class A01HadCalorimeterHit : public G4VHit { public: @@ -49,6 +52,8 @@ class A01HadCalorimeterHit : public G4VHit inline void operator delete(void *aHit); virtual void Draw(); + virtual const std::map* GetAttDefs() const; + virtual std::vector* CreateAttValues() const; virtual void Print(); private: diff --git a/examples/extended/analysis/A01/include/A01HodoscopeHit.hh b/examples/extended/analysis/A01/include/A01HodoscopeHit.hh index 806c4cc248..19f88c28f5 100644 --- a/examples/extended/analysis/A01/include/A01HodoscopeHit.hh +++ b/examples/extended/analysis/A01/include/A01HodoscopeHit.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01HodoscopeHit.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// $Id: A01HodoscopeHit.hh,v 1.4 2005/06/02 10:06:36 perl Exp $ // -------------------------------------------------------------- // #ifndef A01HodoscopeHit_h @@ -34,6 +34,9 @@ #include "G4Transform3D.hh" #include "G4RotationMatrix.hh" +class G4AttDef; +class G4AttValue; + class A01HodoscopeHit : public G4VHit { public: @@ -49,6 +52,8 @@ class A01HodoscopeHit : public G4VHit inline void operator delete(void*aHit); void Draw(); + virtual const std::map* GetAttDefs() const; + virtual std::vector* CreateAttValues() const; void Print(); private: diff --git a/examples/extended/analysis/A01/src/A01DriftChamberHit.cc b/examples/extended/analysis/A01/src/A01DriftChamberHit.cc index 0c444198f6..3c94c88d73 100644 --- a/examples/extended/analysis/A01/src/A01DriftChamberHit.cc +++ b/examples/extended/analysis/A01/src/A01DriftChamberHit.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01DriftChamberHit.cc,v 1.5 2003/07/11 21:32:02 duns Exp $ +// $Id: A01DriftChamberHit.cc,v 1.7 2005/06/07 10:50:02 perl Exp $ // -------------------------------------------------------------- // #include "A01DriftChamberHit.hh" @@ -28,6 +28,11 @@ #include "G4VVisManager.hh" #include "G4Circle.hh" #include "G4Colour.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UIcommand.hh" +#include "G4UnitsTable.hh" #include "G4VisAttributes.hh" #include "G4LogicalVolume.hh" @@ -85,6 +90,71 @@ void A01DriftChamberHit::Draw() } } +const std::map* A01DriftChamberHit::GetAttDefs() const +{ + G4bool isNew; + std::map* store + = G4AttDefStore::GetInstance("A01DriftChamberHit",isNew); + if (isNew) { + G4String HitType("HitType"); + (*store)[HitType] = G4AttDef(HitType,"Hit Type","Bookkeeping","","G4String"); + + G4String ID("ID"); + (*store)[ID] = G4AttDef(ID,"ID","Bookkeeping","","G4int"); + + G4String Column("Column"); + (*store)[Column] = G4AttDef(Column,"Column ID","Bookkeeping","","G4int"); + + G4String Row("Row"); + (*store)[Row] = G4AttDef(Row,"Row ID","Bookkeeping","","G4int"); + + //G4String Time("Time"); + //(*store)[Time] = G4AttDef(Time,"Time","Physics","G4BestUnit","G4double"); + + G4String Energy("Energy"); + (*store)[Energy] = G4AttDef(Energy,"Energy Deposited","Physics","G4BestUnit","G4double"); + + G4String Pos("Pos"); + (*store)[Pos] = G4AttDef(Pos, "Position", + "Physics","G4BestUnit","G4ThreeVector"); + + G4String LVol("LVol"); + (*store)[LVol] = G4AttDef(LVol,"Logical Volume","Bookkeeping","","G4String"); + } + return store; +} + +std::vector* A01DriftChamberHit::CreateAttValues() const +{ + std::vector* values = new std::vector; + + values->push_back(G4AttValue("HitType","DriftChamberHit","")); + + values->push_back + (G4AttValue("ID",G4UIcommand::ConvertToString(layerID),"")); + + values->push_back + (G4AttValue("Column"," ","")); + + values->push_back + (G4AttValue("Row"," ","")); + + //values->push_back + // (G4AttValue("Time",G4BestUnit(time,"Time"),"")); + + G4double noEnergy = 0.*MeV; + values->push_back + (G4AttValue("Energy",G4BestUnit(noEnergy,"Energy"),"")); + + values->push_back + (G4AttValue("Pos",G4BestUnit(worldPos,"Length"),"")); + + values->push_back + (G4AttValue("LVol"," ","")); + + return values; +} + void A01DriftChamberHit::Print() { G4cout << " Layer[" << layerID << "] : time " << time/ns diff --git a/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc b/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc index cdaa6421fb..51130891d5 100644 --- a/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc +++ b/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc @@ -20,13 +20,18 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EmCalorimeterHit.cc,v 1.6 2003/10/14 18:58:18 perl Exp $ +// $Id: A01EmCalorimeterHit.cc,v 1.8 2005/06/07 10:50:02 perl Exp $ // -------------------------------------------------------------- // #include "A01EmCalorimeterHit.hh" #include "G4VVisManager.hh" #include "G4Colour.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UIcommand.hh" +#include "G4UnitsTable.hh" #include "G4VisAttributes.hh" #include "G4LogicalVolume.hh" #include "G4ios.hh" @@ -94,6 +99,75 @@ void A01EmCalorimeterHit::Draw() } } +const std::map* A01EmCalorimeterHit::GetAttDefs() const +{ + G4bool isNew; + std::map* store + = G4AttDefStore::GetInstance("A01EmCalorimeterHit",isNew); + if (isNew) { + G4String HitType("HitType"); + (*store)[HitType] = G4AttDef(HitType,"Hit Type","Bookkeeping","","G4String"); + + G4String ID("ID"); + (*store)[ID] = G4AttDef(ID,"ID","Bookkeeping","","G4int"); + + G4String Column("Column"); + (*store)[Column] = G4AttDef(Column,"Column ID","Bookkeeping","","G4int"); + + G4String Row("Row"); + (*store)[Row] = G4AttDef(Row,"Row ID","Bookkeeping","","G4int"); + + //G4String Time("Time"); + //(*store)[Time] = G4AttDef(Time,"Time","Physics","G4BestUnit","G4double"); + + G4String Energy("Energy"); + (*store)[Energy] = G4AttDef(Energy,"Energy Deposited","Physics","G4BestUnit","G4double"); + + G4String Pos("Pos"); + (*store)[Pos] = G4AttDef(Pos, "Position", + "Physics","G4BestUnit","G4ThreeVector"); + + G4String LVol("LVol"); + (*store)[LVol] = G4AttDef(LVol,"Logical Volume","Bookkeeping","","G4String"); + } + return store; +} + +std::vector* A01EmCalorimeterHit::CreateAttValues() const +{ + std::vector* values = new std::vector; + + values->push_back(G4AttValue("HitType","EmCalorimeterHit","")); + + values->push_back + (G4AttValue("ID",G4UIcommand::ConvertToString(cellID),"")); + + values->push_back + (G4AttValue("Column"," ","")); + + values->push_back + (G4AttValue("Row"," ","")); + + //G4double noTime = 0.*s; + //values->push_back + // (G4AttValue("Time",G4BestUnit(noTime,"Time"),"")); + + values->push_back + (G4AttValue("Energy",G4BestUnit(edep,"Energy"),"")); + + values->push_back + (G4AttValue("Pos",G4BestUnit(pos,"Length"),"")); + + if (pLogV) + values->push_back + (G4AttValue("LVol",pLogV->GetName(),"")); + else + values->push_back + (G4AttValue("LVol"," ","")); + + return values; +} + void A01EmCalorimeterHit::Print() { G4cout << " Cell[" << cellID << "] " << edep/MeV << " (MeV)" << G4endl; diff --git a/examples/extended/analysis/A01/src/A01EventAction.cc b/examples/extended/analysis/A01/src/A01EventAction.cc index e9395fbcc7..7400157c7f 100644 --- a/examples/extended/analysis/A01/src/A01EventAction.cc +++ b/examples/extended/analysis/A01/src/A01EventAction.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EventAction.cc,v 1.6 2003/10/13 01:55:54 asaim Exp $ +// $Id: A01EventAction.cc,v 1.7 2005/05/26 05:44:24 duns Exp $ // -------------------------------------------------------------- // @@ -148,29 +148,22 @@ void A01EventAction::EndOfEventAction(const G4Event* evt) { int n_hit = DHC1->entries(); dc1Hits->fill(n_hit); - for(int i2=0;i2<5;i2++) + for(int i1=0;i1GetLocalPos(); - if (dc1XY) dc1XY->fill(localPos.x(), localPos.y()); - } + A01DriftChamberHit* aHit = (*DHC1)[i1]; + G4ThreeVector localPos = aHit->GetLocalPos(); + if (dc1XY) dc1XY->fill(localPos.x(), localPos.y()); } - } if (DHC2 && dc2Hits) { int n_hit = DHC2->entries(); dc2Hits->fill(n_hit); - for(int i2=0;i2<5;i2++) + for(int i1=0;i1GetLocalPos(); - if (dc2XY) dc2XY->fill(localPos.x(), localPos.y()); - } + A01DriftChamberHit* aHit = (*DHC2)[i1]; + G4ThreeVector localPos = aHit->GetLocalPos(); + if (dc2XY) dc2XY->fill(localPos.x(), localPos.y()); } } diff --git a/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc b/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc index 462ecac1a5..6311557077 100644 --- a/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc +++ b/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01HadCalorimeterHit.cc,v 1.5 2003/10/14 18:58:20 perl Exp $ +// $Id: A01HadCalorimeterHit.cc,v 1.7 2005/06/07 10:50:02 perl Exp $ // -------------------------------------------------------------- // @@ -31,6 +31,11 @@ #include "G4Box.hh" #include "G4VVisManager.hh" #include "G4Colour.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UIcommand.hh" +#include "G4UnitsTable.hh" #include "G4VisAttributes.hh" #include "G4LogicalVolume.hh" #include "G4ios.hh" @@ -94,6 +99,71 @@ void A01HadCalorimeterHit::Draw() } } +const std::map* A01HadCalorimeterHit::GetAttDefs() const +{ + G4bool isNew; + std::map* store + = G4AttDefStore::GetInstance("A01HadCalorimeterHit",isNew); + if (isNew) { + G4String HitType("HitType"); + (*store)[HitType] = G4AttDef(HitType,"Hit Type","Bookkeeping","","G4String"); + + G4String ID("ID"); + (*store)[ID] = G4AttDef(ID,"ID","Bookkeeping","","G4int"); + + G4String Column("Column"); + (*store)[Column] = G4AttDef(Column,"Column ID","Bookkeeping","","G4int"); + + G4String Row("Row"); + (*store)[Row] = G4AttDef(Row,"Row ID","Bookkeeping","","G4int"); + + // G4String Time("Time"); + //(*store)[Time] = G4AttDef(Time,"Time","Physics","G4BestUnit","G4double"); + + G4String Energy("Energy"); + (*store)[Energy] = G4AttDef(Energy,"Energy Deposited","Physics","G4BestUnit","G4double"); + + G4String Pos("Pos"); + (*store)[Pos] = G4AttDef(Pos, "Position", + "Physics","G4BestUnit","G4ThreeVector"); + + G4String LVol("LVol"); + (*store)[LVol] = G4AttDef(LVol,"Logical Volume","Bookkeeping","","G4String"); + } + return store; +} + +std::vector* A01HadCalorimeterHit::CreateAttValues() const +{ + std::vector* values = new std::vector; + + values->push_back(G4AttValue("HitType","HadCalorimeterHit","")); + + values->push_back + (G4AttValue("ID"," ","")); + + values->push_back + (G4AttValue("Column",G4UIcommand::ConvertToString(columnID),"")); + + values->push_back + (G4AttValue("Row",G4UIcommand::ConvertToString(rowID),"")); + + //G4double noTime = 0.*s; + //values->push_back + // (G4AttValue("Time",G4BestUnit(noTime,"Time"),"")); + + values->push_back + (G4AttValue("Energy",G4BestUnit(edep,"Energy"),"")); + + values->push_back + (G4AttValue("Pos",G4BestUnit(pos,"Length"),"")); + + values->push_back + (G4AttValue("LVol"," ","")); + + return values; +} + void A01HadCalorimeterHit::Print() { G4cout << " Cell[" << rowID << ", " << columnID << "] " << edep/MeV << " (MeV) " << pos << G4endl; diff --git a/examples/extended/analysis/A01/src/A01HodoscopeHit.cc b/examples/extended/analysis/A01/src/A01HodoscopeHit.cc index 7ececa6505..0c7c9f968e 100644 --- a/examples/extended/analysis/A01/src/A01HodoscopeHit.cc +++ b/examples/extended/analysis/A01/src/A01HodoscopeHit.cc @@ -20,13 +20,18 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01HodoscopeHit.cc,v 1.5 2003/10/14 18:58:22 perl Exp $ +// $Id: A01HodoscopeHit.cc,v 1.7 2005/06/07 10:50:02 perl Exp $ // -------------------------------------------------------------- // #include "A01HodoscopeHit.hh" #include "G4VVisManager.hh" #include "G4Circle.hh" #include "G4Colour.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UIcommand.hh" +#include "G4UnitsTable.hh" #include "G4VisAttributes.hh" #include "G4ios.hh" @@ -82,6 +87,75 @@ void A01HodoscopeHit::Draw() } } +const std::map* A01HodoscopeHit::GetAttDefs() const +{ + G4bool isNew; + std::map* store + = G4AttDefStore::GetInstance("A01HodoscopeHit",isNew); + if (isNew) { + G4String HitType("HitType"); + (*store)[HitType] = G4AttDef(HitType,"Hit Type","Bookkeeping","","G4String"); + + G4String ID("ID"); + (*store)[ID] = G4AttDef(ID,"ID","Bookkeeping","","G4int"); + + G4String Column("Column"); + (*store)[Column] = G4AttDef(Column,"Column ID","Bookkeeping","","G4int"); + + G4String Row("Row"); + (*store)[Row] = G4AttDef(Row,"Row ID","Bookkeeping","","G4int"); + + //G4String Time("Time"); + //(*store)[Time] = G4AttDef(Time,"Time","Physics","G4BestUnit","G4double"); + + G4String Energy("Energy"); + (*store)[Energy] = G4AttDef(Energy,"Energy Deposited","Physics","G4BestUnit","G4double"); + + G4String Pos("Pos"); + (*store)[Pos] = G4AttDef(Pos, "Position", + "Physics","G4BestUnit","G4ThreeVector"); + + G4String LVol("LVol"); + (*store)[LVol] = G4AttDef(LVol,"Logical Volume","Bookkeeping","","G4String"); + } + return store; +} + +std::vector* A01HodoscopeHit::CreateAttValues() const +{ + std::vector* values = new std::vector; + + values->push_back(G4AttValue("HitType","HodoscopeHit","")); + + values->push_back + (G4AttValue("ID",G4UIcommand::ConvertToString(id),"")); + + values->push_back + (G4AttValue("Column"," ","")); + + values->push_back + (G4AttValue("Row"," ","")); + + //values->push_back + // (G4AttValue("Time",G4BestUnit(time,"Time"),"")); + + G4double noEnergy = 0.*MeV; + values->push_back + (G4AttValue("Energy",G4BestUnit(noEnergy,"Energy"),"")); + + values->push_back + (G4AttValue("Pos",G4BestUnit(pos,"Length"),"")); + + if (pLogV) + values->push_back + (G4AttValue("LVol",pLogV->GetName(),"")); + else + values->push_back + (G4AttValue("LVol"," ","")); + + return values; +} + void A01HodoscopeHit::Print() { G4cout << " Hodoscope[" << id << "] " << time/ns << " (nsec)" << G4endl; diff --git a/examples/extended/analysis/A01/src/A01VisManager.cc b/examples/extended/analysis/A01/src/A01VisManager.cc deleted file mode 100644 index bdba16c4d7..0000000000 --- a/examples/extended/analysis/A01/src/A01VisManager.cc +++ /dev/null @@ -1,134 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: A01VisManager.cc,v 1.4 2003/11/13 15:10:55 johna Exp $ -// -------------------------------------------------------------- -// - -#ifdef G4VIS_USE - -#include "A01VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -A01VisManager::A01VisManager () {} - -void A01VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - diff --git a/examples/extended/analysis/A01/test.out b/examples/extended/analysis/A01/test.out index 3897421a4b..b2bd34459f 100644 --- a/examples/extended/analysis/A01/test.out +++ b/examples/extended/analysis/A01/test.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (25-June-2004) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 diff --git a/examples/extended/analysis/AnaEx01/AnaEx01.cc b/examples/extended/analysis/AnaEx01/AnaEx01.cc index cca7c8d02c..f9108d2d38 100644 --- a/examples/extended/analysis/AnaEx01/AnaEx01.cc +++ b/examples/extended/analysis/AnaEx01/AnaEx01.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01.cc,v 1.9 2003/12/03 10:33:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/History b/examples/extended/analysis/AnaEx01/History index 6c34d9e5c6..2dc7555d1b 100644 --- a/examples/extended/analysis/AnaEx01/History +++ b/examples/extended/analysis/AnaEx01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.8 2003/12/03 10:34:02 gcosmo Exp $ +$Id: History,v 1.9 2005/05/03 10:05:48 allison Exp $ -------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 3rd December 2003 Gabriele Cosmo (AnaEx01-V05-02-01) - Fixed minor compilation warnings and added 'aida-config' in GNUmakefile, activated through G4ANALYSIS_USE. diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh index 11c104a51e..6f53ff475c 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01AnalysisManager.hh,v 1.6 2003/06/20 14:55:44 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh index 99f3ae6f1a..2d8370455a 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01CalorHit.hh,v 1.3 2003/06/20 14:55:44 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh index 053e6ba6b2..6f8170e4a6 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01CalorimeterSD.hh,v 1.3 2003/06/20 14:55:44 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh index 60631abf17..27a19d5c85 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01DetectorConstruction.hh,v 1.3 2003/06/20 14:55:44 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh index d71cb059e8..d8069f34bc 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01DetectorMessenger.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh index ed7d4e5a62..fa84e1abae 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01EventAction.hh,v 1.5 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh index 2bb3acd1dd..14d894776e 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PhysicsList.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh index a3ae966594..22df6433cb 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PrimaryGeneratorAction.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh index 613046194a..6594650454 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PrimaryGeneratorMessenger.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh index 7829a9c0cd..5b474c8c7c 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01RunAction.hh,v 1.5 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh index db360ca87a..1158ca2305 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01SteppingAction.hh,v 1.5 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh index 96b40308ac..7864f9a339 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01SteppingVerbose.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh deleted file mode 100644 index e6fb8dc3c6..0000000000 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh +++ /dev/null @@ -1,70 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: AnaEx01VisManager.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef AnaEx01VisManager_h -#define AnaEx01VisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class AnaEx01VisManager: public G4VisManager { - -public: - - AnaEx01VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -#endif - -#endif diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc index 7ac5ff558d..053dbb7be7 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01AnalysisManager.cc,v 1.12 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Guy Barrand 14th Septembre 2000. diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc index 7da8707387..8adc5c5897 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01CalorHit.cc,v 1.5 2003/12/03 10:33:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc index 2cde3746b3..c8d0c39f8d 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01CalorimeterSD.cc,v 1.4 2003/12/03 10:33:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc index 1d877ed525..fb511130a0 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01DetectorConstruction.cc,v 1.4 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc index eca6b813a5..f8f45f53c4 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01DetectorMessenger.cc,v 1.4 2002/12/05 00:24:22 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc index ba0b77e8c1..6e03dbd6dc 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01EventAction.cc,v 1.5 2001/11/16 14:31:12 barrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc index 95795f7eeb..2976167d2d 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PhysicsList.cc,v 1.4 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc index 1d3ac9a089..f548d54bb1 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PrimaryGeneratorAction.cc,v 1.4 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc index 521bab41e3..37900821f5 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 00:24:22 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc index 343dad2973..f4ff4ec2d7 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01RunAction.cc,v 1.6 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc index 19fdcff9dc..c658ce3c1c 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01SteppingAction.cc,v 1.6 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc index db6e02279e..d2c1db82c0 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01SteppingVerbose.cc,v 1.6 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc deleted file mode 100755 index ca011873d8..0000000000 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: AnaEx01VisManager.cc,v 1.7 2003/10/17 10:19:57 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifdef G4VIS_USE - -#include "AnaEx01VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -AnaEx01VisManager::AnaEx01VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void AnaEx01VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/analysis/History b/examples/extended/analysis/History index 1f04dc2f96..820f7a597b 100644 --- a/examples/extended/analysis/History +++ b/examples/extended/analysis/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 2002/11/27 19:17:54 asaim Exp $ +$Id: History,v 1.2 2005/05/03 10:05:48 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -11,6 +11,9 @@ $Id: History,v 1.1 2002/11/27 19:17:54 asaim Exp $ --------------------------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 27th November 2002 Makoto Asai (analysisExample-V04-01-01) - Tag for release 5.0 diff --git a/examples/extended/biasing/B01/exampleB01.cc b/examples/extended/biasing/B01/exampleB01.cc index 25908d32dc..9c1b91c796 100644 --- a/examples/extended/biasing/B01/exampleB01.cc +++ b/examples/extended/biasing/B01/exampleB01.cc @@ -22,7 +22,7 @@ // // // $Id: exampleB01.cc,v 1.20 2004/03/24 10:11:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/biasing/B01/exampleB01.out b/examples/extended/biasing/B01/exampleB01.out index bba658cc3d..b2cc60bc30 100644 --- a/examples/extended/biasing/B01/exampleB01.out +++ b/examples/extended/biasing/B01/exampleB01.out @@ -1,13 +1,11 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* - -phot: Total cross sections from Sandia parametrisation. B01PhysicsList::SetCuts:CutLength : 1 (mm) Going to assign importance: 1, to volume: cell_01 Going to assign importance: 2, to volume: cell_02 @@ -101,15 +99,18 @@ DoIt Vector: LCapture Decay ================================================ -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -118,8 +119,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -130,8 +131,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -139,9 +140,9 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -150,8 +151,11 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -160,9 +164,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -177,9 +181,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -195,26 +199,26 @@ msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 Volume name | Importance| Tr.Entering| Population| Collisions| Coll*WGT| NumWGTedE| FluxWGTedE| Av.Tr.WGT| -cell_01_rep:0............ | 1 | 108 | 125 | 106 | 106 | 8.9027146 | 9.2574898 | 1 | -cell_02_rep:0............ | 2 | 83 | 158 | 172 | 86 | 7.8477054 | 8.5962945 | 1 | -cell_03_rep:0............ | 4 | 100 | 221 | 289 | 72.25 | 5.8844573 | 7.6603583 | 1 | -cell_04_rep:0............ | 8 | 113 | 233 | 308 | 38.5 | 5.3338753 | 7.4224318 | 1 | -cell_05_rep:0............ | 16 | 132 | 271 | 363 | 22.6875 | 5.8486835 | 7.39996 | 1 | -cell_06_rep:0............ | 32 | 150 | 317 | 482 | 15.0625 | 4.5880363 | 6.7195245 | 1 | -cell_07_rep:0............ | 64 | 175 | 350 | 508 | 7.9375 | 3.9702443 | 6.534581 | 1 | -cell_08_rep:0............ | 128 | 202 | 424 | 651 | 5.0859375 | 0.12127253 | 5.9196255 | 1 | -cell_09_rep:0............ | 256 | 232 | 479 | 880 | 3.4375 | 2.3545899 | 5.3102442 | 1 | -cell_10_rep:0............ | 512 | 258 | 523 | 941 | 1.8378906 | 2.5474441 | 5.0007586 | 1 | -cell_11_rep:0............ | 1024 | 290 | 571 | 1090 | 1.0644531 | 0.056668031 | 4.6627569 | 1 | -cell_12_rep:0............ | 2048 | 330 | 657 | 1293 | 0.63134766 | 0.087351356 | 4.5724757 | 1 | -cell_13_rep:0............ | 4096 | 380 | 762 | 1554 | 0.37939453 | 0.066828544 | 4.342442 | 1 | -cell_14_rep:0............ | 8192 | 423 | 842 | 1747 | 0.21325684 | 0.069650585 | 4.2127256 | 1 | -cell_15_rep:0............ | 16384 | 470 | 927 | 2038 | 0.12438965 | 2.0879212 | 3.8557482 | 1 | -cell_16_rep:0............ | 32768 | 524 | 1023 | 2220 | 0.067749023 | 0.050145428 | 3.7243147 | 1 | -cell_17_rep:0............ | 65536 | 570 | 1116 | 2369 | 0.036148071 | 0.60884393 | 3.6116183 | 1 | -cell_18_rep:0............ | 131072 | 507 | 1126 | 2506 | 0.019119263 | 1.9918584 | 3.4890199 | 1 | -rest_rep:0............... | 131072 | 564 | 564 | 0 | 0 | 0 | 0 | 0 | -shieldWorld_rep:0........ | 1 | 9 | 109 | 0 | 0 | 10 | 10 | 1 | +cell_01_rep:0............ | 1 | 109 | 128 | 116 | 116 | 9.0844649 | 9.5448707 | 1 | +cell_02_rep:0............ | 2 | 69 | 152 | 142 | 71 | 8.514088 | 9.1338343 | 1 | +cell_03_rep:0............ | 4 | 87 | 175 | 195 | 48.75 | 7.0706267 | 8.4721018 | 1 | +cell_04_rep:0............ | 8 | 106 | 205 | 197 | 24.625 | 6.4781545 | 8.009855 | 1 | +cell_05_rep:0............ | 16 | 125 | 265 | 325 | 20.3125 | 6.5346594 | 7.8737813 | 1 | +cell_06_rep:0............ | 32 | 147 | 300 | 382 | 11.9375 | 4.8149962 | 7.5593459 | 1 | +cell_07_rep:0............ | 64 | 151 | 322 | 410 | 6.40625 | 3.4013848 | 7.2868181 | 1 | +cell_08_rep:0............ | 128 | 174 | 376 | 499 | 3.8984375 | 4.0138152 | 7.1811682 | 1 | +cell_09_rep:0............ | 256 | 184 | 375 | 537 | 2.0976562 | 4.7452287 | 6.7490821 | 1 | +cell_10_rep:0............ | 512 | 199 | 413 | 598 | 1.1679688 | 0.12715559 | 6.6545894 | 1 | +cell_11_rep:0............ | 1024 | 209 | 427 | 670 | 0.65429688 | 3.8229542 | 5.9721558 | 1 | +cell_12_rep:0............ | 2048 | 217 | 437 | 713 | 0.34814453 | 3.6997829 | 6.0543108 | 1 | +cell_13_rep:0............ | 4096 | 232 | 475 | 720 | 0.17578125 | 3.8285283 | 5.9110234 | 1 | +cell_14_rep:0............ | 8192 | 269 | 540 | 990 | 0.12084961 | 3.4219729 | 5.4792145 | 1 | +cell_15_rep:0............ | 16384 | 291 | 584 | 1041 | 0.063537598 | 3.1097494 | 5.191823 | 1 | +cell_16_rep:0............ | 32768 | 322 | 638 | 1155 | 0.035247803 | 3.2779116 | 5.0155103 | 1 | +cell_17_rep:0............ | 65536 | 313 | 624 | 1178 | 0.017974854 | 2.8946874 | 4.807036 | 1 | +cell_18_rep:0............ | 131072 | 279 | 646 | 1252 | 0.009552002 | 0.041089375 | 4.9343901 | 1 | +rest_rep:0............... | 131072 | 301 | 301 | 0 | 0 | 0 | 0 | 0 | +shieldWorld_rep:0........ | 1 | 12 | 111 | 0 | 0 | 10 | 10 | 1 | === G4ProcessPlacer::RemoveProcess: for: neutron ProcessName: MassImportanceProcess, will be removed! The initial Vectors: diff --git a/examples/extended/biasing/B01/include/B01DetectorConstruction.hh b/examples/extended/biasing/B01/include/B01DetectorConstruction.hh index 5a841b1327..10d0d8b6a5 100644 --- a/examples/extended/biasing/B01/include/B01DetectorConstruction.hh +++ b/examples/extended/biasing/B01/include/B01DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B01DetectorConstruction.hh,v 1.6 2003/08/25 12:32:29 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef B01DetectorConstruction_hh diff --git a/examples/extended/biasing/B01/src/B01DetectorConstruction.cc b/examples/extended/biasing/B01/src/B01DetectorConstruction.cc index 940b13d8c7..09657e173f 100644 --- a/examples/extended/biasing/B01/src/B01DetectorConstruction.cc +++ b/examples/extended/biasing/B01/src/B01DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: B01DetectorConstruction.cc,v 1.14 2004/12/08 17:39:07 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4Types.hh" diff --git a/examples/extended/biasing/B01/src/B01PhysicsList.cc b/examples/extended/biasing/B01/src/B01PhysicsList.cc index c3f4d1813a..d90d0d0d27 100644 --- a/examples/extended/biasing/B01/src/B01PhysicsList.cc +++ b/examples/extended/biasing/B01/src/B01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: B01PhysicsList.cc,v 1.5 2003/06/16 16:47:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc b/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc index 8676a1766f..aa9de5186a 100644 --- a/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc +++ b/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: B01PrimaryGeneratorAction.cc,v 1.7 2002/11/07 13:48:02 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B02/History b/examples/extended/biasing/B02/History index 80169ce991..804dd89695 100644 --- a/examples/extended/biasing/B02/History +++ b/examples/extended/biasing/B02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.2 2004/06/20 17:29:30 daquinog Exp $ +$Id: History,v 1.5 2005/05/03 10:05:48 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,10 +17,16 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +March 17th, 2005 G.Daquino - B02-V07-00-00 +- porting B02 from PI working with rh73 to PI working with slc3 + Jun 18th, 2004 G.Daquino - B02-V06-01-00 - porting B02 from Anaphe (Lizard) to PI. Actually, PI 1.2.1 still DOES NOT allow the plotting in the same way, previously set in Anaphe. Therefore the HBOOk file produced at the end of the example still needs other packages to be displayed. However, future PI releases could contain python modules with this property. - README file has been updated accordingly. \ No newline at end of file + README file has been updated accordingly. diff --git a/examples/extended/biasing/B02/exampleB02.cc b/examples/extended/biasing/B02/exampleB02.cc index e71fe3d304..d3bcdb8d88 100644 --- a/examples/extended/biasing/B02/exampleB02.cc +++ b/examples/extended/biasing/B02/exampleB02.cc @@ -22,7 +22,7 @@ // // // $Id: exampleB02.cc,v 1.17 2004/12/08 19:18:45 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/biasing/B02/exampleB02.out b/examples/extended/biasing/B02/exampleB02.out index 0b84330f82..852a558351 100644 --- a/examples/extended/biasing/B02/exampleB02.out +++ b/examples/extended/biasing/B02/exampleB02.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/biasing/B02/include/B02CellScorer.hh b/examples/extended/biasing/B02/include/B02CellScorer.hh index ef14acfe19..2aaeee6f9e 100644 --- a/examples/extended/biasing/B02/include/B02CellScorer.hh +++ b/examples/extended/biasing/B02/include/B02CellScorer.hh @@ -22,7 +22,7 @@ // // // $Id: B02CellScorer.hh,v 1.2 2003/06/16 16:47:12 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class B02CellScorer diff --git a/examples/extended/biasing/B02/include/B02CellScorerStore.hh b/examples/extended/biasing/B02/include/B02CellScorerStore.hh index 4b229965af..18cc128b1c 100644 --- a/examples/extended/biasing/B02/include/B02CellScorerStore.hh +++ b/examples/extended/biasing/B02/include/B02CellScorerStore.hh @@ -22,7 +22,7 @@ // // // $Id: B02CellScorerStore.hh,v 1.2 2003/06/16 16:47:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class B02CellScorerStore diff --git a/examples/extended/biasing/B02/include/B02DetectorConstruction.hh b/examples/extended/biasing/B02/include/B02DetectorConstruction.hh index 51dfd59724..159cdcd5f6 100644 --- a/examples/extended/biasing/B02/include/B02DetectorConstruction.hh +++ b/examples/extended/biasing/B02/include/B02DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B02DetectorConstruction.hh,v 1.3 2002/11/08 14:47:42 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef B02DetectorConstruction_hh diff --git a/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh b/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh index 6ba741830e..5d3cb2e585 100644 --- a/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh +++ b/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B02ImportanceDetectorConstruction.hh,v 1.3 2003/06/16 16:47:15 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef B02ImportanceDetectorConstruction_hh diff --git a/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh b/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh index eb77c9201f..5eb53f0d76 100644 --- a/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh +++ b/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B02ScoringDetectorConstruction.hh,v 1.2 2002/04/19 10:54:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef B02ScoringDetectorConstruction_hh diff --git a/examples/extended/biasing/B02/setupPI.csh b/examples/extended/biasing/B02/setupPI.csh index c554917096..4243d6e387 100755 --- a/examples/extended/biasing/B02/setupPI.csh +++ b/examples/extended/biasing/B02/setupPI.csh @@ -3,25 +3,22 @@ #set verbose = 0 if (${?PI_BASE_DIR} == 1) then - setenv PI_VERSION 1_2_1 - setenv PI_VER 1.2.1 - setenv PLATF rh73_gcc32 - setenv PATH ${PATH}:${PI_BASE_DIR}/${PI_VER}/app/releases/PI/PI_${PI_VER}/${PLATF}/bin - setenv PATH ${PI_BASE_DIR}/Linux-g++/bin:$PATH + setenv PI_VER 1.2.6-lite + setenv PLATF slc3_gcc323 + setenv PI_DIR ${PI_BASE_DIR}/${PI_VER}/${PLATF} + setenv PATH ${PI_DIR}/bin:${PATH} eval `aida-config -r csh` # # python from PI # - setenv PYTHONVERSION 2.2 - setenv PYTHON_INCLUDE_DIR ${PI_BASE_DIR}/${PI_VER}/external/Python/2.2.2/${PLATF}/include/python${PYTHONVERSION} - setenv PYTHON_LIB_DIR ${PI_BASE_DIR}/${PI_VER}/external/Python/2.2.2/${PLATF}/lib/python${PYTHONVERSION}/config + setenv PYTHON_LIB_DIR ${PI_DIR}/lib # # python for PI if (${?PYTHONPATH} == 0) then setenv PYTHONPATH endif - setenv PYTHONPATH ${PI_BASE_DIR}/Linux-g++/python:$PYTHONPATH - setenv PYTHONPATH ${PI_BASE_DIR}/${PI_VER}/app/releases/SEAL/SEAL_1_3_4/${PLATF}/lib:$PYTHONPATH + setenv PYTHONPATH ${PI_DIR}/python:$PYTHONPATH + setenv PYTHONPATH ${PI_DIR}/lib:$PYTHONPATH # # else # not using PI @@ -54,11 +51,9 @@ endif setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM} setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}}/exampleB02 setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${PYTHON_LIB_DIR} -setenv LD_LIBRARY_PATH ${PI_BASE_DIR}/${PI_VER}/app/releases/SEAL/SEAL_1_3_4/rh73_gcc32/lib:$LD_LIBRARY_PATH -setenv LD_LIBRARY_PATH /afs/cern.ch/sw/lcg/external/Python/2.2.2/rh73_gcc32/lib:$LD_LIBRARY_PATH -setenv LD_LIBRARY_PATH ${PI_BASE_DIR}/${PI_VER}/external/Boost/1.30.2/rh73_gcc32/lib:$LD_LIBRARY_PATH +setenv LD_LIBRARY_PATH ${PI_DIR}/lib:$LD_LIBRARY_PATH if (${?PYTHONPATH} == 0) then setenv PYTHONPATH endif -setenv PYTHONPATH ${PYTHONPATH}:${LD_LIBRARY_PATH} +#setenv PYTHONPATH ${PYTHONPATH}:${LD_LIBRARY_PATH} diff --git a/examples/extended/biasing/B02/src/B02CellScorer.cc b/examples/extended/biasing/B02/src/B02CellScorer.cc index c251c4b344..308efbda07 100644 --- a/examples/extended/biasing/B02/src/B02CellScorer.cc +++ b/examples/extended/biasing/B02/src/B02CellScorer.cc @@ -22,7 +22,7 @@ // // // $Id: B02CellScorer.cc,v 1.1 2002/11/08 14:52:17 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/extended/biasing/B02/src/B02CellScorerStore.cc b/examples/extended/biasing/B02/src/B02CellScorerStore.cc index 1740e9f336..eaa975a6af 100644 --- a/examples/extended/biasing/B02/src/B02CellScorerStore.cc +++ b/examples/extended/biasing/B02/src/B02CellScorerStore.cc @@ -22,7 +22,7 @@ // // // $Id: B02CellScorerStore.cc,v 1.1 2002/11/08 14:52:17 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/extended/biasing/B02/src/B02DetectorConstruction.cc b/examples/extended/biasing/B02/src/B02DetectorConstruction.cc index d3fa3cb4bf..1b2aa262c3 100644 --- a/examples/extended/biasing/B02/src/B02DetectorConstruction.cc +++ b/examples/extended/biasing/B02/src/B02DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: B02DetectorConstruction.cc,v 1.10 2003/07/31 11:59:40 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4Types.hh" #include diff --git a/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc b/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc index 1d2fdff097..3417ccf42f 100644 --- a/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc +++ b/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: B02ImportanceDetectorConstruction.cc,v 1.6 2003/07/31 08:28:16 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B02/src/B02PhysicsList.cc b/examples/extended/biasing/B02/src/B02PhysicsList.cc index 3332f3d2f8..0ce15dfc99 100644 --- a/examples/extended/biasing/B02/src/B02PhysicsList.cc +++ b/examples/extended/biasing/B02/src/B02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: B02PhysicsList.cc,v 1.4 2003/06/16 16:47:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc b/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc index 81a547c9df..06ed13cec4 100644 --- a/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc +++ b/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: B02PrimaryGeneratorAction.cc,v 1.5 2002/11/08 14:47:48 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc b/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc index d6b44843fb..965e69133b 100644 --- a/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc +++ b/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: B02ScoringDetectorConstruction.cc,v 1.6 2003/02/19 08:24:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B03/B03RunApplication.py b/examples/extended/biasing/B03/B03RunApplication.py index 0274125017..114e6cb330 100755 --- a/examples/extended/biasing/B03/B03RunApplication.py +++ b/examples/extended/biasing/B03/B03RunApplication.py @@ -1,5 +1,4 @@ -#! /usr/bin/env python2.2 - +#! /usr/bin/env python # #!/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/PublicDomainPackages/2.0.0/bin/python2.2 diff --git a/examples/extended/biasing/B03/GNUmakefile b/examples/extended/biasing/B03/GNUmakefile index e64b74a1fa..e853a712a4 100644 --- a/examples/extended/biasing/B03/GNUmakefile +++ b/examples/extended/biasing/B03/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.12 2004/06/20 17:26:13 daquinog Exp $ +# $Id: GNUmakefile,v 1.13 2005/03/17 17:20:19 daquinog Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -27,16 +27,20 @@ moduleName = B03App MYLIBS = $(subst -l$(name),,$(LDLIBS)) SWIG = ${SWIG_BASE_DIR}/bin/swig-${SWIGVERSION} +#SWIG = ${SWIG_BASE_DIR}/bin/swig .PHONY: clean_all all all: $(SWIGD) $(SWIGCC) lib $(SWIGSO) bin - -CPPFLAGS += -I${PI_BASE_DIR}/${PI_VER}/external/Python/2.2.2/${PLATF}/include/python${PYTHONVERSION} +CPPFLAGS += -I${PYTHON_INCLUDE_DIR} CXXFLAGS += -w LDFLAGS += \ - -L${PI_BASE_DIR}/${PI_VER}/external/Python/2.2.2/${PLATF}/lib/python${PYTHONVERSION}/config \ + -L${PYTHON_LIB_DIR} \ + -llcg_AIDA_AnalysisFactory \ + -llcg_PluginManager \ + -llcg_SealBase \ + -llcg_AIDA_Plugin \ -L/lib \ -lnsl -ldl -lreadline /lib/libtermcap.so.2 -lieee -lpthread -lutil -lexampleB03 -lpython$(PYTHONVERSION) diff --git a/examples/extended/biasing/B03/History b/examples/extended/biasing/B03/History index 262831e4f1..e1d13065bb 100644 --- a/examples/extended/biasing/B03/History +++ b/examples/extended/biasing/B03/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 2004/06/20 17:26:14 daquinog Exp $ +$Id: History,v 1.4 2005/05/03 10:05:48 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,10 +17,16 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +March 17th, 2005 G.Daquino - B03-V07-00-00 +- porting B03 from PI working with rh73 to PI working with slc3 + Jun 20th, 2004 G.Daquino - B03-V06-01-00 - porting B03 from Anaphe (Lizard) to PI. Actually, PI 1.2.1 still DOES NOT allow the plotting in the same way, previously set in Anaphe. Therefore the HBOOk file produced at the end of the example still needs other packages to be displayed. However, future PI releases could contain python modules with this property. - README file has been updated accordingly. \ No newline at end of file + README file has been updated accordingly. diff --git a/examples/extended/biasing/B03/exampleB03.cc b/examples/extended/biasing/B03/exampleB03.cc index 583fcd93fc..5987bf0c63 100644 --- a/examples/extended/biasing/B03/exampleB03.cc +++ b/examples/extended/biasing/B03/exampleB03.cc @@ -22,7 +22,7 @@ // // // $Id: exampleB03.cc,v 1.11 2003/06/30 16:17:02 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/biasing/B03/exampleB03.out b/examples/extended/biasing/B03/exampleB03.out index 2630281bcc..4c0eedda02 100644 --- a/examples/extended/biasing/B03/exampleB03.out +++ b/examples/extended/biasing/B03/exampleB03.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/biasing/B03/include/B03AppBase.hh b/examples/extended/biasing/B03/include/B03AppBase.hh index ded04f153d..f96b033e1d 100644 --- a/examples/extended/biasing/B03/include/B03AppBase.hh +++ b/examples/extended/biasing/B03/include/B03AppBase.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: B03AppBase.hh,v 1.1 2003/06/30 16:17:03 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- #ifndef B03AppBase_hh diff --git a/examples/extended/biasing/B03/include/B03DetectorConstruction.hh b/examples/extended/biasing/B03/include/B03DetectorConstruction.hh index 5743d111ff..b1780fff54 100644 --- a/examples/extended/biasing/B03/include/B03DetectorConstruction.hh +++ b/examples/extended/biasing/B03/include/B03DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B03DetectorConstruction.hh,v 1.4 2002/11/08 17:35:18 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef B03DetectorConstruction_hh diff --git a/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh b/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh index f05378dfed..b73cfa05a6 100644 --- a/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh +++ b/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B03ImportanceDetectorConstruction.hh,v 1.2 2003/06/16 16:47:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef B03ImportanceDetectorConstruction_hh diff --git a/examples/extended/biasing/B03/include/B03PhysicsList.hh b/examples/extended/biasing/B03/include/B03PhysicsList.hh index 78353ba082..266d69ee29 100644 --- a/examples/extended/biasing/B03/include/B03PhysicsList.hh +++ b/examples/extended/biasing/B03/include/B03PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: B03PhysicsList.hh,v 1.3 2002/11/08 17:35:18 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef B03PhysicsList_h diff --git a/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh b/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh index e404263b63..02eb127f05 100644 --- a/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh +++ b/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: B03PrimaryGeneratorAction.hh,v 1.3 2002/11/08 17:35:18 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef B03PrimaryGeneratorAction_hh diff --git a/examples/extended/biasing/B03/setupPI.csh b/examples/extended/biasing/B03/setupPI.csh index 9167856745..3f90dacb94 100644 --- a/examples/extended/biasing/B03/setupPI.csh +++ b/examples/extended/biasing/B03/setupPI.csh @@ -1,32 +1,35 @@ # #Id: setupPI.csh,v 1.6 2004/06/19 17:22:46 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # ------------------------------------------------------------------- # before sourcing this script make sure you have set the # environment variables according to the description in README +# NOTE:: B03 cannot work with PI Ultralite, because it needs the Python include files which are not comprised +# in the Ultralite version # setting in case PI and analysis is used if (${?PI_BASE_DIR} == 1) then - setenv PI_VERSION 1_2_1 - setenv PI_VER 1.2.1 - setenv PLATF rh73_gcc32 - setenv PATH ${PATH}:${PI_BASE_DIR}/${PI_VER}/app/releases/PI/PI_${PI_VER}/${PLATF}/bin - setenv PATH ${PI_BASE_DIR}/Linux-g++/bin:$PATH + setenv PI_VERSION 1_3_0 + setenv PI_VER 1.3.0 + setenv PLATF slc3_ia32_gcc323 + setenv PYTHONVERSION 2.3 + setenv PI_DIR ${PI_BASE_DIR}/${PI_VER}/app/releases/PI/PI_${PI_VERSION}/${PLATF} + setenv PATH ${PATH}:${PI_DIR}/bin + setenv PATH ${PI_BASE_DIR}/${PI_VER}/external/Python/${PYTHONVERSION}.4/${PLATF}/bin:$PATH eval `aida-config -r csh` # # python from PI # - setenv PYTHONVERSION 2.2 - setenv PYTHON_INCLUDE_DIR ${PI_BASE_DIR}/${PI_VER}/external/Python/2.2.2/${PLATF}/include/python${PYTHONVERSION} - setenv PYTHON_LIB_DIR ${PI_BASE_DIR}/${PI_VER}/external/Python/2.2.2/${PLATF}/lib/python${PYTHONVERSION}/config + setenv PYTHON_INCLUDE_DIR ${PI_BASE_DIR}/${PI_VER}/external/Python/${PYTHONVERSION}.4/${PLATF}/include/python${PYTHONVERSION} + setenv PYTHON_LIB_DIR ${PI_BASE_DIR}/${PI_VER}/external/Python/${PYTHONVERSION}.4/${PLATF}/lib/python${PYTHONVERSION}/config # # python for PI if (${?PYTHONPATH} == 0) then setenv PYTHONPATH endif - setenv PYTHONPATH ${PI_BASE_DIR}/Linux-g++/python:$PYTHONPATH - setenv PYTHONPATH ${PI_BASE_DIR}/${PI_VER}/app/releases/SEAL/SEAL_1_3_4/${PLATF}/lib:$PYTHONPATH + setenv PYTHONPATH ${PI_DIR}/python:$PYTHONPATH + setenv PYTHONPATH ${PI_BASE_DIR}/${PI_VER}/app/releases/SEAL/SEAL_1_6_0/${PLATF}/python:$PYTHONPATH # # SWIG settings setenv SWIGVERSION 1.3.15 @@ -60,11 +63,11 @@ endif # end settings for not using PI if ( ${?LD_LIBRARY_PATH} == 0 ) then setenv LD_LIBRARY_PATH endif -setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB03 +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM} +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB03 setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${PYTHON_LIB_DIR} -setenv LD_LIBRARY_PATH ${PI_BASE_DIR}/${PI_VER}/app/releases/SEAL/SEAL_1_3_4/rh73_gcc32/lib:$LD_LIBRARY_PATH -setenv LD_LIBRARY_PATH /afs/cern.ch/sw/lcg/external/Python/2.2.2/rh73_gcc32/lib:$LD_LIBRARY_PATH -setenv LD_LIBRARY_PATH ${PI_BASE_DIR}/${PI_VER}/external/Boost/1.30.2/rh73_gcc32/lib:$LD_LIBRARY_PATH +setenv LD_LIBRARY_PATH ${PI_BASE_DIR}/${PI_VER}/external/Python/${PYTHONVERSION}.4/${PLATF}/lib:${LD_LIBRARY_PATH} +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${PI_BASE_DIR}/${PI_VER}/external/Boost/1.31.0/${PLATF}/lib setenv B03_BASE `pwd` if (${?PYTHONPATH} == 0) then setenv PYTHONPATH diff --git a/examples/extended/biasing/B03/src/B03AppBase.cc b/examples/extended/biasing/B03/src/B03AppBase.cc index ae34d87ac5..0cee04d88b 100644 --- a/examples/extended/biasing/B03/src/B03AppBase.cc +++ b/examples/extended/biasing/B03/src/B03AppBase.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: B03AppBase.cc,v 1.1 2003/06/30 16:17:03 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- #include "B03AppBase.hh" diff --git a/examples/extended/biasing/B03/src/B03DetectorConstruction.cc b/examples/extended/biasing/B03/src/B03DetectorConstruction.cc index 1ab9bb9965..905dbec9e9 100644 --- a/examples/extended/biasing/B03/src/B03DetectorConstruction.cc +++ b/examples/extended/biasing/B03/src/B03DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: B03DetectorConstruction.cc,v 1.13 2003/07/31 11:59:41 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4Types.hh" diff --git a/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc b/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc index bec8651ea9..3321648455 100644 --- a/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc +++ b/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: B03ImportanceDetectorConstruction.cc,v 1.6 2003/07/31 11:59:41 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B03/src/B03PhysicsList.cc b/examples/extended/biasing/B03/src/B03PhysicsList.cc index 53b90d1e98..3aaf09ac61 100644 --- a/examples/extended/biasing/B03/src/B03PhysicsList.cc +++ b/examples/extended/biasing/B03/src/B03PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: B03PhysicsList.cc,v 1.4 2003/06/16 16:47:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc b/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc index 37277277ce..94c41c0a4f 100644 --- a/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc +++ b/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: B03PrimaryGeneratorAction.cc,v 1.5 2002/11/08 17:35:19 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/biasing/History b/examples/extended/biasing/History index 436675783d..1c6ffe8ce7 100644 --- a/examples/extended/biasing/History +++ b/examples/extended/biasing/History @@ -1,4 +1,4 @@ -$Id: History,v 1.29 2004/12/08 19:18:45 daquinog Exp $ +$Id: History,v 1.30 2005/05/03 10:05:48 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec 8th, 2004 G. Daquino - exbiasing-V06-02-00 - B01, B02 and B03 migrated to . diff --git a/examples/extended/electromagnetic/MuonProcesses/History b/examples/extended/electromagnetic/MuonProcesses/History index ccccee61b1..23f6fa4779 100644 --- a/examples/extended/electromagnetic/MuonProcesses/History +++ b/examples/extended/electromagnetic/MuonProcesses/History @@ -1,4 +1,4 @@ -$Id: History,v 1.11 2004/12/06 12:02:41 maire Exp $ +$Id: History,v 1.16 2005/06/01 13:58:22 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,19 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +01-06-05 mma (muonprocesses-V07-00-01) +- HistoManager : option "--noErrors" for hbook + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +03-03-05 mma (muonprocesses-V07-00-00) +- HistoManager : - put a protection for the creation of analysis factory; + - file extension is fileType; + +06.12.04 V.Ivant (muonprocesses-V06-02-10) +- Use PhysicsList from future 7.0 + 05.12.04 mma (muonprocesses-V06-02-09) - namespace std in MuCrossSections diff --git a/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.cc b/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.cc index 379b67ca33..b202b3782b 100644 --- a/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.cc +++ b/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: MuonProcesses.cc,v 1.2 2004/06/30 15:48:55 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: MuonProcesses.cc,v 1.3 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,7 +45,7 @@ #include "HistoManager.hh" #ifdef G4VIS_USE - #include "VisManager.hh" + #include "G4VisExecutive.hh" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -70,7 +70,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.out b/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.out index dcc6260e30..790d27edf3 100644 --- a/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.out +++ b/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (27-July-2004) + Geant4 version $Name: geant4-07-01 $ (27-July-2004) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 diff --git a/examples/extended/electromagnetic/MuonProcesses/README b/examples/extended/electromagnetic/MuonProcesses/README index bf8f43eaa6..0662f5980e 100644 --- a/examples/extended/electromagnetic/MuonProcesses/README +++ b/examples/extended/electromagnetic/MuonProcesses/README @@ -1,4 +1,4 @@ -$Id: README,v 1.2 2004/06/23 11:28:04 maire Exp $ +$Id: README,v 1.3 2005/03/03 16:50:35 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -73,11 +73,13 @@ $Id: README,v 1.2 2004/06/23 11:28:04 maire Exp $ At EndOfRun the corresponding histos for analytic calculations are automatically created anf filled (histo 6 to 9), and the comparison - (G4 divided by theory) is done in histos 11 to 14. - - The histograms can be viewed using PAW. See below the note on - ANAPHE+AIDA. - + (G4 divided by theory) is done in histos 11 to 14. + + One can control the name and the type of the histograms file with + the commands: + /testem/histo/setFileName name (default photonprocesses) + /testem/histo/setFileType name (default hbook) + Note that, by default, histograms are disabled. To activate them, uncomment the flag G4ANALYSIS_USE in GNUmakefile. @@ -110,40 +112,60 @@ $Id: README,v 1.2 2004/06/23 11:28:04 maire Exp $ .... Idle> exit - 8- Using histograms - ------------------- + 8- USING HISTOGRAMS + + By default the histograms are not activated. To activate histograms + the environment variable G4ANALYSIS_USE should be defined. For instance + uncomment the flag G4ANALYSIS_USE in GNUmakefile. + + Before compilation of the example it is optimal to clean up old files: + gmake histclean + gmake + + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 8a - PI -By default the histograms are not activated. To activate histograms -the environment variable G4ANALYSIS_USE should be defined. For instance -uncomment the flag G4ANALYSIS_USE in GNUmakefile. + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi -To use histograms any of implementations of AIDA interfaces should -be available (see http://aida.freehep.org). + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin -A package including AIDA and extended interfaces also using Python -is PI, available from: http://cern.ch/pi . + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` -Once installed PI or PI-Lite in a specified local area $MYPY, it is -required to add the installation path to $PATH, i.e. for example, -for release 1.2.1 of PI: + 8b - OpenScientist + + OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist + + In OpenScientist, the AIDA implementation is the Lab package. + You have to "setup" this package before compiling (then with G4ANALYSIS_USE) + and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> setenv CMTPATH + csh> source /Lab//cmt/setup.csh + On UNIX with a sh flavoured shell : + sh> CMTPATH=;export CMTPATH + sh> . /Lab//cmt/setup.sh + On Windows : + DOS> set CMTPATH= + DOS> call /Lab//cmt/setup.bat -setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + You have to use the XML or root file formats ; producing hbook files is not + supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) + are readable by the interactive applications ; the Lab onx interactive + program or the OpenPAW program. -CERN users can use the PATH to the LCG area on AFS. - -Before compilation of the example it is optimal to clean up old -files: - -gmake histclean -gmake - -Before running the example the command should be issued: - -eval `aida-config --runtime csh` - -It is possible to choose the format of the output file with -histograms using UI command: - -/testem/histo/setFileType type - -The following types are available: hbook, root, xml. + With OpenPAW, someone can view the histograms with : + OS> opaw + opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 + opaw> h/plot 3 diff --git a/examples/extended/electromagnetic/MuonProcesses/allproc.mac b/examples/extended/electromagnetic/MuonProcesses/allproc.mac index 2f587f41d7..a772b89b12 100644 --- a/examples/extended/electromagnetic/MuonProcesses/allproc.mac +++ b/examples/extended/electromagnetic/MuonProcesses/allproc.mac @@ -1,4 +1,4 @@ -# $Id: allproc.mac,v 1.2 2004/07/27 10:13:16 maire Exp $ +# $Id: allproc.mac,v 1.3 2005/03/03 16:50:35 maire Exp $ # # Macro file for "MuonProcesses.cc" # (can be run in batch, without graphic) @@ -18,7 +18,8 @@ /gun/particle mu+ /gun/energy 10 TeV # -/testem/histo/setFileName allproc.paw +/testem/histo/setFileName allproc +/testem/histo/setFileType hbook /testem/histo/setHisto 1 100 -10. 0. /testem/histo/setHisto 2 100 -10. 0. /testem/histo/setHisto 3 100 -10. 0. diff --git a/examples/extended/electromagnetic/MuonProcesses/brem.mac b/examples/extended/electromagnetic/MuonProcesses/brem.mac index 871368a524..31ba1f5df9 100644 --- a/examples/extended/electromagnetic/MuonProcesses/brem.mac +++ b/examples/extended/electromagnetic/MuonProcesses/brem.mac @@ -1,4 +1,4 @@ -# $Id: brem.mac,v 1.2 2004/11/03 12:42:46 maire Exp $ +# $Id: brem.mac,v 1.3 2005/03/03 16:50:35 maire Exp $ # # Macro file for "MuonProcesses.cc" # (can be run in batch, without graphic) @@ -22,7 +22,8 @@ /gun/particle mu+ /gun/energy 10 TeV # -/testem/histo/setFileName brem.paw +/testem/histo/setFileName brem +/testem/histo/setFileType hbook /testem/histo/setHisto 3 100 -10. 0. # /testem/event/printModulo 1000 diff --git a/examples/extended/electromagnetic/MuonProcesses/include/DetectorConstruction.hh b/examples/extended/electromagnetic/MuonProcesses/include/DetectorConstruction.hh index 0a4568866d..e3ff4c3cd1 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.hh,v 1.1 2004/06/14 10:09:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/DetectorMessenger.hh b/examples/extended/electromagnetic/MuonProcesses/include/DetectorMessenger.hh index 927fe1f7bf..e0bc000f7a 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorMessenger.hh,v 1.1 2004/06/14 10:09:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/MuonProcesses/include/EventAction.hh b/examples/extended/electromagnetic/MuonProcesses/include/EventAction.hh index 1ab8021d31..c4c1806568 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/EventAction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.1 2004/06/14 10:09:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/EventActionMessenger.hh b/examples/extended/electromagnetic/MuonProcesses/include/EventActionMessenger.hh index 2f84f6eb8a..c0c5256b4b 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.1 2004/06/14 10:09:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/HistoManager.hh b/examples/extended/electromagnetic/MuonProcesses/include/HistoManager.hh index 0a89d5e482..23c0ee613f 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/HistoManager.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/HistoManager.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.hh,v 1.3 2004/11/03 12:43:00 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoManager.hh,v 1.4 2005/03/03 16:50:35 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,8 +53,9 @@ class HistoManager HistoManager(); ~HistoManager(); - void SetFileName (const G4String& name) { fileName = name;}; - void SetFileType (const G4String& name) { fileType = name;}; + void SetFileName (const G4String& name) { fileName[0] = name;}; + void SetFileType (const G4String& name) { fileType = name;}; + void SetFileOption (const G4String& name) { fileType = name;}; void book(); void save(); void SetHisto (G4int,G4int,G4double,G4double,const G4String& unit="none"); @@ -74,8 +75,9 @@ class HistoManager private: - G4String fileName; + G4String fileName[2]; G4String fileType; + G4String fileOption; AIDA::IAnalysisFactory* af; AIDA::ITree* tree; AIDA::IHistogramFactory* hf; diff --git a/examples/extended/electromagnetic/MuonProcesses/include/HistoMessenger.hh b/examples/extended/electromagnetic/MuonProcesses/include/HistoMessenger.hh index 0ea4a314de..27606a0925 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/HistoMessenger.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.hh,v 1.2 2004/06/30 15:48:56 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.hh,v 1.3 2005/03/03 16:50:35 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,6 +58,7 @@ class HistoMessenger: public G4UImessenger G4UIdirectory* histoDir; G4UIcmdWithAString* factoryCmd; G4UIcmdWithAString* typeCmd; + G4UIcmdWithAString* optionCmd; G4UIcommand* histoCmd; G4UIcmdWithAnInteger* rmhistoCmd; diff --git a/examples/extended/electromagnetic/MuonProcesses/include/MuCrossSections.hh b/examples/extended/electromagnetic/MuonProcesses/include/MuCrossSections.hh index daa4e0d43f..f441308994 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/MuCrossSections.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/MuCrossSections.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: MuCrossSections.hh,v 1.2 2004/08/27 11:06:23 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/MuNuclearBuilder.hh b/examples/extended/electromagnetic/MuonProcesses/include/MuNuclearBuilder.hh index 07a6cba754..3822c90bc2 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/MuNuclearBuilder.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/MuNuclearBuilder.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: MuNuclearBuilder.hh,v 1.1 2004/08/17 18:07:28 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmG4v52.hh index 0d87b699c9..b00f2a1ed8 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmG4v52.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmG4v52.hh,v 1.1 2004/06/14 10:09:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmStandard.hh index abd8a11062..51d0a571e7 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmStandard.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/PhysicsList.hh b/examples/extended/electromagnetic/MuonProcesses/include/PhysicsList.hh index e667d93152..e66fe02f85 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.2 2004/08/17 18:07:28 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/MuonProcesses/include/PhysicsListMessenger.hh index a564ce0b73..a3e1c69d58 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/MuonProcesses/include/PrimaryGeneratorAction.hh index 38e652ed9d..39c81fc188 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/ProcessesCount.hh b/examples/extended/electromagnetic/MuonProcesses/include/ProcessesCount.hh index ae01b7ee3a..52162040a3 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/ProcessesCount.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/ProcessesCount.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ProcessesCount.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/RunAction.hh b/examples/extended/electromagnetic/MuonProcesses/include/RunAction.hh index 78b86d5986..5644a5fffc 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/RunAction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/StackingAction.hh b/examples/extended/electromagnetic/MuonProcesses/include/StackingAction.hh index 37251224fb..127059c0ca 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/StackingAction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/StackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingAction.hh,v 1.2 2004/12/15 15:41:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/SteppingAction.hh b/examples/extended/electromagnetic/MuonProcesses/include/SteppingAction.hh index ac93f91361..3832c7e890 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/SteppingVerbose.hh b/examples/extended/electromagnetic/MuonProcesses/include/SteppingVerbose.hh index e03f91f6d8..b16dda00b8 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.1 2004/06/14 10:09:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/MuonProcesses/ioni.mac b/examples/extended/electromagnetic/MuonProcesses/ioni.mac index d652ea6135..de1afe6199 100644 --- a/examples/extended/electromagnetic/MuonProcesses/ioni.mac +++ b/examples/extended/electromagnetic/MuonProcesses/ioni.mac @@ -1,4 +1,4 @@ -# $Id: ioni.mac,v 1.2 2004/11/03 12:42:47 maire Exp $ +# $Id: ioni.mac,v 1.3 2005/03/03 16:50:35 maire Exp $ # # Macro file for "MuonProcesses.cc" # (can be run in batch, without graphic) @@ -22,7 +22,8 @@ /gun/particle mu+ /gun/energy 10 TeV # -/testem/histo/setFileName ioni.paw +/testem/histo/setFileName ioni +/testem/histo/setFileType hbook /testem/histo/setHisto 1 100 -10. 0. # /testem/event/printModulo 1000 diff --git a/examples/extended/electromagnetic/MuonProcesses/munucl.mac b/examples/extended/electromagnetic/MuonProcesses/munucl.mac index 6da756cb0f..232b035d16 100644 --- a/examples/extended/electromagnetic/MuonProcesses/munucl.mac +++ b/examples/extended/electromagnetic/MuonProcesses/munucl.mac @@ -1,4 +1,4 @@ -# $Id: munucl.mac,v 1.2 2004/11/10 17:24:26 maire Exp $ +# $Id: munucl.mac,v 1.3 2005/03/03 16:50:35 maire Exp $ # # Macro file for "MuonProcesses.cc" # (can be run in batch, without graphic) @@ -24,7 +24,8 @@ /gun/particle mu+ /gun/energy 10 TeV # -/testem/histo/setFileName munucl.paw +/testem/histo/setFileName munucl +/testem/histo/setFileType hbook /testem/histo/setHisto 4 100 -10. 0. # /testem/event/printModulo 10000 diff --git a/examples/extended/electromagnetic/MuonProcesses/pair.mac b/examples/extended/electromagnetic/MuonProcesses/pair.mac index abfb89bd4b..d67acd92c2 100644 --- a/examples/extended/electromagnetic/MuonProcesses/pair.mac +++ b/examples/extended/electromagnetic/MuonProcesses/pair.mac @@ -1,4 +1,4 @@ -# $Id: pair.mac,v 1.2 2004/11/03 12:42:51 maire Exp $ +# $Id: pair.mac,v 1.3 2005/03/03 16:50:35 maire Exp $ # # Macro file for "MuonProcesses.cc" # (can be run in batch, without graphic) @@ -22,7 +22,8 @@ /gun/particle mu+ /gun/energy 10 TeV # -/testem/histo/setFileName pair.paw +/testem/histo/setFileName pair +/testem/histo/setFileType hbook /testem/histo/setHisto 2 100 -10. 0. # /testem/event/printModulo 1000 diff --git a/examples/extended/electromagnetic/MuonProcesses/src/DetectorConstruction.cc b/examples/extended/electromagnetic/MuonProcesses/src/DetectorConstruction.cc index ef1e3314c6..9d56fe5722 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.cc,v 1.1 2004/06/14 10:09:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/DetectorMessenger.cc b/examples/extended/electromagnetic/MuonProcesses/src/DetectorMessenger.cc index 693cced233..1b5033e8f5 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorMessenger.cc,v 1.1 2004/06/14 10:09:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/MuonProcesses/src/EventAction.cc b/examples/extended/electromagnetic/MuonProcesses/src/EventAction.cc index 4a9a307e56..b9920cc9ae 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/EventAction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.1 2004/06/14 10:09:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/EventActionMessenger.cc b/examples/extended/electromagnetic/MuonProcesses/src/EventActionMessenger.cc index 203cb0023b..d2c012aeb1 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.1 2004/06/14 10:09:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/HistoManager.cc b/examples/extended/electromagnetic/MuonProcesses/src/HistoManager.cc index d73422acde..2466da23ad 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/HistoManager.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/HistoManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.cc,v 1.3 2004/11/03 12:43:01 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoManager.cc,v 1.5 2005/06/01 13:58:22 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,22 +31,27 @@ #include "G4UnitsTable.hh" #ifdef G4ANALYSIS_USE -#include //for auto_ptr #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... HistoManager::HistoManager() -:tree(0),hf(0),factoryOn(false) +:af(0),tree(0),hf(0),factoryOn(false) { #ifdef G4ANALYSIS_USE // Creating the analysis factory af = AIDA_createAnalysisFactory(); + if(!af) { + G4cout << " HistoManager::HistoManager() :" + << " problem creating the AIDA analysis factory." + << G4endl; + } #endif - fileName = "muonprocesses.aida"; - fileType = "hbook"; + fileName[0] = "muonprocesses"; + fileType = "hbook"; + fileOption = "--noErrors uncompress"; // histograms for (G4int k=0; k tf(af->createTreeFactory()); - + if(!af) return; + // Creating a tree mapped to an hbook file. + fileName[1] = fileName[0] + "." + fileType; G4bool readOnly = false; G4bool createNew = true; - tree = tf->create(fileName, fileType, readOnly, createNew, "uncompress"); + AIDA::ITreeFactory* tf = af->createTreeFactory(); + tree = tf->create(fileName[1], fileType, readOnly, createNew, fileOption); + delete tf; + if(!tree) { + G4cout << "HistoManager::book() :" + << " problem creating the AIDA tree with " + << " storeName = " << fileName[1] + << " storeType = " << fileType + << " readOnly = " << readOnly + << " createNew = " << createNew + << " options = " << fileOption + << G4endl; + return; + } // Creating a histogram factory, whose histograms will be handled by the tree hf = af->createHistogramFactory(*tree); @@ -95,7 +112,7 @@ void HistoManager::book() } } if(factoryOn) - G4cout << "\n----> Histogram Tree is opened in " << fileName << G4endl; + G4cout << "\n----> Histogram Tree is opened in " << fileName[1] << G4endl; #endif } @@ -108,10 +125,11 @@ void HistoManager::save() if (factoryOn) { tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) - G4cout << "\n----> Histogram Tree is saved in " << fileName << G4endl; + G4cout << "\n----> Histogram Tree is saved in " << fileName[1] << G4endl; delete hf; delete tree; + tree = 0; factoryOn = false; } #endif diff --git a/examples/extended/electromagnetic/MuonProcesses/src/HistoMessenger.cc b/examples/extended/electromagnetic/MuonProcesses/src/HistoMessenger.cc index 2c3ad348d8..ba37bb4841 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/HistoMessenger.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.2 2004/06/30 15:48:57 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.cc,v 1.3 2005/03/03 16:50:35 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,6 +48,10 @@ HistoMessenger::HistoMessenger(HistoManager* manager) typeCmd = new G4UIcmdWithAString("/testem/histo/setFileType",this); typeCmd->SetGuidance("set histograms file type"); + typeCmd->SetCandidates("hbook root XML"); + + optionCmd = new G4UIcmdWithAString("/testem/histo/setFileOption",this); + optionCmd->SetGuidance("set option for the histograms file"); histoCmd = new G4UIcommand("/testem/histo/setHisto",this); histoCmd->SetGuidance("Set bining of the histo number ih :"); @@ -88,6 +92,7 @@ HistoMessenger::~HistoMessenger() { delete rmhistoCmd; delete histoCmd; + delete optionCmd; delete typeCmd; delete factoryCmd; delete histoDir; @@ -102,6 +107,9 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) if (command == typeCmd) histoManager->SetFileType(newValues); + + if (command == optionCmd) + histoManager->SetFileOption(newValues); if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; diff --git a/examples/extended/electromagnetic/MuonProcesses/src/MuCrossSections.cc b/examples/extended/electromagnetic/MuonProcesses/src/MuCrossSections.cc index d54787b7f6..50020d0a2d 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/MuCrossSections.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/MuCrossSections.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: MuCrossSections.cc,v 1.6 2004/12/06 12:02:42 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/MuNuclearBuilder.cc b/examples/extended/electromagnetic/MuonProcesses/src/MuNuclearBuilder.cc index 411dadf2e7..0515f0cc0c 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/MuNuclearBuilder.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/MuNuclearBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: MuNuclearBuilder.cc,v 1.2 2004/11/03 12:43:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmG4v52.cc index 71e8d63d6e..10dde9bb15 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmG4v52.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.cc,v 1.1 2004/06/14 10:09:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmStandard.cc index 3e34982d80..b003be6df5 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmStandard.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc,v 1.3 2004/12/06 12:02:42 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: PhysListEmStandard.cc,v 1.7 2004/12/06 16:06:31 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,27 +53,32 @@ PhysListEmStandard::~PhysListEmStandard() void PhysListEmStandard::ConstructProcess() { - // Add standard EM Processes for Muon - // + // Common processes for mu+ and mu- + // + G4MuIonisation* muioni = new G4MuIonisation(); + G4MuBremsstrahlung* mubrem = new G4MuBremsstrahlung(); + G4MuPairProduction* mupair = new G4MuPairProduction(); + G4ParticleDefinition* particle = G4MuonPlus::MuonPlus(); G4ProcessManager* pmanager = particle->GetProcessManager(); // - pmanager->AddProcess(new G4MuIonisation, -1, 1,1); - pmanager->AddProcess(new G4MuBremsstrahlung, -1, 2,2); - pmanager->AddProcess(new G4MuPairProduction, -1, 3,3); + pmanager->AddProcess(muioni, -1, 2,2); + pmanager->AddProcess(mubrem, -1,-1,3); + pmanager->AddProcess(mupair, -1,-1,4); particle = G4MuonMinus::MuonMinus(); pmanager = particle->GetProcessManager(); // - pmanager->AddProcess(new G4MuIonisation, -1, 1,1); - pmanager->AddProcess(new G4MuBremsstrahlung, -1, 2,2); - pmanager->AddProcess(new G4MuPairProduction, -1, 3,3); + pmanager->AddProcess(muioni, -1, 2,2); + pmanager->AddProcess(mubrem, -1,-1,3); + pmanager->AddProcess(mupair, -1,-1,4); //extend binning of PhysicsTables // G4LossTableManager::Instance()->SetMaxEnergy(1000.0*PeV); G4LossTableManager::Instance()->SetDEDXBinning(220); G4LossTableManager::Instance()->SetLambdaBinning(220); + G4LossTableManager::Instance()->SetVerbose(0); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/PhysicsList.cc b/examples/extended/electromagnetic/MuonProcesses/src/PhysicsList.cc index e83f8da267..00ccd39b55 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysicsList.cc,v 1.2 2004/08/17 18:07:30 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysicsList.cc,v 1.4 2005/03/16 13:50:56 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -104,10 +104,9 @@ PhysicsList::~PhysicsList() #include "G4AntiNeutron.hh" // Nuclei -#include "G4Alpha.hh" #include "G4Deuteron.hh" #include "G4Triton.hh" -#include "G4He3.hh" +#include "G4Alpha.hh" #include "G4GenericIon.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -153,7 +152,6 @@ void PhysicsList::ConstructParticle() // ions G4Deuteron::DeuteronDefinition(); G4Triton::TritonDefinition(); - G4He3::He3Definition(); G4Alpha::AlphaDefinition(); G4GenericIon::GenericIonDefinition(); } @@ -182,7 +180,7 @@ void PhysicsList::AddPhysicsList(const G4String& name) if (name == emName) return; - if (name == "standard") { + if (name == "standard" && name != emName) { emName = name; delete emPhysicsList; diff --git a/examples/extended/electromagnetic/MuonProcesses/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/MuonProcesses/src/PhysicsListMessenger.cc index e05c7f73ef..fec8c0b29a 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.1 2004/06/14 10:09:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/MuonProcesses/src/PrimaryGeneratorAction.cc index bf61569b31..8e062977d4 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.1 2004/06/14 10:09:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/RunAction.cc b/examples/extended/electromagnetic/MuonProcesses/src/RunAction.cc index 44e189712a..28e221709f 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/RunAction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/RunAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.cc,v 1.7 2004/12/03 09:38:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/StackingAction.cc b/examples/extended/electromagnetic/MuonProcesses/src/StackingAction.cc index 808e517f0e..91b608dc74 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/StackingAction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/StackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingAction.cc,v 1.1 2004/06/14 10:09:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/SteppingAction.cc b/examples/extended/electromagnetic/MuonProcesses/src/SteppingAction.cc index fc4202ffab..847f9bf3f6 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.4 2004/12/03 09:38:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/SteppingVerbose.cc b/examples/extended/electromagnetic/MuonProcesses/src/SteppingVerbose.cc index 08183d4ebd..c821540190 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.1 2004/06/14 10:09:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/VisManager.cc b/examples/extended/electromagnetic/MuonProcesses/src/VisManager.cc deleted file mode 100755 index 99fe42c7c1..0000000000 --- a/examples/extended/electromagnetic/MuonProcesses/src/VisManager.cc +++ /dev/null @@ -1,151 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.cc,v 1.1 2004/06/14 10:09:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/History b/examples/extended/electromagnetic/PhotonProcesses/History index 7ac3b446c2..dc3c8b80be 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/History +++ b/examples/extended/electromagnetic/PhotonProcesses/History @@ -1,4 +1,4 @@ -$Id: History,v 1.7 2004/12/03 09:36:37 vnivanch Exp $ +$Id: History,v 1.12 2005/06/01 13:44:06 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,22 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +01-06-05 mma (photonprocesses-V07-00-02) +- HistoManager : option "--noErrors" for hbook + +10-05-05 mma (photonprocesses-V07-00-01) +- migration v70->standard->v52 : PhysicsList and macros +- EmCalculator in RunAction + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +03-03-05 mma (photonprocesses-V07-00-00) +- HistoManager : - put a protection for the creation of analysis factory; + - file extension is fileType; + +- HistoMessenger : new command setFileOption 02 Dec 04: V.Ivant (photonprocesses-V06-02-03) - Migration to cmath diff --git a/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.cc b/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.cc index 4a723b5009..a18db5c6de 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhotonProcesses.cc,v 1.5 2004/09/29 10:37:47 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhotonProcesses.cc,v 1.6 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,7 +43,7 @@ #include "HistoManager.hh" #ifdef G4VIS_USE - #include "VisManager.hh" + #include "G4VisExecutive.hh" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -68,7 +68,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/PhotonProcesses/README b/examples/extended/electromagnetic/PhotonProcesses/README index bc43a5bf88..35dae46513 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/README +++ b/examples/extended/electromagnetic/PhotonProcesses/README @@ -1,4 +1,4 @@ -$Id: README,v 1.4 2004/09/29 10:37:47 maire Exp $ +$Id: README,v 1.5 2005/03/03 15:03:04 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -67,9 +67,11 @@ $Id: README,v 1.4 2004/09/29 10:37:47 maire Exp $ See below the note on histogram tools. - One can control the name of the histograms file with the command: - /testem/histo/setFileName name (default photonprocesses.aida) - + One can control the name and the type of the histograms file with + the commands: + /testem/histo/setFileName name (default photonprocesses) + /testem/histo/setFileType name (default hbook) + Note that, by default, histograms are disabled. To activate them, uncomment the flag G4ANALYSIS_USE in GNUmakefile. @@ -103,40 +105,60 @@ $Id: README,v 1.4 2004/09/29 10:37:47 maire Exp $ Idle> exit - 8- Using histograms - ------------------- + 8- USING HISTOGRAMS + + By default the histograms are not activated. To activate histograms + the environment variable G4ANALYSIS_USE should be defined. For instance + uncomment the flag G4ANALYSIS_USE in GNUmakefile. + + Before compilation of the example it is optimal to clean up old files: + gmake histclean + gmake + + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 8a - PI -By default the histograms are not activated. To activate histograms -the environment variable G4ANALYSIS_USE should be defined. For instance -uncomment the flag G4ANALYSIS_USE in GNUmakefile. + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi -To use histograms any of implementations of AIDA interfaces should -be available (see http://aida.freehep.org). + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin -A package including AIDA and extended interfaces also using Python -is PI, available from: http://cern.ch/pi . + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` -Once installed PI or PI-Lite in a specified local area $MYPY, it is -required to add the installation path to $PATH, i.e. for example, -for release 1.2.1 of PI: + 8b - OpenScientist + + OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist + + In OpenScientist, the AIDA implementation is the Lab package. + You have to "setup" this package before compiling (then with G4ANALYSIS_USE) + and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> setenv CMTPATH + csh> source /Lab//cmt/setup.csh + On UNIX with a sh flavoured shell : + sh> CMTPATH=;export CMTPATH + sh> . /Lab//cmt/setup.sh + On Windows : + DOS> set CMTPATH= + DOS> call /Lab//cmt/setup.bat -setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + You have to use the XML or root file formats ; producing hbook files is not + supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) + are readable by the interactive applications ; the Lab onx interactive + program or the OpenPAW program. -CERN users can use the PATH to the LCG area on AFS. - -Before compilation of the example it is optimal to clean up old -files: - -gmake histclean -gmake - -Before running the example the command should be issued: - -eval `aida-config --runtime csh` - -It is possible to choose the format of the output file with -histograms using UI command: - -/testem/histo/setFileType type - -The following types are available: hbook, root, XML. + With OpenPAW, someone can view the histograms with : + OS> opaw + opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 + opaw> h/plot 3 diff --git a/examples/extended/electromagnetic/PhotonProcesses/allproceses.mac b/examples/extended/electromagnetic/PhotonProcesses/allproceses.mac index 1088a0ae39..c52598bd36 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/allproceses.mac +++ b/examples/extended/electromagnetic/PhotonProcesses/allproceses.mac @@ -1,4 +1,4 @@ -# $Id: allproceses.mac,v 1.1 2004/04/28 11:09:06 maire Exp $ +# $Id: allproceses.mac,v 1.2 2005/05/09 16:10:42 maire Exp $ # # Macro file for "PhotonProcesses.cc" # (can be run in batch, without graphic) @@ -11,6 +11,8 @@ /testem/det/setMat Water /testem/det/setSize 100 m # +###/testem/phys/addPhysics g4v52 +# /run/initialize # /gun/energy 100 keV diff --git a/examples/extended/electromagnetic/PhotonProcesses/anni.mac b/examples/extended/electromagnetic/PhotonProcesses/anni.mac index fec65327c6..c8463737a0 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/anni.mac +++ b/examples/extended/electromagnetic/PhotonProcesses/anni.mac @@ -1,4 +1,4 @@ -# $Id: anni.mac,v 1.3 2004/09/29 10:37:47 maire Exp $ +# $Id: anni.mac,v 1.5 2005/05/09 16:10:42 maire Exp $ # # Macro file for "PhotonProcesses.cc" # (can be run in batch, without graphic) @@ -10,6 +10,8 @@ # /testem/det/setMat Aluminium # +###/testem/phys/addPhysics g4v52 +# /run/initialize # /process/inactivate eIoni @@ -19,8 +21,8 @@ /gun/particle e+ /gun/energy 100 MeV # +/testem/histo/setFileName anni.std /testem/histo/setFileType hbook -/testem/histo/setFileName anni.paw /testem/histo/setHisto 5 210 0. 105. MeV #energy of gamma /testem/histo/setHisto 6 200 -1. +1. none #costeta of gamma # diff --git a/examples/extended/electromagnetic/PhotonProcesses/compton.mac b/examples/extended/electromagnetic/PhotonProcesses/compton.mac index 563e3f77db..8dc8e30c3a 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/compton.mac +++ b/examples/extended/electromagnetic/PhotonProcesses/compton.mac @@ -1,4 +1,4 @@ -# $Id: compton.mac,v 1.2 2004/09/29 10:37:47 maire Exp $ +# $Id: compton.mac,v 1.4 2005/05/09 16:10:42 maire Exp $ # # Macro file for "PhotonProcesses.cc" # (can be run in batch, without graphic) @@ -10,6 +10,8 @@ # /testem/det/setMat Aluminium # +### /testem/phys/addPhysics g4v52 +# /run/initialize # /process/inactivate phot @@ -18,8 +20,8 @@ # /gun/energy 300 keV # +/testem/histo/setFileName compton.std /testem/histo/setFileType hbook -/testem/histo/setFileName compton.paw /testem/histo/setHisto 1 100 0. 300. keV #energy of primary /testem/histo/setHisto 2 200 -1. +1. none #costeta of primary /testem/histo/setHisto 3 100 0. 300. keV #energy of ch. secondary diff --git a/examples/extended/electromagnetic/PhotonProcesses/conv.mac b/examples/extended/electromagnetic/PhotonProcesses/conv.mac index adcb4f0812..582c04e9f8 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/conv.mac +++ b/examples/extended/electromagnetic/PhotonProcesses/conv.mac @@ -1,4 +1,4 @@ -# $Id: conv.mac,v 1.3 2004/09/29 10:37:48 maire Exp $ +# $Id: conv.mac,v 1.5 2005/05/09 16:10:42 maire Exp $ # # Macro file for "PhotonProcesses.cc" # (can be run in batch, without graphic) @@ -10,6 +10,8 @@ # /testem/det/setMat Lead # +#### /testem/phys/addPhysics g4v52 +# /run/initialize # /process/inactivate phot @@ -18,8 +20,8 @@ # /gun/energy 100 MeV # +/testem/histo/setFileName conv.std /testem/histo/setFileType hbook -/testem/histo/setFileName conv.paw /testem/histo/setHisto 3 200 0. 100. MeV #energy of ch. secondaries /testem/histo/setHisto 4 200 0. +1. none #costeta of ch. secondaries # diff --git a/examples/extended/electromagnetic/PhotonProcesses/convtomu.mac b/examples/extended/electromagnetic/PhotonProcesses/convtomu.mac index 853a6fd80f..f8e8a7bf6b 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/convtomu.mac +++ b/examples/extended/electromagnetic/PhotonProcesses/convtomu.mac @@ -1,4 +1,4 @@ -# $Id: convtomu.mac,v 1.2 2004/09/29 10:37:48 maire Exp $ +# $Id: convtomu.mac,v 1.3 2005/03/03 15:03:04 maire Exp $ # # Macro file for "PhotonProcesses.cc" # (can be run in batch, without graphic) @@ -19,8 +19,8 @@ # /gun/energy 100 TeV # +/testem/histo/setFileName convtomu /testem/histo/setFileType hbook -/testem/histo/setFileName convtomu.paw /testem/histo/setHisto 3 200 0. 100. TeV #energy of ch. secondaries /testem/histo/setHisto 4 100 0.9 1.1 none #costeta of ch. secondaries # diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/DetectorConstruction.hh b/examples/extended/electromagnetic/PhotonProcesses/include/DetectorConstruction.hh index e38fa76b72..8ddd5280bc 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.2 2004/09/29 10:37:52 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/DetectorMessenger.hh b/examples/extended/electromagnetic/PhotonProcesses/include/DetectorMessenger.hh index 7218aea7b6..c7b8a7e442 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.2 2004/09/29 10:37:52 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/EventAction.hh b/examples/extended/electromagnetic/PhotonProcesses/include/EventAction.hh index 8d84a9d09f..9bcdbcc5bc 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/EventAction.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.2 2004/09/29 10:37:52 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/EventActionMessenger.hh b/examples/extended/electromagnetic/PhotonProcesses/include/EventActionMessenger.hh index 57cd02afc3..51e5ce7439 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/HistoManager.hh b/examples/extended/electromagnetic/PhotonProcesses/include/HistoManager.hh index 504bcba6d7..7de5281764 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/HistoManager.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/HistoManager.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.hh,v 1.4 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoManager.hh,v 1.5 2005/03/03 15:03:04 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -36,7 +36,6 @@ namespace AIDA { class IAnalysisFactory; class ITree; - class IHistogramFactory; class IHistogram1D; } @@ -53,8 +52,9 @@ class HistoManager HistoManager(); ~HistoManager(); - void SetFileName (const G4String& name) { fileName = name;}; - void SetFileType (const G4String& name) { fileType = name;}; + void SetFileName (const G4String& name) { fileName[0] = name;}; + void SetFileType (const G4String& name) { fileType = name;}; + void SetFileOption (const G4String& name) { fileType = name;}; void book(); void save(); void SetHisto (G4int,G4int,G4double,G4double,const G4String& unit="none"); @@ -67,11 +67,11 @@ class HistoManager private: - G4String fileName; + G4String fileName[2]; G4String fileType; + G4String fileOption; AIDA::IAnalysisFactory* af; AIDA::ITree* tree; - AIDA::IHistogramFactory* hf; AIDA::IHistogram1D* histo[MaxHisto]; G4bool exist[MaxHisto]; G4String Label[MaxHisto]; diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/HistoMessenger.hh b/examples/extended/electromagnetic/PhotonProcesses/include/HistoMessenger.hh index 464d5931a3..0171639dd1 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/HistoMessenger.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.hh,v 1.3 2004/06/30 11:13:58 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.hh,v 1.4 2005/03/03 15:03:04 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,6 +58,7 @@ class HistoMessenger: public G4UImessenger G4UIdirectory* histoDir; G4UIcmdWithAString* factoryCmd; G4UIcmdWithAString* typeCmd; + G4UIcmdWithAString* optionCmd; G4UIcommand* histoCmd; G4UIcmdWithAnInteger* rmhistoCmd; diff --git a/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder70.hh b/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmG4v52.hh old mode 100755 new mode 100644 similarity index 71% rename from examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder70.hh rename to examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmG4v52.hh index 8d2d20b1b9..c60fa0e78a --- a/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder70.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmG4v52.hh @@ -21,44 +21,44 @@ // ******************************************************************** // // -// $Id: G4EmQEDBuilder70.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: PhysListEmG4v52.hh,v 1.1 2005/05/09 16:11:52 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef G4EmQEDBuilder70_h -#define G4EmQEDBuilder70_h 1 +#ifndef PhysListEmG4v52_h +#define PhysListEmG4v52_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class G4EmQEDBuilder70 : public G4VPhysicsConstructor +class PhysListEmG4v52 : public G4VPhysicsConstructor { -public: - G4EmQEDBuilder70(const G4String& name = "EM_stan_QED"); - virtual ~G4EmQEDBuilder70(); - -public: - // This method is dummy for physics - virtual void ConstructParticle(); - - // This method will be invoked in the Construct() method. - // each physics process will be instantiated and - // registered to the process manager of each particle type - virtual void ConstructProcess(); - -private: - - // hide assignment operator - G4EmQEDBuilder70 & operator=(const G4EmQEDBuilder70 &right); - G4EmQEDBuilder70(const G4EmQEDBuilder70&); + public: + PhysListEmG4v52(const G4String& name = "g4v52"); + ~PhysListEmG4v52(); + public: + // This method is dummy for physics. + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif + + + + + + + diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmStandard.hh index 6cdddccbd8..6ca00055cc 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmStandard.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.hh,v 1.2 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsList.hh b/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsList.hh index f19b23feb5..9282e93e1c 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.2 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsListMessenger.hh index 6175c1779d..43f69ccc83 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.2 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/PhotonProcesses/include/PrimaryGeneratorAction.hh index fb71126e05..0857de0d53 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.2 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/ProcessesCount.hh b/examples/extended/electromagnetic/PhotonProcesses/include/ProcessesCount.hh index 48bd35f9f6..abfa84e5ca 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/ProcessesCount.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/ProcessesCount.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ProcessesCount.hh,v 1.2 2004/09/29 10:37:55 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/RunAction.hh b/examples/extended/electromagnetic/PhotonProcesses/include/RunAction.hh index e12cfe9c2f..3fe1b10eb5 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/RunAction.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.3 2004/09/29 10:37:55 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/SteppingAction.hh b/examples/extended/electromagnetic/PhotonProcesses/include/SteppingAction.hh index 2227e58f2d..8856781b39 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.2 2004/09/29 10:37:55 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/SteppingVerbose.hh b/examples/extended/electromagnetic/PhotonProcesses/include/SteppingVerbose.hh index 24c995900e..f1a64be9be 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.2 2004/09/29 10:37:57 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/PhotonProcesses/phot.mac b/examples/extended/electromagnetic/PhotonProcesses/phot.mac index 26916c9f8f..64eda91714 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/phot.mac +++ b/examples/extended/electromagnetic/PhotonProcesses/phot.mac @@ -1,4 +1,4 @@ -# $Id: phot.mac,v 1.2 2004/09/29 10:37:48 maire Exp $ +# $Id: phot.mac,v 1.5 2005/06/01 13:44:06 maire Exp $ # # Macro file for "PhotonProcesses.cc" # (can be run in batch, without graphic) @@ -8,8 +8,10 @@ /control/verbose 2 /run/verbose 2 # -#/testem/det/setMat Iron -/testem/det/setMat BGO +/testem/det/setMat Iron +###/testem/det/setMat BGO +# +###/testem/phys/addPhysics g4v52 # /run/initialize # @@ -19,8 +21,8 @@ # /gun/energy 100 keV # +/testem/histo/setFileName phot.std /testem/histo/setFileType hbook -/testem/histo/setFileName phot.paw /testem/histo/setHisto 3 100 0. 100. keV #energy of ch. secondaries /testem/histo/setHisto 4 200 -1. +1. none #costeta of ch. secondaries # diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/DetectorConstruction.cc b/examples/extended/electromagnetic/PhotonProcesses/src/DetectorConstruction.cc index 41e94e669a..e6c24f16c3 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/DetectorConstruction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: DetectorConstruction.cc,v 1.2 2004/09/29 10:38:01 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: DetectorConstruction.cc,v 1.3 2005/05/09 16:10:42 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -76,7 +76,9 @@ void DetectorConstruction::DefineMaterials() G4Element* H = new G4Element("Hydrogen" ,"H" , z= 1., a= 1.01*g/mole); G4Element* N = new G4Element("Nitrogen" ,"N" , z= 7., a= 14.01*g/mole); G4Element* O = new G4Element("Oxygen" ,"O" , z= 8., a= 16.00*g/mole); + G4Element* Na = new G4Element("Sodium" ,"Na", z=11., a= 22.99*g/mole); G4Element* Ge = new G4Element("Germanium","Ge", z=32., a= 72.59*g/mole); + G4Element* I = new G4Element("Iodine" ,"I" , z=53., a= 126.90*g/mole); G4Element* Bi = new G4Element("Bismuth" ,"Bi", z=83., a= 208.98*g/mole); // @@ -110,6 +112,16 @@ void DetectorConstruction::DefineMaterials() new G4Material("Germanium" , z=32., a= 72.61*g/mole, density= 5.323*g/cm3); + G4Material* NaI = + new G4Material("NaI", density= 3.67*g/cm3, ncomponents=2); + NaI->AddElement(Na, natoms=1); + NaI->AddElement(I , natoms=1); + NaI->GetIonisation()->SetMeanExcitationEnergy(452*eV); + + G4Material* Iod = + new G4Material("Iodine", density= 4.93*g/cm3, ncomponents=1); + Iod->AddElement(I , natoms=1); + G4Material* BGO = new G4Material("BGO", density= 7.10*g/cm3, ncomponents=3); BGO->AddElement(O , natoms=12); diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/DetectorMessenger.cc b/examples/extended/electromagnetic/PhotonProcesses/src/DetectorMessenger.cc index 1fb553abd5..8c98cad554 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.2 2004/09/29 10:38:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/EventAction.cc b/examples/extended/electromagnetic/PhotonProcesses/src/EventAction.cc index 84fc61c8b2..9fe343b00b 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/EventAction.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.2 2004/09/29 10:38:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/EventActionMessenger.cc b/examples/extended/electromagnetic/PhotonProcesses/src/EventActionMessenger.cc index 7efc050168..5a0e5cad49 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.2 2004/09/29 10:38:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/HistoManager.cc b/examples/extended/electromagnetic/PhotonProcesses/src/HistoManager.cc index 196d278472..7e60cfc85c 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/HistoManager.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/HistoManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.cc,v 1.4 2004/09/29 10:38:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoManager.cc,v 1.6 2005/06/01 13:44:06 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,22 +31,27 @@ #include "G4UnitsTable.hh" #ifdef G4ANALYSIS_USE -#include //for auto_ptr #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... HistoManager::HistoManager() -:tree(0),hf(0),factoryOn(false) +:af(0),tree(0),factoryOn(false) { #ifdef G4ANALYSIS_USE // Creating the analysis factory af = AIDA_createAnalysisFactory(); + if(!af) { + G4cout << " HistoManager::HistoManager() :" + << " problem creating the AIDA analysis factory." + << G4endl; + } #endif - fileName = "photonprocesses.aida"; - fileType = "hbook"; + fileName[0] = "photonprocesses"; + fileType = "hbook"; + fileOption = "--noErrors uncompress"; // histograms for (G4int k=0; k tf(af->createTreeFactory()); + if(!af) return; // Creating a tree mapped to an hbook file. + fileName[1] = fileName[0] + "." + fileType; G4bool readOnly = false; G4bool createNew = true; - tree = tf->create(fileName, fileType, readOnly, createNew, "uncompress"); - + AIDA::ITreeFactory* tf = af->createTreeFactory(); + tree = tf->create(fileName[1], fileType, readOnly, createNew, fileOption); + delete tf; + if(!tree) { + G4cout << "HistoManager::book() :" + << " problem creating the AIDA tree with " + << " storeName = " << fileName[1] + << " storeType = " << fileType + << " readOnly = " << readOnly + << " createNew = " << createNew + << " options = " << fileOption + << G4endl; + return; + } + // Creating a histogram factory, whose histograms will be handled by the tree - hf = af->createHistogramFactory(*tree); + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); // create selected histograms for (G4int k=0; k Histogram Tree is opened " << G4endl; + G4cout << "\n----> Histogram Tree is opened " << fileName[1] << G4endl; #endif } @@ -106,10 +125,10 @@ void HistoManager::save() if (factoryOn) { tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) - G4cout << "\n----> Histogram Tree is saved in " << fileName << G4endl; + G4cout << "\n----> Histogram Tree is saved in " << fileName[1] << G4endl; - delete hf; delete tree; + tree = 0; factoryOn = false; } #endif diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/HistoMessenger.cc b/examples/extended/electromagnetic/PhotonProcesses/src/HistoMessenger.cc index c6a1094b09..ee06ced8dc 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/HistoMessenger.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.3 2004/06/30 11:13:59 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.cc,v 1.4 2005/03/03 15:03:04 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,6 +48,10 @@ HistoMessenger::HistoMessenger(HistoManager* manager) typeCmd = new G4UIcmdWithAString("/testem/histo/setFileType",this); typeCmd->SetGuidance("set histograms file type"); + typeCmd->SetCandidates("hbook root XML"); + + optionCmd = new G4UIcmdWithAString("/testem/histo/setFileOption",this); + optionCmd->SetGuidance("set option for the histograms file"); histoCmd = new G4UIcommand("/testem/histo/setHisto",this); histoCmd->SetGuidance("Set bining of the histo number ih :"); @@ -88,6 +92,7 @@ HistoMessenger::~HistoMessenger() { delete rmhistoCmd; delete histoCmd; + delete optionCmd; delete typeCmd; delete factoryCmd; delete histoDir; @@ -102,6 +107,9 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) if (command == typeCmd) histoManager->SetFileType(newValues); + + if (command == optionCmd) + histoManager->SetFileOption(newValues); if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; diff --git a/examples/extended/electromagnetic/TestEm5/src/IonC12.cc b/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmG4v52.cc similarity index 50% rename from examples/extended/electromagnetic/TestEm5/src/IonC12.cc rename to examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmG4v52.cc index 5304fc8088..2b906f7c3a 100644 --- a/examples/extended/electromagnetic/TestEm5/src/IonC12.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmG4v52.cc @@ -20,58 +20,72 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: IonC12.cc,v 1.5 2004/06/21 10:57:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// +// $Id: PhysListEmG4v52.cc,v 1.1 2005/05/09 16:11:52 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "IonC12.hh" +#include "PhysListEmG4v52.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4PhotoElectricEffect52.hh" +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4GammaConversionToMuons.hh" + +#include "G4MultipleScattering52.hh" + +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" +#include "G4eplusAnnihilation52.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -IonC12::IonC12( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ } +PhysListEmG4v52::PhysListEmG4v52(const G4String& name) + : G4VPhysicsConstructor(name) +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -IonC12::~IonC12() { } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// -// static member definition -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -IonC12 IonC12::theIon( - "ionC12", 11.17793*GeV, 0.0*MeV, +6.0*eplus, - 0, +1, 0, - 0, 0, 0, - "static_nucleus", 0, +12, 0, - true, -1.0, 0 -); +PhysListEmG4v52::~PhysListEmG4v52() +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -IonC12* IonC12::IonDefinition() {return &theIon;} +void PhysListEmG4v52::ConstructProcess() +{ + // Add EM processes realised on base of prototype of model approach design -IonC12* IonC12::Ion() {return &theIon;} + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect52); + pmanager->AddDiscreteProcess(new G4ComptonScattering52); + pmanager->AddDiscreteProcess(new G4GammaConversion52); + pmanager->AddDiscreteProcess(new G4GammaConversionToMuons); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); + } + } +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmStandard.cc index 1de77d044a..90d98be4db 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmStandard.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.cc,v 1.2 2004/09/29 10:38:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsList.cc b/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsList.cc index 8d1f9a18ba..6be51e7b5f 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.3 2004/12/15 15:41:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// $Id: PhysicsList.cc,v 1.4 2005/05/09 16:10:42 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -30,6 +30,7 @@ #include "PhysicsListMessenger.hh" #include "PhysListEmStandard.hh" +#include "PhysListEmG4v52.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -93,7 +94,12 @@ void PhysicsList::AddPhysicsList(const G4String& name) emName = name; delete emPhysicsList; emPhysicsList = new PhysListEmStandard(name); - + + } else if (name == "g4v52") { + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmG4v52(name); + } else { G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << " is not defined" diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsListMessenger.cc index 3b74a3f332..135b8be692 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.2 2004/09/29 10:38:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/PhotonProcesses/src/PrimaryGeneratorAction.cc index 21b5d1e2cd..9fdee49c9e 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.2 2004/09/29 10:38:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/RunAction.cc b/examples/extended/electromagnetic/PhotonProcesses/src/RunAction.cc index e30842203b..54c73459d2 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/RunAction.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.5 2004/12/03 09:36:38 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: RunAction.cc,v 1.9 2005/06/01 13:44:06 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -35,6 +35,7 @@ #include "G4Run.hh" #include "G4RunManager.hh" #include "G4UnitsTable.hh" +#include "G4EmCalculator.hh" #include "Randomize.hh" #include @@ -96,10 +97,11 @@ void RunAction::EndOfRunAction(const G4Run* aRun) G4double density = material->GetDensity(); G4int survive = 0; - G4String particle = primary->GetParticleGun()->GetParticleDefinition() - ->GetParticleName(); + G4ParticleDefinition* particle = + primary->GetParticleGun()->GetParticleDefinition(); + G4String Particle = particle->GetParticleName(); G4double energy = primary->GetParticleGun()->GetParticleEnergy(); - G4cout << "\n The run consists of " << NbOfEvents << " "<< particle << " of " + G4cout << "\n The run consists of " << NbOfEvents << " "<< Particle << " of " << G4BestUnit(energy,"Energy") << " through " << G4BestUnit(detector->GetSize(),"Length") << " of " << material->GetName() << " (density: " @@ -137,7 +139,24 @@ void RunAction::EndOfRunAction(const G4Run* aRun) << "\t\t\tmassic: " << massicAC*g/cm2 << " cm2/g" << G4endl; - + //check cross section from G4EmCalculator + // + G4EmCalculator emCalculator; + G4double sumc = 0.0; + for (size_t i=0; i< ProcCounter->size();i++) { + G4String procName = (*ProcCounter)[i]->GetName(); + G4double massSigma = + emCalculator.ComputeCrossSectionPerVolume(energy,particle, + procName,material)/density; + sumc += massSigma; + G4cout << "\n Mass AttenuationCoef for " << procName + << " from G4EmCalculator: \t" + << massSigma*g/cm2 << " cm2/g"; + } + G4cout << "\n\n Sum of mass AttenuationCoef " + << " from G4EmCalculator: \t" + << sumc*g/cm2 << " cm2/g" << G4endl; + G4cout.setf(mode,std::ios::floatfield); G4cout.precision(prec); diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/SteppingAction.cc b/examples/extended/electromagnetic/PhotonProcesses/src/SteppingAction.cc index 49c9099ef7..c3314812b5 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/SteppingAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: SteppingAction.cc,v 1.2 2004/06/30 11:13:59 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: SteppingAction.cc,v 1.6 2005/05/10 15:24:27 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/SteppingVerbose.cc b/examples/extended/electromagnetic/PhotonProcesses/src/SteppingVerbose.cc index 7a7d70ec23..0645ff3a75 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.2 2004/09/29 10:38:05 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/VisManager.cc b/examples/extended/electromagnetic/PhotonProcesses/src/VisManager.cc deleted file mode 100755 index 27ceb68bb9..0000000000 --- a/examples/extended/electromagnetic/PhotonProcesses/src/VisManager.cc +++ /dev/null @@ -1,151 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.cc,v 1.2 2004/09/29 10:38:05 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/History b/examples/extended/electromagnetic/TestEm1/History index dccea5ec5f..5ca3973054 100644 --- a/examples/extended/electromagnetic/TestEm1/History +++ b/examples/extended/electromagnetic/TestEm1/History @@ -1,4 +1,4 @@ -$Id: History,v 1.54 2004/12/07 13:03:39 maire Exp $ +$Id: History,v 1.60 2005/06/01 10:20:12 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,26 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +01-06-05 mma (testem1-V07-00-02) +- PhysListEmG4v52 : old photon processes marked as 52 (and eplusAnnihilation) +- HistoManager : option "--noErrors" for hbook + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +18-03-05 V.Ivant (testem1-V07-00-01) +- PhysListEmStandard : use G4eBremsstrahlung from the standard, +- remove G4eBremsstrahlungCMS + +15-03-05 mma +- remove He3 from predefined particles. +- PhysListEmStandard : treat Alpha as GenericIon + +31-01-05 mma (testem1-V07-00-00) +- HistoManager : - put a protection for the creation of analysis factory; + - file extension is fileType; +- HistoMessenger : new command setFileOption + 07-14-04 mma (testem1-V06-02-07) - PhysListEmStandard : threshold for G4BremsstrahlungCMS at 10 GeV diff --git a/examples/extended/electromagnetic/TestEm1/README b/examples/extended/electromagnetic/TestEm1/README index e476ae2a6f..3e01e5d662 100644 --- a/examples/extended/electromagnetic/TestEm1/README +++ b/examples/extended/electromagnetic/TestEm1/README @@ -1,4 +1,4 @@ -$Id: README,v 1.14 2004/09/15 13:17:16 maire Exp $ +$Id: README,v 1.16 2005/02/01 11:34:00 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -8,133 +8,142 @@ $Id: README,v 1.14 2004/09/15 13:17:16 maire Exp $ TestEm1 ------- - This example has been setup to test individualy the electromagnetic - processes. + This example has been setup to test individualy the electromagnetic processes. - 1- GEOMETRY DEFINITION + 1 - GEOMETRY DEFINITION - It is a simple box which represente an 'semi infinite' homogeneous - medium. + It is a simple box which represente an 'semi infinite' homogeneous medium. - Two parameters define the geometry : - - the material of the box, - - the full size of the box. + Two parameters define the geometry : + - the material of the box, + - the full size of the box. - In addition a transverse uniform magnetic field can be applied. + In addition a transverse uniform magnetic field can be applied. - The default geometry is constructed in DetectorConstruction class, - but all of the above parameters can be changed interactively via - the commands defined in the DetectorMessenger class. + The default geometry is constructed in DetectorConstruction class, but all of + the above parameters can be changed interactively via the commands defined in + the DetectorMessenger class. - 2- PHYSICS LIST + 2 - PHYSICS LIST - The particle list is the one of novice/exampleN03. - The physics list contains the 'standard' electromagnetic processes, - and decay. + The particle list is the one of novice/exampleN03. + The physics list contains the 'standard' electromagnetic processes, and decay. - Few commands have been added to PhysicsList, in order to set the - production threshold for secondaries either in range for gamma, - e-/e+, proton or directly in energy for all charged. + Few commands have been added to PhysicsList, in order to set the production + threshold for secondaries for gamma and e-/e+. - 3- AN EVENT : THE PRIMARY GENERATOR + 3 - AN EVENT : THE PRIMARY GENERATOR - The primary kinematic consists of a single particle starting at the - left face of the box. The type of the particle and its energy are set - in the PrimaryGeneratorAction class, and can be changed via the G4 - build-in commands of ParticleGun class (see the macros provided with - this example). + The primary kinematic consists of a single particle starting at the left face + of the box. The type of the particle and its energy are set in the + PrimaryGeneratorAction class, and can be changed via the G4 build-in commands + of ParticleGun class (see the macros provided with this example). - In addition one can choose randomly the impact point of the incident - particle. The corresponding interactive command is built in - PrimaryGeneratorMessenger class. - - A RUN is a set of events. - + In addition one can choose randomly the impact point of the incident particle. + The corresponding interactive command is built in PrimaryGeneratorMessenger. - 4- VISUALIZATION + 4 - VISUALIZATION - The Visualization Manager is set in the main(). - The initialisation of the drawing is done via the commands - /vis/... in the macro vis.mac. To get visualisation: - > /control/execute vis.mac + The Visualization Manager is set in the main(). + The initialisation of the drawing is done via the commands /vis/... in the + macro vis.mac. To get visualisation: + > /control/execute vis.mac - The detector has a default view which is a longitudinal view of the - box. + The detector has a default view which is a longitudinal view of the box. - The tracks are drawn at the end of event, and erased at the end of run. - Optionaly one can choose to draw all particles, only the charged one, - or none. This command is defined in EventActionMessenger class. + The tracks are drawn at the end of event, and erased at the end of run. + Optionaly one can choose to draw all particles, only the charged, or none. + This command is defined in EventActionMessenger class. - 5- PHYSICS SURVEY + 5 - PHYSICS SURVEY - The particle's type and the physic processes which will be available - in this example are set in PhysicsList class. + The particle's type and the physic processes which will be available in this + example are set in PhysicsList class. - A set of macros defining various run conditions are provided. - The processes are actived/inactived together with differents - cuts, in order to survey the processes one by one. + A set of macros defining various run conditions are provided. The processes + are actived/inactived together with differents cuts, in order to survey the + processes one by one. - The number of produced secondaries are counted, the number of steps, - and the number of process calls responsible of the step. + The number of produced secondaries are counted, the number of steps, and the + number of process calls responsible of the step. - 6- HOW TO START ? + 6 - HOW TO START ? - - compile and link to generate an executable - % cd geant4/examples/extended/electromagnetic/TestEm1 - % gmake + - compile and link to generate an executable + % cd geant4/examples/extended/electromagnetic/TestEm1 + % gmake - - execute TestEm1 in 'batch' mode from macro files - % TestEm1 run10.mac + - execute TestEm1 in 'batch' mode from macro files + % TestEm1 run10.mac - - execute TestEm1 in 'interactive mode' with visualization - % TestEm1 - .... - Idle> type your commands - .... - Idle> exit + - execute TestEm1 in 'interactive mode' with visualization + % TestEm1 + .... + Idle> type your commands + .... + Idle> exit - 7- HISTOGRAMS + 7 - HISTOGRAMS - Testem1 produces several histo which are saved as testem1.aida by default. - - Content of these histo: - + Testem1 produces several histo which are saved as testem1.hbook by default. + Content of these histo: 1 : track length of a charged particle 2 : number of steps per track (charged particle) 3 : step length (charged particle) - Note that, by default, histograms are disabled. To activate them, uncomment - the flag G4ANALYSIS_USE in GNUmakefile. + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. + Before compilation of the example it is optimal to clean up old files: + gmake histclean + gmake - 8- Using histograms - ------------------- + 8- USING HISTOGRAMS -By default the histograms are not activated. To activate histograms -the environment variable G4ANALYSIS_USE should be defined. For instance -uncomment the flag G4ANALYSIS_USE in GNUmakefile. + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 8a - PI -To use histograms any of implementations of AIDA interfaces should -be available (see http://aida.freehep.org). + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi -A package including AIDA and extended interfaces also using Python -is PI, available from: http://cern.ch/pi . + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin -Once installed PI or PI-Lite in a specified local area $MYPY, it is -required to add the installation path to $PATH, i.e. for example, -for release 1.2.1 of PI: + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` -setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + 8b - OpenScientist + + OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist + + In OpenScientist, the AIDA implementation is the Lab package. + You have to "setup" this package before compiling (then with G4ANALYSIS_USE) + and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> setenv CMTPATH + csh> source /Lab//cmt/setup.csh + On UNIX with a sh flavoured shell : + sh> CMTPATH=;export CMTPATH + sh> . /Lab//cmt/setup.sh + On Windows : + DOS> set CMTPATH= + DOS> call /Lab//cmt/setup.bat -CERN users can use the PATH to the LCG area on AFS. - -Before compilation of the example it is optimal to clean up old -files: - -gmake histclean -gmake - -Before running the example the command should be issued: - -eval `aida-config --runtime csh` + You have to use the XML or root file formats ; producing hbook files is not + supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) + are readable by the interactive applications ; the Lab onx interactive + program or the OpenPAW program. + With OpenPAW, someone can view the histograms with : + OS> opaw + opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 + opaw> h/plot 3 diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.cc b/examples/extended/electromagnetic/TestEm1/TestEm1.cc index 8dd19afbc9..d03e03d711 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.cc +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm1.cc,v 1.11 2004/08/03 11:31:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: TestEm1.cc,v 1.12 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,7 +45,7 @@ #include "HistoManager.hh" #ifdef G4VIS_USE - #include "VisManager.hh" + #include "G4VisExecutive.hh" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -70,7 +70,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.in b/examples/extended/electromagnetic/TestEm1/TestEm1.in index 6f471eb757..ed7b847aba 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.in +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.in @@ -1,4 +1,4 @@ -# $Id: TestEm1.in,v 1.17 2004/09/20 15:35:04 maire Exp $ +# $Id: TestEm1.in,v 1.19 2005/02/01 11:34:00 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -25,13 +25,13 @@ /testem/histo/setHisto 2 100 0 100 /testem/histo/setHisto 3 100 0 10 mm # -/testem/histo/setFileType hbook #for paw -###/testem/histo/setFileType root #for root -###/testem/histo/setFileType XML #for jaida +/testem/histo/setFileType hbook +###/testem/histo/setFileType root +###/testem/histo/setFileType XML # -/testem/histo/setFileName run0.aida +/testem/histo/setFileName run0 /run/beamOn 200 # /testem/phys/setCuts 1 mm -/testem/histo/setFileName run1.aida +/testem/histo/setFileName run1 /run/beamOn 200 diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.out b/examples/extended/electromagnetic/TestEm1/TestEm1.out index 5d984f95ad..1d28ad9281 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.out +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -11,60 +11,49 @@ G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 7 ***** Table : Nb of materials = 12 ***** Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % Material: H2liquid density: 70.800 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.923 m - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Water H_2O density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm - ---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Aluminium ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm - ---> Element: Silicon Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Germanium density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm - ---> Element: Germanium Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Germanium ( ) Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % - ---> Element: Germanium Ge Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % - ---> Element: Bismuth Bi Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % + ---> Element: Germanium (Ge) Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % + ---> Element: Bismuth (Bi) Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 % Material: Iron density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm - ---> Element: Iron Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm - ---> Element: Tungsten Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Tungsten ( ) Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm - ---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Uranium density: 18.950 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.166 mm - ---> Element: Uranium Z = 92.0 N = 238.0 A = 238.03 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Uranium ( ) Z = 92.0 N = 238.0 A = 238.03 g/mole fractionMass: 100.00 % Abundance 100.00 % Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - ASCIITree (ATree) - DAWNFILE (DAWNFILE) - GAGTree (GAGTree) - G4HepRepFile (HepRepFile) - G4HepRep (HepRepXML) - RayTracer (RayTracer) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) /tracking/verbose 0 # /testem/phys/setGCut 2.20 mm @@ -92,11 +81,11 @@ PhysicsList::SetCuts:CutLength : 1 mm /testem/histo/setHisto 3 100 0 10 mm ----> SetHisto 3: step length of charged particles (mm); 100 bins from 0 mm to 10 mm # -/testem/histo/setFileType hbook #for paw -###/testem/histo/setFileType root #for root -###/testem/histo/setFileType XML #for jaida +/testem/histo/setFileType hbook +###/testem/histo/setFileType root +###/testem/histo/setFileType XML # -/testem/histo/setFileName run0.aida +/testem/histo/setFileName run0 /run/beamOn 200 G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate @@ -115,28 +104,26 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 -brCMS: tables are built for e- +brem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - Gamma high energy threshold 10000 MeV eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 -brCMS: tables are built for e+ +brem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - Gamma high energy threshold 10000 MeV annihil: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler @@ -149,15 +136,18 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 Scaling relation is used to proton dE/dx and range - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -166,9 +156,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -183,9 +173,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -233,7 +223,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 200 - User=51.9s Real=82.48s Sys=21.6s + User=57.93s Real=89.08s Sys=22.52s ======================== run summary ====================== @@ -241,33 +231,33 @@ Run Summary ============================================================ - total energy deposit: 99.780 MeV + total energy deposit: 99.795 MeV - nb tracks/event neutral: 27.420 charged: 694.045 - nb steps/event neutral: 141.190 charged: 3490.830 + nb tracks/event neutral: 27.890 charged: 696.070 + nb steps/event neutral: 144.765 charged: 3551.890 nb of process calls per event: - eIoni brCMS compt phot conv annihilTransportation - 3463.585 25.780 113.770 24.885 1.465 1.465 1.070 + eIoni brem compt phot conv annihilTransportation + 3524.220 26.220 116.875 25.390 1.445 1.445 1.060 --------------------------------------------------------- Primary particle : - CSDA Range = 10.895 cm rms = 3.313 cm - proj Range = 9.153 cm rms = 3.124 cm - proj/CSDA = 0.840 - transverse dispersion at end = 1.931 cm + CSDA Range = 10.931 cm rms = 3.737 cm + proj Range = 9.336 cm rms = 3.427 cm + proj/CSDA = 0.854 + transverse dispersion at end = 1.736 cm - mass CSDA Range from simulation = 29.417 g/cm2 + mass CSDA Range from simulation = 29.513 g/cm2 from PhysicsTable = 85.395 g/cm2 --------------------------------------------------------- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1594375017, 1867574640 + Current couple of seeds = 1645379266, 900793937 ---------------------------------------- # /testem/phys/setCuts 1 mm -/testem/histo/setFileName run1.aida +/testem/histo/setFileName run1 /run/beamOn 200 G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate @@ -286,28 +276,26 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 -brCMS: tables are built for e- +brem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - Gamma high energy threshold 10000 MeV eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 -brCMS: tables are built for e+ +brem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - Gamma high energy threshold 10000 MeV annihil: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler @@ -320,15 +308,18 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 Scaling relation is used to proton dE/dx and range - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -337,9 +328,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -354,9 +345,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -391,7 +382,7 @@ Index : 0 used in the geometry : Yes recalculation needed : No --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1594375017, 1867574640 + Current couple of seeds = 1645379266, 900793937 ---------------------------------------- Start Run processing. @@ -399,7 +390,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 200 - User=18.2s Real=31.35s Sys=10.13s + User=20.13s Real=32.71s Sys=10.86s ======================== run summary ====================== @@ -407,29 +398,29 @@ Run Summary ============================================================ - total energy deposit: 99.817 MeV + total energy deposit: 99.792 MeV - nb tracks/event neutral: 27.665 charged: 145.980 - nb steps/event neutral: 138.895 charged: 1085.740 + nb tracks/event neutral: 28.325 charged: 151.015 + nb steps/event neutral: 144.100 charged: 1127.410 nb of process calls per event: - brCMS eIoni phot comptTransportation conv annihil - 25.835 1058.460 25.245 111.230 0.975 1.445 1.445 + brem eIoni phot compt conv annihilTransportation + 26.780 1099.265 25.910 115.775 1.365 1.365 1.050 --------------------------------------------------------- Primary particle : - CSDA Range = 10.990 cm rms = 3.796 cm - proj Range = 9.484 cm rms = 3.465 cm + CSDA Range = 10.607 cm rms = 3.783 cm + proj Range = 9.158 cm rms = 3.553 cm proj/CSDA = 0.863 - transverse dispersion at end = 1.705 cm + transverse dispersion at end = 1.603 cm - mass CSDA Range from simulation = 29.674 g/cm2 + mass CSDA Range from simulation = 28.639 g/cm2 from PhysicsTable = 67.818 g/cm2 --------------------------------------------------------- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1639849691, 891174536 + Current couple of seeds = 917965385, 895770852 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh index 3c36c60557..2994cfa8c2 100644 --- a/examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.hh,v 1.1 2003/10/06 10:02:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh index 09f5de987a..b22d385bf1 100644 --- a/examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/EventAction.hh b/examples/extended/electromagnetic/TestEm1/include/EventAction.hh index 10c0913210..fb8161fc6d 100644 --- a/examples/extended/electromagnetic/TestEm1/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: EventAction.hh,v 1.2 2003/10/28 10:27:25 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh index 3cd280b721..4b3532040b 100644 --- a/examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm1/include/HistoManager.hh index 305ecaefa5..2bb6c37f28 100644 --- a/examples/extended/electromagnetic/TestEm1/include/HistoManager.hh +++ b/examples/extended/electromagnetic/TestEm1/include/HistoManager.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.hh,v 1.2 2004/09/15 13:17:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoManager.hh,v 1.4 2005/02/01 11:34:03 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -36,7 +36,6 @@ namespace AIDA { class IAnalysisFactory; class ITree; - class IHistogramFactory; class IHistogram1D; } @@ -53,8 +52,9 @@ class HistoManager HistoManager(); ~HistoManager(); - void SetFileName (const G4String& name) { fileName = name;}; - void SetFileType (const G4String& name) { fileType = name;}; + void SetFileName (const G4String& name) { fileName[0] = name;}; + void SetFileType (const G4String& name) { fileType = name;}; + void SetFileOption (const G4String& name) { fileOption = name;}; void book(); void save(); void SetHisto (G4int,G4int,G4double,G4double,const G4String& unit="none"); @@ -67,11 +67,11 @@ class HistoManager private: - G4String fileName; + G4String fileName[2]; G4String fileType; + G4String fileOption; AIDA::IAnalysisFactory* af; AIDA::ITree* tree; - AIDA::IHistogramFactory* hf; AIDA::IHistogram1D* histo[MaxHisto]; G4bool exist[MaxHisto]; G4String Label[MaxHisto]; diff --git a/examples/extended/electromagnetic/TestEm1/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/HistoMessenger.hh index 762b42ef3f..c9cfa17690 100644 --- a/examples/extended/electromagnetic/TestEm1/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/HistoMessenger.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.hh,v 1.1 2004/07/23 15:39:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.hh,v 1.2 2005/02/01 11:34:03 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,6 +58,7 @@ class HistoMessenger: public G4UImessenger G4UIdirectory* histoDir; G4UIcmdWithAString* factoryCmd; G4UIcmdWithAString* typeCmd; + G4UIcmdWithAString* optionCmd; G4UIcommand* histoCmd; G4UIcmdWithAnInteger* rmhistoCmd; diff --git a/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh index 6b2c8ff012..53be971825 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.hh,v 1.1 2003/10/06 10:02:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh index a7bf45fa70..443cb8c30b 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.hh,v 1.3 2003/10/24 12:06:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh index c61c6f76ef..df22bdc6b8 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.2 2004/06/09 15:29:43 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh index 0f0d3e9442..46a38cf9a8 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh index 81a4131391..1d2d01229b 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.2 2004/07/23 15:39:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh index 8a0027c304..210054a200 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh b/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh index bfea9f5e23..47bfa86348 100644 --- a/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh +++ b/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh @@ -22,7 +22,7 @@ // // // $Id: ProcessesCount.hh,v 1.9 2003/10/06 10:02:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/RunAction.hh b/examples/extended/electromagnetic/TestEm1/include/RunAction.hh index 065e1ae863..d899cc2275 100644 --- a/examples/extended/electromagnetic/TestEm1/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.6 2004/08/03 11:31:43 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh index d1ee34e25e..62efbdf7ec 100644 --- a/examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.3 2004/07/23 15:39:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh index e7cedd761d..5617d047d7 100644 --- a/examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.hh,v 1.1 2003/10/06 10:02:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh index fcf551b2ce..028efb9d09 100644 --- a/examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.hh,v 1.3 2004/07/23 15:39:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/range.mac b/examples/extended/electromagnetic/TestEm1/range.mac index 01d4647897..2077707b15 100644 --- a/examples/extended/electromagnetic/TestEm1/range.mac +++ b/examples/extended/electromagnetic/TestEm1/range.mac @@ -1,4 +1,4 @@ -# $Id: range.mac,v 1.3 2004/08/03 11:31:40 maire Exp $ +# $Id: range.mac,v 1.4 2005/06/01 10:20:12 maire Exp $ # # Macro file for "TestEm1.cc" # @@ -7,7 +7,7 @@ /control/verbose 2 /run/verbose 2 # -/testem/det/setMat Aluminium +/testem/det/setMat Water /testem/det/setSize 10 cm # /testem/phys/addPhysics standard diff --git a/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc index a39d781db6..60a4803f37 100644 --- a/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc @@ -22,8 +22,8 @@ // // -// $Id: DetectorConstruction.cc,v 1.4 2004/08/03 11:31:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: DetectorConstruction.cc,v 1.5 2005/06/01 10:20:12 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // @@ -104,7 +104,7 @@ void DetectorConstruction::DefineMaterials() new G4Material("Water", density= 1.000*g/cm3, ncomponents=2); H2O->AddElement(H, natoms=2); H2O->AddElement(O, natoms=1); - H2O->SetChemicalFormula("H_2O"); + ///H2O->SetChemicalFormula("H_2O"); H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV); new G4Material("liquidArgon", z=18., a= 39.95*g/mole, density= 1.390*g/cm3); diff --git a/examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc index 21d7dfeeaf..e1906d5e5a 100644 --- a/examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.2 2004/09/15 13:17:19 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/EventAction.cc b/examples/extended/electromagnetic/TestEm1/src/EventAction.cc index 41b815b20e..6a88887c33 100644 --- a/examples/extended/electromagnetic/TestEm1/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: EventAction.cc,v 1.3 2004/03/15 11:09:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc index ebb8a26846..e0fdd52b59 100644 --- a/examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.2 2004/09/15 13:17:19 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/G4eBremsstrahlungCMS.cc b/examples/extended/electromagnetic/TestEm1/src/G4eBremsstrahlungCMS.cc deleted file mode 100644 index 6d493b94d5..0000000000 --- a/examples/extended/electromagnetic/TestEm1/src/G4eBremsstrahlungCMS.cc +++ /dev/null @@ -1,96 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: G4eBremsstrahlungCMS.cc,v 1.6 2004/11/01 09:57:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// ------------------------------------------------------------------- -// -// GEANT4 Class file -// -// -// File name: G4eBremsstrahlungCMS -// -// Author: Vladimir Ivanchenko -// -// Creation date: 12.09.03 -// -// Modifications: -// -// 17-10-03 model variant (V.Ivanchenko) -// 05-04-03 Migrate to ParticleChangeForLoss (V.Ivanchenko) -// 01-11-04 Migrade to new interfaces to ParticleChange (V.Ivanchenko) -// -// ------------------------------------------------------------------- -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "G4eBremsstrahlungCMS.hh" - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4eBremsstrahlungCMS::G4eBremsstrahlungCMS(const G4String& name,G4double thresh) - : G4eBremsstrahlung(name), gammaThreshold(thresh) -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4eBremsstrahlungCMS::~G4eBremsstrahlungCMS() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eBremsstrahlungCMS::SecondariesPostStep( G4VEmModel* model, - const G4MaterialCutsCouple* couple, - const G4DynamicParticle* dp, - G4double& tcut, - G4double& kinEnergy) -{ - G4DynamicParticle* gamma = model->SampleSecondary(couple, dp, tcut, kinEnergy); - G4double gammaEnergy = gamma->GetKineticEnergy(); - kinEnergy -= gammaEnergy; - G4int nSecond = 1; - if(gammaEnergy > gammaThreshold) nSecond = 2; - fParticleChange.SetNumberOfSecondaries(nSecond); - fParticleChange.AddSecondary(gamma); - fParticleChange.ProposeLocalEnergyDeposit(0.0); - if(nSecond == 2) { - fParticleChange.ProposeTrackStatus(fStopAndKill); - G4DynamicParticle* el = new G4DynamicParticle(dp->GetDefinition(), - dp->GetMomentumDirection(), - kinEnergy); - fParticleChange.AddSecondary(el); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eBremsstrahlungCMS::PrintInfoDefinition() -{ - G4eBremsstrahlung::PrintInfoDefinition(); - G4cout << " Gamma high energy threshold " - << gammaThreshold/MeV << " MeV" << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm1/src/HistoManager.cc index 8b96f4dbe7..f8c9f4741d 100644 --- a/examples/extended/electromagnetic/TestEm1/src/HistoManager.cc +++ b/examples/extended/electromagnetic/TestEm1/src/HistoManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.cc,v 1.3 2004/09/20 15:13:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoManager.cc,v 1.6 2005/06/01 10:20:12 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,22 +31,27 @@ #include "G4UnitsTable.hh" #ifdef G4ANALYSIS_USE -#include //for auto_ptr #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... HistoManager::HistoManager() -:tree(0),hf(0),factoryOn(false) +:af(0),tree(0),factoryOn(false) { #ifdef G4ANALYSIS_USE // Creating the analysis factory af = AIDA_createAnalysisFactory(); + if(!af) { + G4cout << " HistoManager::HistoManager() :" + << " problem creating the AIDA analysis factory." + << G4endl; + } #endif - fileName = "testem1.aida"; - fileType = "hbook"; + fileName[0] = "testem1"; + fileType = "hbook"; + fileOption = "--noErrors uncompress"; // histograms for (G4int k=0; k tf(af->createTreeFactory()); + if(!af) return; // Creating a tree mapped to an hbook file. + fileName[1] = fileName[0] + "." + fileType; G4bool readOnly = false; G4bool createNew = true; - tree = tf->create(fileName, fileType, readOnly, createNew, "uncompress"); + AIDA::ITreeFactory* tf = af->createTreeFactory(); + tree = tf->create(fileName[1], fileType, readOnly, createNew, fileOption); + delete tf; + if(!tree) { + G4cout << "HistoManager::book() :" + << " problem creating the AIDA tree with " + << " storeName = " << fileName[1] + << " storeType = " << fileType + << " readOnly = " << readOnly + << " createNew = " << createNew + << " options = " << fileOption + << G4endl; + return; + } // Creating a histogram factory, whose histograms will be handled by the tree - hf = af->createHistogramFactory(*tree); + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); // create selected histograms for (G4int k=0; k Histogram Tree is opened in " << fileName << G4endl; + delete hf; + if (factoryOn) + G4cout << "\n----> Histogram Tree is opened in " << fileName[1] << G4endl; #endif } @@ -106,10 +125,10 @@ void HistoManager::save() if (factoryOn) { tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) - G4cout << "\n----> Histogram Tree is saved in " << fileName << G4endl; + G4cout << "\n----> Histogram Tree is saved in " << fileName[1] << G4endl; - delete hf; delete tree; + tree = 0; factoryOn = false; } #endif diff --git a/examples/extended/electromagnetic/TestEm1/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/HistoMessenger.cc index 68d9291436..282e81f5a0 100644 --- a/examples/extended/electromagnetic/TestEm1/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/HistoMessenger.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.2 2004/09/15 13:17:20 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.cc,v 1.3 2005/02/01 11:34:04 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -50,6 +50,9 @@ HistoMessenger::HistoMessenger(HistoManager* manager) typeCmd->SetGuidance("set histograms file type: hbook, root, XML"); typeCmd->SetCandidates("hbook root XML"); + optionCmd = new G4UIcmdWithAString("/testem/histo/setFileOption",this); + optionCmd->SetGuidance("set option for the histograms file"); + histoCmd = new G4UIcommand("/testem/histo/setHisto",this); histoCmd->SetGuidance("Set bining of the histo number ih :"); histoCmd->SetGuidance(" nbBins; valMin; valMax; unit (of vmin and vmax)"); @@ -89,6 +92,7 @@ HistoMessenger::~HistoMessenger() { delete rmhistoCmd; delete histoCmd; + delete optionCmd; delete typeCmd; delete factoryCmd; delete histoDir; @@ -103,6 +107,9 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) if (command == typeCmd) histoManager->SetFileType(newValues); + + if (command == optionCmd) + histoManager->SetFileOption(newValues); if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc index c05962213f..2d83a2132b 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmG4v52.cc,v 1.1 2003/10/06 10:02:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmG4v52.cc,v 1.2 2005/06/01 10:20:12 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,15 +31,15 @@ #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" #include "G4MultipleScattering52.hh" #include "G4eIonisation52.hh" #include "G4eBremsstrahlung52.hh" -#include "G4eplusAnnihilation.hh" +#include "G4eplusAnnihilation52.hh" #include "G4MuIonisation52.hh" #include "G4MuBremsstrahlung52.hh" @@ -73,9 +73,9 @@ void PhysListEmG4v52::ConstructProcess() if (particleName == "gamma") { // gamma - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); - pmanager->AddDiscreteProcess(new G4ComptonScattering); - pmanager->AddDiscreteProcess(new G4GammaConversion); + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect52); + pmanager->AddDiscreteProcess(new G4ComptonScattering52); + pmanager->AddDiscreteProcess(new G4GammaConversion52); } else if (particleName == "e-") { //electron @@ -88,7 +88,7 @@ void PhysListEmG4v52::ConstructProcess() pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); } else if( particleName == "mu+" || particleName == "mu-" ) { @@ -100,15 +100,15 @@ void PhysListEmG4v52::ConstructProcess() } else if( particleName == "GenericIon" ) { - pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); - pmanager->AddProcess(new G4hIonisation52, -1,2,2); + pmanager->AddProcess(new G4MultipleScattering52, -1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); } else if ((!particle->IsShortLived()) && (particle->GetPDGCharge() != 0.0) && (particle->GetParticleName() != "chargedgeantino")) { //all others charged particles except geantino - pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); - pmanager->AddProcess(new G4hIonisation52, -1,2,2); + pmanager->AddProcess(new G4MultipleScattering52, -1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); } } } diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc index a8c806d3ac..ab8453ae83 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmStandard.cc,v 1.7 2004/12/07 13:03:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: PhysListEmStandard.cc,v 1.9 2005/03/18 14:45:59 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -39,7 +39,6 @@ #include "G4eIonisation.hh" #include "G4eBremsstrahlung.hh" -#include "G4eBremsstrahlungCMS.hh" #include "G4eplusAnnihilation.hh" #include "G4MuIonisation.hh" @@ -82,15 +81,13 @@ void PhysListEmStandard::ConstructProcess() //electron pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); - ///pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); - pmanager->AddProcess(new G4eBremsstrahlungCMS("brCMS", 10*GeV),-1,3,3); + pmanager->AddProcess(new G4eBremsstrahlung("brem", 10*GeV),-1,3,3); } else if (particleName == "e+") { //positron pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); - ///pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); - pmanager->AddProcess(new G4eBremsstrahlungCMS("brCMS", 10*GeV),-1,3,3); + pmanager->AddProcess(new G4eBremsstrahlung("brem", 10*GeV),-1,3,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); } else if( particleName == "mu+" || @@ -101,7 +98,7 @@ void PhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); - } else if( particleName == "GenericIon" ) { + } else if( particleName == "alpha" || particleName == "GenericIon" ) { pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); pmanager->AddProcess(new G4ionIonisation, -1, 2,2); diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc index 039b85a7c2..9a0fb2e42e 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysicsList.cc,v 1.3 2004/06/09 15:29:45 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysicsList.cc,v 1.4 2005/03/15 17:45:04 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -107,10 +107,9 @@ PhysicsList::~PhysicsList() #include "G4AntiNeutron.hh" // Nuclei -#include "G4Alpha.hh" #include "G4Deuteron.hh" #include "G4Triton.hh" -#include "G4He3.hh" +#include "G4Alpha.hh" #include "G4GenericIon.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -160,7 +159,6 @@ void PhysicsList::ConstructParticle() // ions G4Deuteron::DeuteronDefinition(); G4Triton::TritonDefinition(); - G4He3::He3Definition(); G4Alpha::AlphaDefinition(); G4GenericIon::GenericIonDefinition(); } diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc index 014bef2a8a..4ddb7cfb9f 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.2 2004/09/15 13:17:20 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc index 8479aacc5d..7c9dc3e81d 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.cc,v 1.3 2004/08/03 11:31:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc index d1159be5ad..3ce2e5200e 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.3 2004/09/15 13:17:20 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/RunAction.cc b/examples/extended/electromagnetic/TestEm1/src/RunAction.cc index b3474d2a23..ac94450330 100644 --- a/examples/extended/electromagnetic/TestEm1/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/RunAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.cc,v 1.12 2004/12/02 14:53:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc index 0c9931f0cc..e8f2cede5e 100644 --- a/examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.6 2004/07/23 15:39:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc index db75d4a6b4..6e42294d8c 100644 --- a/examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.cc,v 1.1 2003/10/06 10:02:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc index 39401cd2cc..30bfe832c2 100644 --- a/examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.cc,v 1.8 2004/07/23 15:39:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/VisManager.cc b/examples/extended/electromagnetic/TestEm1/src/VisManager.cc deleted file mode 100755 index d1799efa98..0000000000 --- a/examples/extended/electromagnetic/TestEm1/src/VisManager.cc +++ /dev/null @@ -1,155 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: VisManager.cc,v 1.1 2003/10/06 10:02:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm10/History b/examples/extended/electromagnetic/TestEm10/History index b2e6e0a490..511f49c6dd 100644 --- a/examples/extended/electromagnetic/TestEm10/History +++ b/examples/extended/electromagnetic/TestEm10/History @@ -1,4 +1,4 @@ -$Id: History,v 1.13 2004/12/03 09:34:49 vnivanch Exp $ +$Id: History,v 1.14 2005/05/03 10:05:48 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 02 Dec 04: V.Ivant (testem10-V06-02-01) - Migration to cmath - Remove compilation warnings and hbook histograms diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.cc b/examples/extended/electromagnetic/TestEm10/TestEm10.cc index 490ce6f649..6ccbe63f98 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.cc +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm10.cc,v 1.2 2001/07/11 09:57:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: TestEm10.cc,v 1.4 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -40,10 +40,11 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "Em10VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "Em10DetectorConstruction.hh" +// #include "ALICEDetectorConstruction.hh" #include "Em10PhysicsList.hh" #include "Em10PrimaryGeneratorAction.hh" #include "Em10RunAction.hh" @@ -70,6 +71,10 @@ int main(int argc,char** argv) Em10DetectorConstruction* detector; detector = new Em10DetectorConstruction; + + // ALICEDetectorConstruction* detector; + // detector = new ALICEDetectorConstruction; + runManager->SetUserInitialization(detector); runManager->SetUserInitialization(new Em10PhysicsList(detector)); @@ -77,7 +82,7 @@ int main(int argc,char** argv) // visualization manager - G4VisManager* visManager = new Em10VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out index e3438e59a5..0de8c06398 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.out b/examples/extended/electromagnetic/TestEm10/TestEm10.out index e872026952..1f537f603d 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.out +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -15,8 +15,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -24,138 +24,138 @@ Current available graphics systems are: ***** Table : Nb of materials = 32 ***** Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm - ---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Aluminium ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: TRT_CH2 density: 935.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 47.898 cm - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % Material: Radiator density: 59.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 7.591 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % Material: CarbonFiber density: 145.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.944 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Li density: 534.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.550 m - ---> Element: Lithium Li Z = 3.0 N = 6.9 A = 6.94 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Lithium (Li) Z = 3.0 N = 6.9 A = 6.94 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Be density: 1.848 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 35.267 cm - ---> Element: Berillium Be Z = 4.0 N = 9.0 A = 9.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Berillium (Be) Z = 4.0 N = 9.0 A = 9.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Mylar density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.743 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % Material: Kapton density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.743 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % Material: CH2 density: 910.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 49.214 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % Material: He density: 0.178 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.299 km - ---> Element: He Z = 2.0 N = 4.0 A = 4.00 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: He ( ) Z = 2.0 N = 4.0 A = 4.00 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Ne density: 0.900 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 321.456 m - ---> Element: Ne Z = 10.0 N = 20.2 A = 20.18 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Ne ( ) Z = 10.0 N = 20.2 A = 20.18 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Argon density: 1.784 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 109.604 m - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Kr density: 3.700 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 30.736 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Kr ( ) Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Xenon density: 5.858 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.478 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: CH4 density: 0.717 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 648.001 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 74.83 % Abundance 20.00 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 25.17 % Abundance 80.00 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 74.83 % Abundance 20.00 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 25.17 % Abundance 80.00 % Material: C3H8 density: 2.005 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 226.382 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 81.68 % Abundance 27.27 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 18.32 % Abundance 72.73 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 81.68 % Abundance 27.27 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 18.32 % Abundance 72.73 % Material: isoC4H10 density: 2.670 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 169.446 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 82.63 % Abundance 28.57 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 17.37 % Abundance 71.43 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 82.63 % Abundance 28.57 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 17.37 % Abundance 71.43 % Material: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 183.083 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % Material: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 183.083 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % Material: N2 density: 1.251 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.846 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: O2 density: 1.429 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 239.621 m - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Air density: 1.293 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 283.293 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % Material: Xe20CO2 density: 5.082 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 17.750 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 92.20 % Abundance 56.91 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.13 % Abundance 14.36 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 5.67 % Abundance 28.73 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 92.20 % Abundance 56.91 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.13 % Abundance 14.36 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 5.67 % Abundance 28.73 % Material: Kr20CO2 density: 3.601 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 34.158 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 89.00 % Abundance 58.62 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 3.00 % Abundance 13.79 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 8.00 % Abundance 27.59 % + ---> Element: Kr ( ) Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 89.00 % Abundance 58.62 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 3.00 % Abundance 13.79 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 8.00 % Abundance 27.59 % Material: Xe55He15CH4 density: 1.963 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 47.504 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 89.50 % Abundance 18.71 % - ---> Element: He Z = 2.0 N = 4.0 A = 4.00 g/mole fractionMass: 5.00 % Abundance 34.28 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 4.12 % Abundance 9.40 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 1.38 % Abundance 37.61 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 89.50 % Abundance 18.71 % + ---> Element: He ( ) Z = 2.0 N = 4.0 A = 4.00 g/mole fractionMass: 5.00 % Abundance 34.28 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 4.12 % Abundance 9.40 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 1.38 % Abundance 37.61 % Material: Xe10CH4 density: 5.344 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 16.041 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 98.70 % Abundance 64.99 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.97 % Abundance 7.00 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.33 % Abundance 28.01 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 98.70 % Abundance 64.99 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.97 % Abundance 7.00 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.33 % Abundance 28.01 % Material: Xe5CH4 density: 5.601 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 15.217 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 99.40 % Abundance 80.20 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.45 % Abundance 3.96 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.15 % Abundance 15.84 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 99.40 % Abundance 80.20 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.45 % Abundance 3.96 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.15 % Abundance 15.84 % Material: Xe20CH4 density: 4.830 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.001 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 97.00 % Abundance 44.15 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.24 % Abundance 11.17 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.76 % Abundance 44.68 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 97.00 % Abundance 44.15 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.24 % Abundance 11.17 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.76 % Abundance 44.68 % Material: Ar7CH4 density: 1.709 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 116.343 m - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 97.10 % Abundance 72.90 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.17 % Abundance 5.42 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.73 % Abundance 21.68 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 97.10 % Abundance 72.90 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.17 % Abundance 5.42 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.73 % Abundance 21.68 % Material: Kr7CH4 density: 3.491 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 32.924 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 98.60 % Abundance 72.96 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 1.05 % Abundance 5.41 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.35 % Abundance 21.63 % + ---> Element: Kr ( ) Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 98.60 % Abundance 72.96 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 1.05 % Abundance 5.41 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.35 % Abundance 21.63 % Material: XeArCH4 density: 3.655 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 26.918 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 76.14 % Abundance 38.58 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.85 % Abundance 4.72 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.29 % Abundance 18.87 % - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 22.72 % Abundance 37.84 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 76.14 % Abundance 38.58 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.85 % Abundance 4.72 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.29 % Abundance 18.87 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 22.72 % Abundance 37.84 % Material: radiatorMat density: 24.058 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 16.527 m - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 32.77 % Abundance 18.27 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 59.19 % Abundance 43.98 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 3.98 % Abundance 35.18 % - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 3.99 % Abundance 2.54 % - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 0.07 % Abundance 0.02 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 32.77 % Abundance 18.27 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 59.19 % Abundance 43.98 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 3.98 % Abundance 35.18 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 3.99 % Abundance 2.54 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 0.07 % Abundance 0.02 % @@ -177,70 +177,72 @@ gas material = Air plate plasma energy = 24.5068 eV gas plasma energy = 0.731967 eV Regular X-ray TR radiator EM process is called -0 fGamma = 107.6 sumE = 0.1375 -1 fGamma = 123.4 sumE = 0.1837 -2 fGamma = 141.5 sumE = 0.2418 -3 fGamma = 162.3 sumE = 0.3066 -4 fGamma = 186.2 sumE = 0.383 -5 fGamma = 213.7 sumE = 0.4962 -6 fGamma = 245.2 sumE = 0.6044 -7 fGamma = 281.3 sumE = 0.7205 -8 fGamma = 322.9 sumE = 0.8636 -9 fGamma = 370.5 sumE = 0.9838 -10 fGamma = 425.3 sumE = 1.132 -11 fGamma = 488.2 sumE = 1.3 -12 fGamma = 560.3 sumE = 1.515 -13 fGamma = 643.2 sumE = 1.72 -14 fGamma = 738.3 sumE = 2.035 -15 fGamma = 847.6 sumE = 2.092 -16 fGamma = 973 sumE = 2.807 -17 fGamma = 1117 sumE = 2.533 -18 fGamma = 1282 sumE = 3.06 -19 fGamma = 1472 sumE = 3.308 -20 fGamma = 1690 sumE = 3.858 -21 fGamma = 1940 sumE = 4.186 -22 fGamma = 2228 sumE = 5.068 -23 fGamma = 2558 sumE = 4.712 -24 fGamma = 2936 sumE = 5.267 -25 fGamma = 3371 sumE = 4.662 -26 fGamma = 3871 sumE = 5.098 -27 fGamma = 4444 sumE = 5.373 -28 fGamma = 5102 sumE = 4.5 -29 fGamma = 5858 sumE = 5.411 -30 fGamma = 6726 sumE = 4.855 -31 fGamma = 7722 sumE = 5.287 -32 fGamma = 8866 sumE = 5.582 -33 fGamma = 1.018e+04 sumE = 5.473 -34 fGamma = 1.169e+04 sumE = 6.564 -35 fGamma = 1.342e+04 sumE = 7.486 -36 fGamma = 1.541e+04 sumE = 10.5 -37 fGamma = 1.769e+04 sumE = 13.53 -38 fGamma = 2.031e+04 sumE = 16.15 -39 fGamma = 2.332e+04 sumE = 18.12 -40 fGamma = 2.677e+04 sumE = 19.3 -41 fGamma = 3.074e+04 sumE = 19.99 -42 fGamma = 3.529e+04 sumE = 20.4 -43 fGamma = 4.052e+04 sumE = 20.65 -44 fGamma = 4.652e+04 sumE = 20.81 -45 fGamma = 5.342e+04 sumE = 20.92 -46 fGamma = 6.133e+04 sumE = 20.98 -47 fGamma = 7.042e+04 sumE = 21.01 -48 fGamma = 8.085e+04 sumE = 21.04 -49 fGamma = 9.283e+04 sumE = 21.05 +fAlphaPlate = 10000 ; fAlphaGas = 1000 +0 fGamma = 107.6 sumN = -NaN +1 fGamma = 123.4 sumN = -NaN +2 fGamma = 141.5 sumN = -NaN +3 fGamma = 162.3 sumN = -NaN +4 fGamma = 186.2 sumN = -NaN +5 fGamma = 213.7 sumN = -NaN +6 fGamma = 245.2 sumN = -NaN +7 fGamma = 281.3 sumN = -NaN +8 fGamma = 322.9 sumN = -NaN +9 fGamma = 370.5 sumN = -NaN +10 fGamma = 425.3 sumN = -NaN +11 fGamma = 488.2 sumN = -NaN +12 fGamma = 560.3 sumN = -NaN +13 fGamma = 643.2 sumN = -NaN +14 fGamma = 738.3 sumN = -NaN +15 fGamma = 847.6 sumN = -NaN +16 fGamma = 973 sumN = -NaN +17 fGamma = 1117 sumN = -NaN +18 fGamma = 1282 sumN = -NaN +19 fGamma = 1472 sumN = -NaN +20 fGamma = 1690 sumN = -NaN +21 fGamma = 1940 sumN = -NaN +22 fGamma = 2228 sumN = -NaN +23 fGamma = 2558 sumN = -NaN +24 fGamma = 2936 sumN = -NaN +25 fGamma = 3371 sumN = -NaN +26 fGamma = 3871 sumN = -NaN +27 fGamma = 4444 sumN = -NaN +28 fGamma = 5102 sumN = -NaN +29 fGamma = 5858 sumN = -NaN +30 fGamma = 6726 sumN = -NaN +31 fGamma = 7722 sumN = -NaN +32 fGamma = 8866 sumN = -NaN +33 fGamma = 1.018e+04 sumN = -NaN +34 fGamma = 1.169e+04 sumN = -NaN +35 fGamma = 1.342e+04 sumN = -NaN +36 fGamma = 1.541e+04 sumN = -NaN +37 fGamma = 1.769e+04 sumN = -NaN +38 fGamma = 2.031e+04 sumN = -NaN +39 fGamma = 2.332e+04 sumN = -NaN +40 fGamma = 2.677e+04 sumN = -NaN +41 fGamma = 3.074e+04 sumN = -NaN +42 fGamma = 3.529e+04 sumN = -NaN +43 fGamma = 4.052e+04 sumN = -NaN +44 fGamma = 4.652e+04 sumN = -NaN +45 fGamma = 5.342e+04 sumN = -NaN +46 fGamma = 6.133e+04 sumN = -NaN +47 fGamma = 7.042e+04 sumN = -NaN +48 fGamma = 8.085e+04 sumN = -NaN +49 fGamma = 9.283e+04 sumN = -NaN -total time for build X-ray TR energy loss tables = 110.85 s +total time for build X-ray TR energy loss tables = 235.1 s +Em10PhysicsList::SetCuts:CutLength : 1 mm phot: Total cross sections from Sandia parametrisation. -Em10PhysicsList::SetCuts:CutLength : 1 mm -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -249,8 +251,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -261,8 +263,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -270,9 +272,9 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -281,8 +283,9 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -291,9 +294,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -308,9 +311,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -370,28 +373,28 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 1000 - User=7.85s Real=9s Sys=0.64s + User=12.31s Real=12.7s Sys=0.28s ================== run summary ===================== end of Run TotNbofEvents = 1000 - mean charged track length in absorber=16.445 +- 0.181467 mm + mean charged track length in absorber=16.0495 +- 0.173853 mm - mean energy deposit in absorber=0.0118818 +- 0.000254325 MeV + mean energy deposit in absorber=0.00501075 +- 0.000160406 MeV - mean number of steps in absorber (charged) =2.831 +- 0.0695445 - mean number of steps in absorber (neutral) =3.657 +- 0.0585265 + mean number of steps in absorber (charged) =1.627 +- 0.0669766 + mean number of steps in absorber (neutral) =0.114 +- 0.0105358 - mean number of charged secondaries = 1.359 +- 0.0391423 + mean number of charged secondaries = 0.226 +- 0.0205164 - mean number of neutral secondaries = 0 +- 0 + mean number of neutral secondaries = 0.002 +- 0.0014128 - mean number of e-s =1.359 and e+s =0 + mean number of e-s =0.226 and e+s =0 -(number) transmission coeff=0.487 reflection coeff=0.008 +(number) transmission coeff=0.507 reflection coeff=0.008 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 120471254, 1942528202 + Current couple of seeds = 1654029929, 1433274685 ---------------------------------------- ========= Table of registered couples ============================== diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh b/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh index 6673c41d79..a3ca0133b7 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: Em10CalorHit.hh,v 1.3 2004/12/03 09:33:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh index 1e0cf80940..0780e903d8 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: Em10CalorimeterSD.hh,v 1.2 2001/07/11 09:57:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh index a5f5f6e73c..fee7df4c2b 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Em10DetectorConstruction.hh,v 1.5 2002/02/05 11:06:37 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh index 6475d13f60..d1187a87de 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em10DetectorMessenger.hh,v 1.3 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh index ad22a8f522..39f6783254 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em10EventAction.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh index 739426add0..527f6f6310 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em10EventActionMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh index 50bfdc0499..1c3d9729ad 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: Em10PhysicsList.hh,v 1.5 2004/08/30 15:47:34 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef Em10PhysicsList_h diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh index 3c9f661104..f8c879715c 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em10PhysicsListMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh index e23e5b890f..77aa90bd5a 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em10PrimaryGeneratorAction.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh index 1b338e67ab..51716a266e 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em10PrimaryGeneratorMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh index ce6c6bc213..01c571b3c9 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em10RunAction.hh,v 1.4 2004/12/03 09:12:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh index fdf4435415..b6bca7a2d4 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: Em10RunMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh b/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh index 7b6374d89f..5cfd6500a1 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh @@ -22,7 +22,7 @@ // // // $Id: Em10StepCut.hh,v 1.3 2004/12/03 09:33:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh index 62c5c3867a..48ecfadb79 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingAction.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh index 99d788de8f..c140b13fc4 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingMessenger.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh index 18f5d5a66f..b04b6b591d 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingVerbose.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh index d4c0b49d96..95a859e46a 100644 --- a/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: TRTDetectorConstruction.hh,v 1.2 2001/07/11 09:57:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh b/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh index 8da465e8ba..259933dc70 100644 --- a/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh +++ b/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh @@ -22,7 +22,7 @@ // // // $Id: TRTMaterials.hh,v 1.2 2001/07/11 09:57:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc b/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc index b191e70f7a..ca36d4accb 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: Em10CalorHit.cc,v 1.3 2004/12/03 09:33:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc index f2067101d3..f240df3851 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: Em10CalorimeterSD.cc,v 1.3 2004/12/03 09:33:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc index 9752f05ae1..20799513e7 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: Em10DetectorConstruction.cc,v 1.9 2003/04/17 07:20:35 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc index 79a245f6ce..a87ba8bc01 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10DetectorMessenger.cc,v 1.6 2002/12/05 00:24:24 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc index 2abd0c8ea3..f181900ca8 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em10EventAction.cc,v 1.4 2003/06/16 16:47:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc index 8ffd34c17e..dc2ba90b30 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10EventActionMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc index 75160b5d04..85f54a4552 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: Em10PhysicsList.cc,v 1.9 2004/08/30 15:47:34 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4Timer.hh" diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc index 9f919dfa1d..b45662a716 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10PhysicsListMessenger.cc,v 1.4 2003/08/27 17:31:45 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc index d12a667238..de57b258ef 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em10PrimaryGeneratorAction.cc,v 1.5 2004/12/03 09:12:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc index 4e5356e8e6..93224217de 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10PrimaryGeneratorMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc index d6ae8d9de0..585b31a0cf 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em10RunAction.cc,v 1.6 2004/12/03 09:33:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc index a2799f4843..9924ef33aa 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10RunMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc b/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc index 558b0350fe..7f8de8ba59 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc @@ -22,7 +22,7 @@ // // // $Id: Em10StepCut.cc,v 1.2 2001/07/11 09:57:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "Em10StepCut.hh" diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc index 4a84ea0ffc..8ed51a4d94 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingAction.cc,v 1.5 2004/12/03 09:12:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc index 193a98ea06..2a5640489e 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingMessenger.cc,v 1.3 2004/12/03 09:33:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc index 080ee8b4fe..af7afcb945 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingVerbose.cc,v 1.5 2003/06/16 16:47:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc b/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc deleted file mode 100755 index 653e033966..0000000000 --- a/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: Em10VisManager.cc,v 1.5 2003/11/13 15:10:36 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifdef G4VIS_USE - -#include "Em10VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em10VisManager::Em10VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em10VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm11/GNUmakefile b/examples/extended/electromagnetic/TestEm11/GNUmakefile new file mode 100644 index 0000000000..0368dca23a --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/GNUmakefile @@ -0,0 +1,38 @@ +# $Id: GNUmakefile,v 1.1 2005/06/03 15:18:43 maire Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := TestEm11 +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +.PHONY: all +all: lib bin + +#### G4ANALYSIS_USE := true + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + +include $(G4INSTALL)/config/architecture.gmk + +ifdef G4ANALYSIS_USE + # for the aida-config command see the README file + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` +endif + +include $(G4INSTALL)/config/binmake.gmk + +visclean: + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* + +histclean: + rm ${G4WORKDIR}/tmp/${G4SYSTEM}/${G4TARGET}/HistoManager.o diff --git a/examples/extended/electromagnetic/TestEm11/History b/examples/extended/electromagnetic/TestEm11/History new file mode 100644 index 0000000000..edef14dfb6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/History @@ -0,0 +1,19 @@ +$Id: History,v 1.1 2005/06/03 15:18:43 maire Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + TestEm1 History file + -------------------- +This file should be used by the G4 example coordinator to briefly +summarize all major modifications introduced in the code and keep +track of all tags. + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +03-06-05 michel maire (testem11-V07-00-00) +- created, from TestEm1 diff --git a/examples/extended/electromagnetic/TestEm11/README b/examples/extended/electromagnetic/TestEm11/README new file mode 100644 index 0000000000..6555f07f29 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/README @@ -0,0 +1,176 @@ +$Id: README,v 1.1 2005/06/03 15:18:43 maire Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + TestEm11 + ------- + + This example is devoted to the energy deposited by particles which + across a given material. + + In addition, it illustrates how to use the concept of 'process' in order + to implement a constraint on the step size of the particle trajectories. + + 1- GEOMETRY DEFINITION + + The geometry consists of a single block of an homogenous material. + Optionally, the block can be divided in thinner layers (replica) + + 4 parameters define the geometry : + - the material of the box, + - the thickness of the box (sizeX), + - the tranverse dimension of the box (sizeYZ). + - the number of layers (nbOfLayers) + + In addition a transverse uniform magnetic field can be applied. + + The default geometry is constructed in DetectorConstruction class, + but all of the above parameters can be changed interactively via + the commands defined in the DetectorMessenger class. + + 2- PHYSICS LIST + + The particle list is the one of novice/exampleN02. + The physics list contains the 'standard' electromagnetic processes, + and decay. + + Few commands have been added to PhysicsList, in order to set the + production threshold for secondaries either in range for gamma, e-/e+. + + 3- AN EVENT : THE PRIMARY GENERATOR + + The primary kinematic consists of a single particle starting at the + left face of the box. The type of the particle and its energy are set + in the PrimaryGeneratorAction class, and can be changed via the G4 + build-in commands of ParticleGun class (see the macros provided with + this example). + + In addition one can choose randomly the impact point of the incident + particle. The corresponding interactive command is built in + PrimaryGeneratorMessenger class. + + A RUN is a set of events. + + + 4- VISUALIZATION + + The Visualization Manager is set in the main(). + The initialisation of the drawing is done via the commands + /vis/... in the macro vis.mac. To get visualisation: + > /control/execute vis.mac + + The detector has a default view which is a longitudinal view of the + box. + + The tracks are drawn at the end of event, and erased at the end of run. + Optionaly one can choose to draw all particles, only the charged one, + or none. This command is defined in EventActionMessenger class. + + + 5- HOW TO START ? + + - compile and link to generate an executable + % cd geant4/examples/extended/electromagnetic/TestEm1 + % gmake + + - execute TestEm11 in 'batch' mode from macro files + % TestEm11 run01.mac + + - execute TestEm11 in 'interactive mode' with visualization + % TestEm11 + .... + Idle> type your commands + .... + Idle> exit + + 6- TRACKING + + Testem11 computes the total energy deposited along the trajectory of + the incident particle : the so-called longitudinal energy profile, + or depth dose distribution + + In order to control the accuracy of the deposition, the user can limit + 'by hand' the maximum step size of charged particles. + As an example, this limitation is implemented as a 'full' process : + see StepMax class and its Messenger. The 'StepMax process' is registered + in the Physics List. + + 7- HISTOGRAMS + + Testem11 has several predefined 1D histograms : + + 1 : longitudinal energy profile (in MeV/mm and per event) + 2 : total energy deposited in the absorber + 3 : total track length of the primary track + 4 : projected range of the primary track + 5 : step size of the primary track + 6 : total track length of charged secondary tracks + 7 : step size of charged secondary tracks + + The histograms are managed by the HistoManager class and its Messenger. + The histos can be individually activated with the command : + /testem/histo/setHisto id nbBins valMin valMax unit + where unit is the desired unit for the histo (MeV or keV, deg or mrad, etc..) + + One can control the name of the histograms file with the command: + /testem/histo/setFileName name (default testem11) + + It is possible to choose the format of the histogram file (hbook, root, XML) + with the command /testem/histo/setFileType (hbook by default) + + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. + + + 8- USING HISTOGRAMS + + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 8a - PI + + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi + + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` + + 8b - OpenScientist + + OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist + + In OpenScientist, the AIDA implementation is the Lab package. + You have to "setup" this package before compiling (then with G4ANALYSIS_USE) + and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> setenv CMTPATH + csh> source /Lab//cmt/setup.csh + On UNIX with a sh flavoured shell : + sh> CMTPATH=;export CMTPATH + sh> . /Lab//cmt/setup.sh + On Windows : + DOS> set CMTPATH= + DOS> call /Lab//cmt/setup.bat + + You have to use the XML or root file formats ; producing hbook files is not + supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) + are readable by the interactive applications ; the Lab onx interactive + program or the OpenPAW program. + + With OpenPAW, someone can view the histograms with : + OS> opaw + opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 + opaw> h/plot 3 diff --git a/examples/extended/electromagnetic/TestEm11/TestEm11.cc b/examples/extended/electromagnetic/TestEm11/TestEm11.cc new file mode 100644 index 0000000000..073cadaff8 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/TestEm11.cc @@ -0,0 +1,119 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: TestEm11.cc,v 1.1 2005/06/03 15:18:43 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" +#include "Randomize.hh" + +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" +#include "PrimaryGeneratorAction.hh" + +#include "RunAction.hh" +#include "EventAction.hh" +#include "TrackingAction.hh" +#include "SteppingAction.hh" +#include "SteppingVerbose.hh" +#include "HistoManager.hh" + +#ifdef G4VIS_USE + #include "G4VisExecutive.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int main(int argc,char** argv) { + + //choose the Random engine + HepRandom::setTheEngine(new RanecuEngine); + + //my Verbose output class + G4VSteppingVerbose::SetInstance(new SteppingVerbose); + + //Construct the default run manager + G4RunManager * runManager = new G4RunManager; + + //set mandatory initialization classes + DetectorConstruction* det; + PhysicsList* phys; + PrimaryGeneratorAction* kin; + runManager->SetUserInitialization(det = new DetectorConstruction); + runManager->SetUserInitialization(phys = new PhysicsList); + runManager->SetUserAction(kin = new PrimaryGeneratorAction(det)); + +#ifdef G4VIS_USE + //visualization manager + G4VisManager* visManager = new G4VisExecutive; + visManager->Initialize(); +#endif + + //set user action classes + HistoManager* histo = new HistoManager(); + RunAction* run; + EventAction* event; + + runManager->SetUserAction(run = new RunAction(det,phys,kin,histo)); + runManager->SetUserAction(event = new EventAction(run,histo)); + runManager->SetUserAction(new TrackingAction(det,run,histo)); + runManager->SetUserAction(new SteppingAction(det,run,event,histo)); + + //get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); + + if (argc==1) // Define UI terminal for interactive mode + { + G4UIsession* session = 0; +#ifdef G4UI_USE_TCSH + session = new G4UIterminal(new G4UItcsh); +#else + session = new G4UIterminal(); +#endif + session->SessionStart(); + delete session; + } + else // Batch mode + { + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UI->ApplyCommand(command+fileName); + } + + //job termination +#ifdef G4VIS_USE + delete visManager; +#endif + + delete histo; + delete runManager; + + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/TestEm11.in b/examples/extended/electromagnetic/TestEm11/TestEm11.in new file mode 100644 index 0000000000..a21dad1564 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/TestEm11.in @@ -0,0 +1,30 @@ +# $Id: TestEm11.in,v 1.1 2005/06/03 15:18:43 maire Exp $ +# +# no constraint on tracking step +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setMat G4_Si +/testem/det/setSizeX 1 mm +/testem/det/setSizeYZ 1 mm +# +/testem/phys/addPhysics standard # em physics +###/testem/phys/addPhysics g4v52 # em physics +# +/run/initialize +# +/gun/particle e- +/gun/energy 500 keV +# +/testem/histo/setFileType hbook +/testem/histo/setFileName testem11 +/testem/histo/setHisto 1 100 0. 1. mm #edep profile +/testem/histo/setHisto 2 102 0. 510. keV #total Edep +/testem/histo/setHisto 3 100 0. 2. mm #true track length +/testem/histo/setHisto 4 100 0. 2. mm #true step length +/testem/histo/setHisto 5 100 0. 1. mm #proj range +# +/testem/event/printModulo 10000 +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm11/geant3/README b/examples/extended/electromagnetic/TestEm11/geant3/README new file mode 100644 index 0000000000..89fa8302c6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/README @@ -0,0 +1,47 @@ + + testem11/src is the geant3 equivalent of TestEm11 + + % cd geant3 + % gmakeB to make an executable (Batch version) + % gmakeT to make an executable (inTeractive version) + + To execute: + + % cd geant3 + % $G4SYSTEM/testem1.xb (for batch) or testem1.xt (for interactive) + + The program will ask: + G3 > gives the filename of the data cards to be read: + + run01.dat (runNN.dat is the equivalent of the G4 runNN.mac) + + + testem11 can produce several histo saved if ISWIT(2)=1 + + Content of these histo: + + 1 'Edep (MeV/mm) along absorber', + 2 'total energy deposit in absorber', + 3 'true track length of the primary particle', + 4 'true step size of the primary particle', + 5 'projected range of the primary particle', + 6 'true track length of charged secondaries', + 7 'true step size of charged secondaries' + + + One can control the binning of the histograms with the data card: + *HISTO id1 nbBins valMin valMax valUnit + *HISTO id2 nbBins valMin valMax valUnit + ... etc ........... + + valMin and ValMax are given in the desired unit, whose numerical value must + be specified in valUnit. Remember that Geant3 defaults are: GeV, cm, rad. + + The name of de histograms file must be defined with the data card: + FILE fileName (character) This data card is mandatory; it must be the first, + with the format A4,A2,A25 + + It is possible to set the max allowed step size STEMAX, + via the data card: + STEPMX stepmax (in cm) + (However this value will be taken into account only if auto=0) diff --git a/examples/extended/electromagnetic/TestEm11/geant3/gmakeB b/examples/extended/electromagnetic/TestEm11/geant3/gmakeB new file mode 100755 index 0000000000..35c8d2ee08 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/gmakeB @@ -0,0 +1,30 @@ +# +# @(#) Script to build a Batch geant executable +# +set name=testem11 + +set extnam=" " +if ($G4SYSTEM == AIX-AFS) set extnam=-qextname +# +mkdir $G4SYSTEM +cd $G4SYSTEM +# +# fortran compilation +# +hepf77 $extnam -c -g -Dbatch -I/cern/pro/include -I../include ../src/*.F +# +# Link +# +echo 'linking geant3+cernlib libraries ...' +# +hepf77 $extnam -g -o $name.xb *.o \ + `cernlib geant321 pawlib graflib packlib mathlib kernlib` +# +# +chmod +x $name.xb +# +# cleanup +# +rm -f *.o +echo 'done' +exit diff --git a/examples/extended/electromagnetic/TestEm11/geant3/gmakeT b/examples/extended/electromagnetic/TestEm11/geant3/gmakeT new file mode 100755 index 0000000000..64e9b9854b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/gmakeT @@ -0,0 +1,30 @@ +# +# @(#) Script to build an inTeractive geant executable +# +set name=testem11 + +set extnam=" " +if ($G4SYSTEM == AIX-AFS) set extnam=-qextname +# +mkdir $G4SYSTEM +cd $G4SYSTEM +# +# fortran compilation +# +hepf77 $extnam -c -g -I/cern/pro/include -I../include ../src/*.F +# +# Link +# +echo 'linking geant3+cernlib libraries...' +# +hepf77 $extnam -g -o $name.xt *.o \ + `cernlib geant321 pawlib graflib packlib mathlib kernlib` +# +# +chmod +x $name.xt +# +# cleanup +# +rm -f *.o +echo 'done' +exit diff --git a/examples/extended/electromagnetic/TestEm11/geant3/include/calor.inc b/examples/extended/electromagnetic/TestEm11/geant3/include/calor.inc new file mode 100644 index 0000000000..014f3b0e35 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/include/calor.inc @@ -0,0 +1,13 @@ + + COMMON/CALOR/Imat,SizeX,SizeYZ,nLayers + COMMON/FIELD/Field +* +* Imat = GEANT material number (data card CALOR) +* SizeX = total X-size of the box (cm) (data card CALOR) +* SizeYZ = total YZ-size of the box (cm) (data card CALOR) +* nLayers = numbers of layers (data card CALOR) +* Field = magnetic field (tesla) (data card FIELD) +* + COMMON/STEPMAX/stepmax +* +* stepmax = max allowed step length (data card STEPMX) diff --git a/examples/extended/electromagnetic/TestEm11/geant3/include/celoss.inc b/examples/extended/electromagnetic/TestEm11/geant3/include/celoss.inc new file mode 100644 index 0000000000..09030ac039 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/include/celoss.inc @@ -0,0 +1,3 @@ + + COMMON/CELOSS/Eevent,Etot,Etot2, TrLen,TrLen2, XTrLen,XTrLen2, + & StepLen,StepLen2, NbStep,NbStep2, kcoef(3) diff --git a/examples/extended/electromagnetic/TestEm11/geant3/include/histo.inc b/examples/extended/electromagnetic/TestEm11/geant3/include/histo.inc new file mode 100644 index 0000000000..69d31108e2 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/include/histo.inc @@ -0,0 +1,8 @@ + CHARACTER*25 fileName + COMMON/HISTO1/fileName + + COMMON/HISTO2/idhist,nbBins,valmin,valmax,valunit + + PARAMETER (MaxHist = 7) + LOGICAL histo + COMMON/HISTO3/histo(MaxHist),histUnit(MaxHist),binWidth(MaxHist) diff --git a/examples/extended/electromagnetic/TestEm11/geant3/run01.dat b/examples/extended/electromagnetic/TestEm11/geant3/run01.dat new file mode 100644 index 0000000000..473c8f7f75 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/run01.dat @@ -0,0 +1,28 @@ +FILE run01.paw +LIST +C +C stepmax +C +CALOR 10 (silicon) 0.1 (sizeX) 0.1 (sizeYZ) 1 (nLayers) +KINE 3 (electron) 0.5e-3 (Ekine) 1. (xBeam) 0. (rBeam) +TRIG 100000 +DEBUG 10 5 10000 +LOSS 1 +HADR 0 +ABAN 0 +C +AUTO 0 +STEPMX 10.e-4 +C +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*541.0e-6 (dcute/m) +C +SWIT 0 (draw) 1 (histo) +C +*HISTO 1 100 0. 1. 1.e-1 (mm) +*HISTO 2 102 0. 510. 1.e-6 (keV) +*HISTO 3 100 0. 2. 1.e-1 (mm) +*HISTO 4 10 0. 20. 1.e-4 (um) +*HISTO 5 100 0. 1. 1.e-1 (mm) +C +END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/run02.dat b/examples/extended/electromagnetic/TestEm11/geant3/run02.dat new file mode 100644 index 0000000000..ec8307f6c7 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/run02.dat @@ -0,0 +1,25 @@ +FILE run02.paw +LIST +C +C limit the step by geometry +C +CALOR 10 (silicon) 0.1 (sizeX) 0.1 (sizeYZ) 100 (nLayers) +KINE 3 (electron) 0.5e-3 (Ekine) 1. (xBeam) 0. (rBeam) +TRIG 100000 +DEBUG 10 5 10000 +LOSS 1 +HADR 0 +ABAN 0 +C +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*541.0e-6 (dcute/m) +C +SWIT 0 (draw) 1 (histo) +C +*HISTO 1 100 0. 1. 1.e-1 (mm) +*HISTO 2 102 0. 510. 1.e-6 (keV) +*HISTO 3 100 0. 2. 1.e-1 (mm) +*HISTO 4 100 0. 200. 1.e-4 (um) +*HISTO 5 100 0. 1. 1.e-1 (mm) +C +END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/ffuser.F b/examples/extended/electromagnetic/TestEm11/geant3/src/ffuser.F new file mode 100644 index 0000000000..abe29f1568 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/ffuser.F @@ -0,0 +1,11 @@ + + SUBROUTINE FFUSER(ikey) +* +* The routine is called when a *key card is read +* + CHARACTER*4 keyw +* + call UHTOC(ikey,4,keyw,4) + if (keyw.eq.'HIST') call uhinit +* + END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/gtgama.F b/examples/extended/electromagnetic/TestEm11/geant3/src/gtgama.F new file mode 100644 index 0000000000..6feb8775a5 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/gtgama.F @@ -0,0 +1,267 @@ + + SUBROUTINE GTGAMA +C. +C. ****************************************************************** +C. * * +C. * Photon track. Computes step size and propagates particle * +C. * through step. * +C. * * +C. * ==>Called by : GTRACK * +C. * Authors R.Brun, F.Bruyant L.Urban ******** * +C. * * +C. ****************************************************************** +C. +#include "geant321/gcbank.inc" +#include "geant321/gccuts.inc" +#include "geant321/gcjloc.inc" +#include "geant321/gconsp.inc" +#include "geant321/gcphys.inc" +#include "geant321/gcstak.inc" +#include "geant321/gctmed.inc" +#include "geant321/gcmulo.inc" +#include "geant321/gctrak.inc" +#include "geant321/gcunit.inc" + + PARAMETER (EPSMAC=1.E-6) + DOUBLE PRECISION ONE,XCOEF1,XCOEF2,XCOEF3,ZERO + + PARAMETER (ONE=1,ZERO=0) + PARAMETER (EPCUT=1.022E-3) +C. +*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + IABAN = NINT(DPHYS1) +*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +C. ------------------------------------------------------------------ +* +* *** Particle below energy threshold ? Short circuit +* +* + IF (GEKIN.LE.CUTGAM) GOTO 998 +* +* *** Update local pointers if medium has changed +* + IF(IUPD.EQ.0)THEN + IUPD = 1 + JPHOT = LQ(JMA-6) + JCOMP = LQ(JMA-8) + JPAIR = LQ(JMA-10) + JPFIS = LQ(JMA-12) + JRAYL = LQ(JMA-13) + ENDIF +* +* *** Compute current step size +* + IPROC = 103 + STEP = STEMAX + GEKRT1 = 1 .-GEKRAT +* +* ** Step limitation due to pair production ? +* + IF (GETOT.GT.EPCUT) THEN + IF (IPAIR.GT.0) THEN + STEPPA = GEKRT1*Q(JPAIR+IEKBIN) +GEKRAT*Q(JPAIR+IEKBIN+1) + SPAIR = STEPPA*ZINTPA + IF (SPAIR.LT.STEP) THEN + STEP = SPAIR + IPROC = 6 + ENDIF + ENDIF + ENDIF +* +* ** Step limitation due to Compton scattering ? +* + IF (ICOMP.GT.0) THEN + STEPCO = GEKRT1*Q(JCOMP+IEKBIN) +GEKRAT*Q(JCOMP+IEKBIN+1) + SCOMP = STEPCO*ZINTCO + IF (SCOMP.LT.STEP) THEN + STEP = SCOMP + IPROC = 7 + ENDIF + ENDIF +* +* ** Step limitation due to photo-electric effect ? +* + IF (GEKIN.LT.0.4) THEN + IF (IPHOT.GT.0) THEN + STEPPH = GEKRT1*Q(JPHOT+IEKBIN) +GEKRAT*Q(JPHOT+IEKBIN+1) + SPHOT = STEPPH*ZINTPH + IF (SPHOT.LT.STEP) THEN + STEP = SPHOT + IPROC = 8 + ENDIF + ENDIF + ENDIF +* +* ** Step limitation due to photo-fission ? +* + IF (JPFIS.GT.0) THEN + STEPPF = GEKRT1*Q(JPFIS+IEKBIN) +GEKRAT*Q(JPFIS+IEKBIN+1) + SPFIS = STEPPF*ZINTPF + IF (SPFIS.LT.STEP) THEN + STEP = SPFIS + IPROC = 23 + ENDIF + ENDIF +* +* ** Step limitation due to Rayleigh scattering ? +* + IF (IRAYL.GT.0) THEN + IF (GEKIN.LT.0.01) THEN + STEPRA = GEKRT1*Q(JRAYL+IEKBIN) +GEKRAT*Q(JRAYL+IEKBIN+1) + SRAYL = STEPRA*ZINTRA + IF (SRAYL.LT.STEP) THEN + STEP = SRAYL + IPROC = 25 + ENDIF + ENDIF + ENDIF +* + IF (STEP.LT.0.) STEP = 0. +* +* ** Step limitation due to geometry ? +* + IF (STEP.GE.SAFETY) THEN + CALL GTNEXT + IF (IGNEXT.NE.0) THEN + STEP = SNEXT + PREC + INWVOL= 2 + IPROC = 0 + NMEC = 1 + LMEC(1)=1 + ENDIF +* +* Update SAFETY in stack companions, if any + IF (IQ(JSTAK+3).NE.0) THEN + DO 10 IST = IQ(JSTAK+3),IQ(JSTAK+1) + JST = JSTAK +3 +(IST-1)*NWSTAK + Q(JST+11) = SAFETY + 10 CONTINUE + IQ(JSTAK+3) = 0 + ENDIF +* + ELSE + IQ(JSTAK+3) = 0 + ENDIF +* +* *** Linear transport +* + IF (INWVOL.EQ.2) THEN + DO 20 I = 1,3 + VECTMP = VECT(I) +STEP*VECT(I+3) + IF(VECTMP.EQ.VECT(I)) THEN +* +* *** Correct for machine precision +* + IF(VECT(I+3).NE.0.) THEN + VECTMP = VECT(I)+ABS(VECT(I))*SIGN(1.,VECT(I+3))* + + EPSMAC + IF(NMEC.GT.0) THEN + IF(LMEC(NMEC).EQ.104) NMEC=NMEC-1 + ENDIF + NMEC=NMEC+1 + LMEC(NMEC)=104 +#ifdef G3DEBUG + WRITE(CHMAIL, 10000) + CALL GMAIL(0,0) + WRITE(CHMAIL, 10100) GEKIN, NUMED, STEP, SNEXT + CALL GMAIL(0,0) +10000 FORMAT(' Boundary correction in GTGAMA: ', + + ' GEKIN NUMED STEP SNEXT') +10100 FORMAT(31X,E10.3,1X,I10,1X,E10.3,1X,E10.3,1X) +#endif + ENDIF + ENDIF + VECT(I) = VECTMP + 20 CONTINUE + ELSE + DO 30 I = 1,3 + VECT(I) = VECT(I) +STEP*VECT(I+3) + 30 CONTINUE + ENDIF +* + SLENG = SLENG +STEP +* +* *** Update time of flight +* + TOFG = TOFG +STEP/CLIGHT +* +* *** Update interaction probabilities +* + IF (GETOT.GT.EPCUT) THEN + IF (IPAIR.GT.0) ZINTPA = ZINTPA -STEP/STEPPA + ENDIF + IF (ICOMP.GT.0) ZINTCO = ZINTCO -STEP/STEPCO + IF (GEKIN.LT.0.4) THEN + IF (IPHOT.GT.0) ZINTPH = ZINTPH -STEP/STEPPH + ENDIF + IF (JPFIS.GT.0) ZINTPF = ZINTPF -STEP/STEPPF + IF (IRAYL.GT.0) THEN + IF (GEKIN.LT.0.01) ZINTRA = ZINTRA -STEP/STEPRA + ENDIF +* + IF (IPROC.EQ.0) GO TO 999 + NMEC = 1 + LMEC(1) = IPROC +* +* ** Pair production ? +* + IF (IPROC.EQ.6) THEN + CALL GPAIRG +* +* ** Compton scattering ? +* + ELSE IF (IPROC.EQ.7) THEN + CALL GCOMP +* +* ** Photo-electric effect ? +* + ELSE IF (IPROC.EQ.8) THEN +* + IF ((IABAN.NE.0).AND.(GEKIN.LE.0.001)) THEN +* Calculate range of the photoelectron ( with kin. energy Ephot) + JCOEF = LQ(JMA-17) + IF(GEKRAT.LT.0.7) THEN + I1 = MAX(IEKBIN-1,1) + ELSE + I1 = MIN(IEKBIN,NEKBIN-1) + ENDIF + I1 = 3*(I1-1)+1 + XCOEF1 = Q(JCOEF+I1) + XCOEF2 = Q(JCOEF+I1+1) + XCOEF3 = Q(JCOEF+I1+2) + IF(XCOEF1.NE.0.) THEN + STOPMX = -XCOEF2+SIGN(ONE,XCOEF1)*SQRT(XCOEF2**2 - (XCOEF3- + + GEKIN/XCOEF1)) + ELSE + STOPMX = - (XCOEF3-GEKIN)/XCOEF2 + ENDIF +* +* DO NOT call GPHOT if this (overestimated) range is smaller +* than SAFETY +* + IF (STOPMX.LE.SAFETY) GOTO 998 + ENDIF + + CALL GPHOT +* +* ** Rayleigh effect ? +* + ELSE IF (IPROC.EQ.25) THEN + CALL GRAYL +* +* ** Photo-fission ? +* + ELSE IF (IPROC.EQ.23) THEN + CALL GPFIS +* + ENDIF +* + GOTO 999 +998 DESTEP = GEKIN + GEKIN = 0. + GETOT = 0. + VECT(7)= 0. + ISTOP = 2 + NMEC = 1 + LMEC(1)= 30 + 999 END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm11/geant3/src/gukine.F new file mode 100644 index 0000000000..54dbe22fe2 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/gukine.F @@ -0,0 +1,40 @@ + + SUBROUTINE GUKINE +* +* Generates Kinematics for primary track +* +* Data card Kine : Itype Ekine xbeam rbeam +* +#include "geant321/gcbank.inc" +#include "geant321/gcflag.inc" +#include "geant321/gckine.inc" +#include "calor.inc" +* + DIMENSION VERTEX(3),PLAB(3) + dimension rndm(3) +* + DATA VERTEX/3*0./ + DATA PLAB /3*0./ +* + IF (PKINE(2).NE.0.) vertex(1) = -0.5*SizeX +* +* random in YZ ? + if ((pkine(3).lt.0.).or.(pkine(3).gt.1.)) pkine(3) = 0. + rbeam = pkine(3)*0.5*SizeYZ + call GRNDM (rndm,2) +* + VERTEX(2) = (2*rndm(1)-1.)*rbeam + VERTEX(3) = (2*rndm(2)-1.)*rbeam +* + CALL GSVERT(VERTEX,0,0,0,0,NVERT) +* + JPA = LQ(JPART-IKINE) + XMASS = Q(JPA+7) + PLAB(1) = SQRT(PKINE(1)*(PKINE(1)+2*XMASS)) +* + CALL GSKINE(PLAB,IKINE,NVERT,0,0,NT) +* +* *** Kinematics debug + IF (IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0) +* + END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/guout.F b/examples/extended/electromagnetic/TestEm11/geant3/src/guout.F new file mode 100644 index 0000000000..5f3539699a --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/guout.F @@ -0,0 +1,20 @@ + + SUBROUTINE GUOUT +* +* User routine called at the end of each event +* +#include "geant321/gcflag.inc" +* +* +* *** drawing +* +#ifndef batch + IF (ISWIT(1).NE.0) THEN + CALL GDHEAD (110110,'TestEm11',0.) + CALL GDSHOW (3) + CALL GDXYZ (0) + END IF +#endif +* +* + END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/gustep.F b/examples/extended/electromagnetic/TestEm11/geant3/src/gustep.F new file mode 100644 index 0000000000..66d8e7e35b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/gustep.F @@ -0,0 +1,47 @@ + + SUBROUTINE GUSTEP +* +* User routine called at the end of each tracking step +* +#include "geant321/gcflag.inc" +#include "geant321/gckine.inc" +#include "geant321/gcking.inc" +#include "geant321/gctrak.inc" +#include "calor.inc" +#include "celoss.inc" +#include "histo.inc" +* + common/local1/ fnorm +* + data amm, aMeV /1.e-1, 1.e-3/ +* + if (ievent.eq.1) fnorm = amm/(nevent*aMeV*binWidth(1)*histUnit(1)) +* +* *** Debug event and store tracks for drawing + IF (IDEBUG.NE.0) CALL GPCXYZ + IF (IDEBUG.NE.0) CALL GPGKIN + IF ((ISWIT(1).EQ.1).AND.(CHARGE.NE.0.)) CALL GSXYZ + IF (ISWIT(1).EQ.2) CALL GSXYZ +* +* *** Something generated ? + IF(NGKINE.GT.0) CALL GSKING(0) +* + if (destep.le.0.) return +* +* *** Energy deposited per event + Eevent = Eevent + destep +* +* *** histo edep longitudinal profile + xlen = 0.5*sizeX + vect(1) + ih = 1 + if (histo(ih)) + & call hfill (ih,xlen/histUnit(ih),0.,fnorm*destep) +* +* *** histo step size + ih = 0 + if (istak.eq.0) ih = 4 + if (istak*charge.ne.0.) ih = 7 + if ((ih.gt.0).and.(histo(ih))) + & call hfill (ih,step/histUnit(ih),0.,1.) +* + END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/gutrak.F b/examples/extended/electromagnetic/TestEm11/geant3/src/gutrak.F new file mode 100644 index 0000000000..daf79f7488 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/gutrak.F @@ -0,0 +1,57 @@ + + SUBROUTINE GUTRAK +* +* User routine to control tracking of one track +* Called by GTREVE +* +#include "geant321/gckine.inc" +#include "geant321/gctrak.inc" +#include "celoss.inc" +#include "histo.inc" +* +* *** per track initialisations +* +* *** process a track + CALL GTRACK +* +* *** count track length of primary particle + if (istak.eq.0) then + TrLen = TrLen + sleng + TrLen2 = TrLen2 + sleng*sleng +* + xLen = vect(1) - vert(1) + XTrLen = XTrLen + xLen + XTrLen2 = XTrLen2 + xLen*xLen +* + NbStep = NbStep + nstep + NbStep2 = NbStep2 + nstep*nstep +* + stepsize = sleng/nstep + StepLen = StepLen + stepsize + StepLen2 = StepLen2 + stepsize*stepsize + endif +* +* *** absorbed, transmited, reflected ? + if (istak.eq.0) then + i = 1 + if (inwvol.eq.3) then + i = 2 + if (vect(4).le.0.) i = 3 + endif + kcoef(i) = kcoef(i) + 1 + endif +* +* *** histo track length + ih = 0 + if (istak.eq.0) ih = 3 + if (istak*charge.ne.0.) ih = 6 + if ((ih.gt.0).and.(histo(ih))) + & call hfill (ih,sleng/histUnit(ih),0.,1.) +* +* *** histo projected range of primary + if (istak.eq.0) then + ih = 5 + if (histo(ih)) call hfill (ih,xLen/histUnit(ih),0.,1.) + endif +* + END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/gutrev.F b/examples/extended/electromagnetic/TestEm11/geant3/src/gutrev.F new file mode 100644 index 0000000000..50eb8249a7 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/gutrev.F @@ -0,0 +1,27 @@ + + SUBROUTINE GUTREV +* +* User routine to control tracking of one event +* Called by GRUN +* +#include "celoss.inc" +#include "histo.inc" +* +* *** par event initialisations + Eevent = 0. +* +* *** process the event + CALL GTREVE +* +* *** returns if no energy deposition + if (Eevent.le.0.) return +* +* *** histo: total energy deposited + ih = 2 + if (histo(ih)) call hfill (ih,Eevent/histUnit(ih),0.,1.) +* +* *** cumul energy deposited + Etot = Etot + Eevent + Etot2 = Etot2 + Eevent*Eevent +* + END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/main.F b/examples/extended/electromagnetic/TestEm11/geant3/src/main.F new file mode 100644 index 0000000000..2ce531104e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/main.F @@ -0,0 +1,61 @@ +#ifdef batch + + PROGRAM main +* +* + PARAMETER (NGBANK=100000, NHBOOK=10000) + COMMON/GCBANK/Q(NGBANK) + COMMON/PAWC /H(NHBOOK) +* + CALL GZEBRA( NGBANK) + CALL HLIMIT(-NHBOOK) +* +* *** initialize HIGZ + CALL HPLINT(0) +* +* *** GEANT initialisation + CALL UGINIT +* +* *** Start events processing + CALL GRUN +* +* *** End of RUN + CALL UGLAST +* + STOP + END + +#else + + PROGRAM main +* +* GEANT main program. To link with the MOTIF user interface +* the routine GPAWPP(NWGEAN,NWPAW) should be called, whereas +* the routine GPAW(NWGEAN,NWPAW) gives access to the basic +* graphics version. +* + PARAMETER (NWGEAN=3000000, NWPAW=1000000) + COMMON/GCBANK/GEANT(NWGEAN) + COMMON/PAWC /PAW (NWPAW) +* +* + CALL GPAW (NWGEAN,NWPAW) +* + END +* + SUBROUTINE qnext + END +* + SUBROUTINE czopen + END +* + SUBROUTINE cztcp + END +* + SUBROUTINE czclos + END +* + SUBROUTINE czputa + END + +#endif diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/ugeom.F b/examples/extended/electromagnetic/TestEm11/geant3/src/ugeom.F new file mode 100644 index 0000000000..3682b1abb1 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/ugeom.F @@ -0,0 +1,79 @@ + + SUBROUTINE UGEOM + +* *** Define user geometry set up +* +#include "calor.inc" +* + DIMENSION PAR(3) +* + DIMENSION Aair(2),Zair(2),Wair(2) + DIMENSION AH2O(2),ZH2O(2),WH2O(2) +* +* *** Air compound parameters + DATA Aair/14.01, 16.00/ + DATA Zair/ 7. , 8. / + DATA Wair/ 0.7 , 0.3 / +* +* *** Air compound parameters + DATA AH2O/ 1.01, 16.00/ + DATA ZH2O/ 1. , 8. / + DATA WH2O/ 2. , 1. / +* +* *** Defines USER perticular materials + CALL GSMIXT( 1,'Air' , Aair ,Zair, 1.29E-3, 2 , Wair) + CALL GSMATE( 2,'H2 Liquid', 1.01, 1., 0.0708 , 865., 790., 0,0) + CALL GSMIXT( 3,'Water' , AH2O ,ZH2O, 1.0 ,-2 , WH2O) + CALL GSMATE( 4,'Liquid Ar', 39.95, 18., 1.39 , 14.0, 84.0, 0,0) + CALL GSMATE( 5,'Aluminium', 26.98, 13., 2.7 , 8.9, 37.2, 0,0) + CALL GSMATE( 6,'Iron' , 55.85, 26., 7.87 , 1.76, 17.1, 0,0) + CALL GSMATE( 7,'Tungsten' ,183.85, 74., 19.30 , 0.35, 18.5, 0,0) + CALL GSMATE( 8,'Lead' ,207.19, 82., 11.35 , 0.56, 18.5, 0,0) + CALL GSMATE( 9,'Uranium' ,238.03, 92., 18.95 , 0.32, 12. , 0,0) +* + CALL GSMATE(10,'Silicon' , 28.09, 14., 2.33 , 9.36, 45.5, 0,0) + CALL GSMATE(11,'Germanium', 72.61, 32., 5.323 , 2.30, 16.6, 0,0) +* +* *** Defines USER tracking media parameters + IFIELD = 0 + IF (Field.GT.0.) IFIELD = 3 + FIELDM = 10*Field + TMAXFD = 10.0 + STEMAX = 1000. + if (stepmax.gt.0.) STEMAX = stepmax + DEEMAX = 0.20 + EPSIL = 0.001 + STMIN = 0.010 +* + CALL GSTMED( 1,'Container',Imat, 0 ,IFIELD,FIELDM,TMAXFD, + * STEMAX,DEEMAX,EPSIL,STMIN, 0 , 0 ) +* +* +* *** Geometry + PAR(1) = SizeX /2. + PAR(2) = SizeYZ/2. + PAR(3) = SizeYZ/2. + CALL GSVOLU('aBox','BOX ',1,PAR,3,IVOL) +* + if (nLayers.gt.1) CALL GSDVN ('layr','aBox',nLayers,1) +* +* *** Close geometry banks. (obligatory system routine) + CALL GGCLOS +* +* +* *** dessin + CALL GSATT ('*','SEEN',1) +* + DO IX = 1,3 + CALL GDOPEN (IX) + SCALE = 18./SizeX + PAXIS = 0. + SAXIS = 0.1*SizeX + CALL GDRAWC ('aBox',IX,0.,10.,9.3,SCALE,SCALE) + CALL GDAXIS (PAXIS,PAXIS,PAXIS,SAXIS) + CALL GDSCAL (10. , 0.3) + CALL GDCLOS + END DO +* + + END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm11/geant3/src/uginit.F new file mode 100644 index 0000000000..59c8d43776 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/uginit.F @@ -0,0 +1,72 @@ + + SUBROUTINE UGINIT +* +* To initialise GEANT/USER program and read data cards +* +#include "calor.inc" +#include "celoss.inc" +#include "histo.inc" +* + CHARACTER*20 filnam +* +* *** Define the GEANT parameters + CALL GINIT +* +* *** default values for histo + do ih = 1,MaxHist + histo(ih) = .false. + enddo +* +* *** Calor definition + CALL FFKEY('CALOR', Imat, 4,'MIXED') + CALL FFKEY('FIELD', Field, 1,'REAL') + CALL FFKEY('STEPMX',stepmax,1,'REAL') + CALL FFKEY('HISTO', idhist, 5,'MIXED') +* +* *** read data cards + PRINT *, 'G3 > gives the filename of the data cards to be read:' + READ (*,'(A)') filnam + IF (filnam.EQ.' ') filnam = 'run01.dat' + OPEN (unit=5,file=filnam,status='unknown',form='formatted') +* +* fileName for histograms, must be 1st data card ! + fileName = 'testem11.paw' + READ(5,98)key,spaces,fileName +98 FORMAT(A4,A2,A25) +* + CALL GFFGO +* + CALL GZINIT + CALL GPART +* + CALL GDINIT +* +* *** Geometry and materials description + CALL UGEOM +* +* *** Energy loss and cross-sections initialisations + CALL GPHYSI +* + CALL GPRINT('MATE',0) + CALL GPRINT('TMED',0) + CALL GPRINT('VOLU',0) +* +* *** Define user histograms + CALL UHINIT +* +* *** per run initialisations + Etot = 0. + Etot2 = 0. + TrLen = 0. + TrLen2 = 0. + XTrLen = 0. + XTrLen2 = 0. + StepLen = 0. + StepLen2 = 0. + NbStep = 0 + NbStep2 = 0 + kcoef(1) = 0 + kcoef(2) = 0 + kcoef(3) = 0 +* + END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm11/geant3/src/uglast.F new file mode 100644 index 0000000000..8565ea9dac --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/uglast.F @@ -0,0 +1,100 @@ + + SUBROUTINE UGLAST +* +* Termination routine to print histograms and statistics +* +#include "geant321/gcflag.inc" +#include "geant321/gckine.inc" +#include "geant321/gctrak.inc" +#include "calor.inc" +#include "celoss.inc" +#include "histo.inc" +* + CHARACTER*20 parnam,matnam + CHARACTER*4 unit1,unit2 +* +* *** run summary + PRINT 749 + call GFPART (Ikine,parnam,ityp,dum,duc,dut,udu,idu) + call GFMATE (Imat ,matnam,dua,duz,dud,dur,dui,udu,idu) + CALL GEVKEV (pkine(1),Ekine,unit1) + PRINT 750, Ievent,parnam,Ekine,unit1,sizeX,matnam + PRINT 749 +* + fnorm = 1./Ievent +* +* *** total energy deposit + Etot = fnorm*Etot + Etot2 = fnorm*Etot2 + rms = sqrt(abs(Etot2-Etot**2)) +* + CALL GEVKEV (Etot,aveE,unit1) + CALL GEVKEV (rms ,rmsE ,unit2) + PRINT 752, aveE,unit1,rmsE,unit2 +* +* *** track length of primary track + TrLen = fnorm*TrLen + TrLen2 = fnorm*TrLen2 + rms = sqrt(abs(TrLen2-TrLen**2)) + PRINT 753, TrLen,rms +* +* *** compare with csda range from table + call GFTMAT(Imat,ikine,'RANG',1,pkine(1),csdaRang,dum,ixst) + PRINT 763, csdaRang +* +* *** projected range of primary track + XTrLen = fnorm*XTrLen + XTrLen2 = fnorm*XTrLen2 + rms = sqrt(abs(XTrLen2-XTrLen**2)) + PRINT 754, XTrLen,rms +* +* *** nb of steps and step size of primary track + fNbStep = fnorm*NbStep + fNbStep2 = fnorm*NbStep2 + rms1 = sqrt(abs(fNbStep2-fNbStep**2)) +* + StepLen = fnorm*StepLen + StepLen2 = fnorm*StepLen2 + rms2 = sqrt(abs(StepLen2-StepLen**2)) + PRINT 755, fNbStep,rms1,StepLen,rms2 +* +* *** transmission coefficients + absorbed = fnorm*100*kcoef(1) + transmit = fnorm*100*kcoef(2) + reflected = fnorm*100*kcoef(3) + PRINT 756, absorbed, transmit, reflected +* + PRINT 749 +* +* *** geant termination + CALL GLAST +* +* *** close HIGZ + CALL HPLEND +* +* *** Save histo + if (iswit(2).eq.1) then + write(6,99) fileName +99 format(/,15x,'histogram file --> Name: ',A25) + CALL HRPUT(0,fileName,'N') + endif +* +* *** formats + 749 FORMAT(/, 60(1H-),/) + 750 FORMAT( 1X,'The run is',I8,1X,A10,' of',F8.2,A4,' through ', + & E12.4,' cm of ',A10) + 752 FORMAT( 1X,'Total Energy deposited = ', + & F8.3, A4,' +- ', F8.3, A4) + 753 FORMAT(/,1X,'Track length of primary track = ', + & E12.5,' cm +- ', E12.5,' cm') + 763 FORMAT( 1X,'csda Range from table = ', + & E12.5,' cm') + 754 FORMAT(/,1X,'Projected range = ', + & E12.5,' cm +- ', E12.5,' cm') + 755 FORMAT(/,1X,'Nb of steps of primary track = ', + & F6.2,' +- ', F6.2, + & 3X,'Step size = ', E12.5,' cm +- ', E12.5,' cm') + 756 FORMAT(/,1X,'absorbed = ',F6.2,' %',3X,'transmit = ', F6.2,' %', + & 3X,'reflected = ', F6.2,' %') +* + END diff --git a/examples/extended/electromagnetic/TestEm11/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm11/geant3/src/uhinit.F new file mode 100644 index 0000000000..eca8624f96 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/geant3/src/uhinit.F @@ -0,0 +1,29 @@ + + SUBROUTINE UHINIT +* +* +#include "histo.inc" +* + CHARACTER*50 title(7) +* + data title / + 1 'Edep (MeV/mm) along absorber', + 2 'total energy deposit in absorber', + 3 'true track length of the primary particle', + 4 'true step size of the primary particle', + 5 'projected range of the primary particle', + 6 'true track length of charged secondaries', + 7 'true step size of charged secondaries' / +* + if (idhist.gt.MaxHist) return +* + if (histo(idhist)) call hdelet(idhist) +* + call hbook1(idhist,title(idhist),nbBins,valmin,valmax,0.) +* + histo (idhist) = .true. + binWidth(idhist) = (valmax-valmin)/nbBins + if (valunit.le.0.) valunit = 1. + histUnit(idhist) = valunit +* + END diff --git a/examples/extended/electromagnetic/TestEm11/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm11/include/DetectorConstruction.hh new file mode 100644 index 0000000000..6a0c69c757 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/include/DetectorConstruction.hh @@ -0,0 +1,91 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: DetectorConstruction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" +#include "G4ThreeVector.hh" + +class G4VPhysicalVolume; +class G4Material; +class G4UniformMagField; +class DetectorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + + DetectorConstruction(); + ~DetectorConstruction(); + + public: + + void SetSizeX (G4double); + void SetSizeYZ (G4double); + void SetMaterial (G4String); + void SetNbOfLayers (G4int nb); + void SetMagField (G4double); + + G4VPhysicalVolume* Construct(); + void UpdateGeometry(); + + public: + + G4double GetAbsorSizeX() {return absorSizeX;}; + G4double GetAbsorSizeYZ() {return absorSizeYZ;}; + G4Material* GetAbsorMaterial() {return absorMaterial;}; + G4int GetNbOfLayers() {return nbOfLayers;}; + + void PrintParameters(); + + private: + + G4double absorSizeX; + G4double absorSizeYZ; + G4Material* absorMaterial; + G4int nbOfLayers; + G4double layerThickness; + G4UniformMagField* magField; + G4VPhysicalVolume* pAbsor; + + DetectorMessenger* detectorMessenger; + + private: + + void DefineMaterials(); + G4VPhysicalVolume* ConstructVolumes(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm1/include/VisManager.hh b/examples/extended/electromagnetic/TestEm11/include/DetectorMessenger.hh similarity index 64% rename from examples/extended/electromagnetic/TestEm1/include/VisManager.hh rename to examples/extended/electromagnetic/TestEm11/include/DetectorMessenger.hh index f4c183c6be..1dd4fcd261 100644 --- a/examples/extended/electromagnetic/TestEm1/include/VisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/include/DetectorMessenger.hh @@ -20,49 +20,52 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: DetectorMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // -// $Id: VisManager.hh,v 1.1 2003/10/06 10:02:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. +#ifndef DetectorMessenger_h +#define DetectorMessenger_h 1 -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). +#include "globals.hh" +#include "G4UImessenger.hh" -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +class DetectorConstruction; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef VisManager_h -#define VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class VisManager: public G4VisManager { - -public: - - VisManager (); - -private: - - void RegisterGraphicsSystems (); - +class DetectorMessenger: public G4UImessenger +{ + public: + + DetectorMessenger(DetectorConstruction* ); + ~DetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + + DetectorConstruction* Detector; + + G4UIdirectory* testemDir; + G4UIdirectory* detDir; + G4UIcmdWithAString* MaterCmd; + G4UIcmdWithADoubleAndUnit* SizeXCmd; + G4UIcmdWithADoubleAndUnit* SizeYZCmd; + G4UIcmdWithAnInteger* NbLayersCmd; + G4UIcmdWithADoubleAndUnit* MagFieldCmd; + + G4UIcmdWithoutParameter* UpdateCmd; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif + diff --git a/examples/extended/electromagnetic/TestEm3/include/VisManager.hh b/examples/extended/electromagnetic/TestEm11/include/EventAction.hh similarity index 64% rename from examples/extended/electromagnetic/TestEm3/include/VisManager.hh rename to examples/extended/electromagnetic/TestEm11/include/EventAction.hh index afd68f1ed6..c568c86b42 100644 --- a/examples/extended/electromagnetic/TestEm3/include/VisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/include/EventAction.hh @@ -20,46 +20,51 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: VisManager.hh,v 1.2 2004/10/20 14:32:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: EventAction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. +#ifndef EventAction_h +#define EventAction_h 1 -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). +#include "G4UserEventAction.hh" +#include "globals.hh" -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +class RunAction; +class HistoManager; +class EventActionMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef VisManager_h -#define VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class VisManager: public G4VisManager { - -public: - - VisManager (); - -private: - - void RegisterGraphicsSystems (); +class EventAction : public G4UserEventAction +{ + public: + EventAction(RunAction*, HistoManager*); + ~EventAction(); + public: + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); + + void AddEdep(G4double edep) {totalEdep += edep;}; + + void SetDrawFlag(G4String val) {drawFlag = val;}; + void SetPrintModulo(G4int val) {printModulo = val;}; + + + private: + RunAction* runAct; + G4double totalEdep; + G4String drawFlag; + G4int printModulo; + HistoManager* histoManager; + EventActionMessenger* eventMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif + + diff --git a/examples/extended/electromagnetic/TestEm11/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/EventActionMessenger.hh new file mode 100644 index 0000000000..a979145708 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/include/EventActionMessenger.hh @@ -0,0 +1,59 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: EventActionMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef EventActionMessenger_h +#define EventActionMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class EventAction; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class EventActionMessenger: public G4UImessenger +{ + public: + EventActionMessenger(EventAction*); + ~EventActionMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + EventAction* eventAction; + G4UIdirectory* eventDir; + G4UIcmdWithAString* DrawCmd; + G4UIcmdWithAnInteger* PrintCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh b/examples/extended/electromagnetic/TestEm11/include/HistoManager.hh similarity index 52% rename from examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh rename to examples/extended/electromagnetic/TestEm11/include/HistoManager.hh index 66886d9076..e65d231b08 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/include/HistoManager.hh @@ -20,53 +20,73 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HistoManager.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // -// $Id: ExN04VisManager.hh,v 1.1 2002/11/19 10:30:55 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. +#ifndef HistoManager_h +#define HistoManager_h 1 -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef ExN04VisManager_h -#define ExN04VisManager_h 1 +namespace AIDA { + class IAnalysisFactory; + class ITree; + class IHistogram1D; +} -#ifdef G4VIS_USE +class HistoMessenger; -#include "G4VisManager.hh" +const G4int MaxHisto = 8; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class ExN04VisManager: public G4VisManager { +class HistoManager +{ + public: -public: + HistoManager(); + ~HistoManager(); - ExN04VisManager (); + void SetFileName (const G4String& name) { fileName[0] = name;}; + void SetFileType (const G4String& name) { fileType = name;}; + void SetFileOption (const G4String& name) { fileOption = name;}; + void book(); + void save(); + void SetHisto (G4int,G4int,G4double,G4double,const G4String& unit="none"); + void FillHisto(G4int id, G4double e, G4double weight = 1.0); + void RemoveHisto (G4int); + void Scale (G4int, G4double); -private: + G4bool HistoExist (G4int id) {return exist[id];} + G4double GetHistoUnit(G4int id) {return Unit[id];} + G4double GetBinWidth (G4int id) {return Width[id];} - void RegisterGraphicsSystems (); + private: + G4String fileName[2]; + G4String fileType; + G4String fileOption; + AIDA::IAnalysisFactory* af; + AIDA::ITree* tree; + AIDA::IHistogram1D* histo[MaxHisto]; + G4bool exist[MaxHisto]; + G4String Label[MaxHisto]; + G4String Title[MaxHisto]; + G4int Nbins[MaxHisto]; + G4double Vmin [MaxHisto]; + G4double Vmax [MaxHisto]; + G4double Unit [MaxHisto]; + G4double Width[MaxHisto]; + G4bool factoryOn; + HistoMessenger* histoMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif -#endif diff --git a/examples/extended/electromagnetic/MuonProcesses/include/VisManager.hh b/examples/extended/electromagnetic/TestEm11/include/HistoMessenger.hh similarity index 67% rename from examples/extended/electromagnetic/MuonProcesses/include/VisManager.hh rename to examples/extended/electromagnetic/TestEm11/include/HistoMessenger.hh index 56e9c7a75c..04934780be 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/VisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/include/HistoMessenger.hh @@ -20,46 +20,50 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: VisManager.hh,v 1.1 2004/06/14 10:09:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. +#ifndef HistoMessenger_h +#define HistoMessenger_h 1 -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +#include "G4UImessenger.hh" +#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef VisManager_h -#define VisManager_h 1 - -#include "G4VisManager.hh" +class HistoManager; +class G4UIdirectory; +class G4UIcommand; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class VisManager: public G4VisManager { +class HistoMessenger: public G4UImessenger +{ + public: -public: + HistoMessenger(HistoManager* ); + ~HistoMessenger(); - VisManager (); + void SetNewValue(G4UIcommand* ,G4String ); -private: + private: - void RegisterGraphicsSystems (); + HistoManager* histoManager; + + G4UIdirectory* histoDir; + G4UIcmdWithAString* factoryCmd; + G4UIcmdWithAString* typeCmd; + G4UIcommand* histoCmd; + G4UIcmdWithAnInteger* rmhistoCmd; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif + diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh b/examples/extended/electromagnetic/TestEm11/include/PhysListEmG4v52.hh similarity index 65% rename from examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh rename to examples/extended/electromagnetic/TestEm11/include/PhysListEmG4v52.hh index 65e8287eb5..03ae8ae272 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PhysListEmG4v52.hh @@ -21,41 +21,44 @@ // ******************************************************************** // // -// $Id: GammaRayTelVisManager.hh,v 1.3 2001/07/11 09:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// ------------------------------------------------------------ -// GEANT 4 class header file -// CERN Geneva Switzerland +// $Id: PhysListEmG4v52.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // -// -// ------------ GammaRayTelVisManager ------ -// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000) -// -// ************************************************************ +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +#ifndef PhysListEmG4v52_h +#define PhysListEmG4v52_h 1 -#ifndef GammaRayTelVisManager_h -#define GammaRayTelVisManager_h 1 +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" -#ifdef G4VIS_USE +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class GammaRayTelVisManager: public G4VisManager { - -public: - - GammaRayTelVisManager (); - -private: - - void RegisterGraphicsSystems (); +class PhysListEmG4v52 : public G4VPhysicsConstructor +{ + public: + PhysListEmG4v52(const G4String& name = "g4v52"); + ~PhysListEmG4v52(); + public: + // This method is dummy for physics. + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); }; -#endif +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm11/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm11/include/PhysListEmStandard.hh new file mode 100644 index 0000000000..275baa4ab1 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/include/PhysListEmStandard.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmStandard.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmStandard_h +#define PhysListEmStandard_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmStandard : public G4VPhysicsConstructor +{ + public: + PhysListEmStandard(const G4String& name = "standard"); + ~PhysListEmStandard(); + + public: + // This method is dummy for physics + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm4/include/VisManager.hh b/examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh similarity index 63% rename from examples/extended/electromagnetic/TestEm4/include/VisManager.hh rename to examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh index 89bb8b2410..1716d4e4bb 100644 --- a/examples/extended/electromagnetic/TestEm4/include/VisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh @@ -21,48 +21,59 @@ // ******************************************************************** // // -// $Id: VisManager.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysicsList.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// +// 14.10.02 (V.Ivanchenko) provide modular list on base of old PhysicsList // -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. +#ifndef PhysicsList_h +#define PhysicsList_h 1 -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). +#include "G4VModularPhysicsList.hh" +#include "globals.hh" -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +class StepMax; +class PhysicsListMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef VisManager_h -#define VisManager_h 1 +class PhysicsList: public G4VModularPhysicsList +{ + public: + PhysicsList(); + ~PhysicsList(); -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class VisManager: public G4VisManager { - -public: - - VisManager (); - -private: - - void RegisterGraphicsSystems (); + void ConstructParticle(); + + void SetCuts(); + void SetCutForGamma(G4double); + void SetCutForElectron(G4double); + void SetCutForPositron(G4double); + + void AddPhysicsList(const G4String& name); + void ConstructProcess(); + + void AddStepMax(); + StepMax* GetStepMaxProcess() {return stepMaxProcess;}; + private: + G4double cutForGamma; + G4double cutForElectron; + G4double cutForPositron; + + G4String emName; + G4VPhysicsConstructor* emPhysicsList; + StepMax* stepMaxProcess; + + PhysicsListMessenger* pMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif + diff --git a/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh new file mode 100644 index 0000000000..3e095e4f37 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh @@ -0,0 +1,67 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysicsListMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysicsListMessenger_h +#define PhysicsListMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class PhysicsList; +class G4UIdirectory; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithAString; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysicsListMessenger: public G4UImessenger +{ + public: + + PhysicsListMessenger(PhysicsList* ); + ~PhysicsListMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + + PhysicsList* pPhysicsList; + + G4UIdirectory* physDir; + G4UIcmdWithADoubleAndUnit* gammaCutCmd; + G4UIcmdWithADoubleAndUnit* electCutCmd; + G4UIcmdWithADoubleAndUnit* protoCutCmd; + G4UIcmdWithADoubleAndUnit* allCutCmd; + G4UIcmdWithAString* pListCmd; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..af14a8b5c9 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PrimaryGeneratorAction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PrimaryGeneratorAction_h +#define PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4ParticleGun.hh" +#include "globals.hh" + +class G4Event; +class DetectorConstruction; +class PrimaryGeneratorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction(); + + public: + void SetRndmBeam(G4double val) {rndmBeam = val;} + void GeneratePrimaries(G4Event*); + + G4ParticleGun* GetParticleGun() {return particleGun;} + + private: + G4ParticleGun* particleGun; + DetectorConstruction* detector; + G4double rndmBeam; + PrimaryGeneratorMessenger* gunMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..7416fc4396 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PrimaryGeneratorMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PrimaryGeneratorMessenger_h +#define PrimaryGeneratorMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class PrimaryGeneratorAction; +class G4UIdirectory; +class G4UIcmdWithADoubleAndUnit; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PrimaryGeneratorMessenger: public G4UImessenger +{ + public: + PrimaryGeneratorMessenger(PrimaryGeneratorAction*); + ~PrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + PrimaryGeneratorAction* Action; + G4UIdirectory* gunDir; + G4UIcmdWithADoubleAndUnit* RndmCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm11/include/RunAction.hh b/examples/extended/electromagnetic/TestEm11/include/RunAction.hh new file mode 100644 index 0000000000..cd011826f2 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/include/RunAction.hh @@ -0,0 +1,79 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RunAction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef RunAction_h +#define RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +class G4Run; +class DetectorConstruction; +class PhysicsList; +class PrimaryGeneratorAction; +class HistoManager; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class RunAction : public G4UserRunAction +{ + public: + RunAction(DetectorConstruction*, PhysicsList*,PrimaryGeneratorAction*, + HistoManager*); + ~RunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); + + void AddEdep (G4double e) { Edeposit += e; Edeposit2 += e*e;}; + void AddTrackLength (G4double t) { trackLen += t; trackLen2 += t*t;}; + void AddProjRange (G4double x) { projRange += x; projRange2 += x*x;}; + void AddStepSize (G4int nb, G4double s) + { nbOfSteps += nb; nbOfSteps2 += nb*nb; + stepSize += s ; stepSize2 += s*s; }; + void AddTrackStatus (G4int i) { status[i]++ ;}; + + private: + DetectorConstruction* detector; + PhysicsList* physics; + PrimaryGeneratorAction* kinematic; + HistoManager* histoManager; + + G4double Edeposit, Edeposit2; + G4double trackLen, trackLen2; + G4double projRange, projRange2; + G4int nbOfSteps, nbOfSteps2; + G4double stepSize, stepSize2; + G4int status[3]; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm2/include/VisManager.hh b/examples/extended/electromagnetic/TestEm11/include/StepMax.hh similarity index 65% rename from examples/extended/electromagnetic/TestEm2/include/VisManager.hh rename to examples/extended/electromagnetic/TestEm11/include/StepMax.hh index 032f3c38da..0badd529ae 100644 --- a/examples/extended/electromagnetic/TestEm2/include/VisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/include/StepMax.hh @@ -20,46 +20,54 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: VisManager.hh,v 1.2 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: StepMax.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. +#ifndef StepMax_h +#define StepMax_h 1 -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). +#include "globals.hh" +#include "G4VDiscreteProcess.hh" +#include "G4ParticleDefinition.hh" +#include "G4Step.hh" -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +class StepMaxMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef VisManager_h -#define VisManager_h 1 +class StepMax : public G4VDiscreteProcess +{ + public: -#include "G4VisManager.hh" + StepMax(const G4String& processName = "UserMaxStep"); + ~StepMax(); -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + G4bool IsApplicable(const G4ParticleDefinition&); -class VisManager: public G4VisManager { + void SetMaxStep(G4double); -public: + G4double GetMaxStep() {return MaxChargedStep;}; - VisManager (); + G4double PostStepGetPhysicalInteractionLength( const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition); -private: + G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); - void RegisterGraphicsSystems (); + G4double GetMeanFreePath(const G4Track&, G4double,G4ForceCondition*) + {return DBL_MAX;}; + private: + + G4double MaxChargedStep; + + StepMaxMessenger* pMess; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif + diff --git a/examples/extended/gdml/include/g4rwVisManager.hh b/examples/extended/electromagnetic/TestEm11/include/StepMaxMessenger.hh similarity index 74% rename from examples/extended/gdml/include/g4rwVisManager.hh rename to examples/extended/electromagnetic/TestEm11/include/StepMaxMessenger.hh index cdbbfd71c8..1a2f416ee4 100644 --- a/examples/extended/gdml/include/g4rwVisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/include/StepMaxMessenger.hh @@ -20,36 +20,36 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: StepMaxMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // -// $Id: g4rwVisManager.hh,v 1.2 2004/12/06 18:13:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ -// -// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef gogdmlVisManager_h -#define gogdmlVisManager_h 1 +#ifndef StepMaxMessenger_h +#define StepMaxMessenger_h 1 -#ifdef G4VIS_USE +#include "globals.hh" +#include "G4UImessenger.hh" -#include "G4VisManager.hh" +class StepMax; +class G4UIcmdWithADoubleAndUnit; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class gogdmlVisManager: public G4VisManager { - -public: - - gogdmlVisManager (); - -private: - - void RegisterGraphicsSystems (); - +class StepMaxMessenger: public G4UImessenger +{ + public: + StepMaxMessenger(StepMax*); + ~StepMaxMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + StepMax* stepMax; + G4UIcmdWithADoubleAndUnit* StepMaxCmd; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - -#endif diff --git a/examples/extended/electromagnetic/TestEm11/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm11/include/SteppingAction.hh new file mode 100644 index 0000000000..04c80143f1 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/include/SteppingAction.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: SteppingAction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef SteppingAction_h +#define SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" + +class DetectorConstruction; +class RunAction; +class EventAction; +class HistoManager; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class SteppingAction : public G4UserSteppingAction +{ + public: + SteppingAction(DetectorConstruction*,RunAction*,EventAction*, HistoManager*); + ~SteppingAction(); + + void UserSteppingAction(const G4Step*); + + private: + DetectorConstruction* detector; + RunAction* runAction; + EventAction* eventAction; + HistoManager* histoManager; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm9/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm11/include/SteppingVerbose.hh old mode 100755 new mode 100644 similarity index 82% rename from examples/extended/electromagnetic/TestEm9/include/SteppingVerbose.hh rename to examples/extended/electromagnetic/TestEm11/include/SteppingVerbose.hh index a7d2f77f43..204ae40b1e --- a/examples/extended/electromagnetic/TestEm9/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm11/include/SteppingVerbose.hh @@ -20,19 +20,12 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: SteppingVerbose.hh,v 1.2 2003/10/31 12:08:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// This class manages the verbose outputs in G4SteppingManager. -// It inherits from G4SteppingVerbose. -// It shows how to extract informations during the tracking of a particle. +// $Id: SteppingVerbose.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class SteppingVerbose; - #ifndef SteppingVerbose_h #define SteppingVerbose_h 1 @@ -40,9 +33,9 @@ class SteppingVerbose; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class SteppingVerbose : public G4SteppingVerbose -{ -public: +class SteppingVerbose : public G4SteppingVerbose { + +public: SteppingVerbose(); ~SteppingVerbose(); @@ -50,9 +43,6 @@ public: void StepInfo(); void TrackingStarted(); -private: - void PrintStep(G4bool firstStep); - }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/air_shower/include/UltraVisManager.hh b/examples/extended/electromagnetic/TestEm11/include/TrackingAction.hh similarity index 67% rename from examples/advanced/air_shower/include/UltraVisManager.hh rename to examples/extended/electromagnetic/TestEm11/include/TrackingAction.hh index 91d146cef3..980f6df1ca 100644 --- a/examples/advanced/air_shower/include/UltraVisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/include/TrackingAction.hh @@ -20,44 +20,38 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: TrackingAction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // -// -------------------------------------------------------------- -// GEANT 4 - ULTRA experiment example -// -------------------------------------------------------------- -// -// Code developed by: -// B. Tome, M.C. Espirito-Santo, A. Trindade, P. Rodrigues -// -// ********************************************** -// * UltraVisManager.hh -// ********************************************** -// -// Ultra VisManager class. Visualisation attributes are defined in the -// UltraDetectorConstruction and UltraEventAction classes. -// -#ifndef UltraVisManager_h -#define UltraVisManager_h 1 +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifdef G4VIS_USE +#ifndef TrackingAction_h +#define TrackingAction_h 1 -#include "G4VisManager.hh" +#include "G4UserTrackingAction.hh" +#include "globals.hh" + +class DetectorConstruction; +class RunAction; +class HistoManager; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class UltraVisManager: public G4VisManager { - -public: - - UltraVisManager (); - -private: - - void RegisterGraphicsSystems (); +class TrackingAction : public G4UserTrackingAction { + public: + TrackingAction(DetectorConstruction*, RunAction*, HistoManager*); + ~TrackingAction() {}; + + void PostUserTrackingAction(const G4Track*); + + private: + DetectorConstruction* detector; + RunAction* runAction; + HistoManager* histoManager; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - -#endif diff --git a/examples/extended/electromagnetic/TestEm11/run01.mac b/examples/extended/electromagnetic/TestEm11/run01.mac new file mode 100644 index 0000000000..aef4ede252 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/run01.mac @@ -0,0 +1,32 @@ +# $Id: run01.mac,v 1.2 2005/06/21 12:36:00 maire Exp $ +# +# limit the step size +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setMat G4_Si +/testem/det/setSizeX 1 mm +/testem/det/setSizeYZ 1 mm +# +/testem/phys/addPhysics standard # em physics +###/testem/phys/addPhysics g4v52 # em physics +# +/run/initialize +# +/gun/particle e- +/gun/energy 500 keV +# +/testem/histo/setFileType hbook +/testem/histo/setFileName run01 +/testem/histo/setHisto 1 100 0. 1. mm #edep profile +/testem/histo/setHisto 2 102 0. 510. keV #total Edep +/testem/histo/setHisto 3 100 0. 2. mm #true track length +/testem/histo/setHisto 4 10 0. 20. mum #true step length +/testem/histo/setHisto 5 100 0. 1. mm #proj range +# +/testem/stepMax 10 mum +# +/testem/event/printModulo 10000 +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm11/run02.mac b/examples/extended/electromagnetic/TestEm11/run02.mac new file mode 100644 index 0000000000..54652863c9 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/run02.mac @@ -0,0 +1,31 @@ +# $Id: run02.mac,v 1.1 2005/06/03 15:18:43 maire Exp $ +# +# limit the step by geometry +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setMat G4_Si +/testem/det/setSizeX 1 mm +/testem/det/setSizeYZ 1 mm +/testem/det/setNbOfLayers 100 +# +/testem/phys/addPhysics standard # em physics +###/testem/phys/addPhysics g4v52 # em physics +# +/run/initialize +# +/gun/particle e- +/gun/energy 500 keV +# +/testem/histo/setFileType hbook +/testem/histo/setFileName run02 +/testem/histo/setHisto 1 100 0. 1. mm #edep profile +/testem/histo/setHisto 2 102 0. 510. keV #total Edep +/testem/histo/setHisto 3 100 0. 2. mm #true track length +/testem/histo/setHisto 4 100 0. 200. mum #true step length +/testem/histo/setHisto 5 100 0. 1. mm #proj range +# +/testem/event/printModulo 10000 +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm11/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm11/src/DetectorConstruction.cc new file mode 100644 index 0000000000..62ee88db53 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/DetectorConstruction.cc @@ -0,0 +1,234 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: DetectorConstruction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" + +#include "G4NistManager.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" +#include "G4UniformMagField.hh" + +#include "G4GeometryManager.hh" +#include "G4PhysicalVolumeStore.hh" +#include "G4LogicalVolumeStore.hh" +#include "G4SolidStore.hh" + +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::DetectorConstruction() +{ + // default parameter values + absorSizeX = absorSizeYZ = 1*mm; + nbOfLayers = 1; + + absorMaterial = 0; + magField = 0; + pAbsor = 0; + + DefineMaterials(); + SetMaterial("G4_Si"); + + // create commands for interactive definition of the detector + detectorMessenger = new DetectorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::~DetectorConstruction() +{ delete detectorMessenger;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::Construct() +{ + return ConstructVolumes(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::DefineMaterials() +{ + G4NistManager* man = G4NistManager::Instance(); + + G4bool isotopes = false; + + man->FindOrBuildMaterial("G4_Al", isotopes); + man->FindOrBuildMaterial("G4_Si", isotopes); + man->FindOrBuildMaterial("G4_Fe", isotopes); + man->FindOrBuildMaterial("G4_Ge", isotopes); + man->FindOrBuildMaterial("G4_W" , isotopes); + man->FindOrBuildMaterial("G4_Pb", isotopes); + + man->FindOrBuildMaterial("G4_AIR" , isotopes); + man->FindOrBuildMaterial("G4_WATER", isotopes); + + G4cout << *(G4Material::GetMaterialTable()) << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() +{ + G4GeometryManager::GetInstance()->OpenGeometry(); + G4PhysicalVolumeStore::GetInstance()->Clean(); + G4LogicalVolumeStore::GetInstance()->Clean(); + G4SolidStore::GetInstance()->Clean(); + + // Absorber + // + G4Box* + sAbsor = new G4Box("Absorber", //name + absorSizeX/2,absorSizeYZ/2,absorSizeYZ/2); //size + + G4LogicalVolume* + lAbsor = new G4LogicalVolume(sAbsor, //solid + absorMaterial, //material + "Absorber"); //name + + pAbsor = new G4PVPlacement(0, //no rotation + G4ThreeVector(), //at (0,0,0) + lAbsor, //logical volume + "Absorber", //name + 0, //mother volume + false, //no boolean operation + 0); //copy number + + // Layers + // + layerThickness = absorSizeX/nbOfLayers; + + if (nbOfLayers > 1) { + + G4Box* + sLayer = new G4Box("Layer", //name + layerThickness/2,absorSizeYZ/2,absorSizeYZ/2); //dimensions + + G4LogicalVolume* + lLayer = new G4LogicalVolume(sLayer, //shape + absorMaterial, //material + "Layer"); //name + + new G4PVReplica("Layer", //name + lLayer, //logical volume + lAbsor, //mother volume + kXAxis, //axis of replica + nbOfLayers, //number of replica + layerThickness); //width of replica + } + + PrintParameters(); + + // + //always return the root volume + // + return pAbsor; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::PrintParameters() +{ + G4cout << "\n---------------------------------------------------------\n"; + G4cout << "---> The Absorber is " << G4BestUnit(absorSizeX,"Length") + << " of " << absorMaterial->GetName() << " divided in " << nbOfLayers + << " slices of " << G4BestUnit(layerThickness,"Length") << G4endl; + G4cout << "\n---------------------------------------------------------\n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetSizeX(G4double value) +{ + absorSizeX = value; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetSizeYZ(G4double value) +{ + absorSizeYZ = value; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetMaterial(G4String materialChoice) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + if (pttoMaterial) absorMaterial = pttoMaterial; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetNbOfLayers(G4int value) +{ + nbOfLayers = value; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" + +void DetectorConstruction::SetMagField(G4double fieldValue) +{ + //apply a global uniform magnetic field along Z axis + G4FieldManager* fieldMgr + = G4TransportationManager::GetTransportationManager()->GetFieldManager(); + + if (magField) delete magField; //delete the existing magn field + + if (fieldValue!=0.) // create a new one if non nul + { + magField = new G4UniformMagField(G4ThreeVector(0.,0.,fieldValue)); + fieldMgr->SetDetectorField(magField); + fieldMgr->CreateChordFinder(magField); + } + else + { + magField = 0; + fieldMgr->SetDetectorField(magField); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4RunManager.hh" + +void DetectorConstruction::UpdateGeometry() +{ +G4RunManager::GetRunManager()->DefineWorldVolume(ConstructVolumes()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/DetectorMessenger.cc new file mode 100644 index 0000000000..1e087c134d --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/DetectorMessenger.cc @@ -0,0 +1,125 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: DetectorMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorMessenger.hh" + +#include "DetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) +:Detector(Det) +{ + testemDir = new G4UIdirectory("/testem/"); + testemDir->SetGuidance(" detector control."); + + detDir = new G4UIdirectory("/testem/det/"); + detDir->SetGuidance("detector construction commands"); + + MaterCmd = new G4UIcmdWithAString("/testem/det/setMat",this); + MaterCmd->SetGuidance("Select material of the box."); + MaterCmd->SetParameterName("choice",false); + MaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + SizeXCmd = new G4UIcmdWithADoubleAndUnit("/testem/det/setSizeX",this); + SizeXCmd->SetGuidance("Set sizeX of the absorber"); + SizeXCmd->SetParameterName("SizeX",false); + SizeXCmd->SetRange("SizeX>0."); + SizeXCmd->SetUnitCategory("Length"); + SizeXCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/testem/det/setSizeYZ",this); + SizeYZCmd->SetGuidance("Set sizeYZ of the absorber"); + SizeYZCmd->SetParameterName("SizeYZ",false); + SizeYZCmd->SetRange("SizeYZ>0."); + SizeYZCmd->SetUnitCategory("Length"); + SizeYZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + NbLayersCmd = new G4UIcmdWithAnInteger("/testem/det/setNbOfLayers",this); + NbLayersCmd->SetGuidance("Set number of layers"); + NbLayersCmd->SetParameterName("NbLayers",false); + NbLayersCmd->SetRange("NbLayers>0"); + NbLayersCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/testem/det/setField",this); + MagFieldCmd->SetGuidance("Define magnetic field."); + MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); + MagFieldCmd->SetParameterName("Bz",false); + MagFieldCmd->SetUnitCategory("Magnetic flux density"); + MagFieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + UpdateCmd = new G4UIcmdWithoutParameter("/testem/det/update",this); + UpdateCmd->SetGuidance("Update calorimeter geometry."); + UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); + UpdateCmd->SetGuidance("if you changed geometrical value(s)."); + UpdateCmd->AvailableForStates(G4State_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorMessenger::~DetectorMessenger() +{ + delete MaterCmd; + delete SizeXCmd; + delete SizeYZCmd; + delete NbLayersCmd; + delete MagFieldCmd; + delete UpdateCmd; + delete detDir; + delete testemDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == MaterCmd ) + { Detector->SetMaterial(newValue);} + + if( command == SizeXCmd ) + { Detector->SetSizeX(SizeXCmd->GetNewDoubleValue(newValue));} + + if( command == SizeYZCmd ) + { Detector->SetSizeYZ(SizeYZCmd->GetNewDoubleValue(newValue));} + + if( command == NbLayersCmd ) + { Detector->SetNbOfLayers(NbLayersCmd->GetNewIntValue(newValue));} + + if( command == MagFieldCmd ) + { Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} + + if( command == UpdateCmd ) + { Detector->UpdateGeometry();} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/IonC12.cc b/examples/extended/electromagnetic/TestEm11/src/EventAction.cc old mode 100755 new mode 100644 similarity index 54% rename from examples/extended/electromagnetic/TestEm8/src/IonC12.cc rename to examples/extended/electromagnetic/TestEm11/src/EventAction.cc index 0ccdb06576..7b52fda99a --- a/examples/extended/electromagnetic/TestEm8/src/IonC12.cc +++ b/examples/extended/electromagnetic/TestEm11/src/EventAction.cc @@ -20,60 +20,80 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: IonC12.cc,v 1.1 2003/10/27 15:31:04 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: EventAction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#include "EventAction.hh" -#include "IonC12.hh" +#include "RunAction.hh" +#include "EventActionMessenger.hh" +#include "HistoManager.hh" + +#include "G4Event.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -IonC12::IonC12( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ } +EventAction::EventAction(RunAction* run, HistoManager* histo) +:runAct(run), drawFlag("none"), printModulo(10000), histoManager(histo) +{ + eventMessenger = new EventActionMessenger(this); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -IonC12::~IonC12() { } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// -// static member definition -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -IonC12 IonC12::theIon( - "ionC12", 11.17793*GeV, 0.0*MeV, +6.0*eplus, - 0, +1, 0, - 0, 0, 0, - "static_nucleus", 0, +12, 0, - true, -1.0, 0 -); +EventAction::~EventAction() +{ + delete eventMessenger; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -IonC12* IonC12::IonDefinition() {return &theIon;} +void EventAction::BeginOfEventAction(const G4Event* evt) +{ + G4int evtNb = evt->GetEventID(); -IonC12* IonC12::Ion() {return &theIon;} + //printing survey + if (evtNb%printModulo == 0) + G4cout << "\n---> Begin of Event: " << evtNb << G4endl; + + //energy deposited per event + totalEdep = 0.; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventAction::EndOfEventAction(const G4Event* evt) +{ + //plot energy deposited per event + // + if (totalEdep > 0.) { + runAct->AddEdep(totalEdep); + histoManager->FillHisto(2,totalEdep); + } + + //trajectories + // + if (G4VVisManager::GetConcreteInstance()) + { + G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); + for(G4int i=0; iGetTrajectoryContainer()))[i]); + if (drawFlag == "all") trj->DrawTrajectory(1000); + else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) + trj->DrawTrajectory(1000); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/electromagnetic/TestEm11/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/EventActionMessenger.cc new file mode 100644 index 0000000000..cc472b6be4 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/EventActionMessenger.cc @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: EventActionMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "EventActionMessenger.hh" + +#include "EventAction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventActionMessenger::EventActionMessenger(EventAction* EvAct) +:eventAction(EvAct) +{ + eventDir = new G4UIdirectory("/testem/event/"); + eventDir->SetGuidance("event control"); + + DrawCmd = new G4UIcmdWithAString("/testem/event/drawTracks",this); + DrawCmd->SetGuidance("Draw the tracks in the event"); + DrawCmd->SetGuidance(" Choice : none,charged, all"); + DrawCmd->SetParameterName("choice",true); + DrawCmd->SetDefaultValue("all"); + DrawCmd->SetCandidates("none charged all"); + DrawCmd->AvailableForStates(G4State_Idle); + + PrintCmd = new G4UIcmdWithAnInteger("/testem/event/printModulo",this); + PrintCmd->SetGuidance("Print events modulo n"); + PrintCmd->SetParameterName("EventNb",false); + PrintCmd->SetRange("EventNb>0"); + PrintCmd->AvailableForStates(G4State_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventActionMessenger::~EventActionMessenger() +{ + delete DrawCmd; + delete PrintCmd; + delete eventDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventActionMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if(command == DrawCmd) + {eventAction->SetDrawFlag(newValue);} + + if(command == PrintCmd) + {eventAction->SetPrintModulo(PrintCmd->GetNewIntValue(newValue));} + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc new file mode 100644 index 0000000000..e551b7da60 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc @@ -0,0 +1,227 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: HistoManager.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "HistoManager.hh" +#include "HistoMessenger.hh" +#include "G4UnitsTable.hh" + +#ifdef G4ANALYSIS_USE +#include "AIDA/AIDA.h" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoManager::HistoManager() +:af(0),tree(0),factoryOn(false) +{ +#ifdef G4ANALYSIS_USE + // Creating the analysis factory + af = AIDA_createAnalysisFactory(); + if(!af) { + G4cout << " HistoManager::HistoManager() :" + << " problem creating the AIDA analysis factory." + << G4endl; + } +#endif + + fileName[0] = "testem11"; + fileType = "hbook"; + fileOption = "--noErrors uncompress"; + // histograms + for (G4int k=0; kcreateTreeFactory(); + tree = tf->create(fileName[1], fileType, readOnly, createNew, fileOption); + delete tf; + if(!tree) { + G4cout << "HistoManager::book() :" + << " problem creating the AIDA tree with " + << " storeName = " << fileName[1] + << " storeType = " << fileType + << " readOnly = " << readOnly + << " createNew = " << createNew + << " options = " << fileOption + << G4endl; + return; + } + + // Creating a histogram factory, whose histograms will be handled by the tree + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); + + // create selected histograms + for (G4int k=0; kcreateHistogram1D( Label[k], Title[k], + Nbins[k], Vmin[k], Vmax[k]); + factoryOn = true; + } + } + delete hf; + if (factoryOn) + G4cout << "\n----> Histogram Tree is opened in " << fileName[1] << G4endl; +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::save() +{ +#ifdef G4ANALYSIS_USE + if (factoryOn) { + tree->commit(); // Writing the histograms to the file + tree->close(); // and closing the tree (and the file) + G4cout << "\n----> Histogram Tree is saved in " << fileName[1] << G4endl; + + delete tree; + tree = 0; + factoryOn = false; + } +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::FillHisto(G4int ih, G4double e, G4double weight) +{ + if (ih > MaxHisto) { + G4cout << "---> warning from HistoManager::FillHisto() : histo " << ih + << "does not exist; e= " << e << " w= " << weight << G4endl; + return; + } +#ifdef G4ANALYSIS_USE + if(exist[ih]) histo[ih]->fill(e/Unit[ih], weight); +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::SetHisto(G4int ih, + G4int nbins, G4double valmin, G4double valmax, const G4String& unit) +{ + if (ih > MaxHisto) { + G4cout << "---> warning from HistoManager::SetHisto() : histo " << ih + << "does not exist" << G4endl; + return; + } + + const G4String id[] = { "0", "1", "2", "3", "4", "5", "6", "7" }; + const G4String title[] = + { "dummy", //0 + "Edep (MeV/mm) along absorber", //1 + "total Energy deposited in absorber", //2 + "true track length of the primary particle", //3 + "true step size of the primary particle", //4 + "projected range of the primary particle", //5 + "true track length of charged secondaries", //6 + "true step size of charged secondaries" //7 + }; + + + G4String titl = title[ih]; + G4double vmin = valmin, vmax = valmax; + Unit[ih] = 1.; + + if (unit != "none") { + titl = title[ih] + " (" + unit + ")"; + Unit[ih] = G4UnitDefinition::GetValueOf(unit); + vmin = valmin/Unit[ih]; vmax = valmax/Unit[ih]; + } + + exist[ih] = true; + Label[ih] = id[ih]; + Title[ih] = titl; + Nbins[ih] = nbins; + Vmin[ih] = vmin; + Vmax[ih] = vmax; + Width[ih] = (valmax-valmin)/nbins; + + G4cout << "----> SetHisto " << ih << ": " << titl << "; " + << nbins << " bins from " + << vmin << " " << unit << " to " << vmax << " " << unit << G4endl; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::RemoveHisto(G4int ih) +{ + if (ih > MaxHisto) { + G4cout << "---> warning from HistoManager::RemoveHisto() : histo " << ih + << "does not exist" << G4endl; + return; + } + + histo[ih] = 0; exist[ih] = false; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::Scale(G4int ih, G4double fac) +{ + if (ih > MaxHisto) { + G4cout << "---> warning from HistoManager::RemoveHisto() : histo " << ih + << "does not exist" << G4endl; + return; + } +#ifdef G4ANALYSIS_USE + if(exist[ih]) histo[ih]->scale(fac); +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm11/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/HistoMessenger.cc new file mode 100644 index 0000000000..b21595401f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/HistoMessenger.cc @@ -0,0 +1,123 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: HistoMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "HistoMessenger.hh" + +#include "HistoManager.hh" +#include "G4UIdirectory.hh" +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoMessenger::HistoMessenger(HistoManager* manager) +:histoManager (manager) +{ + histoDir = new G4UIdirectory("/testem/histo/"); + histoDir->SetGuidance("histograms control"); + + factoryCmd = new G4UIcmdWithAString("/testem/histo/setFileName",this); + factoryCmd->SetGuidance("set name for the histograms file"); + + typeCmd = new G4UIcmdWithAString("/testem/histo/setFileType",this); + typeCmd->SetGuidance("set histograms file type: hbook, root, XML"); + typeCmd->SetCandidates("hbook root XML"); + + histoCmd = new G4UIcommand("/testem/histo/setHisto",this); + histoCmd->SetGuidance("Set bining of the histo number ih :"); + histoCmd->SetGuidance(" nbBins; valMin; valMax; unit (of vmin and vmax)"); + // + G4UIparameter* ih = new G4UIparameter("ih",'i',false); + ih->SetGuidance("histo number : from 1 to MaxHisto"); + ih->SetParameterRange("ih>0"); + histoCmd->SetParameter(ih); + // + G4UIparameter* nbBins = new G4UIparameter("nbBins",'i',false); + nbBins->SetGuidance("number of bins"); + nbBins->SetParameterRange("nbBins>0"); + histoCmd->SetParameter(nbBins); + // + G4UIparameter* valMin = new G4UIparameter("valMin",'d',false); + valMin->SetGuidance("valMin, expressed in unit"); + histoCmd->SetParameter(valMin); + // + G4UIparameter* valMax = new G4UIparameter("valMax",'d',false); + valMax->SetGuidance("valMax, expressed in unit"); + histoCmd->SetParameter(valMax); + // + G4UIparameter* unit = new G4UIparameter("unit",'s',true); + unit->SetGuidance("if omitted, vmin and vmax are assumed dimensionless"); + unit->SetDefaultValue("none"); + histoCmd->SetParameter(unit); + + rmhistoCmd = new G4UIcmdWithAnInteger("/testem/histo/removeHisto",this); + rmhistoCmd->SetGuidance("desactivate histo #id"); + rmhistoCmd->SetParameterName("id",false); + rmhistoCmd->SetRange("id>0"); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoMessenger::~HistoMessenger() +{ + delete rmhistoCmd; + delete histoCmd; + delete typeCmd; + delete factoryCmd; + delete histoDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) +{ + if (command == factoryCmd) + histoManager->SetFileName(newValues); + + if (command == typeCmd) + histoManager->SetFileType(newValues); + + if (command == histoCmd) + { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; + const char* t = newValues; + std::istrstream is((char*)t); + is >> ih >> nbBins >> vmin >> vmax >> unts; + G4String unit = unts; + G4double vUnit = 1. ; + if (unit != "none") vUnit = G4UIcommand::ValueOf(unit); + histoManager->SetHisto (ih,nbBins,vmin*vUnit,vmax*vUnit,unit); + } + + if (command == rmhistoCmd) + histoManager->RemoveHisto(rmhistoCmd->GetNewIntValue(newValues)); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v52.cc new file mode 100644 index 0000000000..a6718e46d8 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v52.cc @@ -0,0 +1,117 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v52.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v52.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" + +#include "G4MultipleScattering52.hh" + +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" +#include "G4eplusAnnihilation52.hh" + +#include "G4MuIonisation52.hh" +#include "G4MuBremsstrahlung52.hh" +#include "G4MuPairProduction52.hh" + +#include "G4hIonisation52.hh" + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v52::PhysListEmG4v52(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v52::~PhysListEmG4v52() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmG4v52::ConstructProcess() +{ + // Add EM processes realised on base of prototype of model approach design + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect52); + pmanager->AddDiscreteProcess(new G4ComptonScattering52); + pmanager->AddDiscreteProcess(new G4GammaConversion52); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering52,-1, 1,1); + pmanager->AddProcess(new G4MuIonisation52, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung52, -1,-1,3); + pmanager->AddProcess(new G4MuPairProduction52, -1,-1,4); + + } else if( particleName == "GenericIon" ) { + + pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc new file mode 100644 index 0000000000..f723dd4988 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc @@ -0,0 +1,116 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmStandard.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmStandard.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmStandard::PhysListEmStandard(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmStandard::~PhysListEmStandard() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmStandard::ConstructProcess() +{ + // Add standard EM Processes + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + + } else if( particleName == "GenericIon" ) { + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4ionIonisation, -1, 2,2); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering,-1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc new file mode 100644 index 0000000000..90f703e843 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc @@ -0,0 +1,304 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysicsList.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsList.hh" +#include "PhysicsListMessenger.hh" + +#include "PhysListEmStandard.hh" +#include "PhysListEmG4v52.hh" + +#include "G4LossTableManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::PhysicsList() : G4VModularPhysicsList() +{ + G4LossTableManager::Instance(); + defaultCutValue = 1.*mm; + cutForGamma = defaultCutValue; + cutForElectron = defaultCutValue; + cutForPositron = defaultCutValue; + + stepMaxProcess = 0; + + pMessenger = new PhysicsListMessenger(this); + + SetVerboseLevel(1); + + // EM physics + emPhysicsList = new PhysListEmStandard(emName = "standard"); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::~PhysicsList() +{ + delete pMessenger; + delete emPhysicsList; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// Bosons +#include "G4ChargedGeantino.hh" +#include "G4Geantino.hh" +#include "G4Gamma.hh" +#include "G4OpticalPhoton.hh" + +// leptons +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4NeutrinoMu.hh" +#include "G4AntiNeutrinoMu.hh" + +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4NeutrinoE.hh" +#include "G4AntiNeutrinoE.hh" + +// Mesons +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4PionZero.hh" +#include "G4Eta.hh" +#include "G4EtaPrime.hh" + +#include "G4KaonPlus.hh" +#include "G4KaonMinus.hh" +#include "G4KaonZero.hh" +#include "G4AntiKaonZero.hh" +#include "G4KaonZeroLong.hh" +#include "G4KaonZeroShort.hh" + +// Baryons +#include "G4Proton.hh" +#include "G4AntiProton.hh" +#include "G4Neutron.hh" +#include "G4AntiNeutron.hh" + +// Nuclei +#include "G4Alpha.hh" +#include "G4Deuteron.hh" +#include "G4Triton.hh" +#include "G4He3.hh" +#include "G4GenericIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructParticle() +{ +// pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); + +// gamma + G4Gamma::GammaDefinition(); + +// optical photon + G4OpticalPhoton::OpticalPhotonDefinition(); + +// leptons + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); + +// mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); + G4Eta::EtaDefinition(); + G4EtaPrime::EtaPrimeDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + G4KaonZero::KaonZeroDefinition(); + G4AntiKaonZero::AntiKaonZeroDefinition(); + G4KaonZeroLong::KaonZeroLongDefinition(); + G4KaonZeroShort::KaonZeroShortDefinition(); + +// barions + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); + +// ions + G4Deuteron::DeuteronDefinition(); + G4Triton::TritonDefinition(); + G4He3::He3Definition(); + G4Alpha::AlphaDefinition(); + G4GenericIon::GenericIonDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4ProcessManager.hh" +#include "G4Decay.hh" + +void PhysicsList::ConstructProcess() +{ + // transportation + // + AddTransportation(); + + // electromagnetic physics list + // + emPhysicsList->ConstructProcess(); + + // decay process + // + G4Decay* fDecayProcess = new G4Decay(); + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + if (fDecayProcess->IsApplicable(*particle) && !particle->IsShortLived()) { + + pmanager ->AddProcess(fDecayProcess); + + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(fDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(fDecayProcess, idxAtRest); + + } + } + + // step limitation (as a full process) + // + AddStepMax(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::AddPhysicsList(const G4String& name) +{ + if (verboseLevel>-1) { + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; + } + + if (name == emName) return; + + if (name == "standard") { + + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmStandard(name); + + } else if (name == "g4v52") { + + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmG4v52(name); + + } else { + + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" + << " is not defined" + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StepMax.hh" + +void PhysicsList::AddStepMax() +{ + // Step limitation seen as a process + stepMaxProcess = new StepMax(); + + theParticleIterator->reset(); + while ((*theParticleIterator)()){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + if (stepMaxProcess->IsApplicable(*particle)) + { + pmanager ->AddDiscreteProcess(stepMaxProcess); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +void PhysicsList::SetCuts() +{ + + if (verboseLevel >0){ + G4cout << "PhysicsList::SetCuts:"; + G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; + } + + // set cut values for gamma at first and for e- second and next for e+, + // because some processes for e+/e- need cut values for gamma + SetCutValue(cutForGamma, "gamma"); + SetCutValue(cutForElectron, "e-"); + SetCutValue(cutForPositron, "e+"); + + if (verboseLevel>0) DumpCutValuesTable(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCutForGamma(G4double cut) +{ + cutForGamma = cut; + SetParticleCuts(cutForGamma, G4Gamma::Gamma()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCutForElectron(G4double cut) +{ + cutForElectron = cut; + SetParticleCuts(cutForElectron, G4Electron::Electron()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCutForPositron(G4double cut) +{ + cutForPositron = cut; + SetParticleCuts(cutForPositron, G4Positron::Positron()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc new file mode 100644 index 0000000000..27d6e120b2 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc @@ -0,0 +1,116 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysicsListMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsListMessenger.hh" + +#include "PhysicsList.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithAString.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) +:pPhysicsList(pPhys) +{ + physDir = new G4UIdirectory("/testem/phys/"); + physDir->SetGuidance("physics list commands"); + + gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setGCut",this); + gammaCutCmd->SetGuidance("Set gamma cut."); + gammaCutCmd->SetParameterName("Gcut",false); + gammaCutCmd->SetUnitCategory("Length"); + gammaCutCmd->SetRange("Gcut>0.0"); + gammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + electCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setECut",this); + electCutCmd->SetGuidance("Set electron cut."); + electCutCmd->SetParameterName("Ecut",false); + electCutCmd->SetUnitCategory("Length"); + electCutCmd->SetRange("Ecut>0.0"); + electCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + protoCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setPCut",this); + protoCutCmd->SetGuidance("Set positron cut."); + protoCutCmd->SetParameterName("Pcut",false); + protoCutCmd->SetUnitCategory("Length"); + protoCutCmd->SetRange("Pcut>0.0"); + protoCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + allCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setCuts",this); + allCutCmd->SetGuidance("Set cut for all."); + allCutCmd->SetParameterName("cut",false); + allCutCmd->SetUnitCategory("Length"); + allCutCmd->SetRange("cut>0.0"); + allCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + pListCmd = new G4UIcmdWithAString("/testem/phys/addPhysics",this); + pListCmd->SetGuidance("Add modula physics list."); + pListCmd->SetParameterName("PList",false); + pListCmd->AvailableForStates(G4State_PreInit); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsListMessenger::~PhysicsListMessenger() +{ + delete gammaCutCmd; + delete electCutCmd; + delete protoCutCmd; + delete allCutCmd; + delete pListCmd; + delete physDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsListMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if( command == gammaCutCmd ) + { pPhysicsList->SetCutForGamma(gammaCutCmd->GetNewDoubleValue(newValue));} + + if( command == electCutCmd ) + { pPhysicsList->SetCutForElectron(electCutCmd->GetNewDoubleValue(newValue));} + + if( command == protoCutCmd ) + { pPhysicsList->SetCutForPositron(protoCutCmd->GetNewDoubleValue(newValue));} + + if( command == allCutCmd ) + { + G4double cut = allCutCmd->GetNewDoubleValue(newValue); + pPhysicsList->SetCutForGamma(cut); + pPhysicsList->SetCutForElectron(cut); + pPhysicsList->SetCutForPositron(cut); + } + + if( command == pListCmd ) + { pPhysicsList->AddPhysicsList(newValue);} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..ecf9fd4359 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc @@ -0,0 +1,90 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PrimaryGeneratorAction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PrimaryGeneratorAction.hh" + +#include "DetectorConstruction.hh" +#include "PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det) +:detector(det) +{ + particleGun = new G4ParticleGun(1); + G4ParticleDefinition* particle + = G4ParticleTable::GetParticleTable()->FindParticle("e-"); + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleEnergy(500*keV); + particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); + + rndmBeam = 0.; + + //create a messenger for this class + gunMessenger = new PrimaryGeneratorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::~PrimaryGeneratorAction() +{ + delete particleGun; + delete gunMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + //this function is called at the begining of event + // + G4double x0 = -0.5*(detector->GetAbsorSizeX()); + G4double y0 = 0.*cm, z0 = 0.*cm; + + //randomize the beam, if requested. + // + if (rndmBeam > 0.) + { + if (rndmBeam > detector->GetAbsorSizeYZ()) + rndmBeam = detector->GetAbsorSizeYZ(); + G4double rbeam = 0.5*rndmBeam; + y0 = (2*G4UniformRand()-1.)*rbeam; + z0 = (2*G4UniformRand()-1.)*rbeam; + } + particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + particleGun->GeneratePrimaryVertex(anEvent); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVisManager.hh b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc similarity index 60% rename from examples/advanced/Tiara/source/tiara/include/TiaraVisManager.hh rename to examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc index 6725bd94cb..9c719fa70e 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc @@ -20,53 +20,51 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: PrimaryGeneratorMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // -// $Id: TiaraVisManager.hh,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. +#include "PrimaryGeneratorMessenger.hh" -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +#include "PrimaryGeneratorAction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef TiaraVisManager_h -#define TiaraVisManager_h 1 +PrimaryGeneratorMessenger::PrimaryGeneratorMessenger( + PrimaryGeneratorAction* Gun) +:Action(Gun) +{ + gunDir = new G4UIdirectory("/testem/gun/"); + gunDir->SetGuidance("gun control"); -#ifdef G4VIS_USE - -#include "G4VisManager.hh" + RndmCmd = new G4UIcmdWithADoubleAndUnit("/testem/gun/rndm",this); + RndmCmd->SetGuidance("random lateral extension on the beam"); + RndmCmd->SetParameterName("rBeam",false); + RndmCmd->SetRange("rBeam>=0."); + RndmCmd->SetUnitCategory("Length"); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class TiaraVisManager: public G4VisManager { - -public: - - TiaraVisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; +PrimaryGeneratorMessenger::~PrimaryGeneratorMessenger() +{ + delete RndmCmd; + delete gunDir; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#endif +void PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if (command == RndmCmd) + {Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#endif diff --git a/examples/extended/electromagnetic/TestEm11/src/RunAction.cc b/examples/extended/electromagnetic/TestEm11/src/RunAction.cc new file mode 100644 index 0000000000..eafa04c609 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/RunAction.cc @@ -0,0 +1,217 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RunAction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "RunAction.hh" +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" +#include "StepMax.hh" +#include "PrimaryGeneratorAction.hh" +#include "HistoManager.hh" + +#include "G4Run.hh" +#include "G4RunManager.hh" +#include "G4UnitsTable.hh" +#include "G4EmCalculator.hh" + +#include "Randomize.hh" +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::RunAction(DetectorConstruction* det, PhysicsList* phys, + PrimaryGeneratorAction* kin, HistoManager* histo) +:detector(det),physics(phys),kinematic(kin),histoManager(histo) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::~RunAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + // save Rndm status + G4RunManager::GetRunManager()->SetRandomNumberStore(true); + HepRandom::showEngineStatus(); + + //initialize total energy deposit + // + Edeposit = Edeposit2 = 0.; + + //initialize track legth of primary + // + trackLen = trackLen2 = 0.; + + //initialize projected range + // + projRange = projRange2 = 0.; + + //initialize mean step size + // + nbOfSteps = nbOfSteps2 = 0; stepSize = stepSize2 = 0.; + + //initialize track status + // + status[0] = status[1] = status[2] = 0; + + //histograms + // + histoManager->book(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::EndOfRunAction(const G4Run* aRun) +{ + std::ios::fmtflags mode = G4cout.flags(); + G4cout.setf(std::ios::fixed,std::ios::floatfield); + + G4int NbofEvents = aRun->GetNumberOfEvent(); + if (NbofEvents == 0) return; + G4double fNbofEvents = double(NbofEvents); + + //run conditions + // + G4Material* material = detector->GetAbsorMaterial(); + G4double density = material->GetDensity(); + + G4ParticleDefinition* particle = kinematic->GetParticleGun() + ->GetParticleDefinition(); + G4String partName = particle->GetParticleName(); + G4double energy = kinematic->GetParticleGun()->GetParticleEnergy(); + + G4cout << "\n ======================== run summary ======================\n"; + + G4int prec = G4cout.precision(2); + + G4cout << "\n The run consists of " << NbofEvents << " "<< partName << " of " + << G4BestUnit(energy,"Energy") << " through " + << G4BestUnit(detector->GetAbsorSizeX(),"Length") << " of " + << material->GetName() << " (density: " + << G4BestUnit(density,"Volumic Mass") << ")" << G4endl; + + G4cout << "\n ============================================================\n"; + + //compute total energy deposit + // + Edeposit /= NbofEvents; Edeposit2 /= NbofEvents; + G4double rms = Edeposit2 - Edeposit*Edeposit; + if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout.precision(3); + G4cout + << "\n Total Energy deposited = " << G4BestUnit(Edeposit,"Energy") + << " +- " << G4BestUnit( rms,"Energy") + << G4endl; + + //compute track length of primary track + // + trackLen /= NbofEvents; trackLen2 /= NbofEvents; + rms = trackLen2 - trackLen*trackLen; + if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout.precision(3); + G4cout + << "\n Track length of primary track = " << G4BestUnit(trackLen,"Length") + << " +- " << G4BestUnit( rms,"Length"); + + //compare with csda range + // + G4EmCalculator emCalculator; + G4double csdaRange = 0.; + if (particle->GetPDGCharge() != 0.) + csdaRange = emCalculator.GetRange(energy,particle,material); + G4cout + << "\n csda Range from EmCalculator = " << G4BestUnit(csdaRange,"Length") + << G4endl; + + //compute projected range of primary track + // + projRange /= NbofEvents; projRange2 /= NbofEvents; + rms = projRange2 - projRange*projRange; + if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout + << "\n Projected range = " << G4BestUnit(projRange,"Length") + << " +- " << G4BestUnit( rms,"Length") + << G4endl; + + //nb of steps and step size of primary track + // + G4double fNbSteps = nbOfSteps/fNbofEvents, fNbSteps2 = nbOfSteps2/fNbofEvents; + rms = fNbSteps2 - fNbSteps*fNbSteps; + if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout.precision(2); + G4cout << "\n Nb of steps of primary track = " << fNbSteps << " +- " << rms; + + stepSize /= NbofEvents; stepSize2 /= NbofEvents; + rms = stepSize2 - stepSize*stepSize; + if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout.precision(3); + G4cout + << "\t Step size= " << G4BestUnit(stepSize,"Length") + << " +- " << G4BestUnit( rms,"Length") + << G4endl; + + //transmission coefficients + // + G4double absorbed = 100.*status[0]/fNbofEvents; + G4double transmit = 100.*status[1]/fNbofEvents; + G4double reflected = 100.*status[2]/fNbofEvents; + + G4cout.precision(2); + G4cout + << "\n absorbed = " << absorbed << " %" + << " transmit = " << transmit << " %" + << " reflected = " << reflected << " %" << G4endl; + + // normalize histogram of longitudinal energy profile + // + G4int ih = 1; + G4double binWidth = histoManager->GetBinWidth(ih); + G4double fac = (1./(NbofEvents*binWidth))*(mm/MeV); + histoManager->Scale(ih,fac); + + // reset default formats + G4cout.setf(mode,std::ios::floatfield); + G4cout.precision(prec); + + // save histograms + histoManager->save(); + + // show Rndm status + HepRandom::showEngineStatus(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh b/examples/extended/electromagnetic/TestEm11/src/StepMax.cc similarity index 58% rename from examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh rename to examples/extended/electromagnetic/TestEm11/src/StepMax.cc index 5b34aa7ea2..426830d8ba 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/src/StepMax.cc @@ -20,53 +20,59 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: StepMax.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // -// $Id: ExN04VisManager.hh,v 1.1 2002/11/19 10:15:52 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +#include "StepMax.hh" +#include "StepMaxMessenger.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef ExN04VisManager_h -#define ExN04VisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" +StepMax::StepMax(const G4String& processName) + : G4VDiscreteProcess(processName),MaxChargedStep(DBL_MAX) +{ + pMess = new StepMaxMessenger(this); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class ExN04VisManager: public G4VisManager { - -public: - - ExN04VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; +StepMax::~StepMax() { delete pMess; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool StepMax::IsApplicable(const G4ParticleDefinition& particle) +{ + return (particle.GetPDGCharge() != 0. && !particle.IsShortLived()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void StepMax::SetMaxStep(G4double step) {MaxChargedStep = step;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double StepMax::PostStepGetPhysicalInteractionLength( const G4Track&, + G4double, + G4ForceCondition* condition ) +{ + // condition is set to "Not Forced" + *condition = NotForced; + + return MaxChargedStep; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&) +{ + // do nothing + aParticleChange.Initialize(aTrack); + return &aParticleChange; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#endif -#endif diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/VisManager.hh b/examples/extended/electromagnetic/TestEm11/src/StepMaxMessenger.cc similarity index 67% rename from examples/extended/electromagnetic/PhotonProcesses/include/VisManager.hh rename to examples/extended/electromagnetic/TestEm11/src/StepMaxMessenger.cc index 97f422b38c..4d27a3b753 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/VisManager.hh +++ b/examples/extended/electromagnetic/TestEm11/src/StepMaxMessenger.cc @@ -20,46 +20,42 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: VisManager.hh,v 1.2 2004/09/29 10:37:57 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: StepMaxMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. +#include "StepMaxMessenger.hh" -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +#include "StepMax.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef VisManager_h -#define VisManager_h 1 - -#include "G4VisManager.hh" +StepMaxMessenger::StepMaxMessenger(StepMax* stepM) +:stepMax(stepM) +{ + StepMaxCmd = new G4UIcmdWithADoubleAndUnit("/testem/stepMax",this); + StepMaxCmd->SetGuidance("Set max allowed step length"); + StepMaxCmd->SetParameterName("mxStep",false); + StepMaxCmd->SetRange("mxStep>0."); + StepMaxCmd->SetUnitCategory("Length"); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class VisManager: public G4VisManager { - -public: - - VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; +StepMaxMessenger::~StepMaxMessenger() +{ + delete StepMaxCmd; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#endif +void StepMaxMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +{ + if (command == StepMaxCmd) + { stepMax->SetMaxStep(StepMaxCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc new file mode 100644 index 0000000000..cc91125200 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: SteppingAction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "SteppingAction.hh" +#include "DetectorConstruction.hh" +#include "RunAction.hh" +#include "EventAction.hh" +#include "HistoManager.hh" + +#include "G4SteppingManager.hh" +#include "G4VProcess.hh" +#include "G4ParticleTypes.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::SteppingAction(DetectorConstruction* det, RunAction* RuAct, + EventAction* event, HistoManager* histo) +:detector(det), runAction(RuAct), eventAction(event), histoManager(histo) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::~SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingAction::UserSteppingAction(const G4Step* aStep) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + if (edep <= 0.) return; + + //total energy deposit in absorber + // + eventAction->AddEdep(edep); + + //longitudinal profile of deposited energy + // + const G4StepPoint* prePoint = aStep->GetPreStepPoint(); + const G4StepPoint* postPoint = aStep->GetPostStepPoint(); + + G4double x = (prePoint->GetPosition().x() + postPoint->GetPosition().x())/2; + x += 0.5*detector->GetAbsorSizeX(); + histoManager->FillHisto(1, x, edep); + + //step size of primary particle or charged secondaries + // + G4double steplen = aStep->GetStepLength(); + const G4Track* track = aStep->GetTrack(); + if (track->GetTrackID() == 1) histoManager->FillHisto(4, steplen); + else if (track->GetDefinition()->GetPDGCharge() != 0.) + histoManager->FillHisto(7, steplen); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/electromagnetic/TestEm9/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm11/src/SteppingVerbose.cc old mode 100755 new mode 100644 similarity index 54% rename from examples/extended/electromagnetic/TestEm9/src/SteppingVerbose.cc rename to examples/extended/electromagnetic/TestEm11/src/SteppingVerbose.cc index e27f0c690e..b2a0318bfe --- a/examples/extended/electromagnetic/TestEm9/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm11/src/SteppingVerbose.cc @@ -20,57 +20,85 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: SteppingVerbose.cc,v 1.1 2003/07/14 17:10:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: SteppingVerbose.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "SteppingVerbose.hh" -#include "G4MaterialCutsCouple.hh" #include "G4SteppingManager.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingVerbose::SteppingVerbose():G4SteppingVerbose() +SteppingVerbose::SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... SteppingVerbose::~SteppingVerbose() -{} +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void SteppingVerbose::StepInfo() { CopyState(); + G4int prec = G4cout.precision(3); - if( verboseLevel >= 1 ) { + if( verboseLevel >= 1 ){ if( verboseLevel >= 4 ) VerboseTrack(); + if( verboseLevel >= 3 ){ + G4cout << G4endl; + G4cout << std::setw( 5) << "#Step#" << " " + << std::setw( 6) << "X" << " " + << std::setw( 6) << "Y" << " " + << std::setw( 6) << "Z" << " " + << std::setw( 9) << "KineE" << " " + << std::setw( 9) << "dEStep" << " " + << std::setw(10) << "StepLeng" + << std::setw(10) << "TrakLeng" + << std::setw(10) << "Volume" << " " + << std::setw(10) << "Process" << G4endl; + } - PrintStep(false); + G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; + + // if( fStepStatus != fWorldBoundary){ + if( fTrack->GetNextVolume() != 0 ) { + G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << std::setw(10) << "OutOfWorld"; + } if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){ - G4cout << fStep->GetPostStepPoint()->GetProcessDefinedStep() - ->GetProcessName(); + G4cout << " " + << std::setw(10) << fStep->GetPostStepPoint() + ->GetProcessDefinedStep()->GetProcessName(); } else { - G4cout << "UserLimit"; + G4cout << " UserLimit"; } G4cout << G4endl; - if( verboseLevel >= 2 ){ + if( verboseLevel == 2 ){ G4int tN2ndariesTot = fN2ndariesAtRestDoIt + fN2ndariesAlongStepDoIt + fN2ndariesPostStepDoIt; if(tN2ndariesTot>0){ G4cout << " :----- List of 2ndaries - " - << "#SpawnInStep=" << std::setw(3) << tN2ndariesTot + << "#SpawnInStep=" << std::setw(3) << tN2ndariesTot << "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt << ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt << ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt @@ -79,7 +107,7 @@ void SteppingVerbose::StepInfo() << " ---------------" << G4endl; - for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; + for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; lp1<(*fSecondary).size(); lp1++){ G4cout << " : " << std::setw(6) @@ -92,79 +120,58 @@ void SteppingVerbose::StepInfo() << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") << std::setw(10) << (*fSecondary)[lp1]->GetDefinition()->GetParticleName(); - G4cout << G4endl; + G4cout << G4endl; } - + G4cout << " :-----------------------------" << "----------------------------------" << "-- EndOf2ndaries Info ---------------" << G4endl; } } - - G4cout.precision(prec); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void SteppingVerbose::TrackingStarted() -{ - CopyState(); - - G4int prec = G4cout.precision(3); - if( verboseLevel > 0 ){ - - PrintStep(true); - G4cout << "initStep" << G4endl; + } G4cout.precision(prec); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void SteppingVerbose::PrintStep(G4bool firstStep) +void SteppingVerbose::TrackingStarted() { - if( firstStep || verboseLevel >= 3 ) - { - G4cout << std::setw( 5) << "#Step#" << " " - << std::setw( 8) << "X(mm)" << " " - << std::setw( 8) << "Y(mm)" << " " - << std::setw( 8) << "Z(mm)" << " " - << std::setw( 9) << "KinE(MeV)" << " " - << std::setw( 8) << "dE(keV)" << " " - << std::setw( 8) << "StepL(mm)" << " " - << std::setw(10) << "TrackL(cm)" << " " - << std::setw( 9) << "idxCouple" << " " - << std::setw( 9) << "Material" << " " - << std::setw(10) << "NextVolume" << " " - << std::setw( 8) << "ProcName" << G4endl; + + CopyState(); +G4int prec = G4cout.precision(3); + if( verboseLevel > 0 ){ + + G4cout << std::setw( 5) << "Step#" << " " + << std::setw( 6) << "X" << " " + << std::setw( 6) << "Y" << " " + << std::setw( 6) << "Z" << " " + << std::setw( 9) << "KineE" << " " + << std::setw( 9) << "dEStep" << " " + << std::setw(10) << "StepLeng" + << std::setw(10) << "TrakLeng" + << std::setw(10) << "Volume" << " " + << std::setw(10) << "Process" << G4endl; + + G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; + + if(fTrack->GetNextVolume()){ + G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << std::setw(10) << "OutOfWorld"; } - G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " " - << std::setw( 8) << fTrack->GetPosition().x()/mm << " " - << std::setw( 8) << fTrack->GetPosition().y()/mm << " " - << std::setw( 8) << fTrack->GetPosition().z()/mm << " " - << std::setw( 9) << fTrack->GetKineticEnergy()/MeV << " " - << std::setw( 8) << fStep->GetTotalEnergyDeposit()/keV << " " - << std::setw( 8) << fStep->GetStepLength()/mm << " " - << std::setw(10) << fTrack->GetTrackLength()/cm << " "; - - if( firstStep ) { - G4cout << " "; - } else { - const G4MaterialCutsCouple* couple = fTrack->GetMaterialCutsCouple(); - G4String mate = couple->GetMaterial()->GetName(); - G4int idx = couple->GetIndex(); - G4cout << std::setw(5) << idx << " " << mate << " "; + G4cout << " initStep" << G4endl; } - - if( fTrack->GetNextVolume() != 0 ) { - G4cout << std::setw(10) << fTrack->GetVolume()->GetName() << " "; - } else { - G4cout << std::setw(10) << "OutOfWorld "; - } - + G4cout.precision(prec); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/extended/electromagnetic/TestEm11/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm11/src/TrackingAction.cc new file mode 100644 index 0000000000..83a2cbe235 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/TrackingAction.cc @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: TrackingAction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "TrackingAction.hh" + +#include "DetectorConstruction.hh" +#include "RunAction.hh" +#include "HistoManager.hh" + +#include "G4Track.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TrackingAction::TrackingAction(DetectorConstruction* det, RunAction* run, + HistoManager* histo) +:detector(det),runAction(run), histoManager(histo) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PostUserTrackingAction(const G4Track* track) +{ + G4int trackID = track->GetTrackID(); + + //track length of primary particle or charged secondaries + // + G4double tracklen = track->GetTrackLength(); + if (trackID == 1) { + runAction->AddTrackLength(tracklen); + histoManager->FillHisto(3, tracklen); + } else if (track->GetDefinition()->GetPDGCharge() != 0.) + histoManager->FillHisto(6, tracklen); + + //extract projected range of primary particle + // + if (trackID == 1) { + G4double x = track->GetPosition().x() + 0.5*detector->GetAbsorSizeX(); + runAction->AddProjRange(x); + histoManager->FillHisto(5, x); + } + + //mean step size of primary particle + // + if (trackID == 1) { + G4int nbOfSteps = track->GetCurrentStepNumber(); + G4double stepSize = tracklen/nbOfSteps; + runAction->AddStepSize(nbOfSteps,stepSize); + } + + //status of primary particle : absorbed, transmited, reflected ? + // + if (trackID == 1) { + G4int status = 0; + if (!track->GetNextVolume()) { + if (track->GetMomentumDirection().x() > 0.) status = 1; + else status = 2; + } + runAction->AddTrackStatus(status); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm11/vis.mac b/examples/extended/electromagnetic/TestEm11/vis.mac new file mode 100644 index 0000000000..6e0fbdd989 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/vis.mac @@ -0,0 +1,32 @@ +# +# Macro file for the initialization phase of "TestEm6.cc" +# +# Sets some default verbose +# and initializes the graphic. +# +/control/verbose 2 +/run/verbose 2 +# +/run/initialize +# +# Create empty scene ("world" is default) +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open OGLIX +# +#/vis/open DAWNFILE +# +# Draw scene +/vis/viewer/zoom 1.4 +/vis/viewer/flush +# +# for drawing the tracks +# if too many tracks cause core dump => storeTrajectory 0 +/tracking/storeTrajectory 1 +/vis/scene/endOfEventAction accumulate +# +/testem/event/drawTracks all + diff --git a/examples/extended/electromagnetic/TestEm2/History b/examples/extended/electromagnetic/TestEm2/History index f23375a064..d81ec2654f 100644 --- a/examples/extended/electromagnetic/TestEm2/History +++ b/examples/extended/electromagnetic/TestEm2/History @@ -1,4 +1,4 @@ -$Id: History,v 1.51 2004/12/06 16:41:46 vnivanch Exp $ +$Id: History,v 1.55 2005/06/08 14:26:10 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,7 +14,20 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +08-06-05 mma (testem2-V07-00-02) +- RunAction : histo : option --noErrors for hbook files +08 May 05: V.Ivant (testem2-V07-00-01) +- Migrade to model version of gamma processes + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +03-03-05 mma (testem2-V07-00-00) +- RunAction : - put a protection for the creation of analysis factory; + - file extension is fileType; + 06 Dec 04: V.Ivant (testem2-V06-02-05) - Fix bug in change cuts between runs - Return back muon builder to horerent with kernel diff --git a/examples/extended/electromagnetic/TestEm2/README b/examples/extended/electromagnetic/TestEm2/README index d57691d5c1..8620606f7c 100644 --- a/examples/extended/electromagnetic/TestEm2/README +++ b/examples/extended/electromagnetic/TestEm2/README @@ -1,4 +1,4 @@ -$Id: README,v 1.17 2004/09/17 10:51:34 maire Exp $ +$Id: README,v 1.18 2005/03/02 18:39:52 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -125,43 +125,58 @@ $Id: README,v 1.17 2004/09/17 10:51:34 maire Exp $ "/testem/histo/setFileType type" The following types are available: "hbook", "root", "XML" - By default the name is "testem2.aida" and the type "hbook". + By default the name is "testem2" and the type "hbook". + + Before compilation of the example it is optimal to clean up old files: + gmake histclean + gmake + 8- USING HISTOGRAMS - 8- Using histograms - ------------------- + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 8a - PI -By default the histograms are not activated. To activate histograms -the environment variable G4ANALYSIS_USE should be defined. For instance -uncomment the flag G4ANALYSIS_USE in GNUmakefile. + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi -To use histograms any of implementations of AIDA interfaces should -be available (see http://aida.freehep.org). + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin -A package including AIDA and extended interfaces also using Python -is PI, available from: http://cern.ch/pi . + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` -Once installed PI or PI-Lite in a specified local area $MYPY, it is -required to add the installation path to $PATH, i.e. for example, -for release 1.2.1 of PI: + 8b - OpenScientist + + OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist + + In OpenScientist, the AIDA implementation is the Lab package. + You have to "setup" this package before compiling (then with G4ANALYSIS_USE) + and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> setenv CMTPATH + csh> source /Lab//cmt/setup.csh + On UNIX with a sh flavoured shell : + sh> CMTPATH=;export CMTPATH + sh> . /Lab//cmt/setup.sh + On Windows : + DOS> set CMTPATH= + DOS> call /Lab//cmt/setup.bat -setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + You have to use the XML or root file formats ; producing hbook files is not + supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) + are readable by the interactive applications ; the Lab onx interactive + program or the OpenPAW program. -CERN users can use the PATH to the LCG area on AFS. - -Before compilation of the example it is optimal to clean up old -files: - -gmake histclean -gmake - -Before running the example the command should be issued: - -eval `aida-config --runtime csh` - -It is possible to choose the format of the output file with -histograms using UI command: - -/testem/histo/setFileType type - -The following types are available: hbook, root, XML. + With OpenPAW, someone can view the histograms with : + OS> opaw + opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 + opaw> h/plot 3 diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.cc b/examples/extended/electromagnetic/TestEm2/TestEm2.cc index f4fbe5b6e3..f32ff56a69 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.cc +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm2.cc,v 1.8 2004/05/04 07:36:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: TestEm2.cc,v 1.9 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -34,7 +34,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "DetectorConstruction.hh" @@ -69,7 +69,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.out b/examples/extended/electromagnetic/TestEm2/TestEm2.out index e0a25b8dea..c1d9d1e615 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.out +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.out @@ -1,64 +1,63 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; ***** Table : Nb of materials = 13 ***** Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm - ---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Aluminium ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Iron density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm - ---> Element: Iron Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Nickel density: 8.960 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.415 cm - ---> Element: Nickel Z = 28.0 N = 58.7 A = 58.69 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Nickel ( ) Z = 28.0 N = 58.7 A = 58.69 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Copper density: 8.960 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.435 cm - ---> Element: Copper Z = 29.0 N = 63.5 A = 63.54 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Copper ( ) Z = 29.0 N = 63.5 A = 63.54 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % - ---> Element: Germanium Ge Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % - ---> Element: Bismuth Bi Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % + ---> Element: Germanium (Ge) Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % + ---> Element: Bismuth (Bi) Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 % Material: PbWO4 density: 8.280 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.924 mm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 % - ---> Element: Lead Pb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 % - ---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 40.40 % Abundance 16.67 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 % + ---> Element: Lead (Pb) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 % + ---> Element: Tungsten (W) Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 40.40 % Abundance 16.67 % Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm - ---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Tungsten (W) Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: FCal2Slugs density: 18.600 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.689 mm - ---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 97.00 % Abundance 91.03 % - ---> Element: Iron Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 1.00 % Abundance 3.09 % - ---> Element: Nickel Z = 28.0 N = 58.7 A = 58.69 g/mole fractionMass: 2.00 % Abundance 5.88 % + ---> Element: Tungsten (W) Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 97.00 % Abundance 91.03 % + ---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 1.00 % Abundance 3.09 % + ---> Element: Nickel ( ) Z = 28.0 N = 58.7 A = 58.69 g/mole fractionMass: 2.00 % Abundance 5.88 % Material: FCal2Abs density: 10.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 7.568 mm - ---> Element: Copper Z = 29.0 N = 63.5 A = 63.54 g/mole fractionMass: 20.00 % Abundance 40.43 % - ---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 77.60 % Abundance 54.22 % - ---> Element: Iron Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 0.80 % Abundance 1.84 % - ---> Element: Nickel Z = 28.0 N = 58.7 A = 58.69 g/mole fractionMass: 1.60 % Abundance 3.50 % + ---> Element: Copper ( ) Z = 29.0 N = 63.5 A = 63.54 g/mole fractionMass: 20.00 % Abundance 40.43 % + ---> Element: Tungsten (W) Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 77.60 % Abundance 54.22 % + ---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 0.80 % Abundance 1.84 % + ---> Element: Nickel ( ) Z = 28.0 N = 58.7 A = 58.69 g/mole fractionMass: 1.60 % Abundance 3.50 % Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm - ---> Element: Lead Pb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Lead (Pb) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % Visualization Manager instantiating... @@ -70,8 +69,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -93,10 +92,8 @@ PhysicsList::AddPhysicsList /run/initialize Absorber is 3.60564 m of Water Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % - -phot: Total cross sections from Sandia parametrisation. + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % /testem/phys/verbose -1 # /gun/particle e- @@ -105,19 +102,6 @@ phot: Total cross sections from Sandia parametrisation. /testem/event/printModulo 20 # /run/beamOn 100 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate - -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. - -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. - -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. ========= Table of registered couples ============================== @@ -150,20 +134,20 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=18.23s Real=22.85s Sys=0.7s + User=58.13s Real=60.09s Sys=0.92s LATERAL PROFILE CUMULATIVE LATERAL PROFILE bin Mean rms bin Mean rms - 0.00-> 1.11 radl: 14.32% 5.75% 0-> 1.11 radl: 14.32% 5.75% - 1.11-> 2.22 radl: 24.89% 10.85% 0-> 2.22 radl: 39.21% 13.56% - 2.22-> 3.33 radl: 20.73% 8.66% 0-> 3.33 radl: 59.94% 16.26% - 3.33-> 4.44 radl: 13.35% 7.29% 0-> 4.44 radl: 73.29% 15.17% - 4.44-> 5.55 radl: 8.70% 6.24% 0-> 5.55 radl: 81.99% 13.44% - 5.55-> 6.66 radl: 5.63% 5.68% 0-> 6.66 radl: 87.62% 10.40% - 6.66-> 7.77 radl: 3.47% 4.91% 0-> 7.77 radl: 91.09% 7.02% - 7.77-> 8.88 radl: 1.51% 2.78% 0-> 8.88 radl: 92.60% 5.23% - 8.88-> 9.99 radl: 1.06% 2.54% 0-> 9.99 radl: 93.66% 3.83% + 0.00-> 1.11 radl: 15.05% 6.99% 0-> 1.11 radl: 15.05% 6.99% + 1.11-> 2.22 radl: 25.82% 9.85% 0-> 2.22 radl: 40.87% 13.91% + 2.22-> 3.33 radl: 22.14% 8.93% 0-> 3.33 radl: 63.00% 15.88% + 3.33-> 4.44 radl: 13.84% 7.58% 0-> 4.44 radl: 76.84% 15.82% + 4.44-> 5.55 radl: 7.76% 6.82% 0-> 5.55 radl: 84.60% 12.95% + 5.55-> 6.66 radl: 4.37% 5.19% 0-> 6.66 radl: 88.97% 9.93% + 6.66-> 7.77 radl: 2.50% 4.71% 0-> 7.77 radl: 91.47% 6.97% + 7.77-> 8.88 radl: 1.54% 3.28% 0-> 8.88 radl: 93.02% 4.92% + 8.88-> 9.99 radl: 0.90% 2.14% 0-> 9.99 radl: 93.92% 4.14% @@ -171,26 +155,26 @@ Run Summary bin Mean rms bin Mean rms - 0.00-> 0.11 radl: 61.90% 12.34% 0-> 0.11 radl: 61.90% 12.34% - 0.11-> 0.22 radl: 17.49% 7.14% 0-> 0.22 radl: 79.39% 9.57% - 0.22-> 0.33 radl: 7.30% 5.73% 0-> 0.33 radl: 86.70% 6.30% - 0.33-> 0.44 radl: 3.72% 3.45% 0-> 0.44 radl: 90.41% 4.43% - 0.44-> 0.56 radl: 1.95% 1.82% 0-> 0.56 radl: 92.37% 4.12% - 0.56-> 0.67 radl: 1.29% 1.16% 0-> 0.67 radl: 93.66% 3.83% + 0.00-> 0.11 radl: 62.23% 11.82% 0-> 0.11 radl: 62.23% 11.82% + 0.11-> 0.22 radl: 17.27% 6.51% 0-> 0.22 radl: 79.50% 9.78% + 0.22-> 0.33 radl: 6.86% 4.16% 0-> 0.33 radl: 86.36% 7.83% + 0.33-> 0.44 radl: 3.54% 2.77% 0-> 0.44 radl: 89.90% 6.68% + 0.44-> 0.56 radl: 2.53% 2.59% 0-> 0.56 radl: 92.42% 4.99% + 0.56-> 0.67 radl: 1.50% 2.10% 0-> 0.67 radl: 93.92% 4.14% SUMMARY - energy deposit : 93.66 % E0 +- 3.83 % E0 - charged traklen: 13.60 radl +- 0.56 radl - neutral traklen: 196.41 radl +- 18.59 radl + energy deposit : 93.92 % E0 +- 4.14 % E0 + charged traklen: 13.64 radl +- 0.61 radl + neutral traklen: 194.44 radl +- 22.06 radl --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 746053755, 1768068041 + Current couple of seeds = 1847571276, 486755118 ---------------------------------------- <<<>>> 100 events for Total Energy in Absorber -Edep: 0.93657535 delEdep= -0.00462465 nrms= -0.94188392 -Erms: 0.038327017 delErms= -0.010772983 nrms= -2.1940903 +Edep: 0.9392035 delEdep= -0.0019965033 nrms= -0.40661981 +Erms: 0.041390078 delErms= -0.0077099222 nrms= -1.5702489 <<<>>> IS ACCEPTED # diff --git a/examples/extended/electromagnetic/TestEm2/include/DecaysBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/DecaysBuilder.hh old mode 100755 new mode 100644 index 700b00c590..cdfade8cb6 --- a/examples/extended/electromagnetic/TestEm2/include/DecaysBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/DecaysBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.hh,v 1.2 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh index ec745e1095..8e9c1c2004 100644 --- a/examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.6 2004/09/17 10:51:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh index 0e76df9845..34a60b20c8 100644 --- a/examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.5 2004/09/17 10:51:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/EmAcceptance.hh b/examples/extended/electromagnetic/TestEm2/include/EmAcceptance.hh index 55da861a3d..258624c518 100644 --- a/examples/extended/electromagnetic/TestEm2/include/EmAcceptance.hh +++ b/examples/extended/electromagnetic/TestEm2/include/EmAcceptance.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmAcceptance.hh,v 1.2 2004/09/17 10:51:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/EventAction.hh b/examples/extended/electromagnetic/TestEm2/include/EventAction.hh index 93d5c8362e..63bc8e7b64 100644 --- a/examples/extended/electromagnetic/TestEm2/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.2 2004/09/17 10:51:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh index c23fb66a38..28ee4e1295 100644 --- a/examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/09/17 10:51:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder.hh old mode 100755 new mode 100644 index a867fbca5c..d3657b733d --- a/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.hh,v 1.2 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder52.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder52.hh old mode 100755 new mode 100644 index 5b38fcb61f..b2c57743c1 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder52.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.hh,v 1.1 2004/05/04 08:32:48 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmHighEnergyBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmHighEnergyBuilder.hh old mode 100755 new mode 100644 index 660b14bcb2..e619c38cb8 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmHighEnergyBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmHighEnergyBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHighEnergyBuilder.hh,v 1.2 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder.hh old mode 100755 new mode 100644 index 9b7679043c..8bb132c09b --- a/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.hh,v 1.2 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder52.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder52.hh old mode 100755 new mode 100644 index bc2e49f151..4411e6a87c --- a/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder52.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.hh,v 1.1 2004/05/04 08:32:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder.hh old mode 100755 new mode 100644 index 0302e067d9..e76806c41c --- a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.hh,v 1.2 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder52.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder52.hh old mode 100755 new mode 100644 index 35cd812dc9..cb88001463 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder52.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder52.hh,v 1.1 2004/05/04 08:32:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder70.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder70.hh old mode 100755 new mode 100644 index 52f2ef8f45..f945d59a84 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder70.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder70.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder70.hh,v 1.1 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterBuilder.hh old mode 100755 new mode 100644 index 365f33730c..1789612ac4 --- a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.hh,v 1.1 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterMessenger.hh old mode 100755 new mode 100644 index 35802a473e..a74cbb03d8 --- a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.hh,v 1.1 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterPerRegion.hh b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterPerRegion.hh old mode 100755 new mode 100644 index c76bf5a32e..4008fb4e29 --- a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterPerRegion.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterPerRegion.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterPerRegion.hh,v 1.1 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/ParticlesBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/ParticlesBuilder.hh old mode 100755 new mode 100644 index ae4f195d59..2a69b35776 --- a/examples/extended/electromagnetic/TestEm2/include/ParticlesBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/ParticlesBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: ParticlesBuilder.hh,v 1.3 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh index d40efcf644..753edffd61 100644 --- a/examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.5 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Modified: // diff --git a/examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh index 6938649170..d834607f6c 100644 --- a/examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.3 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh index aa91f53273..cf174b25aa 100644 --- a/examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.2 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/RunAction.hh b/examples/extended/electromagnetic/TestEm2/include/RunAction.hh index c140f1b0e7..d49349acff 100644 --- a/examples/extended/electromagnetic/TestEm2/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/RunAction.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.hh,v 1.6 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RunAction.hh,v 1.7 2005/03/02 18:39:52 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -79,10 +79,10 @@ class RunAction : public G4UserRunAction G4double GetLimitEdep() const {return limittrue;}; // Histogram name and type - void SetHistoName(G4String& val) {histoName = val;}; - void SetHistoType(G4String& val) {histoType = val;}; + void SetHistoName(G4String& val) {histoName[0] = val;}; + void SetHistoType(G4String& val) {histoType = val;}; - const G4String& GetHistoName() const {return histoName;}; + const G4String& GetHistoName() const {return histoName[1];}; const G4String& GetHistoType() const {return histoType;}; private: @@ -126,7 +126,7 @@ class RunAction : public G4UserRunAction G4double rmstrue; G4double limittrue; - G4String histoName; + G4String histoName[2]; G4String histoType; AIDA::IAnalysisFactory* af; diff --git a/examples/extended/electromagnetic/TestEm2/include/RunActionMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/RunActionMessenger.hh index d0c7befd4f..c3ae289f56 100644 --- a/examples/extended/electromagnetic/TestEm2/include/RunActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/RunActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunActionMessenger.hh,v 1.2 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm2/include/SteppingAction.hh index 572cf5d555..8a4efdce54 100644 --- a/examples/extended/electromagnetic/TestEm2/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.2 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm2/include/SteppingVerbose.hh index a1c565d01e..f0c9f6e84b 100644 --- a/examples/extended/electromagnetic/TestEm2/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm2/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.2 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm2/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm2/include/TrackingAction.hh index beb93a605e..b4e469bdcd 100644 --- a/examples/extended/electromagnetic/TestEm2/include/TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.hh,v 1.3 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/run01.mac b/examples/extended/electromagnetic/TestEm2/run01.mac index 25dc706dd5..b790c8582f 100644 --- a/examples/extended/electromagnetic/TestEm2/run01.mac +++ b/examples/extended/electromagnetic/TestEm2/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.17 2004/09/17 10:51:34 maire Exp $ +# $Id: run01.mac,v 1.19 2005/06/08 14:26:10 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -17,11 +17,8 @@ # /testem/phys/setCuts 1 mm # -# Acceptance printout is activated -/testem/run/acceptance 0.9488 0.0112 3.0 -# # histogram file -/testem/histo/setFileName testem2.paw +/testem/histo/setFileName run01 /testem/histo/setFileType hbook # /run/initialize @@ -32,5 +29,3 @@ /testem/event/printModulo 10 # /run/beamOn 500 - - diff --git a/examples/extended/electromagnetic/TestEm2/run01.out b/examples/extended/electromagnetic/TestEm2/run01.out index 6b8f8067d1..0ed21555c6 100644 --- a/examples/extended/electromagnetic/TestEm2/run01.out +++ b/examples/extended/electromagnetic/TestEm2/run01.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (27-August-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/electromagnetic/TestEm2/src/DecaysBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/DecaysBuilder.cc old mode 100755 new mode 100644 index 3799107dcd..7bcf6a4db6 --- a/examples/extended/electromagnetic/TestEm2/src/DecaysBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/DecaysBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.cc,v 1.2 2004/11/24 13:18:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc index b23f1dbf2f..a8adaf28f0 100644 --- a/examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.cc,v 1.7 2004/06/18 15:43:41 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc index b4d15012ef..433112dd68 100644 --- a/examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.7 2004/09/17 10:51:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/EmAcceptance.cc b/examples/extended/electromagnetic/TestEm2/src/EmAcceptance.cc index 3d08e42e8c..a3f0d6f23a 100644 --- a/examples/extended/electromagnetic/TestEm2/src/EmAcceptance.cc +++ b/examples/extended/electromagnetic/TestEm2/src/EmAcceptance.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmAcceptance.cc,v 1.4 2004/12/02 14:57:14 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/EventAction.cc b/examples/extended/electromagnetic/TestEm2/src/EventAction.cc index 5c0312f5b1..1392ae3e20 100644 --- a/examples/extended/electromagnetic/TestEm2/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.2 2004/09/17 10:51:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc index c98a5387f4..6c322ff154 100644 --- a/examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: EventActionMessenger.cc,v 1.2 2004/09/17 10:51:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder.cc old mode 100755 new mode 100644 index 26c10021e9..c70a408be6 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.cc,v 1.2 2004/11/24 13:18:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder52.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder52.cc old mode 100755 new mode 100644 index 2f805fde5c..002e12407f --- a/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder52.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.cc,v 1.1 2004/05/04 08:33:32 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmHighEnergyBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmHighEnergyBuilder.cc old mode 100755 new mode 100644 index 3a5936b2c7..f48ac87b9a --- a/examples/extended/electromagnetic/TestEm2/src/G4EmHighEnergyBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmHighEnergyBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHighEnergyBuilder.cc,v 1.2 2004/11/24 13:18:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder.cc old mode 100755 new mode 100644 index 274544bb00..c1b9919d7f --- a/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.cc,v 1.4 2004/12/06 16:39:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder52.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder52.cc old mode 100755 new mode 100644 index fc084bd02a..a127844ef0 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder52.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.cc,v 1.1 2004/05/04 08:33:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder.cc old mode 100755 new mode 100644 index e6aab44e5c..ad7a5a3785 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.cc,v 1.2 2004/11/24 13:18:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder52.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder52.cc old mode 100755 new mode 100644 index 8eddb84bec..262541dbd6 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder52.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder52.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EmQEDBuilder52.cc,v 1.1 2004/05/04 08:33:38 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4EmQEDBuilder52.cc,v 1.2 2005/05/08 16:12:53 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // @@ -42,15 +42,15 @@ #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" #include "G4MultipleScattering52.hh" #include "G4eIonisation52.hh" #include "G4eBremsstrahlung52.hh" -#include "G4eplusAnnihilation.hh" +#include "G4eplusAnnihilation52.hh" #include "G4Gamma.hh" #include "G4Electron.hh" @@ -84,9 +84,9 @@ void G4EmQEDBuilder52::ConstructProcess() G4ParticleDefinition* particle = G4Gamma::Gamma(); G4ProcessManager* pmanager = particle->GetProcessManager(); - pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() ); - pmanager->AddDiscreteProcess( new G4ComptonScattering() ); - pmanager->AddDiscreteProcess( new G4GammaConversion() ); + pmanager->AddDiscreteProcess( new G4PhotoElectricEffect52() ); + pmanager->AddDiscreteProcess( new G4ComptonScattering52() ); + pmanager->AddDiscreteProcess( new G4GammaConversion52() ); // Add standard EM Processes for e- particle = G4Electron::Electron(); @@ -103,7 +103,7 @@ void G4EmQEDBuilder52::ConstructProcess() pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); } diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder70.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder70.cc deleted file mode 100755 index 365894fb95..0000000000 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder70.cc +++ /dev/null @@ -1,111 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4EmQEDBuilder70.cc,v 1.1 2004/11/29 14:49:27 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//--------------------------------------------------------------------------- -// -// ClassName: G4EmQEDBuilder70 -// -// Author: V.Ivanchenko 03.05.2004 -// -// Modified: -// -//---------------------------------------------------------------------------- -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "G4EmQEDBuilder70.hh" -#include "G4ParticleDefinition.hh" -#include "G4ProcessManager.hh" - -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" - -#include "G4MultipleScattering.hh" - -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" -#include "G4eplusAnnihilation70.hh" - -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4EmQEDBuilder70::G4EmQEDBuilder70(const G4String& name) - : G4VPhysicsConstructor(name) -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4EmQEDBuilder70::~G4EmQEDBuilder70() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4EmQEDBuilder70::ConstructParticle() -{ - G4Gamma::Gamma(); - G4Electron::Electron(); - G4Positron::Positron(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4EmQEDBuilder70::ConstructProcess() -{ - // Add standard EM Processes for gamma - G4ParticleDefinition* particle = G4Gamma::Gamma(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - - pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() ); - pmanager->AddDiscreteProcess( new G4ComptonScattering() ); - pmanager->AddDiscreteProcess( new G4GammaConversion() ); - - // Add standard EM Processes for e- - particle = G4Electron::Electron(); - pmanager = particle->GetProcessManager(); - - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); - - // Add standard EM Processes for e+ - particle = G4Positron::Positron(); - pmanager = particle->GetProcessManager(); - - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation70, 0,-1,4); - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterBuilder.cc old mode 100755 new mode 100644 index 8e40164817..2784483284 --- a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.cc,v 1.1 2004/11/29 14:49:27 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterMessenger.cc old mode 100755 new mode 100644 index 4b234ce18b..c53d649862 --- a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.cc,v 1.1 2004/11/29 14:49:27 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterPerRegion.cc b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterPerRegion.cc old mode 100755 new mode 100644 index 3453c24eb0..d702f64125 --- a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterPerRegion.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterPerRegion.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterPerRegion.cc,v 1.1 2004/11/29 14:49:28 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/ParticlesBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/ParticlesBuilder.cc old mode 100755 new mode 100644 index 215a662e20..46004332f7 --- a/examples/extended/electromagnetic/TestEm2/src/ParticlesBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/ParticlesBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: ParticlesBuilder.cc,v 1.2 2004/11/24 13:18:03 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc index 4812c4908c..65f22e630f 100644 --- a/examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.6 2004/12/06 10:50:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: PhysicsList.cc,v 1.7 2005/05/08 16:12:53 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // @@ -46,7 +46,6 @@ #include "G4EmHadronBuilder.hh" #include "G4EmHighEnergyBuilder.hh" #include "G4EmQEDBuilder52.hh" -#include "G4EmQEDBuilder70.hh" #include "G4EmMuonBuilder52.hh" #include "G4EmHadronBuilder52.hh" #include "G4StepLimiterBuilder.hh" @@ -137,13 +136,6 @@ void PhysicsList::AddPhysicsList(const G4String& name) emBuilderIsRegisted = true; G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; - } else if (name == "standard70" && !emBuilderIsRegisted) { - RegisterPhysics(new G4EmQEDBuilder70()); - RegisterPhysics(new G4EmMuonBuilder()); - RegisterPhysics(new G4EmHadronBuilder()); - emBuilderIsRegisted = true; - G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; - } else if (name == "step_limit" && !stepLimiterIsRegisted) { RegisterPhysics(new G4StepLimiterBuilder()); G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; diff --git a/examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc index 0e85c24d52..924b81faa0 100644 --- a/examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.3 2004/11/29 14:49:28 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc index 0aa9bbc18f..c7e7cd82d4 100644 --- a/examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.2 2004/09/17 10:51:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/RunAction.cc b/examples/extended/electromagnetic/TestEm2/src/RunAction.cc index eb03cf2062..8aeea5ee11 100644 --- a/examples/extended/electromagnetic/TestEm2/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.13 2004/12/02 14:57:14 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: RunAction.cc,v 1.15 2005/06/08 14:26:10 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,14 +42,13 @@ #include "Randomize.hh" #ifdef G4ANALYSIS_USE -#include //for auto_ptr #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... RunAction::RunAction(DetectorConstruction* det, PrimaryGeneratorAction* kin) -:Det(det),Kin(kin) +:Det(det),Kin(kin),af(0),tree(0) { runMessenger = new RunActionMessenger(this); @@ -78,10 +77,15 @@ RunAction::RunAction(DetectorConstruction* det, PrimaryGeneratorAction* kin) #ifdef G4ANALYSIS_USE // Creating the analysis factory af = AIDA_createAnalysisFactory(); + if(!af) { + G4cout << " RunAction::RunAction() :" + << " problem creating the AIDA analysis factory." + << G4endl; + } #endif - histoName = "testem2.aida"; - histoType = "hbook"; + histoName[0] = "testem2"; + histoType = "hbook"; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -100,16 +104,27 @@ RunAction::~RunAction() void RunAction::bookHisto() { #ifdef G4ANALYSIS_USE - // Creating the tree factory - std::auto_ptr tf(af->createTreeFactory()); - + if(!af) return; + // Creating a tree mapped to an hbook file. + histoName[1] = histoName[0] + "." + histoType; G4bool readOnly = false; G4bool createNew = true; - tree = tf->create(histoName, histoType, readOnly, createNew, "uncompress"); - + G4String options = "--noErrors uncompress"; + AIDA::ITreeFactory* tf = af->createTreeFactory(); + tree = tf->create(histoName[1], histoType, readOnly, createNew, options); + delete tf; + if(!tree) { + G4cout << "RunAction::bookHisto() :" + << " problem creating the AIDA tree with " + << " storeName = " << histoName[1] + << " readOnly = " << readOnly + << " createNew = " << createNew + << G4endl; + return; + } // Creating a histogram factory, whose histograms will be handled by the tree - std::auto_ptr hf(af->createHistogramFactory(*tree)); + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); G4double Ekin = Kin->GetParticleGun()->GetParticleEnergy(); G4double dLradl = Det->GetdLradl(); @@ -152,6 +167,9 @@ void RunAction::bookHisto() histo[11]= hf->createHistogram1D("12","rms on cumul radial Edep (% of E inc)", nRbin,Rmin,Rmax); + + delete hf; + G4cout << "\n----> Histogram Tree is opened in " << histoName[1] << G4endl; #endif } @@ -162,7 +180,10 @@ void RunAction::cleanHisto() #ifdef G4ANALYSIS_USE tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) + G4cout << "\n----> Histogram Tree is saved in " << histoName[1] << G4endl; + delete tree; + tree = 0; #endif } diff --git a/examples/extended/electromagnetic/TestEm2/src/RunActionMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/RunActionMessenger.cc index 1fd305ade9..5225f640e3 100644 --- a/examples/extended/electromagnetic/TestEm2/src/RunActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/RunActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunActionMessenger.cc,v 1.2 2004/09/17 10:51:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc index 4c48b8ed48..d9b3d82942 100644 --- a/examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.3 2004/11/24 10:46:30 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc index 368d6c9962..5c991c5569 100644 --- a/examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.2 2004/09/17 10:51:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc index 6f850f3e1d..593cf05adb 100644 --- a/examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.cc,v 1.2 2004/09/17 10:51:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/VisManager.cc b/examples/extended/electromagnetic/TestEm2/src/VisManager.cc deleted file mode 100755 index 6b26946a19..0000000000 --- a/examples/extended/electromagnetic/TestEm2/src/VisManager.cc +++ /dev/null @@ -1,151 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.cc,v 1.2 2004/09/17 10:51:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/vis.mac b/examples/extended/electromagnetic/TestEm2/vis.mac index f272792afa..8f1d614d56 100644 --- a/examples/extended/electromagnetic/TestEm2/vis.mac +++ b/examples/extended/electromagnetic/TestEm2/vis.mac @@ -16,7 +16,7 @@ # Create a scene handler for a specific graphics system # Edit the next line(s) to choose another graphic system # -/vis/open DAWNFILE +##/vis/open DAWNFILE /vis/open OGLIX # # Draw scene diff --git a/examples/extended/electromagnetic/TestEm3/History b/examples/extended/electromagnetic/TestEm3/History index 845a8cc915..e86eb0a607 100644 --- a/examples/extended/electromagnetic/TestEm3/History +++ b/examples/extended/electromagnetic/TestEm3/History @@ -1,4 +1,4 @@ -$Id: History,v 1.65 2004/12/03 12:27:39 maire Exp $ +$Id: History,v 1.78 2005/06/01 10:48:39 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,44 @@ track of all tags. * Reverse chronological order (last date on top), please * --------------------------------------------------------- +01-06-05 mma (testem3-V07-00-08) +- HistoManager: option "--noErrors" for hbook + +20-05-05 mma (testem3-V07-00-07) +- forward and backward energy flow in geant3 + +17-05-05 mma (testem3-V07-00-06) +- forward and backward energy flow: SteppingAction + RunAction +- photon processes '52'. + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +15-03-05 mma (testem3-V07-00-05) +- remove He3 from predefined particles. +- PhysListEmStandard : treat Alpha as GenericIon + +01-03-05 mma (testem3-V07-00-04) +- HistoManager : - put a protection for the creation of analysis factory; + - file extension is fileType; +- HistoMessenger : new command setFileOption + +22-02-05 V.Ivant (testem3-V07-00-03) +- MaxStep : fix infinite loop + +02-02-05 mma +- SteppingAction : sum charged stepLenght, even if edep=0. + +11-01-05 mma (testem3-V07-00-02) +- SteppingAction : corrections for energy flow +- new macros linac.mac and geant3/linac.dat + +11-01-05 V.Ivant (testem3-V07-00-01) +- Optimise StepMax and SteppingAction + +07-01-05 mma (testem3-V07-00-00) +- update RunAction::PrintDedxTables() and ug3g4.F + 03-12-04 mma (testem3-V06-02-06) - update macros tbhec and lhcb diff --git a/examples/extended/electromagnetic/TestEm3/README b/examples/extended/electromagnetic/TestEm3/README index 53a9124534..e7130a4600 100644 --- a/examples/extended/electromagnetic/TestEm3/README +++ b/examples/extended/electromagnetic/TestEm3/README @@ -1,4 +1,4 @@ -$Id: README,v 1.22 2004/11/23 14:05:24 maire Exp $ +$Id: README,v 1.24 2005/05/18 15:28:37 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -122,54 +122,70 @@ $Id: README,v 1.22 2004/11/23 14:05:24 maire Exp $ ...etc........... where unit is the desired energy unit for that histo (see TestEm3.in). - histo 11 : longitudinal profile of energy deposit in absorber 1 (MeV) - histo 12 : longitudinal profile of energy deposit in absorber 2 (MeV) + histo 11 : longitudinal profile of energy deposit in absorber 1 (MeV/event) + histo 12 : longitudinal profile of energy deposit in absorber 2 (MeV/event) ...etc........... - histo 21 : forward energy flow of primary particle (MeV) - histo 22 : forward energy flow of all secondary particles (MeV) + histo 21 : forward energy flow (MeV/event) + histo 22 : backward energy flow (MeV/event) One can control the name of the histograms file with the command: - /testem/histo/setFileName name (default testem3.aida) + /testem/histo/setFileName name (default testem3.hbook) Note that, by default, histograms are disabled. To activate them, uncomment the flag G4ANALYSIS_USE in GNUmakefile. + Before compilation of the example it is optimal to clean up old files: + gmake histclean + gmake + + + 8- USING HISTOGRAMS - 8- Using histograms - ------------------- + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 8a - PI - By default the histograms are not activated. To activate histograms - the environment variable G4ANALYSIS_USE should be defined. For instance - uncomment the flag G4ANALYSIS_USE in GNUmakefile. + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi - To use histograms any of implementations of AIDA interfaces should - be available (see http://aida.freehep.org). + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin - A package including AIDA and extended interfaces also using Python - is PI, available from: http://cern.ch/pi . + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` - Once installed PI or PI-Lite in a specified local area $MYPY, it is - required to add the installation path to $PATH, i.e. for example, - for release 1.2.1 of PI: + 8b - OpenScientist + + OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist + + In OpenScientist, the AIDA implementation is the Lab package. + You have to "setup" this package before compiling (then with G4ANALYSIS_USE) + and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> setenv CMTPATH + csh> source /Lab//cmt/setup.csh + On UNIX with a sh flavoured shell : + sh> CMTPATH=;export CMTPATH + sh> . /Lab//cmt/setup.sh + On Windows : + DOS> set CMTPATH= + DOS> call /Lab//cmt/setup.bat - setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + You have to use the XML or root file formats ; producing hbook files is not + supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) + are readable by the interactive applications ; the Lab onx interactive + program or the OpenPAW program. - CERN users can use the PATH to the LCG area on AFS. - - Before compilation of the example it is optimal to clean up old - files: - - gmake histclean - gmake - - Before running the example the command should be issued: - - eval `aida-config --runtime csh` - - It is possible to choose the format of the output file with - histograms using UI command: - - /testem/histo/setFileType type - - The following types are available: hbook, root, xml. + With OpenPAW, someone can view the histograms with : + OS> opaw + opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 + opaw> h/plot 3 diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.cc b/examples/extended/electromagnetic/TestEm3/TestEm3.cc index 0dc5f89d7f..d91356cb2b 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.cc +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TestEm3.cc,v 1.15 2004/10/25 12:50:55 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: TestEm3.cc,v 1.17 2005/05/18 15:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,7 +42,7 @@ #include "HistoManager.hh" #ifdef G4VIS_USE -#include "VisManager.hh" +#include "G4VisExecutive.hh" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -72,14 +72,14 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif // set user action classes RunAction* runAct = new RunAction(detector,primary,histo); EventAction* evtAct = new EventAction(detector,runAct,histo); - SteppingAction* stpAct = new SteppingAction(detector,evtAct,histo); + SteppingAction* stpAct = new SteppingAction(detector,runAct,evtAct,histo); runManager->SetUserAction(runAct); runManager->SetUserAction(evtAct); diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.in b/examples/extended/electromagnetic/TestEm3/TestEm3.in index f04f0ff9c7..86261483f7 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.in +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.in @@ -1,4 +1,4 @@ -# $Id: TestEm3.in,v 1.18 2004/10/22 15:53:41 maire Exp $ +# $Id: TestEm3.in,v 1.20 2005/05/18 15:28:37 maire Exp $ # # Macro file for "exampleN03.cc" # (can be run in batch, without graphic) @@ -16,13 +16,14 @@ /gun/particle e- /gun/energy 1 GeV # -#/testem/histo/setFileName PblqArg.paw -#/testem/histo/setHisto 1 100 700. 1000. MeV #edep in absor1 -#/testem/histo/setHisto 2 100 0. 300. MeV #edep in absor2 -#/testem/histo/setHisto 11 52 0. 52. none #long. profile in absor1 -#/testem/histo/setHisto 12 52 0. 52. none #long. profile in absor2 -#/testem/histo/setHisto 21 102 0. 102. none #energy flow of primary -#/testem/histo/setHisto 22 102 0. 102. none #energy flow of secondaries +/testem/histo/setFileName PblqArg +/testem/histo/setFileType hbook +/testem/histo/setHisto 1 100 700. 1000. MeV #edep in absor1 +/testem/histo/setHisto 2 100 0. 300. MeV #edep in absor2 +/testem/histo/setHisto 11 52 0. 52. none #long. profile in absor1 +/testem/histo/setHisto 12 52 0. 52. none #long. profile in absor2 +/testem/histo/setHisto 21 102 0. 102. none #energy flow of primary +/testem/histo/setHisto 22 102 0. 102. none #energy flow of secondaries # /testem/event/printModulo 50 # diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.out b/examples/extended/electromagnetic/TestEm3/TestEm3.out index 5303cd01fc..6b4bfef7fe 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.out +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.out @@ -1,13 +1,11 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; -G4Material: Mean excitation energy is changed for CsI Iold= 491.166eV; Inew= 553.1 eV; Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... @@ -17,8 +15,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -37,56 +35,65 @@ userDetector->Construct() start. ------------------------------------------------------------- Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204322175.595 pc - ---> Element: Galactic Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm - ---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % ------------------------------------------------------------- World is registered to the default region. physicsList->Construct() start. +physicsList->ConstructParticle() start. physicsList->Construct() start. - -phot: Total cross sections from Sandia parametrisation. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm # /gun/particle e- /gun/energy 1 GeV # -#/testem/histo/setFileName PblqArg.paw -#/testem/histo/setHisto 1 100 700. 1000. MeV #edep in absor1 -#/testem/histo/setHisto 2 100 0. 300. MeV #edep in absor2 -#/testem/histo/setHisto 11 52 0. 52. none #long. profile in absor1 -#/testem/histo/setHisto 12 52 0. 52. none #long. profile in absor2 -#/testem/histo/setHisto 21 102 0. 102. none #energy flow of primary -#/testem/histo/setHisto 22 102 0. 102. none #energy flow of secondaries +/testem/histo/setFileName PblqArg +/testem/histo/setFileType hbook +/testem/histo/setHisto 1 100 700. 1000. MeV #edep in absor1 +----> SetHisto 1: Edep in absorber 1 (MeV); 100 bins from 700 MeV to 1000 MeV +/testem/histo/setHisto 2 100 0. 300. MeV #edep in absor2 +----> SetHisto 2: Edep in absorber 2 (MeV); 100 bins from 0 MeV to 300 MeV +/testem/histo/setHisto 11 52 0. 52. none #long. profile in absor1 +----> SetHisto 11: longit. profile of Edep (MeV/event) in absorber 1; 52 bins from 0 none to 52 none +/testem/histo/setHisto 12 52 0. 52. none #long. profile in absor2 +----> SetHisto 12: longit. profile of Edep (MeV/event) in absorber 2; 52 bins from 0 none to 52 none +/testem/histo/setHisto 21 102 0. 102. none #energy flow of primary +----> SetHisto 21: Forward energy flow (MeV/event); 102 bins from 0 none to 102 none +/testem/histo/setHisto 22 102 0. 102. none #energy flow of secondaries +----> SetHisto 22: Backward energy flow (MeV/event); 102 bins from 0 none to 102 none # /testem/event/printModulo 50 # /run/beamOn 100 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary algorithm is active with facrange= 0.2 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -97,8 +104,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -106,9 +113,9 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -117,15 +124,18 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 Scaling relation is used to proton dE/dx and range - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -134,9 +144,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -151,9 +161,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -202,19 +212,19 @@ Start closing geometry. G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 1 kByte - Total CPU time elapsed for geometry optimisation: 0 seconds + Total CPU time elapsed for geometry optimisation: 0.01 seconds Voxelisation: top CPU users: Percent Total CPU System CPU Memory Volume ------- ---------- ---------- -------- ---------- + 100.00 0.01 0.00 0k Layer 0.00 0.00 0.00 2k Calorimeter - 0.00 0.00 0.00 0k Layer Voxelisation: top memory users: Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- 91.70 1k 1 50 50 0.00 Calorimeter - 8.30 0k 1 3 4 0.00 Layer + 8.30 0k 1 3 4 0.01 Layer ### Run 0 start. --------- Ranecu engine status --------- @@ -229,19 +239,28 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=45.21s Real=54.57s Sys=5.93s + User=108.61s Real=116.66s Sys=6.64s ------------------------------------------------------------ material Total Edep sqrt(E0(GeV))*rmsE/Emean total tracklen - Lead: 809.7 MeV +- 14.34 MeV 1.771 +- 0.1771 % 56 cm +- 1.08 cm -liquidArgon: 180.62 MeV +- 13.92 MeV 7.706 +- 0.7706 % 89.4 cm +- 7.09 cm + Lead: 806.1 MeV +- 16.85 MeV 2.09 +- 0.209 % 55.8 cm +- 1.31 cm +liquidArgon: 183.68 MeV +- 15.11 MeV 8.225 +- 0.8225 % 91 cm +- 7.82 cm ------------------------------------------------------------ + Energy deposition from Energy flow balance : + material Total Edep Forward Edep Backward Edep + + Lead: 811.1 MeV 801.1 MeV 9.995 MeV +liquidArgon: 186.2 MeV 196.2 MeV -9.995 MeV + +------------------------------------------------------------ + + --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 680049547, 1607879973 + Current couple of seeds = 1565724203, 225741664 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm3/atlashec.mac b/examples/extended/electromagnetic/TestEm3/atlashec.mac index 0448092b39..b138698672 100644 --- a/examples/extended/electromagnetic/TestEm3/atlashec.mac +++ b/examples/extended/electromagnetic/TestEm3/atlashec.mac @@ -1,4 +1,4 @@ -# $Id: atlashec.mac,v 1.1 2004/12/03 12:27:39 maire Exp $ +# $Id: atlashec.mac,v 1.2 2005/03/01 17:55:19 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -19,7 +19,8 @@ # /run/initialize # -/testem/histo/setFileName 10gev.paw +/testem/histo/setFileName 10gev +/testem/histo/setFileType hbook /testem/histo/setHisto 1 100 0. 1000. MeV /testem/histo/setHisto 2 100 9. 10. GeV # diff --git a/examples/extended/electromagnetic/TestEm3/geant3/README b/examples/extended/electromagnetic/TestEm3/geant3/README index ce70db8b98..5b28cf49ae 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/README +++ b/examples/extended/electromagnetic/TestEm3/geant3/README @@ -26,12 +26,12 @@ histo 2 : energy deposit in absorber 2 ...etc........... - histo 11 : longitudinal profile of energy deposit in absorber 1 (MeV) - histo 12 : longitudinal profile of energy deposit in absorber 2 (MeV) + histo 11 : longitudinal profile of energy deposit in absorber 1 (MeV/event) + histo 12 : longitudinal profile of energy deposit in absorber 2 (MeV/event) ...etc........... - histo 21 : forward energy flow of primary particle (MeV) - histo 22 : forward energy flow of all secondary particles (MeV) + histo 21 : forward energy flow (MeV/event) + histo 22 : backward energy flow (MeV/event) One can control the binning of the histograms with the data card: *HISTO id1 nbBins valMin valMax valUnit diff --git a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/README b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/README index 3c55e98038..01a965e183 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/README +++ b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/README @@ -2,7 +2,7 @@ This program compare the Geant3 and Geant4 dE/dx tables. The Geant4 values are read as ffread data cards, as they are printed out by TestEm3, according the standard Geant3 binning. -One must complete by hand the data cards KINE and MATE; see the file iron.dat +One must complete by hand the data cards KINE and MATE; see the file lead.dat as an example. The Geant3 values are computed within this program. The g4-g3 differences are ploted in the file plmat.paw @@ -19,5 +19,5 @@ The g4-g3 differences are ploted in the file plmat.paw The program will ask: G3 > gives the filename of the data cards to be read: - iron.dat (XXX.dat) + lead.dat (XXX.dat) diff --git a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/gmakeB b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/gmakeB index 82df0e09d6..6d412bc276 100755 --- a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/gmakeB +++ b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/gmakeB @@ -26,7 +26,7 @@ chmod +x $name.xb # # cleanup # -rm *.o +rm -f *.o echo 'done' exit diff --git a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/gmakeT b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/gmakeT index 2bbc5ead3e..554236cc0e 100755 --- a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/gmakeT +++ b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/gmakeT @@ -25,7 +25,7 @@ chmod +x $name.xt # # cleanup # -rm *.o +rm -f *.o echo 'done' exit diff --git a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/lead.dat b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/lead.dat new file mode 100644 index 0000000000..8ab5eaa75c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/lead.dat @@ -0,0 +1,27 @@ +LIST +C +C dE/dx (MeV/cm) for proton in Lead +C +KINE 14 (proton) +MATE 8 (Lead) +ERAN 1.00e-05 (ekmin) 1.00e+04 (ekmax) 90 (nekbin) +CUTS 1.00e+04 (cutgam) 1.00e+04 (cutele) +G4VAL + 5.528685e+02 6.127840e+02 6.785562e+02 7.507710e+02 8.296426e+02 + 9.150847e+02 1.006471e+03 1.102258e+03 1.199429e+03 1.292777e+03 + 1.374216e+03 1.432700e+03 1.455776e+03 1.433706e+03 1.365147e+03 + 1.260313e+03 1.137484e+03 1.014631e+03 9.028520e+02 8.054591e+02 + 7.208861e+02 6.459676e+02 5.779059e+02 5.149295e+02 4.607294e+02 + 4.071154e+02 3.560801e+02 3.088455e+02 2.660315e+02 2.280696e+02 + 1.971857e+02 1.673380e+02 1.420450e+02 1.209950e+02 1.032981e+02 + 8.824181e+01 7.535087e+01 6.430673e+01 5.487526e+01 4.686418e+01 + 4.010323e+01 3.443681e+01 2.972234e+01 2.583061e+01 2.264615e+01 + 2.006739e+01 1.800608e+01 1.638637e+01 1.514349e+01 1.422226e+01 + 1.357556e+01 1.316281e+01 1.294872e+01 1.290223e+01 1.299448e+01 + 1.318863e+01 1.345990e+01 1.378912e+01 1.415988e+01 1.455855e+01 + 1.497417e+01 1.539817e+01 1.582409e+01 1.624716e+01 1.666402e+01 + 1.707233e+01 1.747057e+01 1.785779e+01 1.823346e+01 1.859732e+01 + 1.894932e+01 1.928951e+01 1.961805e+01 1.993513e+01 2.024099e+01 + 2.053593e+01 2.082027e+01 2.109442e+01 2.135884e+01 2.161407e+01 + 2.186077e+01 2.209934e+01 2.232973e+01 2.255200e+01 2.276635e+01 + 2.297317e+01 2.317301e+01 2.336650e+01 2.355433e+01 2.373721e+01 diff --git a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/ug3g4.F b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/ug3g4.F index 62e55bce9d..b256cf1f49 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/ug3g4.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/ug3g4.F @@ -7,6 +7,7 @@ #include "ugmate.inc" #include "ggvalues.inc" * + dimension dum(5) * * *** fetch Geant3 tables call gftmat(imat,ikine,'LOSS',nekbin,elow,g3value,dum,idum) @@ -17,11 +18,16 @@ call HBOOKB (2,'abs((g4-g3)/g3) in percent',nekbin,elow,0.) * * *** compute difference + print 750 do i=1,nekbin dif = 100*(g4value(i)-g3value(i))/g3value(i) call hfill (1, elow(i), 0., dif) call hfill (2, elow(i), 0., abs(dif)) - print *,i,elow(i),g4value(i),g3value(i), 'dif(%)=',dif - enddo + print 751,i,elow(i),g4value(i),g3value(i),dif + enddo +* + 750 format(/,6X,'Tkin (GeV)',3X,'G4 (MeV/cm)',3X,'G3 (MeV/cm)', + + 4X,'G4-G3 (%)',/) + 751 format(1X,I3, E12.4, 2X, E12.4, 2X, E12.4, 2X, E12.4) * END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/uginit.F b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/uginit.F index 8ce88d0e3e..8447f6508d 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/uginit.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/uginit.F @@ -42,6 +42,6 @@ CALL GPRINT('MATE',0) * * *** ready for geant3/geant4 comparison - call UG3G4 + call UG3G4 * END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/uglast.F b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/uglast.F index 29341658e8..a01038d709 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/uglast.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/g4mat/src/uglast.F @@ -3,7 +3,7 @@ * * Termination routine to print histograms and statistics * -* +* * *** geant termination CALL GLAST * diff --git a/examples/extended/electromagnetic/TestEm3/geant3/include/celoss.inc b/examples/extended/electromagnetic/TestEm3/geant3/include/celoss.inc index 43d3dbcb68..93c5299d14 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/include/celoss.inc +++ b/examples/extended/electromagnetic/TestEm3/geant3/include/celoss.inc @@ -2,3 +2,6 @@ COMMON/CELOSS/ EdepAbs(MaxAbs),TrckAbs(MaxAbs), & sumEdep(MaxAbs),sumTrck(MaxAbs), & su2Edep(MaxAbs),su2Trck(MaxAbs) + + PARAMETER (MaxPlanes = 500) + COMMON/EFLOW/ Eforw(MaxPlanes),Eback(MaxPlanes), Idold diff --git a/examples/extended/electromagnetic/TestEm3/geant3/linac.dat b/examples/extended/electromagnetic/TestEm3/geant3/linac.dat new file mode 100644 index 0000000000..2073ffb2df --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/geant3/linac.dat @@ -0,0 +1,30 @@ +FILE linac.hbook +LIST +C +C linac/ecal +C +CALOR 6 (nbAbs) 30 (nbLay) 30. (calorYZ) 0. (field) +MATE 11 (W) 12 (G10) 10 (Si) 11 (W) 10 (Si) 12 (G10) +THICK 0.28 (cm) 0.21 (cm) 0.0525 (cm) 0.28 (cm) 0.0525 (cm) 0.21 (cm) +C +AUTO 0 +LOSS 1 +HADR 0 +ABAN 0 +C +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*100.0e-6 (dcute/m) +C +KINE 5 (muplus) 5.0 (GeV) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) +*HISTO 3 (idh) 100 (nbins) 0. (Emin) 20. (Emax) 1.e-3 (MeV) +*HISTO 5 (idh) 100 (nbins) 0. (Emin) 20. (Emax) 1.e-3 (MeV) +*HISTO 13 (idh) 32 (nbins) 0. 32. (layers) +*HISTO 15 (idh) 32 (nbins) 0. 32. (layers) +*HISTO 21 (idh) 182 (nbins) 0. 182. (planes) +*HISTO 22 (idh) 182 (nbins) 0. 182. (planes) +C +SWIT 0 (drawCharg) +C +DEBUG 10 5 100 +TRIG 1000 +END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm3/geant3/src/gukine.F index 964ed5f0dc..4478a9ba2f 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/gukine.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/gukine.F @@ -50,10 +50,6 @@ * CALL GSKINE(PLAB,IKINE,NVERT,0,0,NT) * -* *** histo of energy flow - ih = 2*MaxAbs + 1 - if (histo(ih)) call hfill (ih, 1., 0., pkine(1)/(aMeV*nevent)) -* * *** Kinematics debug IF (IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0) * diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/gustep.F b/examples/extended/electromagnetic/TestEm3/geant3/src/gustep.F index 2d603954db..0a35a2dfd8 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/gustep.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/gustep.F @@ -35,13 +35,20 @@ ENDIF * * *** Energy flow - IF ((NUMED.LE.NbAbsor).and.(INWVOL.EQ.2)) THEN - plane = 1. + NbAbsor*(layer-1) + numed - Eleav = gekin - if (ipart.eq.2) Eleav = gekin + 2*emass - ih = 2*MaxAbs + 1 - if (istak.gt.0) ih = 2*MaxAbs + 2 - if (histo(ih)) call hfill (ih, plane, 0., Eleav/(aMeV*nevent)) + IF (NUMED.LE.NbAbsor) THEN + Idnow = NbAbsor*(layer-1) + numed + Eflow = gekin + if (ipart.eq.2) Eflow = gekin + 2*emass +* entrance in an absorber + if (INWVOL.eq.1) THEN + if (Idnow.gt.Idold) Eforw(Idnow) = Eforw(Idnow) + Eflow + if (Idnow.lt.Idold) Eback(Idnow+1) = Eback(Idnow+1) + Eflow + Idold = Idnow + endif +* last plane: forward leakage + if ((INWVOL.eq.2).and.(Idnow.eq.NbAbsor*NbLayer)) THEN + Eforw(Idnow+1) = Eforw(Idnow+1) + Eflow + endif ENDIF * END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/gutrak.F b/examples/extended/electromagnetic/TestEm3/geant3/src/gutrak.F new file mode 100644 index 0000000000..8ba04f2975 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/gutrak.F @@ -0,0 +1,21 @@ + SUBROUTINE GUTRAK +* +* User routine to control tracking of one track +* Called by GTREVE +#include "geant321/gctmed.inc" +#include "geant321/gcvolu.inc" + +#include "calor.inc" +#include "celoss.inc" +* +* *** initialisation track per track +* unique Id for absorber+layer + Idold = 0 + if (numed.le.NbAbsor) then + layer = number(nlevel-1) + Idold = NbAbsor*(layer-1) + numed + endif +* + CALL GTRACK +* + END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F index 4427886ce4..0eb1ae4412 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F @@ -42,10 +42,23 @@ 98 FORMAT(A4,A2,A25) CALL GFFGO -* +* +* *** check size of arrays + if (NbAbsor.gt.MaxAbs) then + write (6,51) NbAbsor, MaxAbs + NbAbsor = MaxAbs + endif + if (NbAbsor*NbLayer.ge.MaxPlanes) then + ntrunc = (MaxPlanes-1)/NbAbsor + write (6,52) NbLayer, ntrunc + NbLayer = ntrunc + endif +51 FORMAT (/,5x,'warning (uginit): NbAbsor= ',I2,' truncated to ',I2) +52 FORMAT (/,5x,'warning (uginit): NbLayer= ',I3,' truncated to ',I3) + write(6,99) fileName 99 FORMAT(/,15x,'histogram file --> Name: ',A25) -* + CALL GZINIT CALL GPART CALL GPIONS @@ -73,5 +86,10 @@ su2Edep(k) = 0. su2Trck(k) = 0. enddo +* + do k=1,MaxPlanes + Eforw(k) = 0. + Eback(k) = 0. + enddo * END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F index b551fa3d09..3932c955ee 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F @@ -9,8 +9,12 @@ #include "celoss.inc" #include "histo.inc" * + DIMENSION EdepForw(MaxAbs), EdepBack(MaxAbs), EdepTot(MaxAbs) +* CHARACTER*20 matnam - CHARACTER*4 unitdm,unitdr,unitlm,unitlr + CHARACTER*4 unit1,unit2,unit3 +* + data aMeV /1.e-3/ * * *** mean energy deposit and track length PRINT 749 @@ -24,11 +28,55 @@ aveTrck = fnorm*sumTrck(k) rmsTrck = fnorm*sqrt(abs(IEVENT*su2Trck(k)-sumTrck(k)**2)) * - CALL GEVKEV (aveEdep,Edmean,unitdm) - CALL GEVKEV (rmsEdep,Edrms ,unitdr) - PRINT 752,k,matnam,Edmean,unitdm,Edrms,unitdr,aveTrck,rmsTrck + CALL GEVKEV (aveEdep,Edmean,unit1) + CALL GEVKEV (rmsEdep,Edrms ,unit2) + PRINT 752,k,matnam,Edmean,unit1,Edrms,unit2,aveTrck,rmsTrck enddo PRINT 749 +* +* *** Energy flow + Iplmax = NbAbsor*NbLayer + 1 + do k=1,Iplmax + fk = k + Eforw(k) = Eforw(k)*fnorm + Eback(k) = Eback(k)*fnorm + ih = 2*MaxAbs + 1 + if (histo(ih)) call hfill (ih, fk, 0., Eforw(k)/aMeV) + ih = 2*MaxAbs + 2 + if (histo(ih)) call hfill (ih, fk, 0., Eback(k)/aMeV) + enddo +* +* *** Energy deposit from energy flow balance + do k=1,NbAbsor + EdepForw(k) = 0. + EdepBack(k) = 0. + EdepTot(k) = 0. + enddo +* + Idmax = NbAbsor*NbLayer + do k=1,Idmax + forward = Eforw(k) - Eforw(k+1) + backward = Eback(k+1) - Eback(k) + iAbsor = mod(k,NbAbsor) + if (iAbsor.eq.0) iAbsor = NbAbsor + EdepForw(iAbsor) = EdepForw(iAbsor) + forward + EdepBack(iAbsor) = EdepBack(iAbsor) + backward + EdepTot (iAbsor) = EdepTot (iAbsor) + forward + backward + enddo + + PRINT 761 + do k=1,NbAbsor + call GFMATE (materAbs(k),matnam,dua,duz,dud,dur,dui,udu,idu) + CALL GEVKEV (abs(EdepTot (k)),Edtot,unit1) + CALL GEVKEV (abs(EdepForw(k)),Edfor,unit2) + CALL GEVKEV (abs(EdepBack(k)),Edbak,unit3) + if (EdepTot (k).lt.0.) Edtot = -Edtot + if (EdepForw(k).lt.0.) Edfor = -Edfor + if (EdepBack(k).lt.0.) Edbak = -Edbak + PRINT 762,k,matnam,Edtot,unit1,Edfor,unit2,Edbak,unit3 + enddo + PRINT 749 +* * * *** geant termination CALL GLAST @@ -42,9 +90,13 @@ * * * *** formats - 749 FORMAT(/ ,60(1H-),/) + 749 FORMAT(/, 60(1H-),/) 750 FORMAT(1X,'Nb of events:',I6) 751 FORMAT(1X,'AbsNo Material',5X,'Energy deposit',14X,'Trck length') 752 FORMAT(I5,3X,A10,F8.3,A4,' +- ',F6.2,A4,F9.3,' cm +- ',F6.2,' cm') + 761 FORMAT(' Energy deposition from energy flow balance:',/,/, + & 1X,'AbsNo Material',5X, + & 'Total Edep',5X,'Forward Edep',2X,'Backward Edep') + 762 FORMAT(I5,3X,A10,F10.3,A4,1X,F10.3,A4,1X,F10.3,A4) * END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F index 2e9f8a5e8f..e4ce5de656 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F @@ -16,11 +16,11 @@ + title = 'Edep in absorber '//char(ichar('0')+(idhist)) if ((idhist.gt.MaxAbs).and.(idhist.lt.2*MaxAbs)) + title = 'Edep long. profile in absorber ' - + //char(ichar('0')+(idhist-MaxAbs))//' (MeV)' + + //char(ichar('0')+(idhist-MaxAbs))//' (MeV/event)' if (idhist.eq.(2*MaxAbs+1)) - + title = 'Forward energy flow of primary particle (MeV)' + + title = 'Forward energy flow (MeV/event)' if (idhist.eq.(2*MaxAbs+2)) - + title = 'Forward energy flow of secondary particles (MeV)' + + title = 'Backward energy flow (MeV/event)' * call hbook1(idhist,title,nbBins,valmin,valmax,0.) * diff --git a/examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh index 887c1929b2..695a7e8408 100644 --- a/examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.11 2004/11/23 14:05:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/DetectorMessenger.hh index fc48b2ceea..6f80552c29 100644 --- a/examples/extended/electromagnetic/TestEm3/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.7 2004/11/23 14:05:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/EmAcceptance.hh b/examples/extended/electromagnetic/TestEm3/include/EmAcceptance.hh index 1a2403e6cb..fbf533de18 100644 --- a/examples/extended/electromagnetic/TestEm3/include/EmAcceptance.hh +++ b/examples/extended/electromagnetic/TestEm3/include/EmAcceptance.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmAcceptance.hh,v 1.3 2004/10/20 14:32:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/EventAction.hh b/examples/extended/electromagnetic/TestEm3/include/EventAction.hh index 991c0df4a5..950cdf8db4 100644 --- a/examples/extended/electromagnetic/TestEm3/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.9 2004/10/22 15:53:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh index 13fc4cb836..5d60ac2bb6 100644 --- a/examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm3/include/HistoManager.hh index c93b7b5628..6adb36843d 100644 --- a/examples/extended/electromagnetic/TestEm3/include/HistoManager.hh +++ b/examples/extended/electromagnetic/TestEm3/include/HistoManager.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.hh,v 1.5 2004/10/22 15:53:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoManager.hh,v 1.6 2005/03/01 17:55:19 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -36,7 +36,6 @@ namespace AIDA { class IAnalysisFactory; class ITree; - class IHistogramFactory; class IHistogram1D; } @@ -54,8 +53,9 @@ class HistoManager HistoManager(); ~HistoManager(); - void SetFileName (const G4String& name) { fileName = name;}; - void SetFileType (const G4String& name) { fileType = name;}; + void SetFileName (const G4String& name) { fileName[0] = name;}; + void SetFileType (const G4String& name) { fileType = name;}; + void SetFileOption (const G4String& name) { fileOption = name;}; void book(); void save(); void SetHisto (G4int,G4int,G4double,G4double,const G4String& unit="none"); @@ -69,11 +69,11 @@ class HistoManager private: - G4String fileName; + G4String fileName[2]; G4String fileType; + G4String fileOption; AIDA::IAnalysisFactory* af; AIDA::ITree* tree; - AIDA::IHistogramFactory* hf; AIDA::IHistogram1D* histo[MaxHisto]; G4bool exist[MaxHisto]; G4String Label[MaxHisto]; diff --git a/examples/extended/electromagnetic/TestEm3/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/HistoMessenger.hh index 63ff689ad6..9a25d2b48c 100644 --- a/examples/extended/electromagnetic/TestEm3/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/HistoMessenger.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.hh,v 1.2 2004/07/19 16:10:48 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.hh,v 1.3 2005/03/01 17:55:19 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -57,7 +57,8 @@ class HistoMessenger: public G4UImessenger G4UIdirectory* histoDir; G4UIcmdWithAString* factoryCmd; - G4UIcmdWithAString* typeCmd; + G4UIcmdWithAString* typeCmd; + G4UIcmdWithAString* optionCmd; G4UIcommand* histoCmd; G4UIcmdWithAnInteger* rmhistoCmd; diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh index 82e1462b6a..cb309fd1f3 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmG4v52.hh,v 1.2 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm3/include/PhysListEmStandard.hh index 8c62fe9f0a..d07933a6c1 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysListEmStandard.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.hh,v 1.3 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh index d90fce93c1..6514103d74 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.5 2004/11/23 14:05:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh index a3483783a1..1bc5cfb159 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.2 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh index 857d3286a0..8c6cd37651 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.3 2004/10/25 12:50:58 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh index 7c89f426ea..c9ebfe944c 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.2 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/RunAction.hh b/examples/extended/electromagnetic/TestEm3/include/RunAction.hh index 1b654545c3..9197694cdf 100644 --- a/examples/extended/electromagnetic/TestEm3/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/RunAction.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.hh,v 1.14 2004/10/22 15:53:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RunAction.hh,v 1.15 2005/05/18 15:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -35,6 +35,8 @@ #include "G4ThreeVector.hh" #include "globals.hh" +#include + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class PrimaryGeneratorAction; @@ -57,6 +59,9 @@ class RunAction : public G4UserRunAction void fillPerEvent(G4int,G4double,G4double); + void sumForwEflow(G4int plane, G4double Eflow) {forwEflow[plane] += Eflow;}; + void sumBackEflow(G4int plane, G4double Eflow) {backEflow[plane] += Eflow;}; + void PrintDedxTables(); // Acceptance parameters @@ -66,15 +71,18 @@ class RunAction : public G4UserRunAction G4double GetLimitEdep(G4int i) const {return limittrue[i];}; private: - - G4double sumEAbs [MaxAbsor], sum2EAbs [MaxAbsor]; - G4double sumLAbs [MaxAbsor], sum2LAbs [MaxAbsor]; - + DetectorConstruction* Detector; PrimaryGeneratorAction* Primary; RunActionMessenger* runMessenger; HistoManager* histoManager; + G4double sumEAbs [MaxAbsor], sum2EAbs [MaxAbsor]; + G4double sumLAbs [MaxAbsor], sum2LAbs [MaxAbsor]; + + std::vector forwEflow; + std::vector backEflow; + G4double edeptrue [MaxAbsor]; G4double rmstrue [MaxAbsor]; G4double limittrue[MaxAbsor]; diff --git a/examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh index 7618bf7695..63a22af4c4 100644 --- a/examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunActionMessenger.hh,v 1.8 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/StepMax.hh b/examples/extended/electromagnetic/TestEm3/include/StepMax.hh index caba2d0992..92e17649d2 100644 --- a/examples/extended/electromagnetic/TestEm3/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm3/include/StepMax.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: StepMax.hh,v 1.1 2004/11/24 11:25:01 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: StepMax.hh,v 1.6 2005/03/01 17:55:19 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,34 +42,59 @@ class StepMaxMessenger; class StepMax : public G4VDiscreteProcess { - public: +public: - StepMax(const G4String& processName = "UserStepMax"); - ~StepMax(); + StepMax(const G4String& processName = "UserStepMax"); + ~StepMax(); - G4bool IsApplicable(const G4ParticleDefinition&); + G4bool IsApplicable(const G4ParticleDefinition&); - void SetStepMax(G4int,G4double); + void SetStepMax(G4int, G4double); - G4double GetStepMax(G4int k) {return stepMax[k];}; + G4double GetStepMax(G4int k) {return stepMax[k];}; - G4double PostStepGetPhysicalInteractionLength( const G4Track& track, + G4double PostStepGetPhysicalInteractionLength( const G4Track& track, G4double previousStepSize, G4ForceCondition* condition); - G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); + G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); - G4double GetMeanFreePath(const G4Track&, G4double,G4ForceCondition*) + G4double GetMeanFreePath(const G4Track&, G4double,G4ForceCondition*) {return DBL_MAX;}; - private: +private: - G4double stepMax[MaxAbsor]; + G4double stepMax[MaxAbsor]; - StepMaxMessenger* pMess; + StepMaxMessenger* pMess; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +inline +G4double StepMax::PostStepGetPhysicalInteractionLength( const G4Track& aTrack, + G4double, G4ForceCondition* condition) +{ + // condition is set to "Not Forced" + *condition = NotForced; + + G4double limit = DBL_MAX; + G4int n = aTrack.GetVolume()->GetCopyNo(); + if (n < MaxAbsor) limit = stepMax[n]; + return limit; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline +G4VParticleChange* StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&) +{ + // do nothing + aParticleChange.Initialize(aTrack); + return &aParticleChange; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif diff --git a/examples/extended/electromagnetic/TestEm3/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/StepMaxMessenger.hh index a3f5207493..2f72e706b8 100644 --- a/examples/extended/electromagnetic/TestEm3/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.1 2004/11/24 11:25:01 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh index 65262f8f03..3ce2ad8eb5 100644 --- a/examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: SteppingAction.hh,v 1.5 2004/10/22 15:53:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: SteppingAction.hh,v 1.6 2005/05/18 15:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -33,6 +33,7 @@ #include "globals.hh" class DetectorConstruction; +class RunAction; class EventAction; class HistoManager; @@ -41,7 +42,8 @@ class HistoManager; class SteppingAction : public G4UserSteppingAction { public: - SteppingAction(DetectorConstruction*, EventAction*, HistoManager*); + SteppingAction(DetectorConstruction*, RunAction*, EventAction*, + HistoManager*); ~SteppingAction(); void UserSteppingAction(const G4Step*); @@ -50,8 +52,11 @@ class SteppingAction : public G4UserSteppingAction private: DetectorConstruction* detector; + RunAction* runAct; EventAction* eventAct; - HistoManager* histoManager; + HistoManager* histoManager; + + G4int Idold; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh index fcf0230977..a1f9ca80d0 100644 --- a/examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.4 2004/10/20 14:32:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm3/linac.mac b/examples/extended/electromagnetic/TestEm3/linac.mac new file mode 100644 index 0000000000..3ef29b28e3 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/linac.mac @@ -0,0 +1,40 @@ +# $Id: linac.mac,v 1.2 2005/03/01 17:55:19 maire Exp $ +# +# Macro file for "TestEm3" +# +# Linac/Ecal; +# +/control/verbose 2 +/run/verbose 1 +# +/testem/det/setNbOfLayers 30 +/testem/det/setNbOfAbsor 6 +/testem/det/setAbsor 1 Tungsten 2.8 mm +/testem/det/setAbsor 2 NemaG10 2.1 mm +/testem/det/setAbsor 3 Silicon 0.525 mm +/testem/det/setAbsor 4 Tungsten 2.8 mm +/testem/det/setAbsor 5 Silicon 0.525 mm +/testem/det/setAbsor 6 NemaG10 2.1 mm +/testem/det/setSizeYZ 30 cm +# +/testem/phys/addPhysics standard +/testem/phys/setCuts 1 mm +# +/run/initialize +# +/testem/histo/setFileName linac +/testem/histo/setFileType hbook +/testem/histo/setHisto 3 100 0. 20. MeV #edep in absor3 +/testem/histo/setHisto 5 100 0. 20. MeV #edep in absor5 +/testem/histo/setHisto 13 32 0. 32. none #long. profile in absor3 +/testem/histo/setHisto 15 32 0. 32. none #long. profile in absor5 +/testem/histo/setHisto 21 182 0. 182. none #energy flow of primary +/testem/histo/setHisto 22 182 0. 182. none #energy flow of secondaries +# +/gun/particle mu+ +/gun/energy 5 GeV +# +/testem/event/printModulo 1000 +# +/run/beamOn 10000 + diff --git a/examples/extended/electromagnetic/TestEm3/run01.mac b/examples/extended/electromagnetic/TestEm3/run01.mac index 139953798d..8e509c3da9 100644 --- a/examples/extended/electromagnetic/TestEm3/run01.mac +++ b/examples/extended/electromagnetic/TestEm3/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.14 2004/12/02 16:13:46 vnivanch Exp $ +# $Id: run01.mac,v 1.15 2005/03/01 17:55:19 maire Exp $ # # Macro file for "exampleN03.cc" # (can be run in batch, without graphic) @@ -18,7 +18,8 @@ /gun/particle e- /gun/energy 1 GeV # -/testem/histo/setFileName run01.paw +/testem/histo/setFileName run01 +/testem/histo/setFileType hbook /testem/histo/setHisto 1 100 700. 1000. MeV /testem/histo/setHisto 2 100 0. 300. MeV # diff --git a/examples/extended/electromagnetic/TestEm3/run02.mac b/examples/extended/electromagnetic/TestEm3/run02.mac index af266d759f..f93561d910 100644 --- a/examples/extended/electromagnetic/TestEm3/run02.mac +++ b/examples/extended/electromagnetic/TestEm3/run02.mac @@ -1,4 +1,4 @@ -# $Id: run02.mac,v 1.12 2004/10/20 14:32:28 maire Exp $ +# $Id: run02.mac,v 1.13 2005/03/01 17:55:19 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -24,7 +24,8 @@ /gun/particle e- /gun/energy 1 GeV # -/testem/histo/setFileName run02.paw +/testem/histo/setFileName run02 +/testem/histo/setFileType hbook /testem/histo/setHisto 1 100 900. 1000. MeV /testem/histo/setHisto 2 100 0. 50. MeV # diff --git a/examples/extended/electromagnetic/TestEm3/run15.mac b/examples/extended/electromagnetic/TestEm3/run15.mac index 0d9ec26265..6d7d9ddf83 100644 --- a/examples/extended/electromagnetic/TestEm3/run15.mac +++ b/examples/extended/electromagnetic/TestEm3/run15.mac @@ -1,4 +1,4 @@ -# $Id: run15.mac,v 1.12 2004/10/20 14:32:28 maire Exp $ +# $Id: run15.mac,v 1.13 2005/03/01 17:55:19 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -25,7 +25,8 @@ /gun/particle mu+ /gun/energy 20 GeV # -/testem/histo/setFileName run15.paw +/testem/histo/setFileName run15 +/testem/histo/setFileType hbook /testem/histo/setHisto 1 100 0. 2. GeV /testem/histo/setHisto 2 100 0. 100. MeV # diff --git a/examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc index ea6f9f8ff3..6212ff1c9e 100644 --- a/examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.cc,v 1.13 2004/11/23 14:05:30 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc index 98e0f993c6..039dcae0ef 100644 --- a/examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.7 2004/11/23 14:05:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/EmAcceptance.cc b/examples/extended/electromagnetic/TestEm3/src/EmAcceptance.cc index 42157cd7fa..22da9fd2f3 100644 --- a/examples/extended/electromagnetic/TestEm3/src/EmAcceptance.cc +++ b/examples/extended/electromagnetic/TestEm3/src/EmAcceptance.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmAcceptance.cc,v 1.5 2004/12/02 16:13:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/EventAction.cc b/examples/extended/electromagnetic/TestEm3/src/EventAction.cc index afb8eb6ea3..58734e82a2 100644 --- a/examples/extended/electromagnetic/TestEm3/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/EventAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: EventAction.cc,v 1.12 2004/11/23 14:05:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: EventAction.cc,v 1.13 2005/06/01 10:48:39 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -88,9 +88,9 @@ void EventAction::EndOfEventAction(const G4Event* evt) for (G4int i=0; iGetTrajectoryContainer()))[i]); - if (drawFlag == "all") trj->DrawTrajectory(1000); + if (drawFlag == "all") trj->DrawTrajectory(100); else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) - trj->DrawTrajectory(1000); + trj->DrawTrajectory(100); } } } diff --git a/examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc index b02ab5be1d..c3a853c844 100644 --- a/examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.3 2004/10/20 14:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm3/src/HistoManager.cc index 0c6ab25c91..4de08f6597 100644 --- a/examples/extended/electromagnetic/TestEm3/src/HistoManager.cc +++ b/examples/extended/electromagnetic/TestEm3/src/HistoManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.cc,v 1.7 2004/12/03 12:27:41 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: HistoManager.cc,v 1.10 2005/06/01 10:48:40 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,23 +31,27 @@ #include "G4UnitsTable.hh" #ifdef G4ANALYSIS_USE - #include //for auto_ptr - #include "AIDA/AIDA.h" +#include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... HistoManager::HistoManager() -:tree(0),hf(0),factoryOn(false) +:af(0),tree(0),factoryOn(false) { #ifdef G4ANALYSIS_USE // Creating the analysis factory af = AIDA_createAnalysisFactory(); + if(!af) { + G4cout << "TestEm1::HistoManager::HistoManager :" + << " problem creating the AIDA analysis factory." + << G4endl; + } #endif - fileName = "testem3.aida"; - fileType = "hbook"; - + fileName[0] = "testem3"; + fileType = "hbook"; + fileOption = "--noErrors uncompress"; // histograms for (G4int k=0; k tf(af->createTreeFactory()); +#ifdef G4ANALYSIS_USE + if(!af) return; // Creating a tree mapped to an hbook file. + fileName[1] = fileName[0] + "." + fileType; G4bool readOnly = false; G4bool createNew = true; - tree = tf->create(fileName, fileType, readOnly, createNew, "uncompress"); - + AIDA::ITreeFactory* tf = af->createTreeFactory(); + tree = tf->create(fileName[1], fileType, readOnly, createNew, fileOption); + delete tf; + if(!tree) { + G4cout << "TestEm1::HistoManager::book :" + << " problem creating the AIDA tree with " + << " storeName = " << fileName[1] + << " storeType = " << fileType + << " readOnly = " << readOnly + << " createNew = " << createNew + << " options = " << fileOption + << G4endl; + return; + } + // Creating a histogram factory, whose histograms will be handled by the tree - hf = af->createHistogramFactory(*tree); + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); // create selected histograms for (G4int k=1; k Histogram Tree is opened in " << fileName << G4endl; + G4cout << "\n----> Histogram Tree is opened in " << fileName[1] << G4endl; #endif } @@ -106,10 +124,10 @@ void HistoManager::save() if (factoryOn) { tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) - G4cout << "\n----> Histogram Tree is saved in " << fileName << G4endl; + G4cout << "\n----> Histogram Tree is saved in " << fileName[1] << G4endl; - delete hf; delete tree; + tree = 0; factoryOn = false; } #endif @@ -149,8 +167,8 @@ void HistoManager::SetHisto(G4int ih, // histo 12 : longitudinal profile of energy deposit in absorber 2 (MeV) // ...etc........... // - // histo 21 : forward energy flow of primary particle (MeV) - // histo 22 : forward energy flow of all secondary particles (MeV) + // histo 21 : forward energy flow (MeV) + // histo 22 : backward energy flow (MeV) const G4String id[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10","11","12","13","14","15","16","17","18","19", @@ -164,12 +182,12 @@ void HistoManager::SetHisto(G4int ih, Unit[ih] = G4UnitDefinition::GetValueOf(unit); vmin = valmin/Unit[ih]; vmax = valmax/Unit[ih]; } else if (ih > MaxAbsor && ih < 2*MaxAbsor) { - title = "longit. profile of Edep (per event) in absorber " - + id[ih-MaxAbsor] + " (MeV)"; + title = "longit. profile of Edep (MeV/event) in absorber " + + id[ih-MaxAbsor]; } else if (ih == 2*MaxAbsor+1) { - title = "Forward energy flow (per event) of primary particle (MeV)"; + title = "Forward energy flow (MeV/event)"; } else if (ih == 2*MaxAbsor+2) { - title = "Forward energy flow (per event) of secondary particles (MeV)"; + title = "Backward energy flow (MeV/event)"; } else return; exist[ih] = true; diff --git a/examples/extended/electromagnetic/TestEm3/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/HistoMessenger.cc index afedde61fb..a285598a5c 100644 --- a/examples/extended/electromagnetic/TestEm3/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/HistoMessenger.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.4 2004/10/20 14:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.cc,v 1.5 2005/03/01 17:55:19 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,6 +49,9 @@ HistoMessenger::HistoMessenger(HistoManager* manager) typeCmd = new G4UIcmdWithAString("/testem/histo/setFileType",this); typeCmd->SetGuidance("set histograms file type: hbook, root, XML"); typeCmd->SetCandidates("hbook root XML"); + + optionCmd = new G4UIcmdWithAString("/testem/histo/setFileOption",this); + optionCmd->SetGuidance("set option for the histograms file"); histoCmd = new G4UIcommand("/testem/histo/setHisto",this); histoCmd->SetGuidance("Set bining of the histo number ih :"); @@ -89,6 +92,7 @@ HistoMessenger::~HistoMessenger() { delete rmhistoCmd; delete histoCmd; + delete optionCmd; delete typeCmd; delete factoryCmd; delete histoDir; @@ -104,6 +108,9 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) if (command == typeCmd) histoManager->SetFileType(newValues); + if (command == optionCmd) + histoManager->SetFileOption(newValues); + if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; const char* t = newValues; diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc index 7607a50737..3db0377795 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListEmG4v52.cc,v 1.3 2004/10/20 14:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmG4v52.cc,v 1.4 2005/05/18 15:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -30,15 +30,15 @@ #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" #include "G4MultipleScattering52.hh" #include "G4eIonisation52.hh" #include "G4eBremsstrahlung52.hh" -#include "G4eplusAnnihilation.hh" +#include "G4eplusAnnihilation52.hh" #include "G4MuIonisation52.hh" #include "G4MuBremsstrahlung52.hh" @@ -72,9 +72,9 @@ void PhysListEmG4v52::ConstructProcess() if (particleName == "gamma") { // gamma - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); - pmanager->AddDiscreteProcess(new G4ComptonScattering); - pmanager->AddDiscreteProcess(new G4GammaConversion); + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect52); + pmanager->AddDiscreteProcess(new G4ComptonScattering52); + pmanager->AddDiscreteProcess(new G4GammaConversion52); } else if (particleName == "e-") { //electron @@ -87,7 +87,7 @@ void PhysListEmG4v52::ConstructProcess() pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); } else if( particleName == "mu+" || particleName == "mu-" ) { diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc index 2ed293a5ed..4d8de3a9d1 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc,v 1.6 2004/10/20 14:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmStandard.cc,v 1.8 2005/05/18 15:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -78,17 +78,23 @@ void PhysListEmStandard::ConstructProcess() } else if (particleName == "e-") { //electron - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + G4MultipleScattering* emuls = new G4MultipleScattering; + pmanager->AddProcess(emuls, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + + emuls->SetFacrange(0.2); } else if (particleName == "e+") { //positron - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + G4MultipleScattering* pmuls = new G4MultipleScattering; + pmanager->AddProcess(pmuls, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmuls->SetFacrange(0.2); + } else if( particleName == "mu+" || particleName == "mu-" ) { //muon @@ -97,7 +103,7 @@ void PhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); - } else if( particleName == "GenericIon" ) { + } else if( particleName == "alpha" || particleName == "GenericIon" ) { pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); pmanager->AddProcess(new G4ionIonisation, -1, 2,2); diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc index 0dfdb42d78..dc427ee2d6 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.8 2004/11/23 14:05:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysicsList.cc,v 1.10 2005/03/15 17:57:54 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -102,10 +102,9 @@ PhysicsList::~PhysicsList() #include "G4AntiNeutron.hh" // Nuclei -#include "G4Alpha.hh" #include "G4Deuteron.hh" #include "G4Triton.hh" -#include "G4He3.hh" +#include "G4Alpha.hh" #include "G4GenericIon.hh" void PhysicsList::ConstructParticle() @@ -153,7 +152,6 @@ void PhysicsList::ConstructParticle() // ions G4Deuteron::DeuteronDefinition(); G4Triton::TritonDefinition(); - G4He3::He3Definition(); G4Alpha::AlphaDefinition(); G4GenericIon::GenericIonDefinition(); } diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc index 7c98905f56..f9b1517773 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.2 2004/10/20 14:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc index ed67c49ca2..1dda5adf12 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PrimaryGeneratorAction.cc,v 1.5 2004/10/25 12:50:59 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PrimaryGeneratorAction.cc,v 1.6 2005/05/18 15:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -95,9 +95,6 @@ void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) particleGun->SetParticlePosition(oldPosition); } else particleGun->GeneratePrimaryVertex(anEvent); - - //fill histo of energy flow - histoManager->FillHisto(2*MaxAbsor+1, 1.,particleGun->GetParticleEnergy()); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc index 6efbe9bc41..e865ee2794 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.2 2004/10/20 14:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/RunAction.cc b/examples/extended/electromagnetic/TestEm3/src/RunAction.cc index 7f7bc9746a..854f08e4d7 100644 --- a/examples/extended/electromagnetic/TestEm3/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.23 2004/12/02 16:13:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: RunAction.cc,v 1.25 2005/05/18 15:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -72,11 +72,17 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) //initialize cumulative quantities // - for (G4int k=0; kGetNbOfLayers())*(Detector->GetNbOfAbsor()) + 2; + forwEflow.resize(nbPlanes); + backEflow.resize(nbPlanes); + for (G4int k=0; kbook(); @@ -148,7 +154,51 @@ void RunAction::EndOfRunAction(const G4Run* aRun) << G4endl; } G4cout << "\n------------------------------------------------------------\n"; - + + //Energy flow + // + G4int Idmax = (Detector->GetNbOfLayers())*(Detector->GetNbOfAbsor()); + for (G4int Id=1; Id<=Idmax+1; Id++) { + histoManager->FillHisto(2*MaxAbsor+1, (G4double)Id, forwEflow[Id]); + histoManager->FillHisto(2*MaxAbsor+2, (G4double)Id, backEflow[Id]); + //mormalization per event + forwEflow[Id] *= norm; + backEflow[Id] *= norm; + } + + //Energy deposit from energy flow balance + // + G4double EdepForw[MaxAbsor], EdepBack[MaxAbsor], EdepTot[MaxAbsor]; + for (G4int k=0; kGetNbOfAbsor(); + for (G4int Id=1; Id<=Idmax; Id++) { + G4double forward = forwEflow[Id] - forwEflow[Id+1]; + G4double backward = backEflow[Id+1] - backEflow[Id]; + G4int iAbsor = Id%nbOfAbsor; if (iAbsor==0) iAbsor = nbOfAbsor; + EdepForw[iAbsor] += forward; + EdepBack[iAbsor] += backward; + EdepTot [iAbsor] += (forward + backward); + } + G4cout << "\n Energy deposition from Energy flow balance : \n" + << std::setw(10) << " material" + << "\t Total Edep" + << "\t Forward Edep" + << "\t Backward Edep \n \n"; + G4cout.precision(4); + + for (G4int k=1; k<=nbOfAbsor; k++) { + G4cout << std::setw(10) << Detector->GetAbsorMaterial(k)->GetName() << ":" + << "\t " << G4BestUnit(EdepTot [k],"Energy") + << "\t " << G4BestUnit(EdepForw[k],"Energy") + << "\t " << G4BestUnit(EdepBack[k],"Energy") << "\n"; + } + + G4cout << "\n------------------------------------------------------------\n" + << G4endl; + G4cout.setf(mode,std::ios::floatfield); G4cout.precision(prec); @@ -234,14 +284,14 @@ void RunAction::PrintDedxTables() G4cout.setf(std::ios::scientific,std::ios::floatfield); G4ParticleDefinition* - part = G4ParticleTable::GetParticleTable()->FindParticle("mu+"); + part = Primary->GetParticleGun()->GetParticleDefinition(); G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); size_t numOfCouples = theCoupleTable->GetTableSize(); const G4MaterialCutsCouple* couple = 0; - for (G4int iab=0;iab < Detector->GetNbOfAbsor(); iab++) + for (G4int iab=1;iab <= Detector->GetNbOfAbsor(); iab++) { G4Material* mat = Detector->GetAbsorMaterial(iab); G4int index = 0; diff --git a/examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc index 60b69b46dd..8fe6b40d30 100644 --- a/examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunActionMessenger.cc,v 1.8 2004/10/20 14:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/StepMax.cc b/examples/extended/electromagnetic/TestEm3/src/StepMax.cc index b79e87d413..71f6ac68b1 100644 --- a/examples/extended/electromagnetic/TestEm3/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm3/src/StepMax.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: StepMax.cc,v 1.1 2004/11/24 11:25:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: StepMax.cc,v 1.3 2005/01/11 17:29:56 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -55,25 +55,4 @@ void StepMax::SetStepMax(G4int k,G4double step) {stepMax[k] = step;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double StepMax::PostStepGetPhysicalInteractionLength( const G4Track& aTrack, - G4double, - G4ForceCondition* condition) -{ - // condition is set to "Not Forced" - *condition = NotForced; - - return stepMax[aTrack.GetVolume()->GetCopyNo()]; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VParticleChange* StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&) -{ - // do nothing - aParticleChange.Initialize(aTrack); - return &aParticleChange; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/extended/electromagnetic/TestEm3/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/StepMaxMessenger.cc index d8710b2380..9bdc728fa8 100644 --- a/examples/extended/electromagnetic/TestEm3/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/StepMaxMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.cc,v 1.1 2004/11/24 11:25:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc index 92d418eac0..c8cb491c43 100644 --- a/examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: SteppingAction.cc,v 1.14 2004/11/23 14:05:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: SteppingAction.cc,v 1.20 2005/05/18 15:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -29,6 +29,7 @@ #include "SteppingAction.hh" #include "DetectorConstruction.hh" +#include "RunAction.hh" #include "EventAction.hh" #include "HistoManager.hh" @@ -38,9 +39,10 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -SteppingAction::SteppingAction(DetectorConstruction* det, EventAction* evt, - HistoManager* hist) -:G4UserSteppingAction(),detector(det),eventAct(evt),histoManager(hist) +SteppingAction::SteppingAction(DetectorConstruction* det, RunAction* run, + EventAction* evt, HistoManager* hist) +:G4UserSteppingAction(),detector(det),runAct(run),eventAct(evt), + histoManager(hist) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -52,51 +54,62 @@ SteppingAction::~SteppingAction() void SteppingAction::UserSteppingAction(const G4Step* aStep) { - G4StepPoint* prePoint = aStep->GetPreStepPoint(); - G4StepPoint* endPoint = aStep->GetPostStepPoint(); - - //if World, returns + //initialize Energy flow + if (aStep->GetTrack()->GetCurrentStepNumber() == 1) Idold = 0; + + //if World, return // - G4VPhysicalVolume* volume = prePoint->GetPhysicalVolume(); + const G4StepPoint* prePoint = aStep->GetPreStepPoint(); + G4VPhysicalVolume* volume = prePoint->GetPhysicalVolume(); //if sum of absorbers do not fill exactly a layer: check material, not volume. G4Material* mat = volume->GetLogicalVolume()->GetMaterial(); if (mat == detector->GetWorldMaterial()) return; - - //locate the absorber + + //here we are in an absorber. Locate it // G4int absorNum = volume->GetCopyNo(); G4int layerNum = prePoint->GetTouchable()->GetReplicaNumber(1); - - ////G4int absorNum = prePoint->GetTouchable()->GetCopyNumber( ); - ////G4int layerNum = prePoint->GetTouchable()->GetCopyNumber(1); - + + //track informations + const G4StepPoint* endPoint = aStep->GetPostStepPoint(); + const G4Track* track = aStep->GetTrack(); + const G4ParticleDefinition* particle = track->GetDefinition(); + // collect energy deposit G4double edep = aStep->GetTotalEnergyDeposit(); // collect step length of charged particles G4double stepl = 0.; - if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) - stepl = aStep->GetStepLength(); + if (particle->GetPDGCharge() != 0.) stepl = aStep->GetStepLength(); // sum up per event eventAct->SumEnergy(absorNum,edep,stepl); //longitudinal profile of edep per absorber - histoManager->FillHisto(MaxAbsor+absorNum, layerNum+1., edep); + if (edep>0.) histoManager->FillHisto(MaxAbsor+absorNum, layerNum+1., edep); //energy flow // - //leaving an absorber ? in forward direction ? - const G4Track* track = aStep->GetTrack(); - if ((endPoint->GetProcessDefinedStep()->GetProcessName() == "Transportation") - && (track->GetMomentumDirection().x() > 0.)) { - G4int planNum = 1 + (detector->GetNbOfAbsor())*layerNum + absorNum; - G4double EnLeaving = track->GetKineticEnergy(); - if (track->GetDefinition() == G4Positron::Positron()) - EnLeaving += 2*electron_mass_c2; - G4int ih = 2*MaxAbsor + 1; - if (track->GetTrackID() != 1) ih += 1; - histoManager->FillHisto(ih, (G4double)planNum, EnLeaving); + // unique identificator of layer+absorber + G4int Idnow = (detector->GetNbOfAbsor())*layerNum + absorNum; + if (track->GetCurrentStepNumber() == 1) Idold = Idnow; // track begins + // + //first step in the absorber ? + G4int plane=0; + if (prePoint->GetStepStatus() == fGeomBoundary) { + G4double Eflow = prePoint->GetKineticEnergy(); + if (particle == G4Positron::Positron()) Eflow += 2*electron_mass_c2; + if (Idnow > Idold) runAct->sumForwEflow(plane=Idnow, Eflow); + else if (Idnow < Idold) runAct->sumBackEflow(plane=Idnow+1, Eflow); + Idold = Idnow; + } + + //last plane : forward leakage + G4int Idlast = (detector->GetNbOfAbsor())*(detector->GetNbOfLayers()); + if ((Idnow == Idlast) && (endPoint->GetStepStatus() == fGeomBoundary)) { + G4double Eflow = endPoint->GetKineticEnergy(); + if (particle == G4Positron::Positron()) Eflow += 2*electron_mass_c2; + runAct->sumForwEflow(plane=Idlast+1, Eflow); } //// example of Birk attenuation diff --git a/examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc index b876f2f6ad..b4ffa901b3 100644 --- a/examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.3 2004/10/20 14:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/VisManager.cc b/examples/extended/electromagnetic/TestEm3/src/VisManager.cc deleted file mode 100755 index 741cdfad75..0000000000 --- a/examples/extended/electromagnetic/TestEm3/src/VisManager.cc +++ /dev/null @@ -1,141 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.cc,v 1.3 2004/10/20 14:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/History b/examples/extended/electromagnetic/TestEm4/History index c3d602903a..6f0ed7a667 100644 --- a/examples/extended/electromagnetic/TestEm4/History +++ b/examples/extended/electromagnetic/TestEm4/History @@ -1,4 +1,4 @@ -$Id: History,v 1.34 2004/12/02 16:16:54 vnivanch Exp $ +$Id: History,v 1.37 2005/06/01 11:11:26 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,15 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +01-06-05 mma (testem4-V07-00-01) +- RunAction : option "--noErrors" for hbook; + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +02-03-05 mma (testem4-V07-00-00) +- RunAction : put a protection for the creation of analysis factory; 02 Dec 04: V.Ivant (testem4-V06-02-01) - Migration to cmath diff --git a/examples/extended/electromagnetic/TestEm4/README b/examples/extended/electromagnetic/TestEm4/README index b0dbbcc47f..1080745bdb 100644 --- a/examples/extended/electromagnetic/TestEm4/README +++ b/examples/extended/electromagnetic/TestEm4/README @@ -1,4 +1,4 @@ -$Id: README,v 1.15 2004/09/24 14:41:19 maire Exp $ +$Id: README,v 1.16 2005/03/02 13:39:46 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -59,45 +59,69 @@ $Id: README,v 1.15 2004/09/24 14:41:19 maire Exp $ Idle> exit - visualize the histogram (paw) - paw> h/file 1 testem4.paw + paw> h/file 1 testem4.hbook paw> option stat paw> option logy paw> h/pl 1 - - Note that, by default, histograms are disabled. To activate them, uncomment - the flag G4ANALYSIS_USE in GNUmakefile. - 7- Using histograms - ------------------- + 7- USING HISTOGRAMS -By default the histograms are not activated. To activate histograms -the environment variable G4ANALYSIS_USE should be defined. For instance -uncomment the flag G4ANALYSIS_USE in GNUmakefile. + By default the histograms are not activated. To activate histograms + the environment variable G4ANALYSIS_USE should be defined. For instance + uncomment the flag G4ANALYSIS_USE in GNUmakefile. -To use histograms any of implementations of AIDA interfaces should -be available (see http://aida.freehep.org). + Before compilation of the example it is optimal to clean up old files: + gmake histclean + gmake -A package including AIDA and extended interfaces also using Python -is PI, available from: http://cern.ch/pi . + It is possible to choose the format of the histogram file (hbook, root, XML): + comment/uncomment 1 line in the constructor of RunAction. -Once installed PI or PI-Lite in a specified local area $MYPY, it is -required to add the installation path to $PATH, i.e. for example, -for release 1.2.1 of PI: + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 7a - PI -setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi -CERN users can use the PATH to the LCG area on AFS. + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin -Before compilation of the example it is optimal to clean up old -files: + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` -gmake histclean -gmake + 7b - OpenScientist + + OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist + + In OpenScientist, the AIDA implementation is the Lab package. + You have to "setup" this package before compiling (then with G4ANALYSIS_USE) + and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> setenv CMTPATH + csh> source /Lab//cmt/setup.csh + On UNIX with a sh flavoured shell : + sh> CMTPATH=;export CMTPATH + sh> . /Lab//cmt/setup.sh + On Windows : + DOS> set CMTPATH= + DOS> call /Lab//cmt/setup.bat -Before running the example the command should be issued: + You have to use the XML or root file formats ; producing hbook files is not + supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) + are readable by the interactive applications ; the Lab onx interactive + program or the OpenPAW program. -eval `aida-config --runtime csh` - -It is possible to choose the format of the histogram file (hbook, root, XML): -comment/uncomment 1 line in the constructor of RunAction. + With OpenPAW, someone can view the histograms with : + OS> opaw + opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 + opaw> h/plot 3 diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.cc b/examples/extended/electromagnetic/TestEm4/TestEm4.cc index 3dfc48ee1d..afa54a52ce 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.cc +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm4.cc,v 1.8 2003/06/23 16:16:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: TestEm4.cc,v 1.9 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... @@ -34,7 +34,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "DetectorConstruction.hh" @@ -64,7 +64,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.out b/examples/extended/electromagnetic/TestEm4/TestEm4.out index ee0a57fa40..54818e5a85 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.out +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -15,26 +15,27 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) Material: FluorCarbonate density: 1.610 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 22.435 cm - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 38.74 % Abundance 50.00 % - ---> Element: Fluorine N Z = 9.0 N = 19.0 A = 18.99 g/mole fractionMass: 61.26 % Abundance 50.00 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 38.74 % Abundance 50.00 % + ---> Element: Fluorine (N) Z = 9.0 N = 19.0 A = 18.99 g/mole fractionMass: 61.26 % Abundance 50.00 % +PhysicsList::SetCuts:CutLength : 1 (mm) phot: Total cross sections from Sandia parametrisation. -PhysicsList::SetCuts:CutLength : 1 (mm) -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -43,8 +44,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -55,8 +56,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -64,9 +65,9 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. ========= Table of registered couples ============================== @@ -99,11 +100,11 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 50000 - User=15.2s Real=518.07s Sys=40.37s + User=32.93s Real=480s Sys=41.17s --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1583561776, 1344410406 + Current couple of seeds = 1633479938, 1125177724 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh index 4eabb5ef20..1328773749 100644 --- a/examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.hh,v 1.2 2003/10/06 14:51:16 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/include/EventAction.hh b/examples/extended/electromagnetic/TestEm4/include/EventAction.hh index 80809201fd..16de706ded 100644 --- a/examples/extended/electromagnetic/TestEm4/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: EventAction.hh,v 1.1 2003/06/23 16:16:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh index 56872fbf6f..81894b174d 100644 --- a/examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: EventActionMessenger.hh,v 1.2 2003/10/06 14:51:16 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh index bcbd729f16..bd46d62a72 100644 --- a/examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh index 49896b21b2..18f15e6795 100644 --- a/examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/RunAction.hh b/examples/extended/electromagnetic/TestEm4/include/RunAction.hh index c0fed6f666..a6ec9f759d 100644 --- a/examples/extended/electromagnetic/TestEm4/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.6 2004/09/24 14:41:20 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh index 810b2976b8..d17c4c7af8 100644 --- a/examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh index 7af7f9c0c4..a86171035a 100644 --- a/examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc index 80a03d0bce..04b40c2db7 100644 --- a/examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.cc,v 1.2 2003/10/06 14:51:17 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/EventAction.cc b/examples/extended/electromagnetic/TestEm4/src/EventAction.cc index 8eb47f83dd..00eeeb5003 100644 --- a/examples/extended/electromagnetic/TestEm4/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.6 2004/09/24 14:41:21 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc index bceaa4fe97..03c9daca54 100644 --- a/examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: EventActionMessenger.cc,v 1.2 2003/10/06 14:51:17 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc index 643149afd4..237d216a81 100644 --- a/examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.cc,v 1.4 2003/10/24 12:14:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc index 4ab3f7aadc..e42dc7c41e 100644 --- a/examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.cc,v 1.2 2004/12/02 16:16:54 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/RunAction.cc b/examples/extended/electromagnetic/TestEm4/src/RunAction.cc index 5820a0ac6f..6b9e59946a 100644 --- a/examples/extended/electromagnetic/TestEm4/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.6 2004/09/24 14:41:21 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RunAction.cc,v 1.8 2005/06/01 11:11:26 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,25 +48,31 @@ RunAction::RunAction() // Creating the analysis factory af = AIDA_createAnalysisFactory(); - // Creating the tree factory - AIDA::ITreeFactory* tf = af->createTreeFactory(); + if (af) { + // Creating the tree factory + AIDA::ITreeFactory* tf = af->createTreeFactory(); - // Creating a tree mapped to an hbook file. - G4bool readOnly = false; - G4bool createNew = true; - tree = tf->create("testem4.paw", "hbook",readOnly, createNew, "uncompress"); - //tree = tf->create("testem4.root", "root",readOnly, createNew, "uncompress"); - //tree = tf->create("testem4.aida", "XML" ,readOnly, createNew, "uncompress"); + // Creating a tree mapped to an hbook file. + G4bool readOnly = false; + G4bool createNew = true; + G4String options = "--noErrors uncompress"; + tree = tf->create("testem4.hbook","hbook",readOnly,createNew, options); + //tree = tf->create("testem4.root","root",readOnly,createNew, options); + //tree = tf->create("testem4.XML" ,"XML" ,readOnly,createNew, options); + delete tf; + + if (tree) { + // Creating a histogram factory + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); - // Creating a histogram factory, whose histograms will be handled by the tree - AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); - - // Creating the histogram - histo[0]=hf->createHistogram1D + // Creating the histogram + histo[0]=hf->createHistogram1D ("1","total energy deposit in C6F6(MeV)",100,0.,10.); - delete hf; - delete tf; + delete hf; + G4cout << "\n----> Histogram tree is opened" << G4endl; + } + } #endif } diff --git a/examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc index 7ee30278bf..aeac14ece3 100644 --- a/examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.cc,v 1.1 2003/06/23 16:16:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc index 3419e1dc02..d86d13e5f1 100644 --- a/examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.cc,v 1.1 2003/06/23 16:16:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/VisManager.cc b/examples/extended/electromagnetic/TestEm4/src/VisManager.cc deleted file mode 100755 index c099f05e5e..0000000000 --- a/examples/extended/electromagnetic/TestEm4/src/VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: VisManager.cc,v 1.2 2003/11/13 15:10:24 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/History b/examples/extended/electromagnetic/TestEm5/History index 70d7580979..2e2a06175a 100644 --- a/examples/extended/electromagnetic/TestEm5/History +++ b/examples/extended/electromagnetic/TestEm5/History @@ -1,4 +1,4 @@ -$Id: History,v 1.56 2004/12/02 16:19:11 vnivanch Exp $ +$Id: History,v 1.61 2005/06/01 12:37:10 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,7 +14,26 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +01-06-05 mma (testem5-V07-00-02) +- PhysListEmG4v52 : old photon processes marked as 52 (and eplusAnnihilation) +- HistoManager : option "--noErrors" for hbook +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +16-03-05 mma(testem5-V07-00-01) +- remove He3 and ionC12 from predefined particles. +- remove IonC12 class +- PhysListEmStandard : treat alpha as GenericIon +- IonBinaryCascade : remove He3 and IonC12 (--> GenericIon) +- add PhysListEmPenelope + +02-03-05 mma (testem5-V07-00-00) +- HistoManager : - put a protection for the creation of analysis factory; + - file extension is fileType; +- HistoMessenger : new command setFileOption + 02 Dec 04: V.Ivant (testem5-V06-02-06) - Migration to cmath diff --git a/examples/extended/electromagnetic/TestEm5/README b/examples/extended/electromagnetic/TestEm5/README index 495ff43ae6..4088422a70 100644 --- a/examples/extended/electromagnetic/TestEm5/README +++ b/examples/extended/electromagnetic/TestEm5/README @@ -1,4 +1,4 @@ -$Id: README,v 1.12 2004/06/23 11:30:08 maire Exp $ +$Id: README,v 1.13 2005/03/02 17:17:57 maire Exp $ ----------------------------------------------------- ========================================================= @@ -99,7 +99,7 @@ $Id: README,v 1.12 2004/06/23 11:30:08 maire Exp $ The histograms can be viewed using PAW. See below the note on ANAPHE+AIDA. One can control the name of the histograms file with the command: - /testem/histo/setFileName name (default testem5.paw) + /testem/histo/setFileName name (default testem5.hbook) Note that, by default, histograms are disabled. To activate them, uncomment the flag G4ANALYSIS_USE in GNUmakefile. @@ -140,42 +140,59 @@ $Id: README,v 1.12 2004/06/23 11:30:08 maire Exp $ Idle> control/execute vis.mac Idle> run/beamOn 5 .... - - 8- Using histograms - ------------------- + 8- USING HISTOGRAMS + + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. + + Before compilation of the example it is optimal to clean up old files: + gmake histclean + gmake + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 8a - PI -By default the histograms are not activated. To activate histograms -the environment variable G4ANALYSIS_USE should be defined. For instance -uncomment the flag G4ANALYSIS_USE in GNUmakefile. + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi -To use histograms any of implementations of AIDA interfaces should -be available (see http://aida.freehep.org). + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin -A package including AIDA and extended interfaces also using Python -is PI, available from: http://cern.ch/pi . + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` -Once installed PI or PI-Lite in a specified local area $MYPY, it is -required to add the installation path to $PATH, i.e. for example, -for release 1.2.1 of PI: + 8b - OpenScientist + + OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist + + In OpenScientist, the AIDA implementation is the Lab package. + You have to "setup" this package before compiling (then with G4ANALYSIS_USE) + and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> setenv CMTPATH + csh> source /Lab//cmt/setup.csh + On UNIX with a sh flavoured shell : + sh> CMTPATH=;export CMTPATH + sh> . /Lab//cmt/setup.sh + On Windows : + DOS> set CMTPATH= + DOS> call /Lab//cmt/setup.bat -setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + You have to use the XML or root file formats ; producing hbook files is not + supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) + are readable by the interactive applications ; the Lab onx interactive + program or the OpenPAW program. -CERN users can use the PATH to the LCG area on AFS. - -Before compilation of the example it is optimal to clean up old -files: - -gmake histclean -gmake - -Before running the example the command should be issued: - -eval `aida-config --runtime csh` - -It is possible to choose the format of the output file with -histograms using UI command: - -/testem/histo/setFileType type - -The following types are available: hbook, root, xml. + With OpenPAW, someone can view the histograms with : + OS> opaw + opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 + opaw> h/plot 3 diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.cc b/examples/extended/electromagnetic/TestEm5/TestEm5.cc index 3578588b6b..44fe934c9f 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.cc +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm5.cc,v 1.12 2004/06/30 16:32:57 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: TestEm5.cc,v 1.13 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -34,7 +34,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "DetectorConstruction.hh" @@ -69,7 +69,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.in b/examples/extended/electromagnetic/TestEm5/TestEm5.in index 99de68d8d2..885a323b87 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.in +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.in @@ -1,4 +1,4 @@ -# $Id: TestEm5.in,v 1.14 2004/09/24 09:57:57 maire Exp $ +# $Id: TestEm5.in,v 1.15 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -22,13 +22,9 @@ /gun/particle pi+ /gun/energy 5 GeV # -/testem/histo/setHisto 6 100 -0.25 0.25 mrad -# -# -/testem/histo/setFileType hbook #for paw -###/testem/histo/setFileType root #for root -###/testem/histo/setFileType XML #for jaida -/testem/histo/setFileName run0.aida +/testem/histo/setFileName testem5 +/testem/histo/setFileType hbook +/testem/histo/setHisto 6 100 -0.25 0.25 mrad # /run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.out b/examples/extended/electromagnetic/TestEm5/TestEm5.out index 07f16d51b2..8565a84563 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.out +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.out @@ -1,12 +1,11 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... @@ -16,8 +15,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -39,19 +38,18 @@ PhysicsList::AddPhysicsList: userDetector->Construct() start. Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204727576.737 pc - ---> Element: Galactic Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm - ---> Element: Silicon Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % The WORLD is made of 30.75 mum of Galactic. The transverse size (YZ) of the world is 1.2 mm The ABSORBER is made of 20.5 mum of Silicon. The transverse size (YZ) is 1 mm X position of the middle of the absorber 0 fm World is registered to the default region. physicsList->Construct() start. +physicsList->ConstructParticle() start. physicsList->Construct() start. - -phot: Total cross sections from Sandia parametrisation. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm # @@ -59,25 +57,24 @@ PhysicsList::SetCuts:CutLength : 1 mm /gun/particle pi+ /gun/energy 5 GeV # -/testem/histo/setHisto 6 100 -0.25 0.25 mrad +/testem/histo/setFileName testem5 +/testem/histo/setFileType hbook +/testem/histo/setHisto 6 100 -0.25 0.25 mrad ----> SetHisto 6: (transmit, charged) : projected angle at exit (mrad); 100 bins from -0.25 mrad to 0.25 mrad # -# -/testem/histo/setFileType hbook #for paw -###/testem/histo/setFileType root #for root -###/testem/histo/setFileType XML #for jaida -/testem/histo/setFileName run0.aida -# /run/beamOn 100000 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -86,8 +83,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -98,8 +95,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -107,9 +104,9 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -118,15 +115,18 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 Scaling relation is used to proton dE/dx and range - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -135,9 +135,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -152,9 +152,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -227,24 +227,24 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100000 - User=43.93s Real=922.95s Sys=89.32s + User=93.65s Real=899.99s Sys=91.45s ======================== run summary ====================== The run was 100000 pi+ of 5 GeV through 20 mum of Silicon (density: 2.3 g/cm3 ) - Total energy deposit in absorber per event = 6.701 keV +- 21.71 eV + Total energy deposit in absorber per event = 6.727 keV +- 21.94 eV - Mean dE/dx = 3.269 MeV/cm stopping Power = 1.403 MeV*cm2/g - (from Table = 2.803 MeV/cm) (from Table = 1.203 MeV*cm2/g) + Mean dE/dx = 3.281 MeV/cm stopping Power = 1.408 MeV*cm2/g + (from Table = 2.807 MeV/cm) (from Table = 1.205 MeV*cm2/g) - Total track length (charged) in absorber per event = 20.97 mum +- 15.49 nm - Total track length (neutral) in absorber per event = 6173 fm +- 4626 fm + Total track length (charged) in absorber per event = 20.97 mum +- 15 nm + Total track length (neutral) in absorber per event = 4.903 Ang +- 4.692 Ang - Number of steps (charged) in absorber per event = 1.081 +- 1.245e-05 - Number of steps (neutral) in absorber per event = 2e-05 +- 1.245e-05 + Number of steps (charged) in absorber per event = 1.08 +- 1.225e-05 + Number of steps (neutral) in absorber per event = 3e-05 +- 1.225e-05 - Number of secondaries per event : Gammas = 2e-05; electrons = 0.03751; positrons = 0 + Number of secondaries per event : Gammas = 3e-05; electrons = 0.03745; positrons = 0 Number of events with the primary particle transmitted = 100 % Number of events with at least 1 particle transmitted (same charge as primary) = 100 % @@ -252,12 +252,12 @@ Run Summary Number of events with the primary particle reflected = 0 % Number of events with at least 1 particle reflected (same charge as primary) = 0 % - MultipleScattering: rms proj angle of transmit primary particle = 0.04418 mrad + MultipleScattering: rms proj angle of transmit primary particle = 0.04132 mrad MultipleScattering: computed theta0 (Highland formula) = 0.02663 mrad --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1492258000, 1938858686 + Current couple of seeds = 14803744, 1165747056 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm5/anthony.mac b/examples/extended/electromagnetic/TestEm5/anthony.mac index 6cd3f4beea..d20bf75d98 100644 --- a/examples/extended/electromagnetic/TestEm5/anthony.mac +++ b/examples/extended/electromagnetic/TestEm5/anthony.mac @@ -1,4 +1,4 @@ -# $Id: anthony.mac,v 1.1 2003/08/11 10:03:04 maire Exp $ +# $Id: anthony.mac,v 1.2 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -25,7 +25,8 @@ /gun/particle e- /gun/energy 25 GeV # -/testem/histo/setFileName anthony.paw +/testem/histo/setFileName anthony +/testem/histo/setFileType hbook /testem/histo/setHisto 8 80 1.e-4 1. GeV #gamma energy at exit # /run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm5/berger.mac b/examples/extended/electromagnetic/TestEm5/berger.mac index 3da12a3cda..f49f135995 100644 --- a/examples/extended/electromagnetic/TestEm5/berger.mac +++ b/examples/extended/electromagnetic/TestEm5/berger.mac @@ -1,4 +1,4 @@ -# $Id: berger.mac,v 1.1 2003/08/11 10:03:08 maire Exp $ +# $Id: berger.mac,v 1.2 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -27,7 +27,8 @@ /gun/particle e- /gun/energy 1 MeV # -/testem/histo/setFileName berger.paw +/testem/histo/setFileName berger +/testem/histo/setFileType hbook /testem/histo/setHisto 1 55 0.0 1.1 MeV #energy deposit # /testem/event/printModulo 100000 diff --git a/examples/extended/electromagnetic/TestEm5/bichsel.mac b/examples/extended/electromagnetic/TestEm5/bichsel.mac index 482ef76b64..7b8122f84b 100644 --- a/examples/extended/electromagnetic/TestEm5/bichsel.mac +++ b/examples/extended/electromagnetic/TestEm5/bichsel.mac @@ -1,4 +1,4 @@ -# $Id: bichsel.mac,v 1.1 2003/08/11 10:03:12 maire Exp $ +# $Id: bichsel.mac,v 1.2 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -22,7 +22,8 @@ /gun/particle proton /gun/energy 766 keV # -/testem/histo/setFileName bichsel.paw +/testem/histo/setFileName bichsel +/testem/histo/setFileType hbook /testem/histo/setHisto 5 100 0 9 deg #space angle /testem/histo/setHisto 6 100 -9 +9 deg #projected angle # diff --git a/examples/extended/electromagnetic/TestEm5/davidw.mac b/examples/extended/electromagnetic/TestEm5/davidw.mac index af7741c1cb..84e2e6638f 100644 --- a/examples/extended/electromagnetic/TestEm5/davidw.mac +++ b/examples/extended/electromagnetic/TestEm5/davidw.mac @@ -14,7 +14,8 @@ /gun/particle proton /gun/energy 250 MeV # -/testem/histo/setFileName davidw.41r0.paw +/testem/histo/setFileName davidw.41r0 +/testem/histo/setFileType hbook /testem/histo/setHisto 5 100 0 100 mrad #space angle # /run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm5/dedx2.mac b/examples/extended/electromagnetic/TestEm5/dedx2.mac index 191c7e4821..bbd5fb87df 100644 --- a/examples/extended/electromagnetic/TestEm5/dedx2.mac +++ b/examples/extended/electromagnetic/TestEm5/dedx2.mac @@ -1,4 +1,4 @@ -# $Id: dedx2.mac,v 1.2 2004/08/02 11:30:05 maire Exp $ +# $Id: dedx2.mac,v 1.3 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -21,7 +21,8 @@ /gun/particle e- /gun/energy 1 MeV # -/testem/histo/setFileName dedx2.paw +/testem/histo/setFileName dedx2 +/testem/histo/setFileType hbook /testem/histo/setHisto 1 100 0. 10. keV #energy in absorber # /run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm5/gottsch.mac b/examples/extended/electromagnetic/TestEm5/gottsch.mac index b84506b748..f95ecb66a9 100644 --- a/examples/extended/electromagnetic/TestEm5/gottsch.mac +++ b/examples/extended/electromagnetic/TestEm5/gottsch.mac @@ -1,4 +1,4 @@ -# $Id: gottsch.mac,v 1.1 2003/08/11 10:03:21 maire Exp $ +# $Id: gottsch.mac,v 1.2 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -22,7 +22,8 @@ /gun/particle proton /gun/energy 158.6 MeV # -/testem/histo/setFileName gottsch.paw +/testem/histo/setFileName gottsch +/testem/histo/setFileType hbook /testem/histo/setHisto 5 100 0.0 0.6 deg #space angle /testem/histo/setHisto 6 100 -0.6 +0.6 deg #projected angle # diff --git a/examples/extended/electromagnetic/TestEm5/hanson.mac b/examples/extended/electromagnetic/TestEm5/hanson.mac index a855ecc8a7..daa911c83b 100644 --- a/examples/extended/electromagnetic/TestEm5/hanson.mac +++ b/examples/extended/electromagnetic/TestEm5/hanson.mac @@ -1,4 +1,4 @@ -# $Id: hanson.mac,v 1.1 2003/08/11 10:03:55 maire Exp $ +# $Id: hanson.mac,v 1.2 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -24,7 +24,8 @@ /gun/particle e- /gun/energy 15.7 MeV # -/testem/histo/setFileName hanson.paw +/testem/histo/setFileName hanson +/testem/histo/setFileType hbook /testem/histo/setHisto 5 100 0 10 deg #space angle ###/testem/histo/setHisto 5 60 0 30 deg #space angle # diff --git a/examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh index e786eb9b2d..3753ce6b53 100644 --- a/examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.5 2004/06/21 10:57:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh index 6b642cb1e1..22f3d37ea8 100644 --- a/examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.4 2004/09/24 09:57:59 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/EventAction.hh b/examples/extended/electromagnetic/TestEm5/include/EventAction.hh index 4ff2ca61e8..60724fe5ba 100644 --- a/examples/extended/electromagnetic/TestEm5/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.2 2004/06/21 10:57:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh index 56796a77d7..9e400f399f 100644 --- a/examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventMessenger.hh,v 1.4 2004/09/24 09:57:59 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm5/include/HistoManager.hh index bf87e6a654..ef3490b591 100644 --- a/examples/extended/electromagnetic/TestEm5/include/HistoManager.hh +++ b/examples/extended/electromagnetic/TestEm5/include/HistoManager.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.hh,v 1.7 2004/09/24 09:57:59 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoManager.hh,v 1.8 2005/03/02 17:17:57 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -36,7 +36,6 @@ namespace AIDA { class IAnalysisFactory; class ITree; - class IHistogramFactory; class IHistogram1D; } @@ -53,8 +52,9 @@ class HistoManager HistoManager(); ~HistoManager(); - void SetFileName (const G4String& name) { fileName = name;}; - void SetFileType (const G4String& name) { fileType = name;}; + void SetFileName (const G4String& name) { fileName[0] = name;}; + void SetFileType (const G4String& name) { fileType = name;}; + void SetFileOption (const G4String& name) { fileOption = name;}; void book(); void save(); void SetHisto (G4int,G4int,G4double,G4double,const G4String& unit="none"); @@ -67,11 +67,11 @@ class HistoManager private: - G4String fileName; + G4String fileName[2]; G4String fileType; + G4String fileOption; AIDA::IAnalysisFactory* af; AIDA::ITree* tree; - AIDA::IHistogramFactory* hf; AIDA::IHistogram1D* histo[MaxHisto]; G4bool exist[MaxHisto]; G4String Label[MaxHisto]; diff --git a/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.hh index 42fb4f93d4..0e808b5f6f 100644 --- a/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.hh,v 1.5 2004/06/21 10:57:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.hh,v 1.6 2005/03/02 17:17:57 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,6 +58,7 @@ class HistoMessenger: public G4UImessenger G4UIdirectory* histoDir; G4UIcmdWithAString* factoryCmd; G4UIcmdWithAString* typeCmd; + G4UIcmdWithAString* optionCmd; G4UIcommand* histoCmd; G4UIcmdWithAnInteger* rmhistoCmd; diff --git a/examples/extended/electromagnetic/TestEm5/include/IonC12.hh b/examples/extended/electromagnetic/TestEm5/include/IonC12.hh deleted file mode 100644 index b8dc57a4c5..0000000000 --- a/examples/extended/electromagnetic/TestEm5/include/IonC12.hh +++ /dev/null @@ -1,66 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: IonC12.hh,v 1.4 2004/06/21 10:57:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// Each class inheriting from G4VIon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef IonC12_h -#define IonC12_h 1 - -#include "globals.hh" -#include "G4VIon.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... - -class IonC12 : public G4VIon -{ - private: - static IonC12 theIon; - - public: - IonC12( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~IonC12(); - - static IonC12* IonDefinition(); - static IonC12* Ion(); -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... - -#endif diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListBinaryCascade.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListBinaryCascade.hh index 0930f8e858..3213f3a556 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListBinaryCascade.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.hh,v 1.2 2004/04/29 13:55:09 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class Description: // This class is an derived class of G4VPhysicsConstructor diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v52.hh index a8aa549bdf..0e2f36ad62 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v52.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmG4v52.hh,v 1.3 2004/06/21 10:57:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListEmPenelope.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListEmPenelope.hh new file mode 100644 index 0000000000..2d967cee44 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListEmPenelope.hh @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysListEmPenelope.hh,v 1.1 2005/03/16 12:08:22 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmPenelope_h +#define PhysListEmPenelope_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmPenelope : public G4VPhysicsConstructor +{ + public: + PhysListEmPenelope(const G4String& name = "penelope"); + ~PhysListEmPenelope(); + + public: + // This method is dummy for physics + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListEmStandard.hh index 1cf05a80e5..fcfc776933 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListEmStandard.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.hh,v 1.4 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListHadronElastic.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListHadronElastic.hh index 1c2ca400d8..e27bf10da9 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListHadronElastic.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListHadronElastic.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListHadronElastic.hh,v 1.3 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class Description: // This class is an derived class of G4VPhysicsConstructor diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListIonBinaryCascade.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListIonBinaryCascade.hh index 68e16d5369..f0194b86f4 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListIonBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListIonBinaryCascade.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListIonBinaryCascade.hh,v 1.3 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListIonBinaryCascade.hh,v 1.4 2005/03/16 12:08:22 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class Description: // This class is an derived class of G4VPhysicsConstructor @@ -66,8 +66,6 @@ class PhysListIonBinaryCascade : public G4VPhysicsConstructor G4DeuteronInelasticProcess theIPdeuteron; G4TritonInelasticProcess theIPtriton; G4AlphaInelasticProcess theIPalpha; - G4HadronInelasticProcess* theIPHe3; - G4HadronInelasticProcess* theIPIonC12; G4HadronInelasticProcess* theIPGenericIon; }; diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh index 6021372cf8..96d91a1e2d 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.4 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh index 89e7d6956f..20c636956c 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.6 2004/09/24 09:58:00 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh index 648b9496f3..840985a1c6 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.3 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh index 32446a04c6..83f43686c2 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.3 2004/09/24 09:58:00 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/RunAction.hh b/examples/extended/electromagnetic/TestEm5/include/RunAction.hh index efcccfbcec..b245413829 100644 --- a/examples/extended/electromagnetic/TestEm5/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.5 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/StackingAction.hh b/examples/extended/electromagnetic/TestEm5/include/StackingAction.hh index 4fc742468b..120ced6811 100644 --- a/examples/extended/electromagnetic/TestEm5/include/StackingAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/StackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingAction.hh,v 1.2 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.hh index 7acedd3d21..5a9c40340b 100644 --- a/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingMessenger.hh,v 1.4 2004/09/24 09:58:00 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/StepMax.hh b/examples/extended/electromagnetic/TestEm5/include/StepMax.hh index fa961a481d..7c20aeb375 100644 --- a/examples/extended/electromagnetic/TestEm5/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm5/include/StepMax.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.hh,v 1.2 2004/06/21 10:57:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/StepMaxMessenger.hh index 1e30578f90..5a3bd76538 100644 --- a/examples/extended/electromagnetic/TestEm5/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.2 2003/10/07 11:58:29 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm5/include/SteppingAction.hh index 5f8beee813..0b311c1dce 100644 --- a/examples/extended/electromagnetic/TestEm5/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.2 2004/06/21 10:57:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh index b583b5efff..2f0baf7a3a 100644 --- a/examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.2 2004/06/21 10:57:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm5/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm5/include/TrackingAction.hh index debda48602..cf9c53b99b 100644 --- a/examples/extended/electromagnetic/TestEm5/include/TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.hh,v 1.2 2004/06/21 10:57:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/VisManager.hh b/examples/extended/electromagnetic/TestEm5/include/VisManager.hh deleted file mode 100644 index 7bd9d29178..0000000000 --- a/examples/extended/electromagnetic/TestEm5/include/VisManager.hh +++ /dev/null @@ -1,65 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.hh,v 1.2 2004/06/21 10:57:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef VisManager_h -#define VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class VisManager: public G4VisManager { - -public: - - VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif diff --git a/examples/extended/electromagnetic/TestEm5/kulchi.mac b/examples/extended/electromagnetic/TestEm5/kulchi.mac index 7cc30874f8..ab0f39e046 100644 --- a/examples/extended/electromagnetic/TestEm5/kulchi.mac +++ b/examples/extended/electromagnetic/TestEm5/kulchi.mac @@ -1,4 +1,4 @@ -# $Id: kulchi.mac,v 1.1 2003/08/11 10:04:09 maire Exp $ +# $Id: kulchi.mac,v 1.2 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -23,7 +23,8 @@ /gun/particle e- /gun/energy 2.25 MeV # -/testem/histo/setFileName kulchi.paw +/testem/histo/setFileName kulchi +/testem/histo/setFileType hbook /testem/histo/setHisto 5 100 0. 25. deg #space angle /testem/histo/setHisto 6 100 -25. +25. deg #projected angle # diff --git a/examples/extended/electromagnetic/TestEm5/mumsc.mac b/examples/extended/electromagnetic/TestEm5/mumsc.mac index d6bd11aa5b..ea9ccc127b 100644 --- a/examples/extended/electromagnetic/TestEm5/mumsc.mac +++ b/examples/extended/electromagnetic/TestEm5/mumsc.mac @@ -1,4 +1,4 @@ -# $Id: mumsc.mac,v 1.4 2004/06/21 10:57:09 maire Exp $ +# $Id: mumsc.mac,v 1.5 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -23,7 +23,8 @@ /gun/particle mu+ /gun/energy 50 GeV # -/testem/histo/setFileName mumsc.paw +/testem/histo/setFileName mumsc +/testem/histo/setFileType hbook /testem/histo/setHisto 6 200 -20.0 +20.0 mrad #projected angle /testem/histo/setHisto 7 200 -10.0 +10.0 mm #projected deviation # diff --git a/examples/extended/electromagnetic/TestEm5/neutron.mac b/examples/extended/electromagnetic/TestEm5/neutron.mac new file mode 100644 index 0000000000..172e5a2bc6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/neutron.mac @@ -0,0 +1,34 @@ +# $Id: neutron.mac,v 1.2 2004/11/22 15:43:39 maire Exp $ +# +# macro file for TestEm5.cc +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat H2Liq +###/testem/det/setAbsMat Beryllium +###/testem/det/setAbsMat Graphite +###/testem/det/setAbsMat Water +# +/testem/det/setAbsThick 20 cm +/testem/det/setAbsYZ 20 cm +# +/testem/phys/addPhysics standard +/testem/phys/addPhysics elastic +# +/testem/phys/setCuts 1 km +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle neutron +/gun/energy 3 MeV +# +/testem/histo/setFileName h2liq.paw +/testem/histo/setHisto 1 200 0.01 4000. keV #energy deposit +# +/testem/event/printModulo 10000 +# +##/run/beamOn 100000 + + diff --git a/examples/extended/electromagnetic/TestEm5/references.txt b/examples/extended/electromagnetic/TestEm5/references.txt new file mode 100644 index 0000000000..fa2ee35bb8 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/references.txt @@ -0,0 +1,92 @@ + + Angle distribution data + + 1. A.0.Hanson et al. Phys.Rev. 84, 634.(1951) + 15.7 MeV e-, thin Au and Be foils, + angle distribution (with tails!) + 2. L.A.Kulchitsky, G.D.Latyshev Phys.Rev. 61, 254. (1942) + 2.25 MeV e-, different targets + theta0 of the angle distribution, no tails + 3. H.Bichsel Phys.Rev. 112, 182. (1958) + few MeV protons, diff. targets, theta0 + 4. B.Gottschalk et al. NIM B74, 467 (1993) + 158.6 MeV protons, diff. targets and thicknesses + theta0 of the angle distribution + 5. E.V.Hungerford et al. Nucl. Phys. A197, 515 (1972) + 600 MeV protons, diff. targets, angle distributions + (small angle) + 6. J.Vincour and P.Bem, NIM 148, 399 (1978) + 6-12 MeV p and d, silicon, angle distributions + (small angle) + 7. B.W.Mayes et al. Nucl.Phys. A230, 515 (1974) + 200 - 300 MeV/c pi+, different targets, thicknesses + theta0x,y (projected angle, small angles) + 8. S.A. Akimenko et al. NIM A243, 518 (1986) + 7.3 and 11.7 GeV/c muons, Cu target + angle distr. (small angles) + 9. C.Michelet et al. NIM B181, 157 (2001) + 2.5 MeV p and alpha, lateral distr. after mylar foils + + Transmission, backscattering, dose, energy deposit etc. + + 9. S.M. Seltzer and M.J.Berger + NIM 119, 157 (1974) + Monte Carlo + a lot of exp. data with references! + transmission coeff, angle and energy distr. of + transmitted electrons, reflection coeff, + angle distr. of reflected electrons, + energy deposit as a function of depth, + 10. D.H.Rester and J.H. Derrickson + J.Appl.Phys. 12, 714 (1971) + transmission of 1 MeV and 2.5 MeV e-,Al,Au + energy and angle distr. ot transmitted particles + 11. D.H.Rester and J.H. Derrickson + NIM 86, 261 (1970) + 1 MeV e- , backscattering, diff. targets + energy and angular distr. of backscattered particles + 12. J.Jakschik and K.P. Jungst + NIM 79 , 240 (1970) + backscattering of 250/500 keV e- from THIN targets(Al) + backsc.coeff.,energy spectra of backscattered particles, + angle distr. of backscattered particles + 13. H.H.Seliger Phys.Rev. 100, 1029 (1955) + transmission of e-/e+ 159-960 keV, diff. materials/thicknesses + transm. coeff. + 14. H.J.Hunger and L.Kuchler Phys.Stat.Sol.(a) 56, K45 (1979) + e- backscatt. coeffs , 4-40 keV, Z=5-92 (numbers!) + 15. T.Tabata et al. NIM 94, 509 (1971) + empirical formula for e- backscattering, + comparison with data+references + 16. V.A.Kuzminikh et al. NIM 118, 269 (1974) + empirical formula for e+ backscattering , comparison with data + 0.1-20 MeV, arbitrary Z + it claims : tis formula is better than Tabata's + 17. E.H.Darlington J.Phys.D:Appl.Phys. 8, 85 (1975) + backscattering of 10-100keV e- from diff.targets, + backsc.coeff.+energy spectrum + 18. G.Neubert,S.Rogaschewsky Phys.Stat.Sol(a) 59, 35 (1980) + 15-60 keV e- backscattering,diff. angles of incidence + and diff. targets + 19. P.G.Coleman et al. J.Phys: Condens.Matter 4, 10311(1992) + 1 - 50 keV e+ backscattering, diff. angles of incidence, + diff. targets , bs coeffs(numbers!). + 20. G.R.Massoumi et al. Phys.Rev. B 47, 11007(1993) + e-/e+ bs, T < 100 keV,very detailed MC calculation + data + 21. H.Bichsel + Rev.Mod.Phys. 60, 663 (1988) + Energy deposit in Si detectors (e+-,p,pi, diff.energies/ + detector thicknesses) + 22. M.J.Berger et al. NIM 69, 181(1969). + Energy deposit of 250 keV - 1 MeV e- in Si counters, + energy deposit distributions + (sigma noise + en.cut in detectors included!) + 23. S.Kuhn et al. NIM B4 332 (1984) + Multiple scattering of protons in thick gas targets + ( lateral distribution of few MeV protons after 1.5 m gas) + 24. S.M.Seltzer and M.J.Berger + Energy deposition by electron,Bremsstrahlung and 60Co gamma-ray + beams in multi-layer media + Appl.Radiat.Isot. Vol.38 (1987) 349. + 25. R.Shimizu et al. J.Phys.D: Appl.Phys. 9.(1976) 101. + Transmission of 20 keV e- through very thin Al layers + (d = 320 and 1040 nanometer!) diff --git a/examples/extended/electromagnetic/TestEm5/shen1.mac b/examples/extended/electromagnetic/TestEm5/shen1.mac index f0df0c7849..a0138e74ad 100644 --- a/examples/extended/electromagnetic/TestEm5/shen1.mac +++ b/examples/extended/electromagnetic/TestEm5/shen1.mac @@ -1,4 +1,4 @@ -# $Id: shen1.mac,v 1.1 2003/08/11 10:09:00 maire Exp $ +# $Id: shen1.mac,v 1.2 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -23,7 +23,8 @@ /gun/particle proton /gun/energy 69.068 GeV #momentum 70 GeV/c # -/testem/histo/setFileName shen1.paw +/testem/histo/setFileName shen1 +/testem/histo/setFileType hbook /testem/histo/setHisto 5 100 0.00 0.01 deg #space angle # /testem/stack/killSecondaries diff --git a/examples/extended/electromagnetic/TestEm5/shen2.mac b/examples/extended/electromagnetic/TestEm5/shen2.mac index 86d70775de..4e2216ac45 100644 --- a/examples/extended/electromagnetic/TestEm5/shen2.mac +++ b/examples/extended/electromagnetic/TestEm5/shen2.mac @@ -1,4 +1,4 @@ -# $Id: shen2.mac,v 1.1 2003/08/11 10:09:12 maire Exp $ +# $Id: shen2.mac,v 1.2 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -23,7 +23,8 @@ /gun/particle proton /gun/energy 174.664 GeV #momentum 175 GeV/c # -/testem/histo/setFileName shen2.paw +/testem/histo/setFileName shen2 +/testem/histo/setFileType hbook /testem/histo/setHisto 5 100 0.00 0.004 deg #space angle /testem/histo/setHisto 6 100 -0.004 +0.004 deg #projected angle # diff --git a/examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc index 6bf8c8f923..421dd040a5 100644 --- a/examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: DetectorConstruction.cc,v 1.6 2004/11/22 15:43:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: DetectorConstruction.cc,v 1.7 2005/03/16 12:08:22 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -100,7 +100,9 @@ G4Element* H = new G4Element("Hydrogen",symbol="H", z= 1, a= 1.01*g/mole); G4Element* C = new G4Element("Carbon", symbol="C", z= 6, a= 12.01*g/mole); G4Element* N = new G4Element("Nitrogen",symbol="N", z= 7, a= 14.01*g/mole); G4Element* O = new G4Element("Oxygen", symbol="O", z= 8, a= 16.00*g/mole); +G4Element* Na = new G4Element("Sodium", symbol="Na", z=11, a= 22.99*g/mole); G4Element* Ar = new G4Element("Argon", symbol="Ar", z=18, a= 39.95*g/mole); +G4Element* I = new G4Element("Iodine", symbol="I" , z=53, a= 126.90*g/mole); G4Element* Xe = new G4Element("Xenon", symbol="Xe", z=54, a= 131.29*g/mole); // @@ -135,6 +137,11 @@ G4Material* CH = new G4Material("Plastic", density= 1.04*g/cm3, ncomponents=2); CH->AddElement(C, natoms=1); CH->AddElement(H, natoms=1); +G4Material* NaI = new G4Material("NaI", density= 3.67*g/cm3, ncomponents=2); +NaI->AddElement(Na, natoms=1); +NaI->AddElement(I , natoms=1); +NaI->GetIonisation()->SetMeanExcitationEnergy(452*eV); + // // define a material from elements. case 2: mixture by fractional mass // diff --git a/examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc index e1ae551bf2..f1efcc6651 100644 --- a/examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.3 2004/09/24 09:58:07 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/EventAction.cc b/examples/extended/electromagnetic/TestEm5/src/EventAction.cc index 7664e2090b..e5a83c3446 100644 --- a/examples/extended/electromagnetic/TestEm5/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.4 2004/06/21 10:57:13 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/EventMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/EventMessenger.cc index 59fa2d4d34..83d6c664e8 100644 --- a/examples/extended/electromagnetic/TestEm5/src/EventMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/EventMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventMessenger.cc,v 1.3 2004/09/24 09:58:07 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm5/src/HistoManager.cc index 8dca067a1a..d1b41a11ea 100644 --- a/examples/extended/electromagnetic/TestEm5/src/HistoManager.cc +++ b/examples/extended/electromagnetic/TestEm5/src/HistoManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.cc,v 1.13 2004/12/02 16:19:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: HistoManager.cc,v 1.15 2005/06/01 12:37:10 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,22 +31,27 @@ #include "G4UnitsTable.hh" #ifdef G4ANALYSIS_USE -#include //for auto_ptr #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... HistoManager::HistoManager() -:tree(0),hf(0),factoryOn(false) +:af(0),tree(0),factoryOn(false) { #ifdef G4ANALYSIS_USE // Creating the analysis factory af = AIDA_createAnalysisFactory(); + if(!af) { + G4cout << " HistoManager::HistoManager() :" + << " problem creating the AIDA analysis factory." + << G4endl; + } #endif - fileName = "testem5.aida"; - fileType = "hbook"; + fileName[0] = "testem5"; + fileType = "hbook"; + fileOption = "--noErrors uncompress"; // histograms for (G4int k=0; k tf( af->createTreeFactory() ); - + if(!af) return; + // Creating a tree mapped to an hbook file. + fileName[1] = fileName[0] + "." + fileType; G4bool readOnly = false; G4bool createNew = true; - tree = tf->create(fileName, fileType, readOnly, createNew, "uncompress"); + AIDA::ITreeFactory* tf = af->createTreeFactory(); + tree = tf->create(fileName[1], fileType, readOnly, createNew, fileOption); + delete tf; + if(!tree) { + G4cout << "HistoManager::book() :" + << " problem creating the AIDA tree with " + << " storeName = " << fileName[1] + << " storeType = " << fileType + << " readOnly = " << readOnly + << " createNew = " << createNew + << " options = " << fileOption + << G4endl; + return; + } // Creating a histogram factory, whose histograms will be handled by the tree - hf = af->createHistogramFactory(*tree); + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); // create selected histograms for (G4int k=0; k Histogram Tree is opened " << G4endl; + G4cout << "\n----> Histogram Tree is opened in " << fileName[1] << G4endl; #endif } @@ -107,10 +126,10 @@ void HistoManager::save() if (factoryOn) { tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) - G4cout << "\n----> Histogram Tree is saved in " << fileName << G4endl; + G4cout << "\n----> Histogram Tree is saved in " << fileName[1] << G4endl; - delete hf; delete tree; + tree = 0; factoryOn = false; } #endif @@ -147,7 +166,7 @@ void HistoManager::SetHisto(G4int ih, { "dummy", //0 "energy deposit in absorber", //1 "energy of charged secondaries at creation", //2 - "energy of gammas at creation (std::log10(ekin/MeV))", //3 + "energy of gammas at creation (std::log10(ekin/MeV))",//3 "(transmit, charged) : kinetic energy at exit", //4 "(transmit, charged) : space angle at exit", //5 "(transmit, charged) : projected angle at exit", //6 @@ -160,7 +179,7 @@ void HistoManager::SetHisto(G4int ih, "(reflect , charged) : projected angle at exit", //13 "(reflect , neutral) : kinetic energy at exit", //14 "(reflect , neutral) : space angle at exit", //15 - "(reflect , neutral) : projected angle at exit", //16 + "(reflect , neutral) : projected angle at exit" //16 }; G4String titl = title[ih]; diff --git a/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc index 2c3d2be735..ed62dff46d 100644 --- a/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.4 2004/06/21 10:57:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.cc,v 1.5 2005/03/02 17:17:58 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,8 +47,12 @@ HistoMessenger::HistoMessenger(HistoManager* manager) factoryCmd->SetGuidance("set name for the histograms file"); typeCmd = new G4UIcmdWithAString("/testem/histo/setFileType",this); - typeCmd->SetGuidance("set histograms file type"); + typeCmd->SetGuidance("set histograms file type: hbook, root, XML"); + typeCmd->SetCandidates("hbook root XML"); + optionCmd = new G4UIcmdWithAString("/testem/histo/setFileOption",this); + optionCmd->SetGuidance("set option for the histograms file"); + histoCmd = new G4UIcommand("/testem/histo/setHisto",this); histoCmd->SetGuidance("Set bining of the histo number ih :"); histoCmd->SetGuidance(" nbBins; valMin; valMax; unit (of vmin and vmax)"); @@ -88,6 +92,7 @@ HistoMessenger::~HistoMessenger() { delete rmhistoCmd; delete histoCmd; + delete optionCmd; delete typeCmd; delete factoryCmd; delete histoDir; @@ -102,6 +107,9 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) if (command == typeCmd) histoManager->SetFileType(newValues); + + if (command == optionCmd) + histoManager->SetFileOption(newValues); if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListBinaryCascade.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListBinaryCascade.cc index d52a2b669d..31771b662e 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListBinaryCascade.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.cc,v 1.2 2004/04/29 13:55:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.cc index 806614e9c2..19edda9ffc 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListEmG4v52.cc,v 1.4 2004/06/21 10:57:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmG4v52.cc,v 1.5 2005/06/01 12:37:10 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -30,15 +30,15 @@ #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" #include "G4MultipleScattering52.hh" #include "G4eIonisation52.hh" #include "G4eBremsstrahlung52.hh" -#include "G4eplusAnnihilation.hh" +#include "G4eplusAnnihilation52.hh" #include "G4MuIonisation52.hh" #include "G4MuBremsstrahlung52.hh" @@ -72,9 +72,9 @@ void PhysListEmG4v52::ConstructProcess() if (particleName == "gamma") { // gamma - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); - pmanager->AddDiscreteProcess(new G4ComptonScattering); - pmanager->AddDiscreteProcess(new G4GammaConversion); + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect52); + pmanager->AddDiscreteProcess(new G4ComptonScattering52); + pmanager->AddDiscreteProcess(new G4GammaConversion52); } else if (particleName == "e-") { //electron @@ -91,7 +91,7 @@ void PhysListEmG4v52::ConstructProcess() pmanager->AddProcess(pmuls, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); pmuls->SetFacrange(0.2); diff --git a/examples/extended/electromagnetic/TestEm9/src/IonC12.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmPenelope.cc old mode 100755 new mode 100644 similarity index 51% rename from examples/extended/electromagnetic/TestEm9/src/IonC12.cc rename to examples/extended/electromagnetic/TestEm5/src/PhysListEmPenelope.cc index 4290dc965b..101e1d10aa --- a/examples/extended/electromagnetic/TestEm9/src/IonC12.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmPenelope.cc @@ -20,60 +20,71 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: IonC12.cc,v 1.1 2003/07/14 17:10:16 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmPenelope.cc,v 1.1 2005/03/16 12:08:22 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#include "PhysListEmPenelope.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" -#include "IonC12.hh" +#include "G4PenelopeCompton.hh" +#include "G4PenelopeGammaConversion.hh" +#include "G4PenelopePhotoElectric.hh" + +#include "G4MultipleScattering.hh" + +#include "G4PenelopeIonisation.hh" +#include "G4PenelopeBremsstrahlung.hh" +#include "G4PenelopeAnnihilation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -IonC12::IonC12( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ } +PhysListEmPenelope::PhysListEmPenelope(const G4String& name) + : G4VPhysicsConstructor(name) +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -IonC12::~IonC12() { } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -// -// static member definition -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -IonC12 IonC12::theIon( - "ionC12", 11.17793*GeV, 0.0*MeV, +6.0*eplus, - 0, +1, 0, - 0, 0, 0, - "static_nucleus", 0, +12, 0, - true, -1.0, 0 -); +PhysListEmPenelope::~PhysListEmPenelope() +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -IonC12* IonC12::IonDefinition() {return &theIon;} +void PhysListEmPenelope::ConstructProcess() +{ + // Add standard EM Processes -IonC12* IonC12::Ion() {return &theIon;} + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PenelopePhotoElectric); + pmanager->AddDiscreteProcess(new G4PenelopeCompton); + pmanager->AddDiscreteProcess(new G4PenelopeGammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4PenelopeIonisation, -1, 2,2); + pmanager->AddProcess(new G4PenelopeBremsstrahlung, -1,-1,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4PenelopeIonisation, -1, 2,2); + pmanager->AddProcess(new G4PenelopeBremsstrahlung, -1,-1,3); + pmanager->AddProcess(new G4PenelopeAnnihilation, 0,-1,4); + + } + } +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc index ee2659f64d..61e65a041d 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc,v 1.6 2004/06/21 10:57:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmStandard.cc,v 1.7 2005/03/16 12:08:22 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -95,7 +95,7 @@ void PhysListEmStandard::ConstructProcess() pmuls->SetFacrange(0.2); - } else if( particleName == "mu+" || + } else if (particleName == "mu+" || particleName == "mu-" ) { //muon pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); @@ -103,7 +103,7 @@ void PhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); - } else if( particleName == "GenericIon" ) { + } else if (particleName == "alpha" || particleName == "GenericIon" ) { pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); pmanager->AddProcess(new G4ionIonisation, -1, 2,2); diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListHadronElastic.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListHadronElastic.cc index 44cdb9a773..3ec4961bff 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListHadronElastic.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListHadronElastic.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListHadronElastic.cc,v 1.4 2004/06/21 10:57:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListHadronElastic.cc,v 1.5 2005/02/07 16:12:17 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -29,7 +29,7 @@ #include "PhysListHadronElastic.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4LElastic.hh" +#include "G4LElastic.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListIonBinaryCascade.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListIonBinaryCascade.cc index 839f92fdbd..481cea2117 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListIonBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListIonBinaryCascade.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListIonBinaryCascade.cc,v 1.2 2004/04/29 13:55:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListIonBinaryCascade.cc,v 1.4 2005/03/16 13:30:25 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -29,21 +29,12 @@ #include "PhysListIonBinaryCascade.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4LFission.hh" -#include "G4LCapture.hh" + #include "G4Deuteron.hh" #include "G4Triton.hh" -#include "G4He3.hh" #include "G4Alpha.hh" -#include "IonC12.hh" #include "G4GenericIon.hh" -#include "G4ExcitationHandler.hh" -#include "G4Evaporation.hh" -#include "G4FermiBreakUp.hh" -#include "G4StatMF.hh" -#include "G4GeneratorPrecompoundInterface.hh" - #include "G4HadronInelasticProcess.hh" #include "G4BinaryLightIonReaction.hh" #include "G4TripathiCrossSection.hh" @@ -66,28 +57,7 @@ PhysListIonBinaryCascade::~PhysListIonBinaryCascade() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void PhysListIonBinaryCascade::ConstructProcess() -{ - /* - // all models for treatment of thermal nucleus - G4Evaporation * theEvaporation = new G4Evaporation; - G4FermiBreakUp * theFermiBreakUp = new G4FermiBreakUp; - G4StatMF * theMF = new G4StatMF; - - // Evaporation logic - G4ExcitationHandler * theHandler = new G4ExcitationHandler; - theHandler->SetEvaporation(theEvaporation); - theHandler->SetFermiModel(theFermiBreakUp); - theHandler->SetMultiFragmentation(theMF); - theHandler->SetMaxAandZForFermiBreakUp(12, 6); - theHandler->SetMinEForMultiFrag(3*MeV); - - // Pre equilibrium stage - G4PreCompoundModel * thePreEquilib = new G4PreCompoundModel(theHandler); - - // a no-cascade generator-precompound interaface - G4GeneratorPrecompoundInterface * theCascade = new G4GeneratorPrecompoundInterface; - theCascade->SetDeExcitation(thePreEquilib); - */ +{ // Binary Cascade G4ParticleDefinition* particle = 0; G4ProcessManager* pmanager = 0; @@ -131,7 +101,6 @@ void PhysListIonBinaryCascade::ConstructProcess() theIPalpha.RegisterMe(theBC); pmanager->AddDiscreteProcess(&theIPalpha); - // GenericIon particle = G4GenericIon::GenericIon(); pmanager = particle->GetProcessManager(); @@ -145,26 +114,6 @@ void PhysListIonBinaryCascade::ConstructProcess() theIPGenericIon->RegisterMe(theGenIonBC); pmanager->AddDiscreteProcess(theIPGenericIon); - // C12 - particle = IonC12::Ion(); - pmanager = particle->GetProcessManager(); - G4HadronInelasticProcess* theIPIonC12 = - new G4HadronInelasticProcess("IonC12Inelastic",particle); - theIPIonC12->AddDataSet(TripathiCrossSection); - theIPIonC12->AddDataSet(aShen); - theIPIonC12->RegisterMe(theGenIonBC); - pmanager->AddDiscreteProcess(theIPIonC12); - - // He3 - particle = G4He3::He3(); - pmanager = particle->GetProcessManager(); - G4HadronInelasticProcess* theIPHe3 = - new G4HadronInelasticProcess("He3Inelastic",particle); - theIPHe3->AddDataSet(TripathiCrossSection); - theIPHe3->AddDataSet(aShen); - theIPHe3->RegisterMe(theGenIonBC); - pmanager->AddDiscreteProcess(theIPHe3); - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc index 23f05dcc93..ad4adccc13 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.9 2004/09/20 08:21:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysicsList.cc,v 1.10 2005/03/16 12:08:22 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,6 +31,7 @@ #include "PhysListEmStandard.hh" #include "PhysListEmG4v52.hh" +#include "PhysListEmPenelope.hh" #include "PhysListHadronElastic.hh" #include "PhysListBinaryCascade.hh" #include "PhysListIonBinaryCascade.hh" @@ -108,14 +109,11 @@ PhysicsList::~PhysicsList() #include "G4AntiNeutron.hh" // Nuclei -#include "G4Alpha.hh" #include "G4Deuteron.hh" #include "G4Triton.hh" -#include "G4He3.hh" +#include "G4Alpha.hh" #include "G4GenericIon.hh" -#include "IonC12.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void PhysicsList::ConstructParticle() @@ -163,10 +161,8 @@ void PhysicsList::ConstructParticle() // ions G4Deuteron::DeuteronDefinition(); G4Triton::TritonDefinition(); - G4He3::He3Definition(); G4Alpha::AlphaDefinition(); G4GenericIon::GenericIonDefinition(); - IonC12::IonDefinition(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -256,7 +252,13 @@ void PhysicsList::AddPhysicsList(const G4String& name) emName = name; delete emPhysicsList; emPhysicsList = new PhysListEmG4v52(name); + + } else if (name == "penelope") { + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmPenelope(name); + } else if (name == "elastic") { hadronPhys.push_back( new PhysListHadronElastic(name)); diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc index 0cb4fa51f8..0ad4a947ed 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.5 2004/09/24 09:58:07 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc index 9a650d7b44..a89342367d 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.3 2004/06/21 10:57:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc index 994d56b313..a8e5799394 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.3 2004/09/24 09:58:07 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/RunAction.cc b/examples/extended/electromagnetic/TestEm5/src/RunAction.cc index 18f59eae53..ccaa1882e8 100644 --- a/examples/extended/electromagnetic/TestEm5/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.18 2004/12/02 16:19:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: RunAction.cc,v 1.19 2005/03/16 16:03:47 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -144,10 +144,6 @@ void RunAction::EndOfRunAction(const G4Run* aRun) G4double dEdxTable = 0.; if (particle->GetPDGCharge()!= 0.) { dEdxTable = emCalculator.GetDEDX(energy,particle,material); - G4double eEnd = energy - dEdxTable*length; - if(eEnd > 0.) { - dEdxTable = 0.5*(dEdxTable + emCalculator.GetDEDX(eEnd,particle,material)); - } } G4double stopTable = dEdxTable/density; diff --git a/examples/extended/electromagnetic/TestEm5/src/StackingAction.cc b/examples/extended/electromagnetic/TestEm5/src/StackingAction.cc index bae44def7b..246d7a94f4 100644 --- a/examples/extended/electromagnetic/TestEm5/src/StackingAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/StackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingAction.cc,v 1.4 2004/12/02 16:19:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.cc index a08d6818a9..12a49880db 100644 --- a/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingMessenger.cc,v 1.3 2004/09/24 09:58:08 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/StepMax.cc b/examples/extended/electromagnetic/TestEm5/src/StepMax.cc index 30a0aaacc7..633289251d 100644 --- a/examples/extended/electromagnetic/TestEm5/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm5/src/StepMax.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.cc,v 1.1 2003/08/11 10:21:51 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc index 3184effe9a..d3d7a1ad34 100644 --- a/examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.cc,v 1.2 2004/09/24 09:58:08 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc index 310ea16468..7c040e16b9 100644 --- a/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.4 2004/09/24 09:58:08 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc index 5841f3bfd6..295ed403e8 100644 --- a/examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.2 2004/06/21 10:57:15 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc index 394cab8b17..a89f348067 100644 --- a/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: TrackingAction.cc,v 1.9 2004/12/02 16:19:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/VisManager.cc b/examples/extended/electromagnetic/TestEm5/src/VisManager.cc deleted file mode 100755 index c8a60c9243..0000000000 --- a/examples/extended/electromagnetic/TestEm5/src/VisManager.cc +++ /dev/null @@ -1,141 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.cc,v 1.3 2004/06/21 10:57:15 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/tramu.mac b/examples/extended/electromagnetic/TestEm5/tramu.mac index 6a3aa79800..02257ad8e1 100644 --- a/examples/extended/electromagnetic/TestEm5/tramu.mac +++ b/examples/extended/electromagnetic/TestEm5/tramu.mac @@ -1,4 +1,4 @@ -# $Id: tramu.mac,v 1.4 2004/11/22 15:43:39 maire Exp $ +# $Id: tramu.mac,v 1.5 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -22,7 +22,8 @@ /gun/particle mu+ /gun/energy 1 TeV # -/testem/histo/setFileName g4stc.paw +/testem/histo/setFileName tramu +/testem/histo/setFileType hbook /testem/histo/setHisto 4 80 920 1000 GeV #energy at exit # /testem/stack/killSecondaries diff --git a/examples/extended/electromagnetic/TestEm5/vincour.mac b/examples/extended/electromagnetic/TestEm5/vincour.mac index dbf5196191..ae435dce6f 100644 --- a/examples/extended/electromagnetic/TestEm5/vincour.mac +++ b/examples/extended/electromagnetic/TestEm5/vincour.mac @@ -1,4 +1,4 @@ -# $Id: vincour.mac,v 1.1 2003/08/11 10:09:43 maire Exp $ +# $Id: vincour.mac,v 1.2 2005/03/02 17:17:57 maire Exp $ # # macro file for TestEm5.cc # @@ -23,7 +23,8 @@ /gun/particle proton /gun/energy 6.56 MeV # -/testem/histo/setFileName vincour.paw +/testem/histo/setFileName vincour +/testem/histo/setFileType hbook /testem/histo/setHisto 5 60 0. 6. deg #space angle # /testem/stack/killSecondaries diff --git a/examples/extended/electromagnetic/TestEm6/History b/examples/extended/electromagnetic/TestEm6/History index cfed4e855c..c2b383b727 100644 --- a/examples/extended/electromagnetic/TestEm6/History +++ b/examples/extended/electromagnetic/TestEm6/History @@ -1,4 +1,4 @@ -$Id: History,v 1.20 2004/12/02 16:22:02 vnivanch Exp $ +$Id: History,v 1.23 2005/06/01 12:57:25 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,15 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +01-06-05 mma (testem6-V07-00-01) +- RunAction : option "noErrors" for hbook files; + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +02-03-05 mma (testem6-V07-00-00) +- RunAction : put a protection for the creation of analysis factory; 02 Dec 04: V.Ivant (testem6-V06-02-01) - Migration to cmath diff --git a/examples/extended/electromagnetic/TestEm6/README b/examples/extended/electromagnetic/TestEm6/README index c53864ccd8..50524ccbdf 100644 --- a/examples/extended/electromagnetic/TestEm6/README +++ b/examples/extended/electromagnetic/TestEm6/README @@ -1,4 +1,4 @@ -$Id: README,v 1.13 2004/09/27 09:35:30 maire Exp $ +$Id: README,v 1.14 2005/03/02 15:47:03 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -107,54 +107,8 @@ $Id: README,v 1.13 2004/09/27 09:35:30 maire Exp $ Idle> type your commands .... Idle> exit - - 7- HISTOGRAMS - Testem6 produces 6 histograms which illustrate the final state of - the GammaConversionToMuons process. See their definitions in RunAction.cc - - The histograms are saved as testem6.paw - - Note that, by default, histograms are disabled. To activate them, uncomment - G4ANALYSIS_USE in GNUmakefile. - - - 8- Using histograms - ------------------- - -By default the histograms are not activated. To activate histograms -the environment variable G4ANALYSIS_USE should be defined. For instance -uncomment the flag G4ANALYSIS_USE in GNUmakefile. - -To use histograms any of implementations of AIDA interfaces should -be available (see http://aida.freehep.org). - -A package including AIDA and extended interfaces also using Python -is PI, available from: http://cern.ch/pi . - -Once installed PI or PI-Lite in a specified local area $MYPY, it is -required to add the installation path to $PATH, i.e. for example, -for release 1.2.1 of PI: - -setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin - -CERN users can use the PATH to the LCG area on AFS. - -Before compilation of the example it is optimal to clean up old -files: - -gmake histclean -gmake - -Before running the example the command should be issued: - -eval `aida-config --runtime csh` - -It is possible to choose the format of the histogram file (hbook, root, XML): -comment/uncomment 1 line in the constructor of RunAction. - - - 9- HOW TO INCREASE STATISTICS ON gamma -> mu+mu- ? + 7- HOW TO INCREASE STATISTICS ON gamma -> mu+mu- ? The processes of gamma -> mu+mu- and e+e- -> mu+mu- have a low cross section but can be important @@ -167,3 +121,69 @@ comment/uncomment 1 line in the constructor of RunAction. /testem/phys/SetGammaToMuPairFac 1000 /testem/phys/SetAnnihiToMuPairFac 1000 + + 8- HISTOGRAMS + + Testem6 produces 6 histograms which illustrate the final state of + the GammaConversionToMuons process. See their definitions in RunAction.cc + + By default the histograms are not activated. To activate histograms + the environment variable G4ANALYSIS_USE should be defined. For instance + uncomment the flag G4ANALYSIS_USE in GNUmakefile. + + Before compilation of the example it is optimal to clean up old files: + gmake histclean + gmake + + By default the histograms are saved as testem6.hbook + It is possible to choose the format of the histogram file (hbook, root, XML): + comment/uncomment 1 line in the constructor of RunAction. + + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 8a - PI + + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi + + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` + + 8b - OpenScientist + + OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist + + In OpenScientist, the AIDA implementation is the Lab package. + You have to "setup" this package before compiling (then with G4ANALYSIS_USE) + and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> setenv CMTPATH + csh> source /Lab//cmt/setup.csh + On UNIX with a sh flavoured shell : + sh> CMTPATH=;export CMTPATH + sh> . /Lab//cmt/setup.sh + On Windows : + DOS> set CMTPATH= + DOS> call /Lab//cmt/setup.bat + + You have to use the XML or root file formats ; producing hbook files is not + supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) + are readable by the interactive applications ; the Lab onx interactive + program or the OpenPAW program. + + With OpenPAW, someone can view the histograms with : + OS> opaw + opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 + opaw> h/plot 3 + diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.cc b/examples/extended/electromagnetic/TestEm6/TestEm6.cc index 862bfeda67..8dc4f6c5d8 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.cc +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TestEm6.cc,v 1.12 2004/09/27 09:35:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: TestEm6.cc,v 1.13 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,7 +42,7 @@ #include "SteppingAction.hh" #ifdef G4VIS_USE - #include "VisManager.hh" + #include "G4VisExecutive.hh" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -66,7 +66,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE //visualization manager - G4VisManager* visManager = new VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.out b/examples/extended/electromagnetic/TestEm6/TestEm6.out index 58ffdd48c4..b42f8052f6 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.out +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -10,13 +10,13 @@ ***** Table : Nb of materials = 3 ***** Material: Beryllium density: 1.848 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 35.276 cm - ---> Element: Beryllium Z = 4.0 N = 9.0 A = 9.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Beryllium ( ) Z = 4.0 N = 9.0 A = 9.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Carbon density: 2.265 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.851 cm - ---> Element: Carbon Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Carbon ( ) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Iron density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm - ---> Element: Iron Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % Visualization Manager instantiating... @@ -28,8 +28,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -44,6 +44,7 @@ userDetector->Construct() start. The Box is 500 m of Iron Iron is registered to the default region. physicsList->Construct() start. +physicsList->ConstructParticle() start. physicsList->Construct() start. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 km @@ -63,7 +64,6 @@ The cut in energy is set1.79769e+305GeV G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for e+ The cut in range [1e+06 (mm)] is too big for material idx=2 The cut in energy is set1.79769e+305GeV -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate GammaToMuPair: gamma->mu+mu- Bethe Heitler process. good cross section parametrization from 422.634 MeV to 1e+12 GeV for all Z. @@ -75,8 +75,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -94,9 +94,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -111,9 +111,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -177,7 +177,8 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 31.9 m 0 fm 0 fm 29.8 TeV 0 eV 0 fm 0 fm Iron initStep - 1 250 m -65.2 mum -53.1 mum 18.1 TeV 11.7 TeV 218 m 218 m OutOfWorld Transportation + 1 190 m -2.05 mm -2.21 cm 8.96 TeV 20.8 TeV 158 m 158 m Iron muIoni + 2 250 m 2.19 mm -2.4 cm 6.2 TeV 2.76 TeV 60.5 m 218 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 @@ -185,7 +186,8 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 31.9 m 0 fm 0 fm 70.2 TeV 0 eV 0 fm 0 fm Iron initStep - 1 250 m 27.6 mum 22.6 mum 40.5 TeV 29.7 TeV 218 m 218 m OutOfWorld Transportation + 1 217 m 7.59 mm 1.24 cm 17.4 TeV 52.8 TeV 185 m 185 m Iron muIoni + 2 250 m 7.94 mm 1.2 cm 11.2 TeV 6.17 TeV 33.1 m 218 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 @@ -193,49 +195,93 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 -250 m 0 fm 0 fm 100 TeV 0 eV 0 fm 0 fm Iron initStep - 1 250 m 0 fm 0 fm 100 TeV 0 eV 500 m 500 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -250 m 0 fm 0 fm 100 TeV 0 eV 0 fm 0 fm Iron initStep - 1 250 m 0 fm 0 fm 100 TeV 0 eV 500 m 500 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -250 m 0 fm 0 fm 100 TeV 0 eV 0 fm 0 fm Iron initStep - 1 -84.8 m 0 fm 0 fm 0 eV 0 eV 165 m 165 m Iron GammaToMuPair + 1 120 m 0 fm 0 fm 0 eV 0 eV 370 m 370 m Iron GammaToMuPair ********************************************************************************************************* * G4Track Information: Particle = mu-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -84.8 m 0 fm 0 fm 92 TeV 0 eV 0 fm 0 fm Iron initStep - 1 250 m 623 mum -1.81 mm 50 TeV 42 TeV 335 m 335 m OutOfWorld Transportation + 0 120 m 0 fm 0 fm 20 TeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m 1.11 mm 1.17 mm 8.6 TeV 11.4 TeV 130 m 130 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -84.8 m 0 fm 0 fm 8.02 TeV 0 eV 0 fm 0 fm Iron initStep - 1 119 m -3.42 mm 8.94 cm 2.06 TeV 5.96 TeV 204 m 204 m Iron muIoni - 2 232 m -9.56 cm 18.7 cm 1.39 TeV 666 GeV 112 m 316 m Iron muIoni - 3 250 m -9.31 cm 18.1 cm 1.31 TeV 83.5 GeV 18.4 m 335 m OutOfWorld Transportation + 0 120 m 0 fm 0 fm 80 TeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m -277 mum -292 mum 44.7 TeV 35.3 TeV 130 m 130 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -250 m 0 fm 0 fm 100 TeV 0 eV 0 fm 0 fm Iron initStep + 1 91.5 m 0 fm 0 fm 0 eV 0 eV 342 m 342 m Iron GammaToMuPair + +********************************************************************************************************* +* G4Track Information: Particle = mu-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 91.5 m 0 fm 0 fm 567 GeV 0 eV 0 fm 0 fm Iron initStep + 1 130 m -3.16 cm -16.8 cm 413 GeV 154 GeV 39 m 39 m Iron muIoni + 2 163 m -1.53 mm -28.6 cm 229 GeV 183 GeV 32 m 71 m Iron muIoni + 3 184 m -5.36 cm -42.7 cm 177 GeV 52.4 GeV 21.3 m 92.3 m Iron muIoni + 4 201 m -2.28 cm -47.4 cm 140 GeV 37.4 GeV 17.5 m 110 m Iron muIoni + 5 216 m -9.33 cm -59.6 cm 110 GeV 29.9 GeV 14.5 m 124 m Iron muIoni + 6 228 m -2.78 cm -59.9 cm 85.9 GeV 23.9 GeV 11.9 m 136 m Iron muIoni + 7 237 m -1.64 cm -61.1 cm 64.9 GeV 21 GeV 9.68 m 146 m Iron muIoni + 8 245 m 4.73 cm -56.7 cm 52 GeV 12.9 GeV 7.6 m 153 m Iron muIoni + 9 250 m 7.75 cm -60.3 cm 42.8 GeV 9.25 GeV 5.08 m 158 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 91.5 m 0 fm 0 fm 99.4 TeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m -40.5 mum -4.92 mum 55.3 TeV 44.2 TeV 158 m 158 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -250 m 0 fm 0 fm 100 TeV 0 eV 0 fm 0 fm Iron initStep + 1 -190 m 0 fm 0 fm 0 eV 0 eV 60.2 m 60.2 m Iron GammaToMuPair + +********************************************************************************************************* +* G4Track Information: Particle = mu-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -190 m 0 fm 0 fm 82.5 TeV 0 eV 0 fm 0 fm Iron initStep + 1 -57.2 cm -1.31 cm 5.58 mm 24.8 TeV 57.7 TeV 189 m 189 m Iron muIoni + 2 151 m 1.05 cm 3.21 mm 8.57 TeV 16.2 TeV 152 m 341 m Iron muIoni + 3 250 m 1.22 cm 1.76 cm 4.59 TeV 3.98 TeV 98.8 m 440 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -190 m 0 fm 0 fm 17.5 TeV 0 eV 0 fm 0 fm Iron initStep + 1 -49.3 m 8.73 mm 2.67 cm 6.36 TeV 11.2 TeV 141 m 141 m Iron muIoni + 2 59.1 m -1.1 cm 7.49 cm 3.07 TeV 3.28 TeV 108 m 249 m Iron muIoni + 3 145 m 2.04 cm 15.8 cm 1.77 TeV 1.3 TeV 85.7 m 335 m Iron muIoni + 4 214 m 1.22 mm 19.4 cm 1.03 TeV 744 GeV 69.1 m 404 m Iron muIoni + 5 250 m -6.37 mm 21.1 cm 774 GeV 253 GeV 36 m 440 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 5 - User=0s Real=1.16s Sys=0.02s + User=0.03s Real=0.18s Sys=0.02s --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1362242984, 2014133420 + Current couple of seeds = 1436682984, 1663224890 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh index 9fb38e35fc..cd98b68586 100644 --- a/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.2 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh index 316ab6694d..ad0857a0bf 100644 --- a/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.3 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/EventAction.hh b/examples/extended/electromagnetic/TestEm6/include/EventAction.hh index a6148be4cc..84c9044241 100644 --- a/examples/extended/electromagnetic/TestEm6/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.2 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh index cc94eefc16..5d59585eb1 100644 --- a/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh index 2bd87fdbd9..4fc0896a1c 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.4 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh index cbe2b39567..172259848b 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.3 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh index 11bf3329b7..b71b9832fd 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.2 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh index 86b5d6b61a..0732093259 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.2 2004/09/27 09:35:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/RunAction.hh b/examples/extended/electromagnetic/TestEm6/include/RunAction.hh index 0073c8eeb4..e6c21b4133 100644 --- a/examples/extended/electromagnetic/TestEm6/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.8 2004/09/27 09:35:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh index bca63d2c96..f2684326b8 100644 --- a/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.3 2004/12/02 16:28:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh index ffd1900905..124462f7dd 100644 --- a/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.2 2004/09/27 09:35:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm6/include/VisManager.hh b/examples/extended/electromagnetic/TestEm6/include/VisManager.hh deleted file mode 100644 index 0fedc7003a..0000000000 --- a/examples/extended/electromagnetic/TestEm6/include/VisManager.hh +++ /dev/null @@ -1,65 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.hh,v 1.2 2004/09/27 09:35:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef VisManager_h -#define VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class VisManager: public G4VisManager { - -public: - - VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif diff --git a/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc index b779044653..06ce3ad65d 100644 --- a/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.cc,v 1.9 2004/09/27 09:35:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc index 1b4446775f..7d5c3a1922 100644 --- a/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.4 2004/09/27 09:35:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/EventAction.cc b/examples/extended/electromagnetic/TestEm6/src/EventAction.cc index 37c30dd19b..1a56cea64a 100644 --- a/examples/extended/electromagnetic/TestEm6/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.5 2004/09/27 09:35:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc index 89d4e736b7..927ae77552 100644 --- a/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.5 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc index 26688ec316..aea60eacde 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.cc,v 1.7 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc index 21dd1d5100..38ee251ca2 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.6 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc index a604bb7526..6990d041dc 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.2 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc index 938b8c22d8..3e59151927 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.4 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/RunAction.cc b/examples/extended/electromagnetic/TestEm6/src/RunAction.cc index 275b41a559..ef13361781 100644 --- a/examples/extended/electromagnetic/TestEm6/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.8 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RunAction.cc,v 1.10 2005/06/01 12:57:25 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,29 +48,36 @@ RunAction::RunAction() // Creating the analysis factory af = AIDA_createAnalysisFactory(); - // Creating the tree factory - AIDA::ITreeFactory* tf = af->createTreeFactory(); + if (af) { + // Creating the tree factory + AIDA::ITreeFactory* tf = af->createTreeFactory(); - // Creating a tree mapped to an hbook file. - G4bool readOnly = false; - G4bool createNew = true; - tree = tf->create("testem6.paw", "hbook", readOnly, createNew, "uncompress"); - //tree = tf->create("testem4.root", "root",readOnly, createNew, "uncompress"); - //tree = tf->create("testem4.aida", "XML" ,readOnly, createNew, "uncompress"); + // Creating a tree mapped to an hbook file. + G4bool readOnly = false; + G4bool createNew = true; + G4String options = "--noErrors uncompress"; + tree = tf->create("testem6.hbook","hbook",readOnly,createNew,options); + //tree = tf->create("testem6.root", "root",readOnly,createNew,options); + //tree = tf->create("testem6.XML" ,"XML" ,readOnly,createNew,options); + delete tf; + + if (tree) { + // Creating a histogram factory + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); - // Creating a histogram factory, whose histograms will be handled by the tree - AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); - - // Creating histograms - histo[0] = hf->createHistogram1D("1","1/(1+(theta+[g]+)**2)",100, 0 ,1.); - histo[1] = hf->createHistogram1D("2","log10(theta+ [g]+)", 100,-3.,1.); - histo[2] = hf->createHistogram1D("3","log10(theta- [g]-)", 100,-3.,1.); - histo[3] = hf->createHistogram1D("4","log10(theta+ [g]+ -theta- [g]-)",100,-3.,1.); - histo[4] = hf->createHistogram1D("5","xPlus" ,100,0.,1.); - histo[5] = hf->createHistogram1D("6","xMinus",100,0.,1.); + // Creating histograms + histo[0] = hf->createHistogram1D("1","1/(1+(theta+[g]+)**2)",100, 0 ,1.); + histo[1] = hf->createHistogram1D("2","log10(theta+ [g]+)", 100,-3.,1.); + histo[2] = hf->createHistogram1D("3","log10(theta- [g]-)", 100,-3.,1.); + histo[3] = hf->createHistogram1D("4","log10(theta+ [g]+ -theta- [g]-)", + 100,-3.,1.); + histo[4] = hf->createHistogram1D("5","xPlus" ,100,0.,1.); + histo[5] = hf->createHistogram1D("6","xMinus",100,0.,1.); - delete hf; - delete tf; + delete hf; + G4cout << "\n----> Histogram tree is opened" << G4endl; + } + } #endif } diff --git a/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc index b02f8a50af..778e756bf4 100644 --- a/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.8 2004/12/02 16:28:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc index cc814f6415..a1acc6b59c 100644 --- a/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.4 2004/09/27 09:35:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/VisManager.cc b/examples/extended/electromagnetic/TestEm6/src/VisManager.cc deleted file mode 100755 index 1521a1454b..0000000000 --- a/examples/extended/electromagnetic/TestEm6/src/VisManager.cc +++ /dev/null @@ -1,141 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.cc,v 1.4 2004/09/27 09:35:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/History b/examples/extended/electromagnetic/TestEm7/History index 3a1ff55ad5..44c656bd9c 100644 --- a/examples/extended/electromagnetic/TestEm7/History +++ b/examples/extended/electromagnetic/TestEm7/History @@ -1,4 +1,4 @@ -$Id: History,v 1.23 2004/12/02 16:33:15 vnivanch Exp $ +$Id: History,v 1.29 2005/06/01 13:12:13 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,23 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +01-06-05 mma (testem7-V07-00-03) +- RunAction : option "--noErrors" for hbook + +13-05-05 mma (testem7-V07-00-02) +- add ionC12 in TestEm7.in +- PhysListEmG4v52 : photon processes v52 + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +16-03-05 mma (testem7-V07-00-01) +- remove He3 from predefined particles. +- PhysListEmStandard : treat alpha as GenericIon +- IonBinaryCascade : remove He3 (--> GenericIon) + +02-03-05 mma (testem7-V07-00-00) +- RunAction : put a protection for the creation of analysis factory; 02 Dec 04: V.Ivant (testem7-V06-02-04) - Migration to cmath diff --git a/examples/extended/electromagnetic/TestEm7/README b/examples/extended/electromagnetic/TestEm7/README index 96c89c43a5..085b764ea7 100644 --- a/examples/extended/electromagnetic/TestEm7/README +++ b/examples/extended/electromagnetic/TestEm7/README @@ -1,4 +1,4 @@ -$Id: README,v 1.10 2004/09/27 14:42:22 maire Exp $ +$Id: README,v 1.11 2005/03/02 12:30:36 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -106,7 +106,7 @@ $Id: README,v 1.10 2004/09/27 14:42:22 maire Exp $ The result is a 1D histogram which is the total energy deposited along the trajectory of the incident particle. - The histogram is saved in paw (testem7.paw) + The histogram is saved in hbook format (testem7.hbook) The bin size is egal to stepMax. The number of bins is determined by the thickness of the absorber (with a minimum of 100 bins). @@ -121,36 +121,63 @@ $Id: README,v 1.10 2004/09/27 14:42:22 maire Exp $ DetectorConstruction are printed at EndOfRun, both in MeV and gray. - 8- Using histograms - ------------------- + 8- USING HISTOGRAMS -By default the histograms are not activated. To activate histograms -the environment variable G4ANALYSIS_USE should be defined. For instance -uncomment the flag G4ANALYSIS_USE in GNUmakefile. + By default the histograms are not activated. To activate histograms + the environment variable G4ANALYSIS_USE should be defined. For instance + uncomment the flag G4ANALYSIS_USE in GNUmakefile. -To use histograms any of implementations of AIDA interfaces should -be available (see http://aida.freehep.org). + It is possible to choose the format of the histogram file (hbook, root, XML): + comment/uncomment 1 line in RunAction::bookHisto(). + + Before compilation of the example it is optimal to clean up old files: + gmake histclean + gmake -A package including AIDA and extended interfaces also using Python -is PI, available from: http://cern.ch/pi . + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 8a - PI -Once installed PI or PI-Lite in a specified local area $MYPY, it is -required to add the installation path to $PATH, i.e. for example, -for release 1.2.1 of PI: + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi -setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin -CERN users can use the PATH to the LCG area on AFS. + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` -Before compilation of the example it is optimal to clean up old -files: + 8b - OpenScientist + + OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist + + In OpenScientist, the AIDA implementation is the Lab package. + You have to "setup" this package before compiling (then with G4ANALYSIS_USE) + and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> setenv CMTPATH + csh> source /Lab//cmt/setup.csh + On UNIX with a sh flavoured shell : + sh> CMTPATH=;export CMTPATH + sh> . /Lab//cmt/setup.sh + On Windows : + DOS> set CMTPATH= + DOS> call /Lab//cmt/setup.bat -gmake histclean -gmake + You have to use the XML or root file formats ; producing hbook files is not + supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) + are readable by the interactive applications ; the Lab onx interactive + program or the OpenPAW program. -Before running the example the command should be issued: - -eval `aida-config --runtime csh` - -It is possible to choose the format of the histogram file (hbook, root, XML): -comment/uncomment 1 line in RunAction::bookHisto(). + With OpenPAW, someone can view the histograms with : + OS> opaw + opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 + opaw> h/plot 3 diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.cc b/examples/extended/electromagnetic/TestEm7/TestEm7.cc index f625edcbca..b3bfcdcdfa 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.cc +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TestEm7.cc,v 1.3 2004/09/27 14:42:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: TestEm7.cc,v 1.4 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,7 +43,7 @@ #include "SteppingVerbose.hh" #ifdef G4VIS_USE - #include "VisManager.hh" + #include "G4VisExecutive.hh" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -69,7 +69,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE //visualization manager - G4VisManager* visManager = new VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.in b/examples/extended/electromagnetic/TestEm7/TestEm7.in index 190598bf4e..5edcbd9935 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.in +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.in @@ -1,4 +1,4 @@ -# $Id: TestEm7.in,v 1.8 2004/07/08 16:28:36 maire Exp $ +# $Id: TestEm7.in,v 1.10 2005/05/13 10:54:53 maire Exp $ # # Macro file for "TestEm7.cc" # (can be run in batch, without graphic) @@ -23,3 +23,9 @@ /testem/stepMax 1 mm # /run/beamOn 10000 +# +/gun/particle ion +/gun/ion 6 12 6 +/gun/energy 3.5 GeV +# +/run/beamOn 1000 diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.out b/examples/extended/electromagnetic/TestEm7/TestEm7.out index 161274e345..4e09f943e0 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.out +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.out @@ -1,25 +1,24 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; ***** Table : Nb of materials = 3 ***** Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.084 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.19 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.81 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.19 % Abundance 66.67 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.81 % Abundance 33.33 % Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204322175.595 pc - ---> Element: Galactic Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Visualization Manager instantiating... @@ -31,8 +30,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -55,9 +54,8 @@ userDetector->Construct() start. --------------------------------------------------------- World is registered to the default region. physicsList->Construct() start. +physicsList->ConstructParticle() start. physicsList->Construct() start. - -phot: Total cross sections from Sandia parametrisation. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm # @@ -68,15 +66,18 @@ PhysicsList::SetCuts:CutLength : 1 mm /testem/stepMax 1 mm # /run/beamOn 10000 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -85,8 +86,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -97,8 +98,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -106,9 +107,9 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -117,15 +118,18 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 Scaling relation is used to proton dE/dx and range - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -134,9 +138,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -151,9 +155,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -226,15 +230,66 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10000 - User=138.46s Real=498.97s Sys=57.36s + User=314.43s Real=502.92s Sys=58.56s The run consists of 10000 proton of 160 MeV through 20 cm of Water (density: 1 g/cm3 ) - projected Range= 17.694 cm rms= 2.8027 mm + projected Range= 17.675 cm rms= 1.9371 mm --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1666420419, 901908397 + Current couple of seeds = 84919421, 1360973571 +---------------------------------------- +# +/gun/particle ion +/gun/ion 6 12 6 +/gun/energy 3.5 GeV +# +/run/beamOn 1000 + +Region DefaultRegionForTheWorld + Materials : Galactic Water + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Water + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.9019 keV e- 347.14 keV e+ 338.7 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +### Run 1 start. + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 84919421, 1360973571 +---------------------------------------- +Start Run processing. + +---> Begin of Event: 0 +Run terminated. +Run Summary + Number of events processed : 1000 + User=92.37s Real=117.7s Sys=10.78s + + The run consists of 1000 C12[0.0] of 3.5 GeV through 20 cm of Water (density: 1 g/cm3 ) + + projected Range= 16.371 cm rms= 489.49 mum + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 621221464, 1897520327 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh index 32437f4762..b2c9f31206 100644 --- a/examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.1 2003/04/22 16:25:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/DetectorMessenger.hh index 72df729227..871e359f38 100644 --- a/examples/extended/electromagnetic/TestEm7/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.2 2004/09/27 14:42:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/EventAction.hh b/examples/extended/electromagnetic/TestEm7/include/EventAction.hh index 0217589ea0..72c13380c0 100644 --- a/examples/extended/electromagnetic/TestEm7/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.1 2003/04/22 16:25:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/EventActionMessenger.hh index a9ccb8e36c..1e3ab7283e 100644 --- a/examples/extended/electromagnetic/TestEm7/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/09/27 14:42:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh index faa70e2f36..83991257a4 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.hh,v 1.5 2004/09/27 14:42:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // The class provides PhysicsList for Binary Cascade for // protons and neutrons with the energy E<3 GeV diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v52.hh index cf87ad3f87..1f5c2569b8 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v52.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.hh,v 1.1 2003/10/10 16:24:59 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh index 8e36dbd29f..f676cb7341 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.hh,v 1.2 2003/10/10 16:21:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListHadronElastic.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListHadronElastic.hh index 0611cba8b5..b33b987c2d 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListHadronElastic.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListHadronElastic.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListHadronElastic.hh,v 1.2 2004/09/27 14:42:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // The class provides PhysicsList for hadron elastic process // diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh index 8090ebb720..db57be32dc 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListIonBinaryCascade.hh,v 1.2 2004/09/27 14:42:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListIonBinaryCascade.hh,v 1.3 2005/03/16 13:17:27 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // 18.11.03 created by V.Ivanchenko // @@ -62,8 +62,6 @@ class PhysListIonBinaryCascade : public G4VPhysicsConstructor G4DeuteronInelasticProcess theIPdeuteron; G4TritonInelasticProcess theIPtriton; G4AlphaInelasticProcess theIPalpha; - G4HadronInelasticProcess* theIPHe3; - G4HadronInelasticProcess* theIPIonC12; G4HadronInelasticProcess* theIPGenericIon; }; diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh index d761c9f6b1..a249fa877e 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.4 2004/06/09 16:20:29 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh index f6f3dbff64..b485cb5f10 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.2 2004/09/27 14:42:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh index fbb530a73d..ff8a4be745 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.2 2004/07/08 16:15:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh index d353811a78..76070cd917 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.2 2004/09/27 14:42:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/RunAction.hh b/examples/extended/electromagnetic/TestEm7/include/RunAction.hh index 8e61729759..0d9eacd0d3 100644 --- a/examples/extended/electromagnetic/TestEm7/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.8 2004/09/27 14:42:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/StepMax.hh b/examples/extended/electromagnetic/TestEm7/include/StepMax.hh index ea1617fedd..437f141bfd 100644 --- a/examples/extended/electromagnetic/TestEm7/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm7/include/StepMax.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.hh,v 1.2 2003/06/03 09:33:21 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/StepMaxMessenger.hh index 14f0a597a3..5f87d15b87 100644 --- a/examples/extended/electromagnetic/TestEm7/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm7/include/SteppingAction.hh index 32039c9fa7..ca1dbfc4f9 100644 --- a/examples/extended/electromagnetic/TestEm7/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm7/include/SteppingVerbose.hh index 8718561492..45db87bf2c 100644 --- a/examples/extended/electromagnetic/TestEm7/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm7/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm7/include/TrackingAction.hh index 8a128e86c4..1e3cad9f38 100644 --- a/examples/extended/electromagnetic/TestEm7/include/TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.hh,v 1.1 2004/07/08 16:15:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/VisManager.hh b/examples/extended/electromagnetic/TestEm7/include/VisManager.hh deleted file mode 100644 index da2d033f54..0000000000 --- a/examples/extended/electromagnetic/TestEm7/include/VisManager.hh +++ /dev/null @@ -1,65 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.hh,v 1.1 2003/04/22 16:25:06 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef VisManager_h -#define VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class VisManager: public G4VisManager { - -public: - - VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif diff --git a/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc index 4767162c48..43a8fa4c51 100644 --- a/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.cc,v 1.4 2003/11/25 15:19:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc index bef62addc1..2c828bd59d 100644 --- a/examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.2 2004/09/27 14:42:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/EventAction.cc b/examples/extended/electromagnetic/TestEm7/src/EventAction.cc index 6b28eb92eb..09f7084a5d 100644 --- a/examples/extended/electromagnetic/TestEm7/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.3 2003/10/10 16:21:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc index 3bba417a46..3c2ae8b07f 100644 --- a/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.3 2004/09/27 14:42:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc index c6cf55dd36..c68f13e852 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.cc,v 1.6 2004/09/27 14:42:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc index 2dd48aab04..d82be9fffc 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmG4v52.cc,v 1.1 2003/10/10 16:25:16 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmG4v52.cc,v 1.2 2005/05/13 10:54:53 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,15 +31,15 @@ #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" #include "G4MultipleScattering52.hh" #include "G4eIonisation52.hh" #include "G4eBremsstrahlung52.hh" -#include "G4eplusAnnihilation.hh" +#include "G4eplusAnnihilation52.hh" #include "G4MuIonisation52.hh" #include "G4MuBremsstrahlung52.hh" @@ -73,9 +73,9 @@ void PhysListEmG4v52::ConstructProcess() if (particleName == "gamma") { // gamma - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); - pmanager->AddDiscreteProcess(new G4ComptonScattering); - pmanager->AddDiscreteProcess(new G4GammaConversion); + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect52); + pmanager->AddDiscreteProcess(new G4ComptonScattering52); + pmanager->AddDiscreteProcess(new G4GammaConversion52); } else if (particleName == "e-") { //electron @@ -88,7 +88,7 @@ void PhysListEmG4v52::ConstructProcess() pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); } else if( particleName == "mu+" || particleName == "mu-" ) { @@ -101,14 +101,14 @@ void PhysListEmG4v52::ConstructProcess() } else if( particleName == "GenericIon" ) { pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); - pmanager->AddProcess(new G4hIonisation52, -1,2,2); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); } else if ((!particle->IsShortLived()) && (particle->GetPDGCharge() != 0.0) && (particle->GetParticleName() != "chargedgeantino")) { //all others charged particles except geantino pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); - pmanager->AddProcess(new G4hIonisation52, -1,2,2); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); } } } diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc index f95308ebaf..49053c4816 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmStandard.cc,v 1.3 2003/10/24 12:22:51 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmStandard.cc,v 1.4 2005/03/16 13:10:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -98,7 +98,7 @@ void PhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); - } else if( particleName == "GenericIon" ) { + } else if( particleName == "alpha" || particleName == "GenericIon" ) { pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); pmanager->AddProcess(new G4ionIonisation, -1, 2,2); diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListHadronElastic.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListHadronElastic.cc index a4521dad71..d96971a811 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListHadronElastic.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListHadronElastic.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListHadronElastic.cc,v 1.2 2004/09/27 14:42:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc index 274c9c85fe..d0ff7d490f 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListIonBinaryCascade.cc,v 1.4 2004/09/27 14:42:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListIonBinaryCascade.cc,v 1.5 2005/03/16 13:10:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -29,20 +29,11 @@ #include "PhysListIonBinaryCascade.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4LFission.hh" -#include "G4LCapture.hh" #include "G4Deuteron.hh" #include "G4Triton.hh" -#include "G4He3.hh" #include "G4Alpha.hh" #include "G4GenericIon.hh" -#include "G4ExcitationHandler.hh" -#include "G4Evaporation.hh" -#include "G4FermiBreakUp.hh" -#include "G4StatMF.hh" -#include "G4GeneratorPrecompoundInterface.hh" - #include "G4HadronInelasticProcess.hh" #include "G4BinaryLightIonReaction.hh" #include "G4TripathiCrossSection.hh" @@ -66,27 +57,6 @@ PhysListIonBinaryCascade::~PhysListIonBinaryCascade() void PhysListIonBinaryCascade::ConstructProcess() { - /* - // all models for treatment of thermal nucleus - G4Evaporation * theEvaporation = new G4Evaporation; - G4FermiBreakUp * theFermiBreakUp = new G4FermiBreakUp; - G4StatMF * theMF = new G4StatMF; - - // Evaporation logic - G4ExcitationHandler * theHandler = new G4ExcitationHandler; - theHandler->SetEvaporation(theEvaporation); - theHandler->SetFermiModel(theFermiBreakUp); - theHandler->SetMultiFragmentation(theMF); - theHandler->SetMaxAandZForFermiBreakUp(12, 6); - theHandler->SetMinEForMultiFrag(3*MeV); - - // Pre equilibrium stage - G4PreCompoundModel * thePreEquilib = new G4PreCompoundModel(theHandler); - - // a no-cascade generator-precompound interaface - G4GeneratorPrecompoundInterface * theCascade = new G4GeneratorPrecompoundInterface; - theCascade->SetDeExcitation(thePreEquilib); - */ // Binary Cascade G4ParticleDefinition* particle = 0; G4ProcessManager* pmanager = 0; @@ -130,7 +100,6 @@ void PhysListIonBinaryCascade::ConstructProcess() theIPalpha.RegisterMe(theBC); pmanager->AddDiscreteProcess(&theIPalpha); - // GenericIon particle = G4GenericIon::GenericIon(); pmanager = particle->GetProcessManager(); @@ -143,17 +112,6 @@ void PhysListIonBinaryCascade::ConstructProcess() theGenIonBC->SetMaxEnergy(10*GeV); theIPGenericIon->RegisterMe(theGenIonBC); pmanager->AddDiscreteProcess(theIPGenericIon); - - // He3 - particle = G4He3::He3(); - pmanager = particle->GetProcessManager(); - G4HadronInelasticProcess* theIPHe3 = - new G4HadronInelasticProcess("He3Inelastic",particle); - theIPHe3->AddDataSet(TripathiCrossSection); - theIPHe3->AddDataSet(aShen); - theIPHe3->RegisterMe(theGenIonBC); - pmanager->AddDiscreteProcess(theIPHe3); - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc index 6d9ba36edc..aed4011f2f 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.12 2004/07/08 16:15:17 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysicsList.cc,v 1.13 2005/03/16 13:10:37 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -108,10 +108,9 @@ PhysicsList::~PhysicsList() #include "G4AntiNeutron.hh" // Nuclei -#include "G4Alpha.hh" #include "G4Deuteron.hh" #include "G4Triton.hh" -#include "G4He3.hh" +#include "G4Alpha.hh" #include "G4GenericIon.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -161,7 +160,6 @@ void PhysicsList::ConstructParticle() // ions G4Deuteron::DeuteronDefinition(); G4Triton::TritonDefinition(); - G4He3::He3Definition(); G4Alpha::AlphaDefinition(); G4GenericIon::GenericIonDefinition(); } diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc index ff6f20a3bf..c042d53c60 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.2 2004/09/27 14:42:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc index dd81e890ba..0ff5fedba0 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.1 2003/04/22 16:25:07 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc index a129fdc70f..7fcd43f584 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.2 2004/09/27 14:42:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/RunAction.cc b/examples/extended/electromagnetic/TestEm7/src/RunAction.cc index c6cf22638b..68b120f843 100644 --- a/examples/extended/electromagnetic/TestEm7/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.12 2004/12/02 16:33:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: RunAction.cc,v 1.14 2005/06/01 13:12:13 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,7 +40,6 @@ #include "Randomize.hh" #ifdef G4ANALYSIS_USE -#include // for the auto_ptr #include "AIDA/AIDA.h" #endif @@ -57,6 +56,11 @@ RunAction::RunAction(DetectorConstruction* det, PhysicsList* phys, #ifdef G4ANALYSIS_USE // Creating the analysis factory af = AIDA_createAnalysisFactory(); + if(!af) { + G4cout << "RunAction::RunAction() :" + << " problem creating the AIDA analysis factory." + << G4endl; + } #endif } @@ -84,25 +88,31 @@ void RunAction::bookHisto() offsetX = 0.5*length; #ifdef G4ANALYSIS_USE - G4cout << "\n----> Histogram Tree opened" << G4endl; - - // Create the tree factory - std::auto_ptr< AIDA::ITreeFactory > tf( af->createTreeFactory() ); + if (!af) return; // Create a tree mapped to an hbook file. G4bool readOnly = false; G4bool createNew = true; - tree = tf->create("testem7.paw", "hbook", readOnly, createNew, "uncompress"); - //tree = tf->create("testem4.root", "root",readOnly, createNew, "uncompress"); - //tree = tf->create("testem4.aida", "XML" ,readOnly, createNew, "uncompress"); + G4String options = "--noErrors uncompress"; + AIDA::ITreeFactory* tf = af->createTreeFactory(); + tree = tf->create("testem7.hbook","hbook", readOnly, createNew, options); + //tree = tf->create("testem7.root", "root",readOnly, createNew, options); + //tree = tf->create("testem7.XML" , "XML" ,readOnly, createNew, options); + delete tf; + if (!tree) { + G4cout << "RunAction::bookHisto()" << G4endl; + return; + } // Create a histogram factory, whose histograms will be handled by the tree - std::auto_ptr< AIDA::IHistogramFactory > hf( af->createHistogramFactory(*tree) ); - - // Create histograms + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); + + // Create histogram histo[0] = hf->createHistogram1D("1","Edep (MeV/mm) along absorber (mm)", nbBins, 0, length/mm); - + + delete hf; + G4cout << "\n----> Histogram Tree opened" << G4endl; #endif } @@ -114,6 +124,7 @@ void RunAction::cleanHisto() tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) delete tree; + tree = 0; G4cout << "\n----> Histogram Tree saved" << G4endl; #endif diff --git a/examples/extended/electromagnetic/TestEm7/src/StepMax.cc b/examples/extended/electromagnetic/TestEm7/src/StepMax.cc index 4360f15926..eeb2ab0da0 100644 --- a/examples/extended/electromagnetic/TestEm7/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm7/src/StepMax.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.cc,v 1.4 2003/06/14 16:01:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc index eacd52e166..06d01182b1 100644 --- a/examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.cc,v 1.2 2003/10/10 16:21:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc index b7bfcb7d3a..589f6674a7 100644 --- a/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.6 2004/08/06 11:35:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc index e6f06cee79..4a9b8d1a5f 100644 --- a/examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.2 2003/06/16 16:47:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm7/src/TrackingAction.cc index 801447c029..9cd35e494f 100644 --- a/examples/extended/electromagnetic/TestEm7/src/TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/TrackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.cc,v 1.1 2004/07/08 16:15:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/VisManager.cc b/examples/extended/electromagnetic/TestEm7/src/VisManager.cc deleted file mode 100755 index 3708f028da..0000000000 --- a/examples/extended/electromagnetic/TestEm7/src/VisManager.cc +++ /dev/null @@ -1,141 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.cc,v 1.2 2003/11/13 15:10:46 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/History b/examples/extended/electromagnetic/TestEm8/History index a99988186a..13defc14d4 100644 --- a/examples/extended/electromagnetic/TestEm8/History +++ b/examples/extended/electromagnetic/TestEm8/History @@ -1,4 +1,4 @@ -$Id: History,v 1.14 2004/12/03 09:45:36 vnivanch Exp $ +$Id: History,v 1.19 2005/05/31 12:47:31 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,18 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +31rd May 2005 V.Ivant (testem8-V07-00-02) +- 70 -> st -> 52 + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +23 April 04: V.Ivant (testem8-V07-00-01) +- Remove IonC12 class to be compatible with new particle tags + +15 April 04: V.Ivant (testem8-V07-00-00) +- Remove non-used headers + 02 Dec 04: V.Ivant (testem8-V06-02-01) - Migration to cmath diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.cc b/examples/extended/electromagnetic/TestEm8/TestEm8.cc index 0929d40128..6b72998138 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.cc +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm8.cc,v 1.4 2003/11/24 17:52:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: TestEm8.cc,v 1.5 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -40,7 +40,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "Em8VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "Em8DetectorConstruction.hh" @@ -77,7 +77,7 @@ int main(int argc,char** argv) // visualization manager - G4VisManager* visManager = new Em8VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.out b/examples/extended/electromagnetic/TestEm8/TestEm8.out index 3d432dbc7f..dc93b6044e 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.out +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -15,8 +15,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -54,9 +54,8 @@ userDetector->Construct() start. World is registered to the default region. physicsList->Construct() start. +physicsList->ConstructParticle() start. physicsList->Construct() start. - -phot: Total cross sections from Sandia parametrisation. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm /run/particle/dumpCutValues @@ -89,16 +88,18 @@ PAIModel DeltaCutInKineticEnergyNow = 63.4899 keV PAIModel DeltaCutInKineticEnergyNow = 63.4899 keV PAIModel DeltaCutInKineticEnergyNow = 63.4899 keV PAIModel DeltaCutInKineticEnergyNow = 63.4899 keV -PAIModel DeltaCutInKineticEnergyNow = 63.4899 keV -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -107,8 +108,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -119,8 +120,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -128,9 +129,9 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -139,15 +140,18 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 Scaling relation is used to proton dE/dx and range - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -156,9 +160,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -173,9 +177,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -226,7 +230,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 365769852, 332498406 + Current couple of seeds = 9876, 54321 ---------------------------------------- Start Run processing. @@ -252,54 +256,54 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 1000 - User=1.22s Real=1.26s Sys=0.04s + User=1.01s Real=1.09s Sys=0.04s ================== run summary ===================== end of Run TotNbofEvents = 1000 - mean charged track length in absorber=23.6731 +- 0.241729 mm + mean charged track length in absorber=23.4269 +- 0.282241 mm - mean energy deposit in absorber=0.0168796 +- 0.000459975 MeV + mean energy deposit in absorber=0.0169125 +- 0.000450572 MeV - mean number of steps in absorber (charged) =0.014 +- 0.00371537 + mean number of steps in absorber (charged) =0.005 +- 0.00223047 mean number of steps in absorber (neutral) =0 +- 0 - mean number of charged secondaries = 0.011 +- 0.00329833 + mean number of charged secondaries = 0.004 +- 0.001996 mean number of neutral secondaries = 0 +- 0 - mean number of e-s =0.011 and e+s =0 + mean number of e-s =0.004 and e+s =0 -(number) transmission coeff=0.503 reflection coeff=0 +(number) transmission coeff=0.514 reflection coeff=0 energy deposit distribution -#entries=1000 #underflows=0 #overflows=20 +#entries=1000 #underflows=0 #overflows=15 bin nb Elow entries normalized 0 0 0 0 - 1 3 4 0.004 - 2 6 82 0.082 - 3 9 268 0.268 - 4 12 264 0.264 - 5 15 153 0.153 - 6 18 78 0.078 + 1 3 2 0.002 + 2 6 77 0.077 + 3 9 264 0.264 + 4 12 266 0.266 + 5 15 151 0.151 + 6 18 72 0.072 7 21 47 0.047 - 8 24 25 0.025 - 9 27 20 0.02 - 10 30 8 0.008 - 11 33 8 0.008 - 12 36 3 0.003 + 8 24 28 0.028 + 9 27 15 0.015 + 10 30 17 0.017 + 11 33 10 0.01 + 12 36 10 0.01 13 39 6 0.006 - 14 42 1 0.001 + 14 42 7 0.007 15 45 3 0.003 16 48 2 0.002 - 17 51 1 0.001 - 18 54 4 0.004 + 17 51 5 0.005 + 18 54 0 0 19 57 3 0.003 - Emp = 0.009 width= 0.006 MeV + Emp = 0.012 width= 0.006 MeV --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1761972950, 421384447 + Current couple of seeds = 1486551451, 1187403336 ---------------------------------------- # Graphics systems deleted. diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh b/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh index f9b63f7aee..a36fe3c062 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: Em8CalorHit.hh,v 1.3 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh index 57548c369c..d67dbc6701 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: Em8CalorimeterSD.hh,v 1.3 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh index 7c86d3a98f..aa8ca87517 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Em8DetectorConstruction.hh,v 1.7 2004/05/27 08:39:05 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh index 8f5f77dd76..ab5c2bc399 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em8DetectorMessenger.hh,v 1.4 2004/05/27 08:39:05 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh index 0512278134..d2fe8c7f43 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em8EventAction.hh,v 1.3 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh index 8dc9bc6a77..f66207ea17 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em8EventActionMessenger.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh index 18c9fa91a6..dc2a9f4e1f 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em8PrimaryGeneratorAction.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh index 76a0150b48..ab2d72e5ff 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em8PrimaryGeneratorMessenger.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh index a26a35f783..66aefdf8d1 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em8RunAction.hh,v 1.7 2003/11/26 13:55:49 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh index bab85d2630..6fac2e90e2 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: Em8RunMessenger.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh index 3918f1e1d7..1c4d41cb62 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em8SteppingAction.hh,v 1.4 2003/11/24 17:52:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh index 0d62d36b83..002e134c74 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Em8SteppingVerbose.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh b/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh deleted file mode 100644 index cc8ab8e413..0000000000 --- a/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh +++ /dev/null @@ -1,66 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: Em8VisManager.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef Em8VisManager_h -#define Em8VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class Em8VisManager: public G4VisManager -{ - public: - - Em8VisManager (); - - private: - - void RegisterGraphicsSystems (); - -}; - -#endif diff --git a/examples/extended/electromagnetic/TestEm8/include/IonC12.hh b/examples/extended/electromagnetic/TestEm8/include/IonC12.hh deleted file mode 100755 index 412ab1ccf8..0000000000 --- a/examples/extended/electromagnetic/TestEm8/include/IonC12.hh +++ /dev/null @@ -1,68 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: IonC12.hh,v 1.1 2003/10/27 15:29:45 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// Each class inheriting from G4VIon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef IonC12_h -#define IonC12_h 1 - -#include "globals.hh" -#include "G4ios.hh" -#include "G4VIon.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... - -class IonC12 : public G4VIon -{ - private: - static IonC12 theIon; - - public: - IonC12( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~IonC12(); - - static IonC12* IonDefinition(); - static IonC12* Ion(); -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... - -#endif diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmG4v52.hh index 612c8a6d2f..368440c0cc 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmG4v52.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.hh,v 1.1 2003/11/24 17:53:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh old mode 100755 new mode 100644 index b56379a9b2..c5eebf4caa --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmModel.hh,v 1.1 2003/10/27 15:24:08 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmModelPai.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModelPai.hh old mode 100755 new mode 100644 index 8500d310dc..c6cece67ae --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmModelPai.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModelPai.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmModelPai.hh,v 1.1 2004/11/04 15:41:39 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmPAI.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmPAI.hh old mode 100755 new mode 100644 index e36f52609b..b26399d9a8 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmPAI.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmPAI.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmPAI.hh,v 1.1 2004/05/27 18:04:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmPaiPhoton.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmPaiPhoton.hh old mode 100755 new mode 100644 index 91384ca5e2..77829c8859 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmPaiPhoton.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmPaiPhoton.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmPaiPhoton.hh,v 1.1 2004/11/04 15:41:39 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh old mode 100755 new mode 100644 index 6a7c5c28eb..aaf39a5ed6 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.hh,v 1.2 2004/05/27 18:04:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh old mode 100755 new mode 100644 index 32ac4a1685..76ffb9122e --- a/examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListGeneral.hh,v 1.1 2003/10/27 15:24:08 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh old mode 100755 new mode 100644 index c13e3dfd68..7c01a72da5 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListParticles.hh,v 1.1 2003/10/27 15:24:09 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh old mode 100755 new mode 100644 index 5b7c6473dd..f8631c16c8 --- a/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.1 2003/10/27 15:24:09 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh old mode 100755 new mode 100644 index 937bf27b9f..ba3c47c09a --- a/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsListMessenger.hh,v 1.1 2003/10/27 15:24:09 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/StepMax.hh b/examples/extended/electromagnetic/TestEm8/include/StepMax.hh old mode 100755 new mode 100644 index 49cc0454d6..7916305c03 --- a/examples/extended/electromagnetic/TestEm8/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm8/include/StepMax.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.hh,v 1.1 2003/10/27 15:29:45 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh old mode 100755 new mode 100644 index e52bd1a0f0..2e2747cdf8 --- a/examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.1 2003/10/27 15:29:45 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh b/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh index 2e76c8759d..7b5b9559fd 100644 --- a/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: TRTDetectorConstruction.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh b/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh index a002386395..e11cf0dfc4 100644 --- a/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh +++ b/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh @@ -22,7 +22,7 @@ // // // $Id: TRTMaterials.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc b/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc index 4dc0ed81ce..ee4e484f80 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: Em8CalorHit.cc,v 1.4 2003/11/24 17:52:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc index e7566f9843..701696f5fa 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: Em8CalorimeterSD.cc,v 1.6 2004/12/03 09:45:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc index a76a9bed35..fc554a4e38 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: Em8DetectorConstruction.cc,v 1.17 2004/12/03 10:51:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc index 3edf47f4f9..e79e879015 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8DetectorMessenger.cc,v 1.6 2004/05/27 08:39:06 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc index 2a3489c047..fe92127e4f 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em8EventAction.cc,v 1.7 2003/11/24 17:52:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc index ae09661aa4..daa4d595b8 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8EventActionMessenger.cc,v 1.4 2002/12/05 00:24:26 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc index 3b81eb0cf9..94b7a37795 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em8PrimaryGeneratorAction.cc,v 1.6 2004/12/03 09:45:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc index 2e3f3ca297..a84b62f1cb 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 00:24:26 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc index 4c56c8bf74..671232c237 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em8RunAction.cc,v 1.12 2004/12/03 09:45:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc index 082e25d205..17c1f99848 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8RunMessenger.cc,v 1.5 2002/12/05 00:24:26 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc index bd048e52fa..d03c4895ee 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em8SteppingAction.cc,v 1.8 2004/12/03 09:45:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc index 9b41cbc367..28dbce95cb 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Em8SteppingVerbose.cc,v 1.7 2003/06/16 16:48:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc b/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc deleted file mode 100755 index e35bd1327f..0000000000 --- a/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: Em8VisManager.cc,v 1.8 2003/11/13 15:10:32 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifdef G4VIS_USE - -#include "Em8VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em8VisManager::Em8VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em8VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.cc index 9e707e030f..0df933a53d 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmG4v52.cc,v 1.1 2003/11/24 17:53:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmG4v52.cc,v 1.2 2005/05/31 12:46:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,16 +31,16 @@ #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" #include "G4MultipleScattering52.hh" #include "G4MultipleScattering.hh" #include "G4eIonisation52.hh" #include "G4eBremsstrahlung52.hh" -#include "G4eplusAnnihilation.hh" +#include "G4eplusAnnihilation52.hh" #include "G4MuIonisation52.hh" #include "G4MuBremsstrahlung52.hh" @@ -74,9 +74,9 @@ void PhysListEmG4v52::ConstructProcess() if (particleName == "gamma") { // gamma - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); - pmanager->AddDiscreteProcess(new G4ComptonScattering); - pmanager->AddDiscreteProcess(new G4GammaConversion); + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect52); + pmanager->AddDiscreteProcess(new G4ComptonScattering52); + pmanager->AddDiscreteProcess(new G4GammaConversion52); } else if (particleName == "e-") { //electron @@ -88,10 +88,10 @@ void PhysListEmG4v52::ConstructProcess() } else if (particleName == "e+") { //positron pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - // pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + // pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); } else if( particleName == "mu+" || particleName == "mu-" ) { diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmModelPai.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmModelPai.cc old mode 100755 new mode 100644 index be323b5247..b70714a148 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListEmModelPai.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmModelPai.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmModelPai.cc,v 1.1 2004/11/04 15:41:39 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: PhysListEmModelPai.cc,v 1.2 2005/04/15 15:20:34 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,7 +40,6 @@ #include "G4eIonisation.hh" #include "G4PAIModel.hh" #include "G4PAIPhotonModel.hh" -#include "G4PAIwithPhotons.hh" #include "G4eBremsstrahlung.hh" #include "G4eplusAnnihilation.hh" diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmPAI.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmPAI.cc old mode 100755 new mode 100644 index 04623810a4..0badd79e18 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListEmPAI.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmPAI.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmPAI.cc,v 1.1 2004/05/27 18:04:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmPaiPhoton.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmPaiPhoton.cc old mode 100755 new mode 100644 index f35f18dbe3..d3547e4dc9 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListEmPaiPhoton.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmPaiPhoton.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmPaiPhoton.cc,v 1.1 2004/11/04 15:41:40 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: PhysListEmPaiPhoton.cc,v 1.2 2005/04/15 15:20:34 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,7 +40,6 @@ #include "G4eIonisation.hh" #include "G4PAIModel.hh" #include "G4PAIPhotonModel.hh" -#include "G4PAIwithPhotons.hh" #include "G4eBremsstrahlung.hh" #include "G4eplusAnnihilation.hh" diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc old mode 100755 new mode 100644 index 7bc908b258..542c4fda11 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.cc,v 1.6 2004/06/18 09:18:12 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc old mode 100755 new mode 100644 index 2f6e724efe..aba0a9719d --- a/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListGeneral.cc,v 1.2 2004/05/24 16:56:32 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc old mode 100755 new mode 100644 index 87b6eb6dc5..c20367ffa8 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListParticles.cc,v 1.1 2003/10/27 15:24:10 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListParticles.cc,v 1.2 2005/04/23 19:57:04 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -73,8 +73,6 @@ #include "G4He3.hh" #include "G4GenericIon.hh" -#include "IonC12.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysListParticles::PhysListParticles(const G4String& name) @@ -137,7 +135,6 @@ void PhysListParticles::ConstructParticle() G4He3::He3Definition(); G4Alpha::AlphaDefinition(); G4GenericIon::GenericIonDefinition(); - IonC12::IonDefinition(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc old mode 100755 new mode 100644 index 79cf104e52..7d94d0ab8e --- a/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc @@ -23,7 +23,7 @@ // // $Id: PhysicsList.cc,v 1.6 2004/12/03 10:51:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc old mode 100755 new mode 100644 index 3edc749bd0..2a4b1bfa90 --- a/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: PhysicsListMessenger.cc,v 1.1 2003/10/27 15:24:10 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/StepMax.cc b/examples/extended/electromagnetic/TestEm8/src/StepMax.cc old mode 100755 new mode 100644 index 09832bca2d..49d681998b --- a/examples/extended/electromagnetic/TestEm8/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm8/src/StepMax.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.cc,v 1.2 2003/11/26 13:55:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc old mode 100755 new mode 100644 index 752d6d8812..d0235282b2 --- a/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.cc,v 1.1 2003/10/27 15:31:04 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/GNUmakefile b/examples/extended/electromagnetic/TestEm9/GNUmakefile index 1969be439d..31b2fcbaa5 100644 --- a/examples/extended/electromagnetic/TestEm9/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm9/GNUmakefile @@ -1,5 +1,5 @@ # $Id: GNUmakefile,v 1.7 2004/05/27 13:43:17 vnivanch Exp $ -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # -------------------------------------------------------------- # GNUmakefile for examples module with AIDA interface # -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm9/History b/examples/extended/electromagnetic/TestEm9/History index 4b649a0394..0baa92521d 100644 --- a/examples/extended/electromagnetic/TestEm9/History +++ b/examples/extended/electromagnetic/TestEm9/History @@ -1,4 +1,4 @@ -$Id: History,v 1.18 2004/12/02 19:06:05 vnivanch Exp $ +$Id: History,v 1.23 2005/05/31 15:57:03 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,7 +16,22 @@ track of all tags. ---------------------------------------------------------- -02 Dec 04: V.Ivant (testem9-V06-02-00) +31-05-05 V.Ivant (testem9-V07-00-02) +- Remove SteppingVerbose class + +13-05-05 V.Ivant (testem9-V07-00-01) +- Migration to NIST materials + +03-05-05 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +16-03-05 mma(testem9-V07-00-00) +- remove He3 and ionC12 from predefined particles. +- remove IonC12 class +- PhysListEmStandard : treat alpha as GenericIon +- IonBinaryCascade : remove He3 and IonC12 (--> GenericIon) + +02-12-04 V.Ivant (testem9-V06-02-00) - Migration to cmath 05-12-03 V.Ivanchenko (testem9-V06-01-00) diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.cc b/examples/extended/electromagnetic/TestEm9/TestEm9.cc index 439b014933..7b6bc92be8 100644 --- a/examples/extended/electromagnetic/TestEm9/TestEm9.cc +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm9.cc,v 1.3 2003/07/14 17:10:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: TestEm9.cc,v 1.5 2005/05/31 15:57:03 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -36,7 +36,6 @@ #include "DetectorConstruction.hh" #include "PhysicsList.hh" #include "PrimaryGeneratorAction.hh" -#include "SteppingVerbose.hh" #include "RunAction.hh" #include "EventAction.hh" @@ -44,7 +43,7 @@ #include "TrackingAction.hh" #ifdef G4VIS_USE - #include "VisManager.hh" + #include "G4VisExecutive.hh" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -54,9 +53,6 @@ int main(int argc,char** argv) { //choose the Random engine HepRandom::setTheEngine(new RanecuEngine); - //my Verbose output class - G4VSteppingVerbose::SetInstance(new SteppingVerbose); - //Construct the default run manager G4RunManager * runManager = new G4RunManager; @@ -70,7 +66,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE //visualization manager - G4VisManager* visManager = new VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.in b/examples/extended/electromagnetic/TestEm9/TestEm9.in index 639f7db3e0..5c2b43d63e 100644 --- a/examples/extended/electromagnetic/TestEm9/TestEm9.in +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.in @@ -1,5 +1,5 @@ # $Id: TestEm9.in,v 1.11 2004/12/03 10:54:06 vnivanch Exp $ -# GEANT4 tag $Name: geant4-07-00-cand-03 $ +# GEANT4 tag $Name: geant4-07-01 $ # # Macro file for TestEm9 - Crystal Calorimeter # V.Ivanchenko diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.out b/examples/extended/electromagnetic/TestEm9/TestEm9.out index fa3d1967b3..e590ba4b6e 100644 --- a/examples/extended/electromagnetic/TestEm9/TestEm9.out +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.out @@ -1,57 +1,36 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; -G4Material: Mean excitation energy is changed for CsI Iold= 491.166eV; Inew= 415.689 eV; - -***** Table : Nb of materials = 11 ***** - - Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % - - Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % - - Material: lAr density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: lAr Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Al density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm - ---> Element: Al Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Si density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm - ---> Element: Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Fe density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm - ---> Element: Fe Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: CsI CsI density: 4.510 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.860 cm - ---> Element: Cesium Cs Z = 55.0 N = 132.9 A = 132.91 g/mole fractionMass: 51.15 % Abundance 50.00 % - ---> Element: Iodide I Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 48.85 % Abundance 50.00 % - - Material: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % - ---> Element: Germanium Ge Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % - ---> Element: Bismuth Bi Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 % - - Material: PbWO4 density: 8.280 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.924 mm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 % - ---> Element: Lead Pb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 % - ---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 40.40 % Abundance 16.67 % - - Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm - ---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm - ---> Element: Lead Pb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % - - +### NIST DataBase for Materials is used +G4NistMaterialBuilder: BuildMaterial G4_AIR +New material nComponents= 4 +G4NistElementBuilder: Build Element Z= 6 A= 12.0107 +G4NistElementBuilder: Build Element Z= 7 A= 14.0068 +G4NistElementBuilder: Build Element Z= 8 A= 15.9994 +G4NistElementBuilder: Build Element Z= 18 A= 39.9477 +G4Material: Mean excitation energy is changed for G4_AIR Iold= 85.627eV; Inew= 85.7 eV; +G4NistMaterialBuilder: BuildMaterial G4_Al +New material nComponents= 1 +G4NistElementBuilder: Build Element Z= 13 A= 26.9815 +G4Material: Mean excitation energy is changed for G4_Al Iold= 166.4eV; Inew= 166 eV; +G4NistMaterialBuilder: BuildMaterial G4_Si +New material nComponents= 1 +G4NistElementBuilder: Build Element Z= 14 A= 28.0854 +G4Material: Mean excitation energy is changed for G4_Si Iold= 173.6eV; Inew= 173 eV; +G4NistMaterialBuilder: BuildMaterial G4_Fe +New material nComponents= 1 +G4NistElementBuilder: Build Element Z= 26 A= 55.8451 +G4Material: Mean excitation energy is changed for G4_Fe Iold= 286eV; Inew= 286 eV; +G4NistMaterialBuilder: BuildMaterial G4_CESIUM_IODIDE +New material nComponents= 2 +G4NistElementBuilder: Build Element Z= 53 A= 126.904 +G4NistElementBuilder: Build Element Z= 55 A= 132.905 +G4Material: Mean excitation energy is changed for G4_CESIUM_IODIDE Iold= 491.166eV; Inew= 553.1 eV; Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... @@ -59,6 +38,11 @@ Registering graphics systems... You have successfully chosen to use the following graphics systems. Current available graphics systems are: ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) /run/verbose 1 @@ -81,11 +65,52 @@ PhysicsList::AddPhysicsList: #/process/eLoss/preciseRange true #/process/eLoss/integral true /run/initialize -Ecal is 36 cm of CsI -Absorber is 2 mm of Al -Vertex is 3 cm of 3 layers of Si of 100 mum npads= 601 -phot: Total cross sections from Sandia parametrisation. +***** Table : Nb of materials = 5 ***** + + Material: G4_AIR density: 1.205 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.921 m + ---> Element: C (C) Z = 6.0 N = 12.0 A = 12.01 g/mole + ---> Isotope: C Z = 6 N = 12 A = 12.00 g/mole abundance: 98.93 % + ---> Isotope: C Z = 6 N = 13 A = 13.00 g/mole abundance: 1.07 % fractionMass: 0.01 % Abundance 0.02 % + ---> Element: N (N) Z = 7.0 N = 14.0 A = 14.01 g/mole + ---> Isotope: N Z = 7 N = 14 A = 14.00 g/mole abundance: 99.63 % + ---> Isotope: N Z = 7 N = 15 A = 15.00 g/mole abundance: 0.37 % fractionMass: 75.53 % Abundance 78.44 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 23.18 % Abundance 21.07 % + ---> Element: Ar (Ar) Z = 18.0 N = 40.0 A = 39.95 g/mole + ---> Isotope: Ar Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 % + ---> Isotope: Ar Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 % + ---> Isotope: Ar Z = 18 N = 40 A = 39.96 g/mole abundance: 99.60 % fractionMass: 1.28 % Abundance 0.47 % + + Material: G4_Al density: 2.699 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.896 cm + ---> Element: Al (Al) Z = 13.0 N = 27.0 A = 26.98 g/mole + ---> Isotope: Al Z = 13 N = 27 A = 26.98 g/mole abundance: 100.00 % fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_Si density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.366 cm + ---> Element: Si (Si) Z = 14.0 N = 28.1 A = 28.09 g/mole + ---> Isotope: Si Z = 14 N = 28 A = 27.98 g/mole abundance: 92.23 % + ---> Isotope: Si Z = 14 N = 29 A = 28.98 g/mole abundance: 4.68 % + ---> Isotope: Si Z = 14 N = 30 A = 29.97 g/mole abundance: 3.09 % fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_Fe density: 7.874 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.757 cm + ---> Element: Fe (Fe) Z = 26.0 N = 55.9 A = 55.85 g/mole + ---> Isotope: Fe Z = 26 N = 54 A = 53.94 g/mole abundance: 5.84 % + ---> Isotope: Fe Z = 26 N = 56 A = 55.93 g/mole abundance: 91.75 % + ---> Isotope: Fe Z = 26 N = 57 A = 56.94 g/mole abundance: 2.12 % + ---> Isotope: Fe Z = 26 N = 58 A = 57.93 g/mole abundance: 0.28 % fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_CESIUM_IODIDE density: 4.510 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.860 cm + ---> Element: I (I) Z = 53.0 N = 127.0 A = 126.90 g/mole + ---> Isotope: I Z = 53 N = 127 A = 126.90 g/mole abundance: 100.00 % fractionMass: 48.85 % Abundance 50.00 % + ---> Element: Cs (Cs) Z = 55.0 N = 133.0 A = 132.91 g/mole + ---> Isotope: Cs Z = 55 N = 133 A = 132.91 g/mole abundance: 100.00 % fractionMass: 51.15 % Abundance 50.00 % + + +Ecal is 36 cm of G4_CESIUM_IODIDE +Absorber is 2 mm of G4_Al +Vertex is 3 cm of 3 layers of Si of 100 mum npads= 601 world cuts are set Vertex cuts are set Muon cuts are set @@ -95,15 +120,18 @@ Muon cuts are set /gun/particle e- /gun/energy 1 GeV /run/beamOn 100 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -112,8 +140,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -124,8 +152,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -133,9 +161,9 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -144,15 +172,18 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 Scaling relation is used to proton dE/dx and range - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -161,9 +192,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -178,9 +209,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -199,56 +230,56 @@ msc: Model variant of multiple scattering for pi- ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes recalculation needed : No - Material : Air + Material : G4_AIR Range cuts : gamma 300 mum e- 300 mum e+ 300 mum Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes recalculation needed : No - Material : CsI + Material : G4_CESIUM_IODIDE Range cuts : gamma 300 mum e- 300 mum e+ 300 mum Energy thresholds : gamma 18.1187 keV e- 288.607 keV e+ 278.143 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes recalculation needed : No - Material : Al + Material : G4_Al Range cuts : gamma 300 mum e- 300 mum e+ 300 mum Energy thresholds : gamma 3.89739 keV e- 258.339 keV e+ 252.056 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 3 used in the geometry : Yes recalculation needed : No - Material : Air + Material : G4_AIR Range cuts : gamma 10 mum e- 10 mum e+ 10 mum Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV Region(s) which use this couple : VertexDetector Index : 4 used in the geometry : Yes recalculation needed : No - Material : Al + Material : G4_Al Range cuts : gamma 10 mum e- 10 mum e+ 10 mum Energy thresholds : gamma 990 eV e- 33.8876 keV e+ 33.4729 keV Region(s) which use this couple : VertexDetector Index : 5 used in the geometry : Yes recalculation needed : No - Material : Si + Material : G4_Si Range cuts : gamma 10 mum e- 10 mum e+ 10 mum Energy thresholds : gamma 990 eV e- 31.4747 keV e+ 31.0896 keV Region(s) which use this couple : VertexDetector Index : 6 used in the geometry : Yes recalculation needed : No - Material : Fe + Material : G4_Fe Range cuts : gamma 1 cm e- 1 cm e+ 1 cm Energy thresholds : gamma 60.4019 keV e- 12.9518 MeV e+ 12.0297 MeV Region(s) which use this couple : MuonDetector Index : 7 used in the geometry : Yes recalculation needed : No - Material : Al + Material : G4_Al Range cuts : gamma 1 cm e- 1 cm e+ 1 cm Energy thresholds : gamma 20.4949 keV e- 4.54874 MeV e+ 4.2772 MeV Region(s) which use this couple : @@ -262,28 +293,28 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=30.53s Real=47.69s Sys=4s + User=83.39s Real=87.81s Sys=3.77s RunAction: End of run actions are started HistoManager: End of run actions are started ======================================================== Number of events 100 -Average number of e- 1316 -Average number of gamma 692.9 -Average number of e+ 48.08 -Average number of steps 3865 -Edep 1x1 = 0.8275 +- 0.0036 -Edep 3x3 = 0.9556 +- 0.001532 -Edep 5x5 = 0.9778 +- 0.00107 +Average number of e- 1322 +Average number of gamma 698.5 +Average number of e+ 47.86 +Average number of steps 3884 +Edep 1x1 = 0.8258 +- 0.003048 +Edep 3x3 = 0.9543 +- 0.001289 +Edep 5x5 = 0.9794 +- 0.0009566 ======================================================== <<<<>>>> 100 events for Crystal Calorimeter -Edep1x1: 0.8275 delEdep1x1= 0.001515 nrms= 0.4315 -Erms1x1: 0.036 delErms1x1= 0.0009019 nrms= 0.257 -Edep3x3: 0.9556 delEdep3x3= -0.0007823 nrms= -0.4889 -Erms3x3: 0.01532 delErms3x3= -0.0006761 nrms= -0.4226 -Edep5x5: 0.9778 delEdep5x5= -0.001186 nrms= -0.9965 -Erms5x5: 0.0107 delErms5x5= -0.001197 nrms= -1.006 +Edep1x1: 0.8258 delEdep1x1= -0.0001842 nrms= -0.05248 +Erms1x1: 0.03048 delErms1x1= -0.00462 nrms= -1.316 +Edep3x3: 0.9543 delEdep3x3= -0.00212 nrms= -1.325 +Erms3x3: 0.01289 delErms3x3= -0.003107 nrms= -1.942 +Edep5x5: 0.9794 delEdep5x5= 0.000367 nrms= 0.3084 +Erms5x5: 0.009566 delErms5x5= -0.002334 nrms= -1.962 <<<<>>>> IS ACCEPTED # diff --git a/examples/extended/electromagnetic/TestEm9/cms10gev.mac b/examples/extended/electromagnetic/TestEm9/cms10gev.mac new file mode 100644 index 0000000000..ab47fabd1f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/cms10gev.mac @@ -0,0 +1,45 @@ +# $Id: cms10gev.mac,v 1.1 2005/05/13 11:46:02 vnivanch Exp $ +# +# Macro file for "TestEm9.cc" +# +# CMS PbWO4 model +# +/control/verbose 2 +/run/verbose 1 +/tracking/verbose 0 +# +/testem/det/CalMat G4_PbWO4 +/testem/del/EcalLength 230 mm +/testem/det/EcalWidth 22 mm +# +#/testem/phys/addPhysics g4v52 +/testem/phys/addPhysics standard +# +/testem/phys/VertexCuts 0.01 mm +/testem/phys/MuonCuts 10.0 mm +/testem/stepMax 10 mm +# +# +/gun/particle e- +/gun/energy 10 GeV +# +#/process/eLoss/StepFunction 0.2 1 mm +#/process/eLoss/preciseRange true +# +#/testem/tracking/stepMax 1 mum +# +#/random/setSavingFlag true +#/random/resetEngineFrom first.rndm +/testem/event/printModulo 1000 +/testem/histo/fileName cms.paw +/testem/histo/setHisto 0 75 7000 8500 MeV +/testem/histo/setHisto 1 100 9000 10000 MeV +/testem/histo/setHisto 2 100 9500 10000 MeV +#/testem/histo/fileType hbook +/testem/ +# +/testem/phys/setCuts 1 mm +/run/initialize +/run/beamOn 1000 +# +# diff --git a/examples/extended/electromagnetic/TestEm9/csi.mac b/examples/extended/electromagnetic/TestEm9/csi.mac index 4502d83a7b..4814a9774c 100644 --- a/examples/extended/electromagnetic/TestEm9/csi.mac +++ b/examples/extended/electromagnetic/TestEm9/csi.mac @@ -1,5 +1,5 @@ # $Id: csi.mac,v 1.2 2003/11/07 11:52:58 vnivanch Exp $ -# GEANT4 tag $Name: geant4-07-00-cand-01 $ +# GEANT4 tag $Name: geant4-07-01 $ # # Macro file for TestEm9 - Crystal Calorimeter # V.Ivanchenko diff --git a/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh index b9b50da574..ce04cd2907 100644 --- a/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.hh,v 1.3 2004/05/27 13:43:17 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.hh index 60acde9688..be9853b96d 100644 --- a/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorMessenger.hh,v 1.3 2004/05/27 13:43:17 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/include/EmAcceptance.hh b/examples/extended/electromagnetic/TestEm9/include/EmAcceptance.hh index dc34fb45ef..fb91932a11 100644 --- a/examples/extended/electromagnetic/TestEm9/include/EmAcceptance.hh +++ b/examples/extended/electromagnetic/TestEm9/include/EmAcceptance.hh @@ -22,7 +22,7 @@ // // // $Id: EmAcceptance.hh,v 1.1 2004/05/27 13:43:57 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm9/include/EventAction.hh b/examples/extended/electromagnetic/TestEm9/include/EventAction.hh old mode 100755 new mode 100644 index 549260a6e3..5276a41813 --- a/examples/extended/electromagnetic/TestEm9/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm9/include/EventAction.hh @@ -24,7 +24,7 @@ #define EventAction_h 1 // $Id: EventAction.hh,v 1.2 2003/10/13 15:41:30 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.hh index cd89687753..e01fe77336 100644 --- a/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/Histo.hh b/examples/extended/electromagnetic/TestEm9/include/Histo.hh index f602d63135..7385fa783f 100644 --- a/examples/extended/electromagnetic/TestEm9/include/Histo.hh +++ b/examples/extended/electromagnetic/TestEm9/include/Histo.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: Histo.hh,v 1.3 2004/04/02 15:13:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #ifndef Histo_h #define Histo_h 1 diff --git a/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh index 58ea083b95..985a5f95fc 100644 --- a/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh +++ b/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.hh,v 1.6 2004/05/27 13:43:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #ifndef HistoManager_h #define HistoManager_h 1 diff --git a/examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh index 514588033a..deb937b67f 100644 --- a/examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh @@ -23,7 +23,7 @@ // // $Id: HistoMessenger.hh,v 1.2 2004/05/27 13:43:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm9/include/IonC12.hh b/examples/extended/electromagnetic/TestEm9/include/IonC12.hh deleted file mode 100755 index dd61db90cc..0000000000 --- a/examples/extended/electromagnetic/TestEm9/include/IonC12.hh +++ /dev/null @@ -1,68 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: IonC12.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// Each class inheriting from G4VIon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef IonC12_h -#define IonC12_h 1 - -#include "globals.hh" -#include "G4ios.hh" -#include "G4VIon.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... - -class IonC12 : public G4VIon -{ -private: - static IonC12 theIon; - -public: - IonC12( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~IonC12(); - - static IonC12* IonDefinition(); - static IonC12* Ion(); -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... - -#endif diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh old mode 100755 new mode 100644 index f945e75423..1e16e43d78 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.hh,v 1.5 2003/12/05 11:22:45 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v52.hh index b3044f5c64..6e0b588811 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v52.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh old mode 100755 new mode 100644 index b95f999379..d8ad695da8 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh old mode 100755 new mode 100644 index f3b42d6c49..0e1617cf2a --- a/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListGeneral.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListHadronElastic.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListHadronElastic.hh old mode 100755 new mode 100644 diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.hh index fd60037d1c..0d73b943fe 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListIonBinaryCascade.hh,v 1.2 2003/12/05 11:22:45 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListIonBinaryCascade.hh,v 1.3 2005/03/16 14:29:31 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file @@ -70,8 +70,6 @@ class PhysListIonBinaryCascade : public G4VPhysicsConstructor G4DeuteronInelasticProcess theIPdeuteron; G4TritonInelasticProcess theIPtriton; G4AlphaInelasticProcess theIPalpha; - G4HadronInelasticProcess* theIPHe3; - G4HadronInelasticProcess* theIPIonC12; G4HadronInelasticProcess* theIPGenericIon; }; diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh old mode 100755 new mode 100644 index 48ee13a38e..2507a4e5c8 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListParticles.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh old mode 100755 new mode 100644 index cb0f797efb..d4439fe224 --- a/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh old mode 100755 new mode 100644 index 51f93f3218..b1d228ef9d --- a/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsListMessenger.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.hh index e4d40aa742..1826315a13 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/include/RunAction.hh b/examples/extended/electromagnetic/TestEm9/include/RunAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/electromagnetic/TestEm9/include/StepMax.hh b/examples/extended/electromagnetic/TestEm9/include/StepMax.hh old mode 100755 new mode 100644 index cd844321ae..a451d56c25 --- a/examples/extended/electromagnetic/TestEm9/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm9/include/StepMax.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh old mode 100755 new mode 100644 index 6d4bb29544..ab2b9a7bb1 --- a/examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm9/include/SteppingAction.hh index b5f40d34a0..ab6acb4f12 100644 --- a/examples/extended/electromagnetic/TestEm9/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm9/include/SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.hh,v 1.2 2003/10/31 12:08:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm9/include/TrackingAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/electromagnetic/TestEm9/include/VisManager.hh b/examples/extended/electromagnetic/TestEm9/include/VisManager.hh deleted file mode 100755 index af29751aa6..0000000000 --- a/examples/extended/electromagnetic/TestEm9/include/VisManager.hh +++ /dev/null @@ -1,72 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -#ifndef VisManager_h -#define VisManager_h 1 - -//--------------------------------------------------------------------------- -// -// ClassName: VisManager -// -// Class Description: -// Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. -// So all you have to do is set environment variables and compile and -// instantiate this in your (). -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); -// The run messenger is defined -// Class Description - end -// -// Authors: 08.04.01 V.Ivanchenko take from John Allison Examples -// -// Modified: -// -//---------------------------------------------------------------------------- -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class VisManager: public G4VisManager { - -public: // Without description - - VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#endif diff --git a/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc index b2f7a4675f..d618b65725 100644 --- a/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: DetectorConstruction.cc,v 1.6 2004/12/02 19:06:05 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: DetectorConstruction.cc,v 1.7 2005/05/13 09:34:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // ///////////////////////////////////////////////////////////////////////// @@ -57,6 +57,7 @@ #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" +#include "G4NistManager.hh" #include "G4VisAttributes.hh" #include "G4Colour.hh" @@ -72,7 +73,7 @@ DetectorConstruction::DetectorConstruction() logicA2(0) { detectorMessenger = new DetectorMessenger(this); - DefineMaterials(); + ecalLength = 36.*cm; ecalWidth = 6.*cm; vertexLength = 3.*cm; @@ -81,6 +82,7 @@ DetectorConstruction::DetectorConstruction() absLength = 2.*mm; vertexRegion = 0; muonRegion = 0; + DefineMaterials(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -99,124 +101,24 @@ G4VPhysicalVolume* DetectorConstruction::Construct() void DetectorConstruction::DefineMaterials() { - G4String name, symbol; - G4double a, z, density; - G4int ncomponents, natoms; - G4double fractionmass; + // Default materials - // - // define few Elements - // + G4NistManager* man = G4NistManager::Instance(); + man->SetVerbose(1); + worldMaterial = man->FindOrBuildMaterial("G4_AIR"); + absMaterial = man->FindOrBuildMaterial("G4_Al"); + vertMaterial = man->FindOrBuildMaterial("G4_Si"); + yorkMaterial = man->FindOrBuildMaterial("G4_Fe"); + calMaterial = man->FindOrBuildMaterial("G4_CESIUM_IODIDE"); - a = 1.01*g/mole; - G4Element* H = new G4Element(name="Hydrogen", symbol="H", z=1., a); - - a = 14.01*g/mole; - G4Element* N = new G4Element(name="Nitrogen", symbol="N", z=7., a); - - a = 16.00*g/mole; - G4Element* O = new G4Element(name="Oxygen" , symbol="O", z=8., a); - - a = 72.59*g/mole; - G4Element* Ge = new G4Element(name="Germanium", symbol="Ge",z=32., a); - - a = 183.84*g/mole; - G4Element* W = new G4Element(name="Tungsten" , symbol="W", z=74., a); - - a = 207.19*g/mole; - G4Element* Pb = new G4Element(name="Lead" , symbol="Pb",z=82., a); - - a = 208.98*g/mole; - G4Element* Bi = new G4Element(name="Bismuth" , symbol="Bi",z=83., a); - - G4Element* Cs = new G4Element ("Cesium" , "Cs", 55. , 132.905*g/mole); - - G4Element* I = new G4Element ("Iodide" , "I", 53. , 126.9044*g/mole); - - // - // define materials - // - - G4Material* ma = 0; - - //Air - density = 1.29*mg/cm3; - G4Material* Air = new G4Material(name="Air", density, ncomponents=2); - Air->AddElement(N, fractionmass=0.7); - Air->AddElement(O, fractionmass=0.3); - - //H2O - density = 1.00*g/cm3; - G4Material* H2O = new G4Material(name="Water", density, ncomponents=2); - H2O->AddElement(H, natoms=2); - H2O->AddElement(O, natoms=1); - G4double exc = H2O->GetIonisation()->FindMeanExcitationEnergy("H_2O"); - H2O->GetIonisation()->SetMeanExcitationEnergy(exc); - - //liquid argon - a = 39.95*g/mole; - density = 1.390*g/cm3; - ma = new G4Material(name="lAr", z=18., a, density); - - //Al - a = 26.98*g/mole; - density = 2.7*g/cm3; - absMaterial = new G4Material(name="Al", z=13., a, density); - - //Si - density = 2.330*g/cm3; - a = 28.09*g/mole; - vertMaterial = new G4Material(name="Si", z=14., a, density); - - - //Fe - a = 55.85*g/mole; - density = 7.87*g/cm3; - yorkMaterial = new G4Material(name="Fe", z=26., a, density); - - // CsI - ma = new G4Material ("CsI" , 4.51*g/cm3, 2); - ma->SetChemicalFormula("CsI"); - ma->AddElement(Cs,1); - ma->AddElement(I,1); - ma->GetIonisation()->SetMeanExcitationEnergy(415.689*eV); - calMaterial = ma; - - - //BGO - density = 7.10*g/cm3; - G4Material* BGO = new G4Material(name="BGO", density, ncomponents=3); - BGO->AddElement(O , natoms=12); - BGO->AddElement(Ge, natoms= 3); - BGO->AddElement(Bi, natoms= 4); - - //PbWO4 - density = 8.28*g/cm3; - G4Material* PbWO = new G4Material(name="PbWO4", density, ncomponents=3); - PbWO->AddElement(O , natoms=4); - PbWO->AddElement(Pb, natoms=1); - PbWO->AddElement(W , natoms=1); - - //Tungsten - density = 19.30*g/cm3; - G4Material* w = new G4Material(name="Tungsten", density, ncomponents=1); - w->AddElement(W, fractionmass=1.0); - - //Pb - density = 11.35*g/cm3; - G4Material* pb = new G4Material(name="Lead", density, ncomponents=1); - pb->AddElement(Pb, fractionmass=1.0); - - G4cout << *(G4Material::GetMaterialTable()) << G4endl; - - //choose material - worldMaterial = Air; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() { + G4cout << *(G4Material::GetMaterialTable()) << G4endl; + // Cleanup old geometry G4GeometryManager::GetInstance()->OpenGeometry(); @@ -404,10 +306,11 @@ G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetEcalMaterial(const G4String& materialChoice) +void DetectorConstruction::SetEcalMaterial(const G4String& mat) { // search the material by its name - G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + G4Material* pttoMaterial = + G4NistManager::Instance()->FindOrBuildMaterial(mat, false); if (pttoMaterial) { calMaterial = pttoMaterial; @@ -417,10 +320,11 @@ void DetectorConstruction::SetEcalMaterial(const G4String& materialChoice) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::SetAbsMaterial(const G4String& materialChoice) +void DetectorConstruction::SetAbsMaterial(const G4String& mat) { // search the material by its name - G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + G4Material* pttoMaterial = + G4NistManager::Instance()->FindOrBuildMaterial(mat, false); if (pttoMaterial) { absMaterial = pttoMaterial; diff --git a/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.cc index 1f946043ab..3d37bfdf68 100644 --- a/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorMessenger.cc,v 1.2 2004/05/27 13:43:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/src/EmAcceptance.cc b/examples/extended/electromagnetic/TestEm9/src/EmAcceptance.cc index 6b4348d484..76a331dc1c 100644 --- a/examples/extended/electromagnetic/TestEm9/src/EmAcceptance.cc +++ b/examples/extended/electromagnetic/TestEm9/src/EmAcceptance.cc @@ -22,7 +22,7 @@ // // // $Id: EmAcceptance.cc,v 1.3 2004/12/02 19:06:05 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm9/src/EventAction.cc b/examples/extended/electromagnetic/TestEm9/src/EventAction.cc old mode 100755 new mode 100644 index 793cca222a..0b95c64b8c --- a/examples/extended/electromagnetic/TestEm9/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm9/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.3 2003/10/31 12:08:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.cc index c5274ae1a7..2c1f4ebd65 100644 --- a/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: EventActionMessenger.cc,v 1.1 2003/10/13 15:42:25 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: EventActionMessenger.cc,v 1.2 2005/05/13 11:46:02 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,7 +49,7 @@ EventActionMessenger::EventActionMessenger(EventAction* EvAct) PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(G4State_Idle); + PrintCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/HistoMessenger.cc index 6cd5625a82..830448280b 100644 --- a/examples/extended/electromagnetic/TestEm9/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/src/HistoMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: HistoMessenger.cc,v 1.2 2004/05/27 13:43:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: HistoMessenger.cc,v 1.3 2005/05/13 11:46:02 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -55,7 +55,6 @@ HistoMessenger::HistoMessenger(Histo* manager) // G4UIparameter* ih = new G4UIparameter("ih",'i',false); ih->SetGuidance("histo number : from 1 to MaxHisto"); - ih->SetParameterRange("ih>0"); histoCmd->SetParameter(ih); // G4UIparameter* nbBins = new G4UIparameter("nbBins",'i',false); diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc old mode 100755 new mode 100644 index 3a1d9f1f22..27923026da --- a/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.cc,v 1.4 2003/12/05 11:22:45 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "PhysListBinaryCascade.hh" #include "G4ParticleDefinition.hh" diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.cc index 6a69178be4..19f703ddf2 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmG4v52.cc,v 1.3 2003/11/07 11:54:54 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmG4v52.cc,v 1.4 2005/05/13 11:46:02 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,16 +31,16 @@ #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" #include "G4MultipleScattering52.hh" #include "G4MultipleScattering.hh" #include "G4eIonisation52.hh" #include "G4eBremsstrahlung52.hh" -#include "G4eplusAnnihilation.hh" +#include "G4eplusAnnihilation52.hh" #include "G4MuIonisation52.hh" #include "G4MuBremsstrahlung52.hh" @@ -74,24 +74,22 @@ void PhysListEmG4v52::ConstructProcess() if (particleName == "gamma") { // gamma - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); - pmanager->AddDiscreteProcess(new G4ComptonScattering); - pmanager->AddDiscreteProcess(new G4GammaConversion); + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect52); + pmanager->AddDiscreteProcess(new G4ComptonScattering52); + pmanager->AddDiscreteProcess(new G4GammaConversion52); } else if (particleName == "e-") { //electron pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - // pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); } else if (particleName == "e+") { //positron pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - // pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); } else if( particleName == "mu+" || particleName == "mu-" ) { @@ -103,7 +101,7 @@ void PhysListEmG4v52::ConstructProcess() } else if( particleName == "GenericIon" ) { - pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); + // pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); pmanager->AddProcess(new G4hIonisation52, -1,2,2); } else if ((!particle->IsShortLived()) && diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc old mode 100755 new mode 100644 index 625a3d81e3..3b6a90132c --- a/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmStandard.cc,v 1.3 2003/10/24 12:25:09 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListEmStandard.cc,v 1.4 2005/03/16 14:29:31 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -90,7 +90,7 @@ void PhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - } else if( particleName == "mu+" || + } else if (particleName == "mu+" || particleName == "mu-" ) { pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); @@ -98,7 +98,7 @@ void PhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); - } else if (particleName == "GenericIon") { + } else if (particleName == "alpha" || particleName == "GenericIon") { pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4ionIonisation, -1, 2,2); diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc old mode 100755 new mode 100644 index 6f03f49ac1..b94100f3ce --- a/examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListGeneral.cc,v 1.2 2003/11/20 08:18:55 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListHadronElastic.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListHadronElastic.cc old mode 100755 new mode 100644 diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc index ff68029837..934e65bb1e 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc @@ -20,27 +20,18 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListIonBinaryCascade.cc,v 1.2 2003/12/05 11:22:45 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListIonBinaryCascade.cc,v 1.3 2005/03/16 14:29:31 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ #include "PhysListIonBinaryCascade.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4LFission.hh" -#include "G4LCapture.hh" + #include "G4Deuteron.hh" #include "G4Triton.hh" -#include "G4He3.hh" #include "G4Alpha.hh" -#include "IonC12.hh" #include "G4GenericIon.hh" -#include "G4ExcitationHandler.hh" -#include "G4Evaporation.hh" -#include "G4FermiBreakUp.hh" -#include "G4StatMF.hh" -#include "G4GeneratorPrecompoundInterface.hh" - #include "G4HadronInelasticProcess.hh" #include "G4BinaryLightIonReaction.hh" #include "G4TripathiCrossSection.hh" @@ -64,27 +55,6 @@ PhysListIonBinaryCascade::~PhysListIonBinaryCascade() void PhysListIonBinaryCascade::ConstructProcess() { - /* - // all models for treatment of thermal nucleus - G4Evaporation * theEvaporation = new G4Evaporation; - G4FermiBreakUp * theFermiBreakUp = new G4FermiBreakUp; - G4StatMF * theMF = new G4StatMF; - - // Evaporation logic - G4ExcitationHandler * theHandler = new G4ExcitationHandler; - theHandler->SetEvaporation(theEvaporation); - theHandler->SetFermiModel(theFermiBreakUp); - theHandler->SetMultiFragmentation(theMF); - theHandler->SetMaxAandZForFermiBreakUp(12, 6); - theHandler->SetMinEForMultiFrag(3*MeV); - - // Pre equilibrium stage - G4PreCompoundModel * thePreEquilib = new G4PreCompoundModel(theHandler); - - // a no-cascade generator-precompound interaface - G4GeneratorPrecompoundInterface * theCascade = new G4GeneratorPrecompoundInterface; - theCascade->SetDeExcitation(thePreEquilib); - */ // Binary Cascade G4ParticleDefinition* particle = 0; G4ProcessManager* pmanager = 0; @@ -142,26 +112,6 @@ void PhysListIonBinaryCascade::ConstructProcess() theIPGenericIon->RegisterMe(theGenIonBC); pmanager->AddDiscreteProcess(theIPGenericIon); - // C12 - particle = IonC12::Ion(); - pmanager = particle->GetProcessManager(); - G4HadronInelasticProcess* theIPIonC12 = - new G4HadronInelasticProcess("IonC12Inelastic",particle); - theIPIonC12->AddDataSet(TripathiCrossSection); - theIPIonC12->AddDataSet(aShen); - theIPIonC12->RegisterMe(theGenIonBC); - pmanager->AddDiscreteProcess(theIPIonC12); - - // He3 - particle = G4He3::He3(); - pmanager = particle->GetProcessManager(); - G4HadronInelasticProcess* theIPHe3 = - new G4HadronInelasticProcess("He3Inelastic",particle); - theIPHe3->AddDataSet(TripathiCrossSection); - theIPHe3->AddDataSet(aShen); - theIPHe3->RegisterMe(theGenIonBC); - pmanager->AddDiscreteProcess(theIPHe3); - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc old mode 100755 new mode 100644 index 7032525bef..31e0ea6f20 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListParticles.cc,v 1.1 2003/07/14 17:10:17 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: PhysListParticles.cc,v 1.2 2005/03/16 14:29:31 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -67,14 +67,11 @@ #include "G4AntiNeutron.hh" // Nuclei -#include "G4Alpha.hh" #include "G4Deuteron.hh" #include "G4Triton.hh" -#include "G4He3.hh" +#include "G4Alpha.hh" #include "G4GenericIon.hh" -#include "IonC12.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysListParticles::PhysListParticles(const G4String& name) @@ -134,10 +131,8 @@ void PhysListParticles::ConstructParticle() // ions G4Deuteron::DeuteronDefinition(); G4Triton::TritonDefinition(); - G4He3::He3Definition(); G4Alpha::AlphaDefinition(); - G4GenericIon::GenericIonDefinition(); - IonC12::IonDefinition(); + G4GenericIon::GenericIonDefinition(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm9/src/PhysicsList.cc old mode 100755 new mode 100644 diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc old mode 100755 new mode 100644 index ff4a6abd51..0cc645c163 --- a/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: PhysicsListMessenger.cc,v 1.1 2003/07/14 17:10:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.cc index 52b5e90b9b..ef8f1d5bfe 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.cc,v 1.2 2004/05/27 13:43:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/src/RunAction.cc b/examples/extended/electromagnetic/TestEm9/src/RunAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/electromagnetic/TestEm9/src/StepMax.cc b/examples/extended/electromagnetic/TestEm9/src/StepMax.cc old mode 100755 new mode 100644 index b9291d4068..ce190a6c58 --- a/examples/extended/electromagnetic/TestEm9/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm9/src/StepMax.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.cc,v 1.2 2003/11/26 14:44:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/StepMaxMessenger.cc old mode 100755 new mode 100644 index 975c899703..d822dc9d05 --- a/examples/extended/electromagnetic/TestEm9/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/src/StepMaxMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.cc,v 1.1 2003/07/14 17:10:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm9/src/SteppingAction.cc index b8a9da257c..a20711c046 100644 --- a/examples/extended/electromagnetic/TestEm9/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm9/src/SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.cc,v 1.1 2003/07/14 17:10:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/src/VisManager.cc b/examples/extended/electromagnetic/TestEm9/src/VisManager.cc deleted file mode 100755 index 3d5b25843d..0000000000 --- a/examples/extended/electromagnetic/TestEm9/src/VisManager.cc +++ /dev/null @@ -1,144 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.cc,v 1.3 2003/11/12 18:32:56 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History index ebcfef7730..340388f681 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2004/12/03 15:52:39 gcosmo Exp $ +$Id: History,v 1.6 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec. 3rd, 2004 G.Cosmo - Implemented migration to . diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc index 3b1a0b6408..c9d250b608 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: hepmcEx01-clhep.cc,v 1.1 2002/11/19 10:33:00 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: hepmcEx01-clhep.cc,v 1.2 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -51,7 +51,7 @@ #include "ExN04SteppingVerbose.hh" #ifdef G4VIS_USE -#include "ExN04VisManager.hh" +#include "G4VisExecutive.hh" #endif int main(int argc,char** argv) @@ -65,7 +65,7 @@ int main(int argc,char** argv) #ifdef G4VIS_USE // Visualization, if you choose to have it! - G4VisManager* visManager = new ExN04VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out index ef05a93b56..bd9c258261 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out index 9833c39424..5319d67e3c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh index 958d99906b..f6ad1f01c7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.hh,v 1.1 2002/11/19 10:30:53 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh index 48222b67c2..faf57654ae 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.hh,v 1.1 2002/11/19 10:30:53 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh index 679b1f3748..1314465369 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN04HadronPhysics.hh,v 1.5 2003/12/03 11:19:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh index e695a54595..382396954f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.hh,v 1.2 2003/12/03 11:19:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh index 7f64a76e46..68caf3be08 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.hh,v 1.2 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh index 60a52aca1c..fd167b6221 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.hh,v 1.1 2002/11/19 10:30:54 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh index 0531a8b8f8..171b5ff39b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.hh,v 1.1 2002/11/19 10:30:54 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc index 8b47ea7966..971a0ffbce 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc index ead7f082da..0307f3437f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.cc,v 1.2 2003/06/16 16:48:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc index 0a8073f79f..a6ecc76b82 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04HadronPhysics.cc,v 1.5 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN04HadronPhysics.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc index a554600035..6a0b4042f2 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc index fdf3faabc2..e774b1dcbd 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc index 2df6ca9a84..da6ff64bc7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04PhysicsList.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc index 7fb738605c..2eae3c16f1 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc index 436a4b4ce0..24dde88c9e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc deleted file mode 100644 index 3fc2fd2a1a..0000000000 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN04VisManager.cc,v 1.2 2003/11/13 15:11:20 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "ExN04VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN04VisManager::ExN04VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN04VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/History b/examples/extended/eventgenerator/HepMC/HepMCEx01/History index 53e191d624..68fec0ca9e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2003/12/03 11:03:06 gcosmo Exp $ +$Id: History,v 1.7 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec. 2nd, 2003 G.Cosmo - Brought up-to-date with examples/novice/N04. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc index eb617d3811..5fe5a6d718 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: hepmcEx01.cc,v 1.2 2002/11/19 10:23:46 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: hepmcEx01.cc,v 1.3 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -51,7 +51,7 @@ #include "ExN04SteppingVerbose.hh" #ifdef G4VIS_USE -#include "ExN04VisManager.hh" +#include "G4VisExecutive.hh" #endif int main(int argc,char** argv) @@ -65,7 +65,7 @@ int main(int argc,char** argv) #ifdef G4VIS_USE // Visualization, if you choose to have it! - G4VisManager* visManager = new ExN04VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out index 9b133b35ee..fca04714b6 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out index f92f91c31d..aa509bd663 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh index 10c81bebba..e9397f73c9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh index 8e22e80bba..ad53d46e04 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh index 1813e1977d..07a14b11a3 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN04HadronPhysics.hh,v 1.6 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh index 03cb25ba8f..b682dc7036 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.hh,v 1.3 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh index 98d51d868e..d2287ac19c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.hh,v 1.3 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh index 169d8a8fe5..16b105cad9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.hh,v 1.1 2002/11/19 10:15:51 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh index a4179a1eaa..3d414f8063 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.hh,v 1.1 2002/11/19 10:15:52 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc index 2657d783df..3c6de94739 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc index 43cba93376..7f0dc33aa9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.cc,v 1.3 2003/06/16 16:48:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc index 1459216464..86de63a988 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04HadronPhysics.cc,v 1.6 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN04HadronPhysics.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc index 4800c00694..452aeee788 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc index 77aff51f5f..b03349e7c7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc index dcbff132ef..31f15ca2de 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04PhysicsList.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc index 0e8e5bee92..79145632ee 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.cc,v 1.1 2002/11/19 10:17:05 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc index f28da83727..295fc981b2 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.cc,v 1.3 2003/12/03 11:03:07 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc deleted file mode 100644 index cbbad7ab25..0000000000 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN04VisManager.cc,v 1.2 2003/11/13 15:11:12 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "ExN04VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN04VisManager::ExN04VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN04VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History index d393ab069d..082f385c8a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History @@ -1,4 +1,4 @@ -$Id: History,v 1.4 2004/12/03 15:52:39 gcosmo Exp $ +$Id: History,v 1.5 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec, 3rd, 2004 G.Cosmo - Implemented migration to . diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc index fa6d1ed0f4..82c6778b4b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: hepmcEx02-clhep.cc,v 1.1 2002/11/19 10:37:08 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: hepmcEx02-clhep.cc,v 1.2 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -46,7 +46,7 @@ #include "H02SteppingAction.hh" #ifdef G4VIS_USE -#include "H02VisManager.hh" +#include "G4VisExecutive.hh" #endif int main(int argc, char** argv) @@ -64,7 +64,7 @@ int main(int argc, char** argv) #ifdef G4VIS_USE // initialize visualization package - G4VisManager* visManager= new H02VisManager; + G4VisManager* visManager= new G4VisExecutive; visManager-> Initialize(); G4cout << G4endl; #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out index c46dd9977c..4f06c10c9c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out index 26a8bd691c..d0efc0fd6e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh index 8f58877266..73ddeb88a7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02EMPhysics.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh index 611af98035..28fe752077 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02GeneralPhysics.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh index ac1e613750..73c4b719fd 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02IonPhysics.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh index d4ccbac554..55c4375d9e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02MuonPhysics.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh deleted file mode 100644 index 10dea55439..0000000000 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh +++ /dev/null @@ -1,44 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// ==================================================================== -// -// H02VisManager.hh -// $Id: H02VisManager.hh,v 1.2 2003/12/09 15:31:48 gunter Exp $ -// -// ==================================================================== -#ifndef H02_VIS_MANAGER_H -#define H02_VIS_MANAGER_H - -#include "G4VisManager.hh" - -class H02VisManager : public G4VisManager { -public: - H02VisManager(); - ~H02VisManager(); - -private: - virtual void RegisterGraphicsSystems(); - -}; - -#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc index d87726299f..3d199f69fa 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02EMPhysics.cc,v 1.2 2003/06/16 16:48:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc index 2794df851b..46c7d9b280 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02GeneralPhysics.cc,v 1.2 2003/06/16 16:48:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc index 77e1ff6760..2180d6d2f8 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02IonPhysics.cc,v 1.2 2003/06/16 16:48:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc index 8a9263dddd..c51df7da59 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02MuonPhysics.cc,v 1.2 2003/06/16 16:48:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc index 0725a7dcd5..4098906efc 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: H02PhysicsList.cc,v 1.2 2003/06/16 16:48:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc deleted file mode 100644 index de4696302a..0000000000 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc +++ /dev/null @@ -1,151 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// ==================================================================== -// -// H02VisManager.cc -// $Id: H02VisManager.cc,v 1.3 2003/12/09 15:32:00 gunter Exp $ -// -// ==================================================================== -#include "H02VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -// ==================================================================== -// -// class description -// -// ==================================================================== - -//////////////////////////// -H02VisManager::H02VisManager() -//////////////////////////// -{ -} - -///////////////////////////// -H02VisManager::~H02VisManager() -///////////////////////////// -{ -} - -//////////////////////////////////////////// -void H02VisManager::RegisterGraphicsSystems() -//////////////////////////////////////////// -{ - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if(fVerbose> 0) { - G4cout << G4endl - << "You have successfully chosen to use " - << "the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/History b/examples/extended/eventgenerator/HepMC/HepMCEx02/History index 62d5021258..d377fd542f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2003/11/13 15:26:31 johna Exp $ +$Id: History,v 1.6 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Nov. 13, 2003 John Allison - Reconstructed Vis Manager. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc index 9597900822..81c74fe844 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: hepmcEx02.cc,v 1.2 2002/05/28 14:19:07 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: hepmcEx02.cc,v 1.3 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -46,7 +46,7 @@ #include "H02SteppingAction.hh" #ifdef G4VIS_USE -#include "H02VisManager.hh" +#include "G4VisExecutive.hh" #endif int main(int argc, char** argv) @@ -64,7 +64,7 @@ int main(int argc, char** argv) #ifdef G4VIS_USE // initialize visualization package - G4VisManager* visManager= new H02VisManager; + G4VisManager* visManager= new G4VisExecutive; visManager-> Initialize(); G4cout << G4endl; #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out index 7320b489bf..0f87273459 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out index 326484b0d4..c33bdedb18 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh index 1c397dd308..feea758639 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02EMPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh index 67b2f55620..5462e0c6d6 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02GeneralPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh index 10f1080c14..fa03ea5206 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02IonPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh index 84c9e18aaf..e73765f474 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02MuonPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh deleted file mode 100644 index fa9cd58dca..0000000000 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh +++ /dev/null @@ -1,44 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// ==================================================================== -// -// H02VisManager.hh -// $Id: H02VisManager.hh,v 1.2 2003/12/09 15:31:13 gunter Exp $ -// -// ==================================================================== -#ifndef H02_VIS_MANAGER_H -#define H02_VIS_MANAGER_H - -#include "G4VisManager.hh" - -class H02VisManager : public G4VisManager { -public: - H02VisManager(); - ~H02VisManager(); - -private: - virtual void RegisterGraphicsSystems(); - -}; - -#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc index 184ec94430..2b201687aa 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02EMPhysics.cc,v 1.3 2003/06/16 16:48:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc index b6b8cef81d..a101dc4e3d 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02GeneralPhysics.cc,v 1.3 2003/06/16 16:48:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc index 940e29cf8c..60731791f4 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02IonPhysics.cc,v 1.3 2003/06/16 16:48:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc index fde3795952..a4bfed4ca5 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02MuonPhysics.cc,v 1.3 2003/06/16 16:48:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc index 1fd8fdde0c..3595a332c9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: H02PhysicsList.cc,v 1.3 2003/06/16 16:48:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02VisManager.cc deleted file mode 100644 index 5c192ade7f..0000000000 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02VisManager.cc +++ /dev/null @@ -1,151 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// ==================================================================== -// -// H02VisManager.cc -// $Id: H02VisManager.cc,v 1.3 2003/12/09 15:31:28 gunter Exp $ -// -// ==================================================================== -#include "H02VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -// ==================================================================== -// -// class description -// -// ==================================================================== - -//////////////////////////// -H02VisManager::H02VisManager() -//////////////////////////// -{ -} - -///////////////////////////// -H02VisManager::~H02VisManager() -///////////////////////////// -{ -} - -//////////////////////////////////////////// -void H02VisManager::RegisterGraphicsSystems() -//////////////////////////////////////////// -{ - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if(fVerbose> 0) { - G4cout << G4endl - << "You have successfully chosen to use " - << "the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - diff --git a/examples/extended/eventgenerator/HepMC/History b/examples/extended/eventgenerator/HepMC/History index d14102017f..6a9ba422fd 100644 --- a/examples/extended/eventgenerator/HepMC/History +++ b/examples/extended/eventgenerator/HepMC/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2004/12/03 15:54:38 gcosmo Exp $ +$Id: History,v 1.10 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec 03, 2004 G.Cosmo (exHepMC-V06-02-00) - Implemented migration to . diff --git a/examples/extended/eventgenerator/exgps/History b/examples/extended/eventgenerator/exgps/History index 07c88ec329..9fe056ae0a 100644 --- a/examples/extended/eventgenerator/exgps/History +++ b/examples/extended/eventgenerator/exgps/History @@ -12,6 +12,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 03/12/2004, G.Cosmo, (exgps-V06-02-01) - Implemented migration to . diff --git a/examples/extended/eventgenerator/exgps/exGPS.cc b/examples/extended/eventgenerator/exgps/exGPS.cc index 8594dfd8c6..e35cfb3df2 100644 --- a/examples/extended/eventgenerator/exgps/exGPS.cc +++ b/examples/extended/eventgenerator/exgps/exGPS.cc @@ -34,7 +34,7 @@ #include "exGPSAnalysisManager.hh" #endif -#include "exGPSVisManager.hh" +#include "G4VisExecutive.hh" #include "exGPSGeometryConstruction.hh" #include "exGPSPhysicsList.hh" @@ -84,7 +84,7 @@ int main(int argc,char** argv) { } // visualization manager - G4VisManager* visManager = new exGPSVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); //Initialize G4 kernel diff --git a/examples/extended/eventgenerator/exgps/include/exGPSEventActionMessenger.hh b/examples/extended/eventgenerator/exgps/include/exGPSEventActionMessenger.hh index 126eecbeec..7cc9262978 100644 --- a/examples/extended/eventgenerator/exgps/include/exGPSEventActionMessenger.hh +++ b/examples/extended/eventgenerator/exgps/include/exGPSEventActionMessenger.hh @@ -28,7 +28,7 @@ // and all its terms. // // $Id: exGPSEventActionMessenger.hh,v 1.3 2004/12/15 15:41:11 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/exgps/include/exGPSVisManager.hh b/examples/extended/eventgenerator/exgps/include/exGPSVisManager.hh deleted file mode 100644 index d412cabbdc..0000000000 --- a/examples/extended/eventgenerator/exgps/include/exGPSVisManager.hh +++ /dev/null @@ -1,76 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: exGPSVisManager.hh,v 1.3 2004/12/15 15:41:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef exGPSVisManager_h -#define exGPSVisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class exGPSVisManager: public G4VisManager { - -public: - - exGPSVisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -#endif - -#endif diff --git a/examples/extended/eventgenerator/exgps/src/exGPSEventActionMessenger.cc b/examples/extended/eventgenerator/exgps/src/exGPSEventActionMessenger.cc index f13bd1544d..2491da5858 100644 --- a/examples/extended/eventgenerator/exgps/src/exGPSEventActionMessenger.cc +++ b/examples/extended/eventgenerator/exgps/src/exGPSEventActionMessenger.cc @@ -28,7 +28,7 @@ // and all its terms. // // $Id: exGPSEventActionMessenger.cc,v 1.2 2004/12/15 15:41:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/eventgenerator/exgps/src/exGPSVisManager.cc b/examples/extended/eventgenerator/exgps/src/exGPSVisManager.cc deleted file mode 100644 index 9591a9df92..0000000000 --- a/examples/extended/eventgenerator/exgps/src/exGPSVisManager.cc +++ /dev/null @@ -1,163 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: exGPSVisManager.cc,v 1.2 2004/12/15 15:41:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifdef G4VIS_USE - -#include "exGPSVisManager.hh" - -// Supported drivers... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_DAWNFILE -#include "G4DAWNFILE.hh" -#endif - -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - -#ifdef G4VIS_USE_RAYTRACER -#include "G4RayTracer.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -exGPSVisManager::exGPSVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void exGPSVisManager::RegisterGraphicsSystems () { - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_DAWNFILE - RegisterGraphicsSystem (new G4DAWNFILE); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); -#endif - -#ifdef G4VIS_USE_RAYTRACER - RegisterGraphicsSystem (new G4RayTracer); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/BlineTracer/History b/examples/extended/field/BlineTracer/History index f6eb03f871..06ec64f53d 100644 --- a/examples/extended/field/BlineTracer/History +++ b/examples/extended/field/BlineTracer/History @@ -1,4 +1,4 @@ -$Id: History,v 1.2 2004/06/03 15:28:49 gcosmo Exp $ +$Id: History,v 1.3 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Jun 6th, 2004 - L.Desorgher (BlineTracer-V06-01-00) --------------------------- - Added inclusion of G4ChordFinder.hh in G4BlineTracer.cc. diff --git a/examples/extended/field/BlineTracer/include/G4BlineEquation.hh b/examples/extended/field/BlineTracer/include/G4BlineEquation.hh index 36ad814283..82387c75c7 100644 --- a/examples/extended/field/BlineTracer/include/G4BlineEquation.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineEquation.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlineEquation.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/include/G4BlineEventAction.hh b/examples/extended/field/BlineTracer/include/G4BlineEventAction.hh index 6a5e2884d4..792073daf9 100644 --- a/examples/extended/field/BlineTracer/include/G4BlineEventAction.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlineEventAction.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh b/examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh index ec050a7f3c..da270bbf0f 100644 --- a/examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh +++ b/examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlinePrimaryGeneratorAction.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh b/examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh index c7fddcf3f8..5bfffbc671 100644 --- a/examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlineSteppingAction.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/include/G4BlineTracer.hh b/examples/extended/field/BlineTracer/include/G4BlineTracer.hh index 906eb731f7..e5b9d887f5 100644 --- a/examples/extended/field/BlineTracer/include/G4BlineTracer.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineTracer.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlineTracer.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh b/examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh index 693637d44c..43bb33166f 100644 --- a/examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlineTracerMessenger.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlineEquation.cc b/examples/extended/field/BlineTracer/src/G4BlineEquation.cc index bd685693b2..304c6526bc 100644 --- a/examples/extended/field/BlineTracer/src/G4BlineEquation.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineEquation.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlineEquation.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlineEventAction.cc b/examples/extended/field/BlineTracer/src/G4BlineEventAction.cc index 1ad116a714..756c5dc602 100644 --- a/examples/extended/field/BlineTracer/src/G4BlineEventAction.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlineEventAction.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc b/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc index 395faeda57..6756664d66 100644 --- a/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc +++ b/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlinePrimaryGeneratorAction.cc,v 1.2 2004/12/03 16:07:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc b/examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc index 16c901b6c0..15b200c00e 100644 --- a/examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlineSteppingAction.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlineTracer.cc b/examples/extended/field/BlineTracer/src/G4BlineTracer.cc index fd941cbd6b..603a42b29d 100644 --- a/examples/extended/field/BlineTracer/src/G4BlineTracer.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineTracer.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlineTracer.cc,v 1.2 2004/06/03 15:28:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc b/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc index f5b45ba69e..143b271228 100644 --- a/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlineTracerMessenger.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // diff --git a/examples/extended/field/History b/examples/extended/field/History index d4760a5bdb..eca2830d1c 100644 --- a/examples/extended/field/History +++ b/examples/extended/field/History @@ -1,4 +1,4 @@ -$Id: History,v 1.3 2004/12/03 16:07:23 gcosmo Exp $ +$Id: History,v 1.4 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec 3rd, 2004 Gabriele Cosmo (fieldex-V06-02-00) ------------------------------------------------ - Implemented migration to . diff --git a/examples/extended/field/field01/History b/examples/extended/field/field01/History index a222d9ec77..092c845e97 100644 --- a/examples/extended/field/field01/History +++ b/examples/extended/field/field01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.17 2004/12/03 16:07:23 gcosmo Exp $ +$Id: History,v 1.18 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec 3rd, 2004 Gabriele Cosmo ---------------------------- - Implemented migration to . diff --git a/examples/extended/field/field01/field01.cc b/examples/extended/field/field01/field01.cc index 10ca8ada81..fd27e6b991 100644 --- a/examples/extended/field/field01/field01.cc +++ b/examples/extended/field/field01/field01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: field01.cc,v 1.5 2003/11/25 18:05:31 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: field01.cc,v 1.6 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -40,7 +40,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "F01VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "F01DetectorConstruction.hh" @@ -82,7 +82,7 @@ int main(int argc,char** argv) // visualization manager - G4VisManager* visManager = new F01VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/field/field01/field01.out b/examples/extended/field/field01/field01.out index 001a971683..b2af2ab802 100644 --- a/examples/extended/field/field01/field01.out +++ b/examples/extended/field/field01/field01.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -10,47 +10,47 @@ ***** Table : Nb of materials = 11 ***** Material: Mylar density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.743 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % Material: Polypropelene density: 910.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 49.214 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % Material: Kr density: 3.700 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 30.736 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Kr ( ) Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Argon density: 1.784 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 109.604 m - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: N2 density: 1.251 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.846 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: O2 density: 1.429 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 239.621 m - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Air density: 0.000 mg/cm3 temperature: 273.15 K pressure: 0.00 atm RadLength: 28329272.015 km - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % Material: Xenon density: 5.858 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.478 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 183.083 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % Material: Xe20CO2 density: 5.082 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 17.750 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 92.20 % Abundance 56.91 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.13 % Abundance 14.36 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 5.67 % Abundance 28.73 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 92.20 % Abundance 56.91 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.13 % Abundance 14.36 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 5.67 % Abundance 28.73 % Material: Kr20CO2 density: 3.601 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 34.158 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 89.00 % Abundance 58.62 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 3.00 % Abundance 13.79 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 8.00 % Abundance 27.59 % + ---> Element: Kr ( ) Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 89.00 % Abundance 58.62 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 3.00 % Abundance 13.79 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 8.00 % Abundance 27.59 % Visualization Manager instantiating... @@ -62,8 +62,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -75,28 +75,29 @@ Current available graphics systems are: F01FieldSetup: magnetic field set to Uniform( (0.0033,0,0) ) G4ClassicalRK4 (default) is called The minimal step is equal to 1 mm - -phot: Total cross sections from Sandia parametrisation. F01PhysicsList::SetCuts:CutLength : 1 mm total time(SetCuts)=0 s G4ClassicalRK4 (default) is called The minimal step is equal to 0.1 mm -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -107,8 +108,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -123,8 +124,9 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -133,9 +135,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -150,9 +152,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -190,13 +192,13 @@ Start Run processing. Step# X Y Z Direction x dir y dir z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 21.9895 m 0 0 -1 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.01183 m 21.9895 m 0 8.95106e-13 1 500 MeV 0 eV 1.58938 m 1.58938 m World Transportation + 1 0 fm 1.01183 m 21.9895 m 0 8.95106e-13 1 500 MeV0.00387485 eV 1.58938 m 1.58938 m World Transportation 2 0 fm 1.01183 m 21.9905 m 0 -0.00197661 0.999998 500 MeV2.44427e-06 eV 1 mm 1.59038 m Absorber Transportation 3 0 fm 1.01172 m 22 m 0 -0.0207544 0.999785 500 MeV2.31353e-05 eV 9.50075 mm 1.59988 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0.01s Real=0.01s Sys=0s + User=0.01s Real=0.05s Sys=0s ========= Table of registered couples ============================== @@ -220,13 +222,13 @@ Start Run processing. Step# X Y Z Direction x dir y dir z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 21.9895 m 0 0 -1 250 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 50.6432 cm 21.9895 m 0 1.17461e-09 1 250 MeV 0 eV 79.5502 cm 79.5502 cm World Transportation + 1 0 fm 50.6432 cm 21.9895 m 0 1.17461e-09 1 250 MeV0.00183027 eV 79.5502 cm 79.5502 cm World Transportation 2 0 fm 50.643 cm 21.9905 m 0 -0.0039492 0.999992 250 MeV2.30216e-06 eV 1 mm 79.6502 cm Absorber Transportation 3 0 fm 50.6214 cm 22 m 0 -0.0414666 0.99914 250 MeV2.18563e-05 eV 9.50301 mm 80.6005 cm OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0s Real=0.01s Sys=0.01s + User=0s Real=0s Sys=0s ========= Table of registered couples ============================== @@ -250,13 +252,13 @@ Start Run processing. Step# X Y Z Direction x dir y dir z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 21.9895 m 0 0 -1 200 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 40.5352 cm 21.9895 m 0 -2.18037e-09 1 200 MeV 0 eV 63.6725 cm 63.6725 cm World Transportation + 1 0 fm 40.5352 cm 21.9895 m 0 -2.18037e-09 1 200 MeV0.00143692 eV 63.6725 cm 63.6725 cm World Transportation 2 0 fm 40.5349 cm 21.9905 m 0 -0.00493399 0.999988 200 MeV2.24532e-06 eV 1 mm 63.7725 cm Absorber Transportation 3 0 fm 40.5079 cm 22 m 0 -0.0518069 0.998657 200 MeV2.14584e-05 eV 9.50471 mm 64.723 cm OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0s Real=0.01s Sys=0.01s + User=0.01s Real=0.01s Sys=0s ========= Table of registered couples ============================== @@ -343,11 +345,11 @@ Start Run processing. Step# X Y Z Direction x dir y dir z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 21.9895 m 0 0 -1 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 0 fm -22 m 0 0 -1 500 MeV 0 eV 43.9895 m 43.9895 m OutOfWorld Transportation + 1 0 fm 0 fm -22 m 0 0 -1 500 MeV0.107244 eV 43.9895 m 43.9895 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0s Real=0.01s Sys=0.01s + User=0s Real=0s Sys=0s ========= Table of registered couples ============================== @@ -385,7 +387,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=0.03s Real=0.03s Sys=0s + User=0.06s Real=0.06s Sys=0s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/field/field01/include/F01CalorHit.hh b/examples/extended/field/field01/include/F01CalorHit.hh index 76cd46b39d..54985a1709 100644 --- a/examples/extended/field/field01/include/F01CalorHit.hh +++ b/examples/extended/field/field01/include/F01CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: F01CalorHit.hh,v 1.3 2003/06/25 17:40:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01CalorimeterSD.hh b/examples/extended/field/field01/include/F01CalorimeterSD.hh index 8e07e233cf..403bec526f 100644 --- a/examples/extended/field/field01/include/F01CalorimeterSD.hh +++ b/examples/extended/field/field01/include/F01CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: F01CalorimeterSD.hh,v 1.3 2001/10/15 17:20:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01DetectorConstruction.hh b/examples/extended/field/field01/include/F01DetectorConstruction.hh index 717c05d78d..d7ebc67767 100644 --- a/examples/extended/field/field01/include/F01DetectorConstruction.hh +++ b/examples/extended/field/field01/include/F01DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: F01DetectorConstruction.hh,v 1.6 2003/11/25 18:06:22 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01DetectorMessenger.hh b/examples/extended/field/field01/include/F01DetectorMessenger.hh index 27a66ff33a..b8ee36dc4e 100644 --- a/examples/extended/field/field01/include/F01DetectorMessenger.hh +++ b/examples/extended/field/field01/include/F01DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01DetectorMessenger.hh,v 1.3 2001/10/25 08:10:20 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01EventAction.hh b/examples/extended/field/field01/include/F01EventAction.hh index b7d63e4d20..516b823dc1 100644 --- a/examples/extended/field/field01/include/F01EventAction.hh +++ b/examples/extended/field/field01/include/F01EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: F01EventAction.hh,v 1.4 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01EventActionMessenger.hh b/examples/extended/field/field01/include/F01EventActionMessenger.hh index 75baeafaf2..49147b16e4 100644 --- a/examples/extended/field/field01/include/F01EventActionMessenger.hh +++ b/examples/extended/field/field01/include/F01EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01EventActionMessenger.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01FieldMessenger.hh b/examples/extended/field/field01/include/F01FieldMessenger.hh index 4cfa1f8d76..fb0acdb662 100644 --- a/examples/extended/field/field01/include/F01FieldMessenger.hh +++ b/examples/extended/field/field01/include/F01FieldMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01FieldMessenger.hh,v 1.6 2003/11/25 18:06:22 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01FieldSetup.hh b/examples/extended/field/field01/include/F01FieldSetup.hh index db7d299cc5..098b8aa352 100644 --- a/examples/extended/field/field01/include/F01FieldSetup.hh +++ b/examples/extended/field/field01/include/F01FieldSetup.hh @@ -22,7 +22,7 @@ // // // $Id: F01FieldSetup.hh,v 1.2 2003/12/01 15:47:52 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // A class for control of the Magnetic Field of the detector. diff --git a/examples/extended/field/field01/include/F01PhysicsList.hh b/examples/extended/field/field01/include/F01PhysicsList.hh index a529759d86..ec0d490abb 100644 --- a/examples/extended/field/field01/include/F01PhysicsList.hh +++ b/examples/extended/field/field01/include/F01PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: F01PhysicsList.hh,v 1.3 2003/08/27 17:38:54 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef F01PhysicsList_h diff --git a/examples/extended/field/field01/include/F01PhysicsListMessenger.hh b/examples/extended/field/field01/include/F01PhysicsListMessenger.hh index 7605140ba4..370815b342 100644 --- a/examples/extended/field/field01/include/F01PhysicsListMessenger.hh +++ b/examples/extended/field/field01/include/F01PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01PhysicsListMessenger.hh,v 1.3 2001/10/15 17:20:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh b/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh index 86065aa2fc..17227425d9 100644 --- a/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh +++ b/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: F01PrimaryGeneratorAction.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh b/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh index a81ace9256..a5787be302 100644 --- a/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh +++ b/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01PrimaryGeneratorMessenger.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01RunAction.hh b/examples/extended/field/field01/include/F01RunAction.hh index b0e953928a..244b515972 100644 --- a/examples/extended/field/field01/include/F01RunAction.hh +++ b/examples/extended/field/field01/include/F01RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: F01RunAction.hh,v 1.5 2003/06/16 16:48:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01RunMessenger.hh b/examples/extended/field/field01/include/F01RunMessenger.hh index 1d05e7a55a..fc26ceba6b 100644 --- a/examples/extended/field/field01/include/F01RunMessenger.hh +++ b/examples/extended/field/field01/include/F01RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: F01RunMessenger.hh,v 1.3 2001/10/15 17:20:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01StepCut.hh b/examples/extended/field/field01/include/F01StepCut.hh index 92e481bef2..95cab3c931 100644 --- a/examples/extended/field/field01/include/F01StepCut.hh +++ b/examples/extended/field/field01/include/F01StepCut.hh @@ -22,7 +22,7 @@ // // // $Id: F01StepCut.hh,v 1.4 2003/06/25 17:40:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01SteppingAction.hh b/examples/extended/field/field01/include/F01SteppingAction.hh index 0d1fd1acbb..ebb2460099 100644 --- a/examples/extended/field/field01/include/F01SteppingAction.hh +++ b/examples/extended/field/field01/include/F01SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: F01SteppingAction.hh,v 1.3 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/include/F01SteppingMessenger.hh b/examples/extended/field/field01/include/F01SteppingMessenger.hh index 6513befb68..21e2174c7e 100644 --- a/examples/extended/field/field01/include/F01SteppingMessenger.hh +++ b/examples/extended/field/field01/include/F01SteppingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01SteppingMessenger.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/include/F01SteppingVerbose.hh b/examples/extended/field/field01/include/F01SteppingVerbose.hh index c42bf243c9..b66ae9bc0b 100644 --- a/examples/extended/field/field01/include/F01SteppingVerbose.hh +++ b/examples/extended/field/field01/include/F01SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: F01SteppingVerbose.hh,v 1.3 2001/10/15 17:20:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field01/include/F01VisManager.hh b/examples/extended/field/field01/include/F01VisManager.hh deleted file mode 100644 index b6b518524a..0000000000 --- a/examples/extended/field/field01/include/F01VisManager.hh +++ /dev/null @@ -1,66 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: F01VisManager.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef F01VisManager_h -#define F01VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class F01VisManager: public G4VisManager -{ - public: - - F01VisManager (); - - private: - - void RegisterGraphicsSystems (); - -}; - -#endif diff --git a/examples/extended/field/field01/src/F01CalorHit.cc b/examples/extended/field/field01/src/F01CalorHit.cc index de9e81a289..e39370da97 100644 --- a/examples/extended/field/field01/src/F01CalorHit.cc +++ b/examples/extended/field/field01/src/F01CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: F01CalorHit.cc,v 1.3 2003/06/25 17:40:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01CalorimeterSD.cc b/examples/extended/field/field01/src/F01CalorimeterSD.cc index a70e5a2c98..bcf279a265 100644 --- a/examples/extended/field/field01/src/F01CalorimeterSD.cc +++ b/examples/extended/field/field01/src/F01CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: F01CalorimeterSD.cc,v 1.5 2003/06/25 17:40:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01DetectorConstruction.cc b/examples/extended/field/field01/src/F01DetectorConstruction.cc index 9dfbbcdf9e..aaa82d83eb 100644 --- a/examples/extended/field/field01/src/F01DetectorConstruction.cc +++ b/examples/extended/field/field01/src/F01DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: F01DetectorConstruction.cc,v 1.14 2004/12/02 11:32:59 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01DetectorMessenger.cc b/examples/extended/field/field01/src/F01DetectorMessenger.cc index 34cc1e59a4..e200563254 100644 --- a/examples/extended/field/field01/src/F01DetectorMessenger.cc +++ b/examples/extended/field/field01/src/F01DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01DetectorMessenger.cc,v 1.4 2002/12/05 01:06:56 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01EventAction.cc b/examples/extended/field/field01/src/F01EventAction.cc index c9f445bfcd..e9739ea7c4 100644 --- a/examples/extended/field/field01/src/F01EventAction.cc +++ b/examples/extended/field/field01/src/F01EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: F01EventAction.cc,v 1.4 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01EventActionMessenger.cc b/examples/extended/field/field01/src/F01EventActionMessenger.cc index c07bb3ae57..630d61699f 100644 --- a/examples/extended/field/field01/src/F01EventActionMessenger.cc +++ b/examples/extended/field/field01/src/F01EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01EventActionMessenger.cc,v 1.3 2002/12/05 01:06:56 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01FieldMessenger.cc b/examples/extended/field/field01/src/F01FieldMessenger.cc index ae445539e6..b226a66e25 100644 --- a/examples/extended/field/field01/src/F01FieldMessenger.cc +++ b/examples/extended/field/field01/src/F01FieldMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01FieldMessenger.cc,v 1.7 2003/11/25 18:06:26 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01FieldSetup.cc b/examples/extended/field/field01/src/F01FieldSetup.cc index 74d43d9ce2..4de7bbb02c 100644 --- a/examples/extended/field/field01/src/F01FieldSetup.cc +++ b/examples/extended/field/field01/src/F01FieldSetup.cc @@ -22,7 +22,7 @@ // // // $Id: F01FieldSetup.cc,v 1.6 2004/03/23 14:51:04 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // User Field setup class implementation. // diff --git a/examples/extended/field/field01/src/F01PhysicsList.cc b/examples/extended/field/field01/src/F01PhysicsList.cc index 2de292e5ed..168d8c1cf4 100644 --- a/examples/extended/field/field01/src/F01PhysicsList.cc +++ b/examples/extended/field/field01/src/F01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: F01PhysicsList.cc,v 1.10 2004/12/03 15:22:18 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc index f4e7bf02c9..d1781ff09e 100644 --- a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc +++ b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01PhysicsListMessenger.cc,v 1.5 2003/08/27 17:38:54 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc b/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc index 7e984fa926..831d756731 100644 --- a/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc +++ b/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: F01PrimaryGeneratorAction.cc,v 1.7 2004/12/03 16:07:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc b/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc index e76e140818..ef681fdfd8 100644 --- a/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01RunAction.cc b/examples/extended/field/field01/src/F01RunAction.cc index 64bdd06471..7bf6b0e94e 100644 --- a/examples/extended/field/field01/src/F01RunAction.cc +++ b/examples/extended/field/field01/src/F01RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: F01RunAction.cc,v 1.8 2003/06/25 17:40:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01RunMessenger.cc b/examples/extended/field/field01/src/F01RunMessenger.cc index 5482b5fc84..3ed98512f6 100644 --- a/examples/extended/field/field01/src/F01RunMessenger.cc +++ b/examples/extended/field/field01/src/F01RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01RunMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01StepCut.cc b/examples/extended/field/field01/src/F01StepCut.cc index 047b5331c1..d05b50904d 100644 --- a/examples/extended/field/field01/src/F01StepCut.cc +++ b/examples/extended/field/field01/src/F01StepCut.cc @@ -22,7 +22,7 @@ // // // $Id: F01StepCut.cc,v 1.2 2001/07/11 09:58:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "F01StepCut.hh" diff --git a/examples/extended/field/field01/src/F01SteppingAction.cc b/examples/extended/field/field01/src/F01SteppingAction.cc index c6d193ef1b..ff72d8ff5b 100644 --- a/examples/extended/field/field01/src/F01SteppingAction.cc +++ b/examples/extended/field/field01/src/F01SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: F01SteppingAction.cc,v 1.6 2003/06/16 16:48:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field01/src/F01SteppingMessenger.cc b/examples/extended/field/field01/src/F01SteppingMessenger.cc index 242d01b893..489821c54e 100644 --- a/examples/extended/field/field01/src/F01SteppingMessenger.cc +++ b/examples/extended/field/field01/src/F01SteppingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01SteppingMessenger.cc,v 1.3 2003/06/25 17:40:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/src/F01SteppingVerbose.cc b/examples/extended/field/field01/src/F01SteppingVerbose.cc index 61863fd425..e8a5a5293b 100644 --- a/examples/extended/field/field01/src/F01SteppingVerbose.cc +++ b/examples/extended/field/field01/src/F01SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: F01SteppingVerbose.cc,v 1.6 2003/12/01 16:25:37 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/field/field01/src/F01VisManager.cc b/examples/extended/field/field01/src/F01VisManager.cc deleted file mode 100644 index 2624617079..0000000000 --- a/examples/extended/field/field01/src/F01VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: F01VisManager.cc,v 1.5 2003/11/13 15:10:59 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifdef G4VIS_USE - -#include "F01VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -F01VisManager::F01VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void F01VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/History b/examples/extended/field/field02/History index 0be531e127..8c7d07b1f4 100644 --- a/examples/extended/field/field02/History +++ b/examples/extended/field/field02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.19 2004/12/03 16:07:23 gcosmo Exp $ +$Id: History,v 1.20 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec 3rd, 2004 Gabriele Cosmo ---------------------------- - Implemented migration to . diff --git a/examples/extended/field/field02/field02.cc b/examples/extended/field/field02/field02.cc index b950985510..213429d6e8 100644 --- a/examples/extended/field/field02/field02.cc +++ b/examples/extended/field/field02/field02.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: field02.cc,v 1.5 2003/11/12 16:33:13 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: field02.cc,v 1.6 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -40,7 +40,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "F02VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "F02DetectorConstruction.hh" @@ -83,7 +83,7 @@ int main(int argc,char** argv) // visualization manager - G4VisManager* visManager = new F02VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/field/field02/field02.out b/examples/extended/field/field02/field02.out index 3d46dab350..4216e6cf1c 100644 --- a/examples/extended/field/field02/field02.out +++ b/examples/extended/field/field02/field02.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -12,47 +12,47 @@ The minimal step is equal to 0.01 mm ***** Table : Nb of materials = 11 ***** Material: Mylar density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.743 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % Material: Polypropelene density: 910.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 49.214 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % Material: Kr density: 3.700 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 30.736 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Kr ( ) Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Argon density: 1.784 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 109.604 m - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: N2 density: 1.251 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.846 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: O2 density: 1.429 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 239.621 m - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Air density: 1.293 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 283.293 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % Material: Xenon density: 5.858 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.478 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 183.083 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % Material: Xe20CO2 density: 5.082 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 17.750 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 92.20 % Abundance 56.91 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.13 % Abundance 14.36 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 5.67 % Abundance 28.73 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 92.20 % Abundance 56.91 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.13 % Abundance 14.36 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 5.67 % Abundance 28.73 % Material: Kr20CO2 density: 3.601 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 34.158 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 89.00 % Abundance 58.62 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 3.00 % Abundance 13.79 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 8.00 % Abundance 27.59 % + ---> Element: Kr ( ) Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 89.00 % Abundance 58.62 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 3.00 % Abundance 13.79 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 8.00 % Abundance 27.59 % G4ClassicalRK4 (default) is called @@ -66,8 +66,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -76,28 +76,29 @@ Current available graphics systems are: The ABSORBER is made of 40mm of Kr20CO2, the transverse size (R) is 100 mm. Z position of the (middle of the) absorber 360 mm. - -phot: Total cross sections from Sandia parametrisation. F02PhysicsList::SetCuts:CutLength : 1 mm total time(SetCuts)=0 s G4ClassicalRK4 (default) is called The minimal step is equal to 10 mm -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -108,8 +109,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -124,8 +125,9 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -134,9 +136,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -151,9 +153,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -198,272 +200,57 @@ Start Run processing. Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.8 cm 1.54 cm 530 MeV 10.5 keV 5.28 cm 5.28 cm World eIoni - 2 -7.78 mum -15 cm 2.08 cm 1.55 GeV 21.5 keV 10.2 cm 15.5 cm World eIoni - 3 -9.29 mum -19.6 cm 2.21 cm 2.01 GeV 9.02 keV 4.59 cm 20.1 cm World eIoni - 4 -9.29 mum -20 cm 2.22 cm 2.05 GeV 1.96 keV 3.92 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -9.29 mum -19.6 cm 2.21 cm 3.69 keV 0 eV 0 fm 0 fm World initStep - 1 -29.1 mum -19.6 cm 2.21 cm 4.58 MeV 3.69 keV 427 mum 427 mum World eIoni - 2 -41.3 mum -20 cm 2.21 cm 39.6 MeV 260 eV 3.5 mm 3.93 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.78 mum -15 cm 2.08 cm 6.1 keV 0 eV 0 fm 0 fm World initStep - 1 -11.2 mum -15 cm 2.08 cm 2.27 MeV 625 eV 219 mum 219 mum World eIoni - 2 -16.1 mum -15.8 cm 2.08 cm 83.3 MeV 1.08 keV 8.1 mm 8.32 mm World eIoni - 3 -24 mum -20 cm 2.09 cm 498 MeV 7.46 keV 4.15 cm 4.98 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -16.1 mum -15.8 cm 2.08 cm 1.02 keV 0 eV 0 fm 0 fm World initStep - 1 -11.7 mum -15.9 cm 2.08 cm 653 keV 1.02 keV 59.4 mum 59.4 mum World eIoni - 2 5.97 mum -20 cm 2.08 cm 415 MeV 6.31 keV 4.14 cm 4.15 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.8 cm 1.54 cm 5.17 keV 0 eV 0 fm 0 fm World initStep - 1 30 mum -4.87 cm 1.54 cm 8.15 MeV 5.17 keV 766 mum 766 mum World eIoni - 2 51.4 mum -6.43 cm 1.54 cm 164 MeV 3.14 keV 1.56 cm 1.64 cm World eIoni - 3 67.9 mum -20 cm 1.54 cm 1.52 GeV 28.5 keV 13.6 cm 15.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.5 cm 1.99 cm 1.3 GeV 24.5 keV 13 cm 13 cm World eIoni - 2 -1.13 nm -12.5 cm 1.99 cm 1.3 GeV 0 eV 114 mum 13 cm World eIoni - 3 111 nm -13.2 cm 2.02 cm 1.37 GeV 1.82 keV 6.83 mm 13.7 cm World eIoni - 4 1.38 mum -19.5 cm 2.21 cm 2 GeV 13.3 keV 6.32 cm 20 cm World eIoni - 5 1.76 mum -20 cm 2.22 cm 2.05 GeV 541 eV 4.63 mm 20.5 cm OutOfWorldTransportation + 1 0 fm -4.8 cm 1.54 cm 530 MeV 9.37 keV 5.28 cm 5.28 cm World eIoni + 2 -482 nm -6.76 cm 1.7 cm 726 MeV 4.45 keV 1.97 cm 7.25 cm World eIoni + 3 -2.15 mum -9.81 cm 1.87 cm 1.03 GeV 9.53 keV 3.05 cm 10.3 cm World eIoni + 4 -7.67 mum -12.9 cm 2.01 cm 1.34 GeV 7.95 keV 3.12 cm 13.4 cm World eIoni + 5 -17.3 mum -20 cm 2.22 cm 2.05 GeV 16.9 keV 7.08 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.38 mum -19.5 cm 2.21 cm 16.9 keV 0 eV 0 fm 0 fm World initStep - 1 -87 mum -19.8 cm 2.21 cm 29.4 MeV 3.46 keV 2.82 mm 2.82 mm World eIoni - 2 -93.3 mum -20 cm 2.21 cm 47.9 MeV 309 eV 1.85 mm 4.68 mm OutOfWorldTransportation + 0 -7.67 mum -12.9 cm 2.01 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 -4.74 mum -12.9 cm 2.01 cm 903 keV 1.29 keV 82.2 mum 82.2 mum World eIoni + 2 5.64 mum -20 cm 2 cm 708 MeV 10.6 keV 7.07 cm 7.08 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 111 nm -13.2 cm 2.02 cm 1.7 keV 0 eV 0 fm 0 fm World initStep - 1 -2.26 mum -13.2 cm 2.02 cm 1.34 MeV 1.7 keV 123 mum 123 mum World eIoni - 2 -9.27 mum -20 cm 2.01 cm 678 MeV 8.02 keV 6.77 cm 6.78 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.13 nm -12.5 cm 1.99 cm 1.41 keV 0 eV 0 fm 0 fm World initStep - 1 -6.28 mum -12.5 cm 1.99 cm 1.02 MeV 1.41 keV 93 mum 93 mum World eIoni - 2 -27.3 mum -20 cm 1.99 cm 747 MeV 11.3 keV 7.46 cm 7.47 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -12.5 cm 1.99 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 1.91 mum -12.5 cm 1.99 cm 645 keV 1.01 keV 58.6 mum 58.6 mum World eIoni - 2 10.4 mum -20 cm 1.99 cm 748 MeV 11.2 keV 7.47 cm 7.48 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -14.3 cm 2.06 cm 1.48 GeV 28.1 keV 14.8 cm 14.8 cm World eIoni - 2 37.4 nm -14.6 cm 2.07 cm 1.51 GeV 103 eV 3.32 mm 15.1 cm World eIoni - 3 1.27 mum -19.1 cm 2.2 cm 1.96 GeV 9.17 keV 4.54 cm 19.6 cm World eIoni - 4 1.35 mum -20 cm 2.22 cm 2.05 GeV 1.42 keV 8.6 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.27 mum -19.1 cm 2.2 cm 3.11 keV 0 eV 0 fm 0 fm World initStep - 1 9.83 mum -19.2 cm 2.2 cm 3.43 MeV 3.11 keV 317 mum 317 mum World eIoni - 2 14.7 mum -19.3 cm 2.2 cm 20.9 MeV 83.1 eV 1.74 mm 2.06 mm World eIoni - 3 18.8 mum -20 cm 2.2 cm 86.2 MeV 1.38 keV 6.54 mm 8.6 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 37.4 nm -14.6 cm 2.07 cm 1.59 keV 0 eV 0 fm 0 fm World initStep - 1 -5.82 mum -14.6 cm 2.07 cm 1.21 MeV 1.59 keV 110 mum 110 mum World eIoni - 2 -23.4 mum -20 cm 2.07 cm 539 MeV 6.66 keV 5.38 cm 5.39 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -14.3 cm 2.06 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -2.49 mum -14.3 cm 2.06 cm 642 keV 1.01 keV 58.3 mum 58.3 mum World eIoni - 2 -13.2 mum -20 cm 2.06 cm 572 MeV 10.7 keV 5.72 cm 5.72 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.84 mm 5.13 mm 78.4 MeV 1.62 keV 6.06 mm 6.06 mm World eIoni - 2 -9.47 mum -20 cm 2.22 cm 2.05 GeV 39.1 keV 19.9 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.84 mm 5.13 mm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 4.57 mum -2.92 mm 5.13 mm 843 keV 1.24 keV 77.4 mum 77.4 mum World eIoni - 2 25.5 mum -20 cm 5.12 mm 1.97 GeV 28.7 keV 19.7 cm 19.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.64 cm 1.61 cm 614 MeV 11.6 keV 6.13 cm 6.13 cm World eIoni - 2 -41.6 nm -7.79 cm 1.76 cm 829 MeV 3.11 keV 2.15 cm 8.28 cm World eIoni - 3 -1.41 mum -9.77 cm 1.87 cm 1.03 GeV 4.95 keV 1.99 cm 10.3 cm World eIoni - 4 -4.27 mum -13 cm 2.01 cm 1.35 GeV 8.16 keV 3.28 cm 13.5 cm World eIoni - 5 -7.97 mum -20 cm 2.22 cm 2.05 GeV 14.7 keV 6.96 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.27 mum -13 cm 2.01 cm 1.45 keV 0 eV 0 fm 0 fm World initStep - 1 -6.81 mum -13.1 cm 2.01 cm 1.06 MeV 1.45 keV 96.6 mum 96.6 mum World eIoni - 2 -15.4 mum -20 cm 2.01 cm 696 MeV 9.95 keV 6.95 cm 6.96 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.41 mum -9.77 cm 1.87 cm 9.81 keV 0 eV 0 fm 0 fm World initStep - 1 25.5 mum -10 cm 1.88 cm 25.3 MeV 8.4 keV 2.39 mm 2.39 mm World eIoni - 2 36.5 mum -13.8 cm 1.88 cm 407 MeV 8.4 keV 3.81 cm 4.05 cm World eIoni - 3 43.1 mum -19.9 cm 1.88 cm 1.02 GeV 13.2 keV 6.11 cm 10.2 cm World eIoni - 4 43.2 mum -20 cm 1.88 cm 1.02 GeV 9.25 eV 669 mum 10.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 43.1 mum -19.9 cm 1.88 cm 23.5 keV 0 eV 0 fm 0 fm World initStep - 1 -20.3 mum -20 cm 1.88 cm 8.03 MeV 381 eV 715 mum 715 mumOutOfWorldTransportation + 0 -2.15 mum -9.81 cm 1.87 cm 52.5 keV 0 eV 0 fm 0 fm World initStep + 1 77.6 mum -10 cm 1.87 cm 22.7 MeV 1.26 keV 2.24 mm 2.24 mm World eIoni + 2 130 mum -15.7 cm 1.86 cm 591 MeV 9.72 keV 5.68 cm 5.91 cm World eIoni + 3 141 mum -20 cm 1.86 cm 1.02 GeV 7.63 keV 4.29 cm 10.2 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 36.5 mum -13.8 cm 1.88 cm 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 31.5 mum -13.8 cm 1.88 cm 696 keV 1.07 keV 63.3 mum 63.3 mum World eIoni - 2 10.5 mum -20 cm 1.88 cm 618 MeV 6.62 keV 6.17 cm 6.18 cm OutOfWorldTransportation + 0 130 mum -15.7 cm 1.86 cm 1.48 keV 0 eV 0 fm 0 fm World initStep + 1 125 mum -15.7 cm 1.86 cm 1.1 MeV 1.48 keV 100 mum 100 mum World eIoni + 2 108 mum -20 cm 1.86 cm 429 MeV 6.73 keV 4.28 cm 4.29 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -41.6 nm -7.79 cm 1.76 cm 4.99 keV 0 eV 0 fm 0 fm World initStep - 1 25.2 mum -7.86 cm 1.76 cm 7.64 MeV 4.99 keV 717 mum 717 mum World eIoni - 2 38.3 mum -8.45 cm 1.77 cm 66.2 MeV 1.06 keV 5.85 mm 6.57 mm World eIoni - 3 54.4 mum -15.6 cm 1.77 cm 777 MeV 14.1 keV 7.1 cm 7.76 cm World eIoni - 4 56 mum -18.5 cm 1.77 cm 1.07 GeV 5.98 keV 2.92 cm 10.7 cm World eIoni - 5 56.1 mum -20 cm 1.77 cm 1.22 GeV 4.1 keV 1.53 cm 12.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 56 mum -18.5 cm 1.77 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 60.5 mum -18.5 cm 1.77 cm 648 keV 1.01 keV 59 mum 59 mum World eIoni - 2 75.5 mum -20 cm 1.77 cm 153 MeV 1.6 keV 1.52 cm 1.53 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 54.4 mum -15.6 cm 1.77 cm 1.8 keV 0 eV 0 fm 0 fm World initStep - 1 57.6 mum -15.6 cm 1.77 cm 1.46 MeV 1.8 keV 133 mum 133 mum World eIoni - 2 65.7 mum -20 cm 1.76 cm 445 MeV 5.25 keV 4.44 cm 4.45 cm OutOfWorldTransportation + 0 -482 nm -6.76 cm 1.7 cm 1.41 keV 0 eV 0 fm 0 fm World initStep + 1 5.39 mum -6.77 cm 1.7 cm 1.03 MeV 1.41 keV 93.3 mum 93.3 mum World eIoni + 2 26.9 mum -20 cm 1.7 cm 1.32 GeV 20.1 keV 13.2 cm 13.2 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.64 cm 1.61 cm 4.66 keV 0 eV 0 fm 0 fm World initStep - 1 534 nm -5.7 cm 1.61 cm 6.84 MeV 4.66 keV 641 mum 641 mum World eIoni - 2 775 nm -6.05 cm 1.61 cm 41.1 MeV 866 eV 3.43 mm 4.07 mm World eIoni - 3 989 nm -7.57 cm 1.61 cm 194 MeV 2.96 keV 1.53 cm 1.93 cm World eIoni - 4 5.49 mum -11 cm 1.61 cm 534 MeV 5.77 keV 3.4 cm 5.34 cm World eIoni - 5 6.13 mum -15 cm 1.61 cm 932 MeV 8.22 keV 3.98 cm 9.32 cm World eIoni - 6 7.85 mum -20 cm 1.61 cm 1.44 GeV 10.4 keV 5.04 cm 14.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.13 mum -15 cm 1.61 cm 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 1.47 mum -15 cm 1.61 cm 814 keV 1.2 keV 74 mum 74 mum World eIoni - 2 -15.7 mum -20 cm 1.61 cm 504 MeV 7.69 keV 5.03 cm 5.04 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.49 mum -11 cm 1.61 cm 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 10.9 mum -11 cm 1.61 cm 812 keV 1.2 keV 73.8 mum 73.8 mum World eIoni - 2 32.9 mum -20 cm 1.6 cm 902 MeV 12 keV 9.02 cm 9.02 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 989 nm -7.57 cm 1.61 cm 1.82 keV 0 eV 0 fm 0 fm World initStep - 1 -8.14 mum -7.59 cm 1.61 cm 1.49 MeV 1.82 keV 136 mum 136 mum World eIoni - 2 -35.9 mum -20 cm 1.61 cm 1.24 GeV 18.7 keV 12.4 cm 12.4 cm OutOfWorldTransportation + 0 0 fm -4.8 cm 1.54 cm 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 2.33 mum -4.8 cm 1.54 cm 703 keV 1.08 keV 64.1 mum 64.1 mum World eIoni + 2 13.4 mum -20 cm 1.53 cm 1.52 GeV 20.9 keV 15.2 cm 15.2 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -471,59 +258,38 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.63 cm 1.07 cm 213 MeV 3.55 keV 2.08 cm 2.08 cm World eIoni - 2 -4.97 mum -20 cm 2.22 cm 2.05 GeV 36.8 keV 18.4 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -2.28 cm 1.21 cm 278 MeV 6.16 keV 2.73 cm 2.73 cm World eIoni + 2 6.2 mum -10.4 cm 1.9 cm 1.09 GeV 13.3 keV 8.11 cm 10.8 cm World eIoni + 3 4.74 mum -20 cm 2.22 cm 2.05 GeV 24.9 keV 9.65 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 6.2 mum -10.4 cm 1.9 cm 5.12 keV 0 eV 0 fm 0 fm World initStep + 1 34.4 mum -10.4 cm 1.9 cm 8.02 MeV 5.12 keV 753 mum 753 mum World eIoni + 2 45.4 mum -10.8 cm 1.9 cm 42.2 MeV 1.1 keV 3.42 mm 4.17 mm World eIoni + 3 66.9 mum -20 cm 1.9 cm 966 MeV 19.8 keV 9.23 cm 9.65 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.63 cm 1.07 cm 2.71 keV 0 eV 0 fm 0 fm World initStep - 1 5.99 mum -1.66 cm 1.07 cm 2.76 MeV 2.71 keV 254 mum 254 mum World eIoni - 2 6.89 mum -1.68 cm 1.07 cm 4.41 MeV 0 eV 165 mum 419 mum World eIoni - 3 19.1 mum -13.5 cm 1.08 cm 1.19 GeV 18.5 keV 11.9 cm 11.9 cm World eIoni - 4 19.1 mum -13.7 cm 1.08 cm 1.21 GeV 526 eV 1.95 mm 12.1 cm World eIoni - 5 19.3 mum -15.7 cm 1.08 cm 1.4 GeV 4.67 keV 1.92 cm 14 cm World eIoni - 6 20.2 mum -20 cm 1.08 cm 1.84 GeV 8.73 keV 4.34 cm 18.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 19.3 mum -15.7 cm 1.08 cm 1.93 keV 0 eV 0 fm 0 fm World initStep - 1 14.3 mum -15.7 cm 1.08 cm 1.62 MeV 1.93 keV 148 mum 148 mum World eIoni - 2 1.94 mum -20 cm 1.08 cm 434 MeV 7.08 keV 4.32 cm 4.34 cm OutOfWorldTransportation + 0 0 fm -2.28 cm 1.21 cm 2.02 keV 0 eV 0 fm 0 fm World initStep + 1 -10.2 mum -2.29 cm 1.21 cm 1.73 MeV 2.02 keV 158 mum 158 mum World eIoni + 2 -38.5 mum -12.5 cm 1.21 cm 1.03 GeV 12.6 keV 10.3 cm 10.3 cm World eIoni + 3 -36.4 mum -20 cm 1.21 cm 1.77 GeV 16 keV 7.45 cm 17.7 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 19.1 mum -13.7 cm 1.08 cm 2.93 keV 0 eV 0 fm 0 fm World initStep - 1 12.3 mum -13.8 cm 1.08 cm 3.13 MeV 2.93 keV 290 mum 290 mum World eIoni - 2 7.2 mum -14 cm 1.08 cm 30.9 MeV 373 eV 2.78 mm 3.07 mm World eIoni - 3 3.58 mum -15.2 cm 1.08 cm 143 MeV 2.13 keV 1.12 cm 1.43 cm World eIoni - 4 2.14 mum -20 cm 1.08 cm 626 MeV 7.96 keV 4.83 cm 6.26 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.58 mum -15.2 cm 1.08 cm 1.05 keV 0 eV 0 fm 0 fm World initStep - 1 1.58 mum -15.2 cm 1.08 cm 683 keV 1.05 keV 62.1 mum 62.1 mum World eIoni - 2 -6.45 mum -20 cm 1.08 cm 483 MeV 7.97 keV 4.82 cm 4.83 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 19.1 mum -13.5 cm 1.08 cm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 24.5 mum -13.6 cm 1.08 cm 767 keV 1.15 keV 69.7 mum 69.7 mum World eIoni - 2 45.6 mum -20 cm 1.08 cm 645 MeV 11 keV 6.45 cm 6.45 cm OutOfWorldTransportation + 0 -38.5 mum -12.5 cm 1.21 cm 9.51 keV 0 eV 0 fm 0 fm World initStep + 1 -82.1 mum -12.7 cm 1.21 cm 13.5 MeV 4.45 keV 1.29 mm 1.29 mm World eIoni + 2 -118 mum -20 cm 1.2 cm 746 MeV 13.3 keV 7.33 cm 7.45 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -531,38 +297,77 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.99 cm 1.83 cm 949 MeV 18.2 keV 9.48 cm 9.48 cm World eIoni - 2 -904 nm -12.8 cm 2 cm 1.33 GeV 8.4 keV 3.85 cm 13.3 cm World eIoni - 3 48 nm -18 cm 2.17 cm 1.85 GeV 10.5 keV 5.12 cm 18.4 cm World eIoni - 4 313 nm -20 cm 2.22 cm 2.05 GeV 3.83 keV 2.05 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -4.69 cm 1.53 cm 519 MeV 9.52 keV 5.17 cm 5.17 cm World eIoni + 2 -1.16 mum -5.97 cm 1.64 cm 647 MeV 2.5 keV 1.29 cm 6.45 cm World eIoni + 3 -6.12 mum -20 cm 2.22 cm 2.05 GeV 29 keV 14 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.16 mum -5.97 cm 1.64 cm 1.41 keV 0 eV 0 fm 0 fm World initStep + 1 -2.8 mum -5.98 cm 1.64 cm 1.02 MeV 1.41 keV 93.5 mum 93.5 mum World eIoni + 2 -9.13 mum -20 cm 1.63 cm 1.4 GeV 20.1 keV 14 cm 14 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.69 cm 1.53 cm 2.67 keV 0 eV 0 fm 0 fm World initStep + 1 5.72 mum -4.69 cm 1.53 cm 349 keV 183 eV 35.1 mum 35.1 mum World eIoni + 2 38.9 mum -8.76 cm 1.53 cm 408 MeV 9.02 keV 4.07 cm 4.08 cm World eIoni + 3 43.2 mum -14 cm 1.53 cm 928 MeV 10.3 keV 5.21 cm 9.28 cm World eIoni + 4 43.7 mum -20 cm 1.53 cm 1.53 GeV 12.1 keV 6.03 cm 15.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 43.2 mum -14 cm 1.53 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 48.6 mum -14 cm 1.53 cm 933 keV 1.32 keV 84.8 mum 84.8 mum World eIoni + 2 67.7 mum -20 cm 1.52 cm 603 MeV 8.33 keV 6.02 cm 6.03 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.17 cm 1.57 cm 567 MeV 9.64 keV 5.65 cm 5.65 cm World eIoni + 2 -2.86 mum -11.8 cm 1.96 cm 1.23 GeV 13.9 keV 6.62 cm 12.3 cm World eIoni + 3 -6.58 mum -17.7 cm 2.16 cm 1.82 GeV 10.2 keV 5.92 cm 18.2 cm World eIoni + 4 -7.35 mum -20 cm 2.22 cm 2.05 GeV 4.12 keV 2.31 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 48 nm -18 cm 2.17 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 732 nm -18 cm 2.17 cm 821 keV 1.21 keV 74.6 mum 74.6 mum World eIoni - 2 2.86 mum -20 cm 2.17 cm 205 MeV 3.6 keV 2.04 cm 2.05 cm OutOfWorldTransportation + 0 -6.58 mum -17.7 cm 2.16 cm 1.04 keV 0 eV 0 fm 0 fm World initStep + 1 -11.1 mum -17.7 cm 2.16 cm 671 keV 1.04 keV 61 mum 61 mum World eIoni + 2 -27.4 mum -20 cm 2.16 cm 231 MeV 3.77 keV 2.3 cm 2.31 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -904 nm -12.8 cm 2 cm 3.6 keV 0 eV 0 fm 0 fm World initStep - 1 -19.1 mum -12.9 cm 2 cm 4.4 MeV 3.6 keV 409 mum 409 mum World eIoni - 2 -29 mum -13.1 cm 2 cm 28.1 MeV 468 eV 2.37 mm 2.78 mm World eIoni - 3 -48.1 mum -20 cm 2.01 cm 717 MeV 13.1 keV 6.89 cm 7.17 cm OutOfWorldTransportation + 0 -2.86 mum -11.8 cm 1.96 cm 3.4 keV 0 eV 0 fm 0 fm World initStep + 1 15.3 mum -11.8 cm 1.96 cm 4.01 MeV 3.4 keV 372 mum 372 mum World eIoni + 2 32.5 mum -12.6 cm 1.96 cm 86.5 MeV 1.86 keV 8.25 mm 8.62 mm World eIoni + 3 45 mum -20 cm 1.96 cm 823 MeV 14.2 keV 7.36 cm 8.22 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.99 cm 1.83 cm 1.47 keV 0 eV 0 fm 0 fm World initStep - 1 4.91 mum -9 cm 1.83 cm 1.08 MeV 1.47 keV 98.6 mum 98.6 mum World eIoni - 2 22.4 mum -20 cm 1.83 cm 1.1 GeV 16.9 keV 11 cm 11 cm OutOfWorldTransportation + 0 0 fm -5.17 cm 1.57 cm 1.38 keV 0 eV 0 fm 0 fm World initStep + 1 6.59 mum -5.18 cm 1.57 cm 993 keV 1.38 keV 90.2 mum 90.2 mum World eIoni + 2 32.2 mum -20 cm 1.57 cm 1.48 GeV 26.1 keV 14.8 cm 14.8 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -570,1292 +375,113 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.69 mm 8.75 mm 147 MeV 2.85 keV 1.38 cm 1.38 cm World eIoni - 2 5.88 mum -15.2 cm 2.09 cm 1.57 GeV 29.7 keV 14.3 cm 15.7 cm World eIoni - 3 6.64 mum -20 cm 2.22 cm 2.05 GeV 10.1 keV 4.8 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.88 mum -15.2 cm 2.09 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 5.27 mum -15.2 cm 2.08 cm 666 keV 1.04 keV 60.7 mum 60.7 mum World eIoni - 2 2.8 mum -20 cm 2.08 cm 480 MeV 7.8 keV 4.79 cm 4.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.69 mm 8.75 mm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 -4.68 mum -9.78 mm 8.76 mm 1.12 MeV 1.49 keV 100 mum 100 mum World eIoni - 2 -22.3 mum -20 cm 8.78 mm 1.9 GeV 29.6 keV 19 cm 19 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -15.2 cm 2.09 cm 1.57 GeV 31 keV 15.7 cm 15.7 cm World eIoni - 2 -354 nm -17.5 cm 2.15 cm 1.8 GeV 6.19 keV 2.3 cm 18 cm World eIoni - 3 -85.7 nm -18.9 cm 2.19 cm 1.94 GeV 3.26 keV 1.43 cm 19.4 cm World eIoni - 4 126 nm -19.8 cm 2.22 cm 2.03 GeV 1.12 keV 9.05 mm 20.3 cm World eIoni - 5 177 nm -20 cm 2.22 cm 2.05 GeV 379 eV 1.83 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 126 nm -19.8 cm 2.22 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -1.32 mum -19.8 cm 2.22 cm 659 keV 1.03 keV 60 mum 60 mum World eIoni - 2 -4.06 mum -20 cm 2.21 cm 18.4 MeV 70.3 eV 1.77 mm 1.83 mm OutOfWorldTransportation + 1 0 fm -1.22 cm 9.6 mm 172 MeV 4.84 keV 1.65 cm 1.65 cm World eIoni + 2 1.79 mum -5.3 cm 1.58 cm 579 MeV 8.86 keV 4.13 cm 5.78 cm World eIoni + 3 -516 nm -7.41 cm 1.74 cm 791 MeV 7.02 keV 2.12 cm 7.9 cm World eIoni + 4 -5.66 mum -20 cm 2.22 cm 2.05 GeV 26.3 keV 12.6 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -85.7 nm -18.9 cm 2.19 cm 1.83 keV 0 eV 0 fm 0 fm World initStep - 1 -2.5 mum -18.9 cm 2.19 cm 1.49 MeV 1.83 keV 136 mum 136 mum World eIoni - 2 -7 mum -20 cm 2.19 cm 109 MeV 1.82 keV 1.07 cm 1.09 cm OutOfWorldTransportation + 0 -516 nm -7.41 cm 1.74 cm 2.88 keV 0 eV 0 fm 0 fm World initStep + 1 -6.16 mum -7.44 cm 1.74 cm 3.04 MeV 2.88 keV 281 mum 281 mum World eIoni + 2 -9.96 mum -7.63 cm 1.74 cm 22.8 MeV 245 eV 1.98 mm 2.26 mm World eIoni + 3 -18 mum -20 cm 1.74 cm 1.26 GeV 19.2 keV 12.4 cm 12.6 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -354 nm -17.5 cm 2.15 cm 3.86 keV 0 eV 0 fm 0 fm World initStep - 1 -21.1 mum -17.5 cm 2.16 cm 4.93 MeV 3.86 keV 460 mum 460 mum World eIoni - 2 -36.7 mum -18.2 cm 2.16 cm 69.7 MeV 1.04 keV 6.47 mm 6.93 mm World eIoni - 3 -44.5 mum -20 cm 2.16 cm 252 MeV 2.4 keV 1.82 cm 2.52 cm OutOfWorldTransportation + 0 1.79 mum -5.3 cm 1.58 cm 13.8 keV 0 eV 0 fm 0 fm World initStep + 1 14.5 mum -5.3 cm 1.58 cm 668 keV 81.7 eV 69.2 mum 69.2 mum World eIoni + 2 30.2 mum -5.36 cm 1.59 cm 6.02 MeV 25.2 eV 535 mum 604 mum World eIoni + 3 67.9 mum -9.57 cm 1.59 cm 428 MeV 7.79 keV 4.22 cm 4.28 cm World eIoni + 4 83.4 mum -20 cm 1.59 cm 1.47 GeV 19.4 keV 10.4 cm 14.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 67.9 mum -9.57 cm 1.59 cm 1.73 keV 0 eV 0 fm 0 fm World initStep + 1 60.3 mum -9.59 cm 1.59 cm 1.38 MeV 1.73 keV 126 mum 126 mum World eIoni + 2 36.4 mum -20 cm 1.59 cm 1.04 GeV 15.8 keV 10.4 cm 10.4 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -15.2 cm 2.09 cm 1.29 keV 0 eV 0 fm 0 fm World initStep - 1 4.43 mum -15.2 cm 2.09 cm 902 keV 1.29 keV 82 mum 82 mum World eIoni - 2 19.7 mum -20 cm 2.09 cm 482 MeV 8.96 keV 4.81 cm 4.82 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 40.2 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.98 cm 1.32 cm 348 MeV 6.73 keV 3.45 cm 3.45 cm World eIoni - 2 14.6 mum -11.4 cm 1.95 cm 1.19 GeV 17.7 keV 8.46 cm 11.9 cm World eIoni - 3 22.6 mum -20 cm 2.23 cm 2.05 GeV 18.1 keV 8.59 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 14.6 mum -11.4 cm 1.95 cm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 9.02 mum -11.4 cm 1.95 cm 1.1 MeV 1.49 keV 101 mum 101 mum World eIoni - 2 -9.58 mum -20 cm 1.95 cm 859 MeV 12.9 keV 8.58 cm 8.59 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.98 cm 1.32 cm 117 keV 0 eV 0 fm 0 fm World initStep - 1 -63.3 mum -3.35 cm 1.31 cm 37.9 MeV 1.47 keV 3.76 mm 3.76 mm World eIoni - 2 -108 mum -20 cm 1.3 cm 1.7 GeV 30.8 keV 16.6 cm 17 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.62 cm 1.27 cm 312 MeV 7.39 keV 3.08 cm 3.08 cm World eIoni - 2 -568 nm -3.27 cm 1.36 cm 377 MeV 897 eV 6.62 mm 3.74 cm World eIoni - 3 -3.63 mum -7.85 cm 1.77 cm 835 MeV 10.7 keV 4.6 cm 8.34 cm World eIoni - 4 -2.78 mum -10.7 cm 1.91 cm 1.12 GeV 8 keV 2.84 cm 11.2 cm World eIoni - 5 -3.36 mum -12.9 cm 2 cm 1.34 GeV 7.43 keV 2.19 cm 13.4 cm World eIoni - 6 -3.53 mum -13.1 cm 2.01 cm 1.36 GeV 906 eV 2.7 mm 13.6 cm World eIoni - 7 -8.93 mum -20 cm 2.22 cm 2.05 GeV 14.4 keV 6.85 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.53 mum -13.1 cm 2.01 cm 2.58 keV 0 eV 0 fm 0 fm World initStep - 1 8.23 mum -13.2 cm 2.01 cm 2.54 MeV 2.58 keV 234 mum 234 mum World eIoni - 2 16.2 mum -13.3 cm 2.01 cm 17.2 MeV 170 eV 1.47 mm 1.7 mm World eIoni - 3 32 mum -20 cm 2.01 cm 685 MeV 12.8 keV 6.68 cm 6.85 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.36 mum -12.9 cm 2 cm 3.05 keV 0 eV 0 fm 0 fm World initStep - 1 12.8 mum -12.9 cm 2 cm 3.33 MeV 3.05 keV 309 mum 309 mum World eIoni - 2 20.2 mum -13 cm 2 cm 13.9 MeV 171 eV 1.06 mm 1.37 mm World eIoni - 3 41.8 mum -20 cm 2 cm 712 MeV 12 keV 6.98 cm 7.12 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.78 mum -10.7 cm 1.91 cm 13.7 keV 0 eV 0 fm 0 fm World initStep - 1 32.7 mum -10.9 cm 1.91 cm 21 MeV 2.55 keV 2.02 mm 2.02 mm World eIoni - 2 56.1 mum -20 cm 1.9 cm 932 MeV 17.1 keV 9.11 cm 9.31 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.63 mum -7.85 cm 1.77 cm 4.45 keV 0 eV 0 fm 0 fm World initStep - 1 -28.8 mum -7.91 cm 1.77 cm 6.32 MeV 4.45 keV 592 mum 592 mum World eIoni - 2 -30.1 mum -7.92 cm 1.77 cm 7.72 MeV 0 eV 140 mum 732 mum World eIoni - 3 -58.5 mum -12.7 cm 1.77 cm 482 MeV 6.05 keV 4.75 cm 4.82 cm World eIoni - 4 -63.6 mum -20 cm 1.77 cm 1.22 GeV 14.5 keV 7.33 cm 12.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -58.5 mum -12.7 cm 1.77 cm 4.6 keV 0 eV 0 fm 0 fm World initStep - 1 -63 mum -12.7 cm 1.77 cm 6.69 MeV 4.6 keV 627 mum 627 mum World eIoni - 2 -65.6 mum -13.3 cm 1.77 cm 65.3 MeV 768 eV 5.86 mm 6.49 mm World eIoni - 3 -68.4 mum -20 cm 1.77 cm 734 MeV 14.3 keV 6.68 cm 7.33 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -568 nm -3.27 cm 1.36 cm 1.82 keV 0 eV 0 fm 0 fm World initStep - 1 1.33 mum -3.28 cm 1.36 cm 1.49 MeV 1.82 keV 135 mum 135 mum World eIoni - 2 7.41 mum -20 cm 1.37 cm 1.67 GeV 25.2 keV 16.7 cm 16.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.62 cm 1.27 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 4.89 mum -2.62 cm 1.27 cm 830 keV 1.21 keV 75.2 mum 75.2 mum World eIoni - 2 26.5 mum -20 cm 1.27 cm 1.74 GeV 27.1 keV 17.4 cm 17.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.95 cm 1.32 cm 345 MeV 8.01 keV 3.42 cm 3.42 cm World eIoni - 2 -1.69 mum -13.8 cm 2.04 cm 1.43 GeV 23 keV 10.9 cm 14.3 cm World eIoni - 3 -2.16 mum -20 cm 2.22 cm 2.05 GeV 12.8 keV 6.16 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.69 mum -13.8 cm 2.04 cm 1.34 keV 0 eV 0 fm 0 fm World initStep - 1 -1.42 mum -13.9 cm 2.04 cm 949 keV 1.34 keV 86.5 mum 86.5 mum World eIoni - 2 -469 nm -20 cm 2.04 cm 615 MeV 9.33 keV 6.14 cm 6.15 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.95 cm 1.32 cm 1.53 keV 0 eV 0 fm 0 fm World initStep - 1 2.27 mum -2.96 cm 1.32 cm 1.15 MeV 1.53 keV 105 mum 105 mum World eIoni - 2 10.6 mum -20 cm 1.32 cm 1.7 GeV 24.7 keV 17 cm 17 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -17.5 cm 2.16 cm 1.8 GeV 34.3 keV 18 cm 18 cm World eIoni - 2 504 nm -20 cm 2.22 cm 2.05 GeV 3.88 keV 2.47 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -17.5 cm 2.16 cm 2.48 keV 0 eV 0 fm 0 fm World initStep - 1 -10 mum -17.6 cm 2.16 cm 2.37 MeV 2.48 keV 218 mum 218 mum World eIoni - 2 -21.5 mum -18 cm 2.15 cm 51.8 MeV 548 eV 4.95 mm 5.16 mm World eIoni - 3 -23.7 mum -18.4 cm 2.15 cm 91.8 MeV 216 eV 4 mm 9.16 mm World eIoni - 4 -22.4 mum -20 cm 2.15 cm 247 MeV 3.68 keV 1.55 cm 2.47 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -23.7 mum -18.4 cm 2.15 cm 2.76 keV 0 eV 0 fm 0 fm World initStep - 1 -38.2 mum -18.5 cm 2.15 cm 2.83 MeV 2.76 keV 262 mum 262 mum World eIoni - 2 -52.7 mum -19 cm 2.15 cm 50.7 MeV 453 eV 4.78 mm 5.05 mm World eIoni - 3 -58.6 mum -20 cm 2.15 cm 155 MeV 2.21 keV 1.05 cm 1.55 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.51 mm 3.81 mm 65.1 MeV 218 eV 4.18 mm 4.18 mm World eIoni - 2 -10.3 mum -4.13 cm 1.47 cm 463 MeV 7.05 keV 4.19 cm 4.61 cm World eIoni - 3 -14.9 mum -20 cm 2.22 cm 2.05 GeV 32 keV 15.9 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -10.3 mum -4.13 cm 1.47 cm 2.63 keV 0 eV 0 fm 0 fm World initStep - 1 -14.9 mum -4.15 cm 1.47 cm 2.62 MeV 2.63 keV 242 mum 242 mum World eIoni - 2 -19.6 mum -4.62 cm 1.47 cm 49.5 MeV 423 eV 4.69 mm 4.93 mm World eIoni - 3 -25.3 mum -16.7 cm 1.47 cm 1.25 GeV 23.1 keV 12 cm 12.5 cm World eIoni - 4 -24.4 mum -20 cm 1.47 cm 1.59 GeV 7.18 keV 3.34 cm 15.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -25.3 mum -16.7 cm 1.47 cm 22.6 keV 0 eV 0 fm 0 fm World initStep - 1 -68.3 mum -17 cm 1.46 cm 33.5 MeV 3.41 keV 3.23 mm 3.23 mm World eIoni - 2 -81.1 mum -19.3 cm 1.46 cm 265 MeV 3.88 keV 2.32 cm 2.64 cm World eIoni - 3 -81.8 mum -20 cm 1.46 cm 335 MeV 1.89 keV 7.02 mm 3.34 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -81.1 mum -19.3 cm 1.46 cm 1.31 keV 0 eV 0 fm 0 fm World initStep - 1 -86.4 mum -19.3 cm 1.46 cm 921 keV 1.31 keV 83.7 mum 83.7 mum World eIoni - 2 -98.8 mum -20 cm 1.46 cm 70.3 MeV 525 eV 6.94 mm 7.02 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.51 mm 3.81 mm 2.36 keV 0 eV 0 fm 0 fm World initStep - 1 11.8 mum -1.71 mm 3.81 mm 2.21 MeV 2.36 keV 203 mum 203 mum World eIoni - 2 29.9 mum -1.23 cm 3.81 mm 108 MeV 1.93 keV 1.06 cm 1.08 cm World eIoni - 3 40.7 mum -9.98 cm 3.81 mm 983 MeV 17.3 keV 8.75 cm 9.83 cm World eIoni - 4 42.6 mum -12.4 cm 3.81 mm 1.22 GeV 4.17 keV 2.38 cm 12.2 cm World eIoni - 5 45.9 mum -20 cm 3.81 mm 1.99 GeV 15.5 keV 7.64 cm 19.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 42.6 mum -12.4 cm 3.81 mm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 44.2 mum -12.4 cm 3.8 mm 645 keV 1.01 keV 58.7 mum 58.7 mum World eIoni - 2 51.3 mum -20 cm 3.78 mm 764 MeV 11.9 keV 7.63 cm 7.64 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 40.7 mum -9.98 cm 3.81 mm 1.95 keV 0 eV 0 fm 0 fm World initStep - 1 32.2 mum -10 cm 3.8 mm 1.64 MeV 1.95 keV 150 mum 150 mum World eIoni - 2 8.71 mum -20 cm 3.79 mm 1 GeV 15 keV 10 cm 10 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -13.4 cm 2.03 cm 1.39 GeV 27.7 keV 13.9 cm 13.9 cm World eIoni - 2 2.02 mum -20 cm 2.22 cm 2.05 GeV 13.8 keV 6.58 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -13.4 cm 2.03 cm 2.68 keV 0 eV 0 fm 0 fm World initStep - 1 -14.1 mum -13.4 cm 2.03 cm 2.7 MeV 2.68 keV 249 mum 249 mum World eIoni - 2 -31.3 mum -14.3 cm 2.03 cm 84 MeV 2.29 keV 8.13 mm 8.38 mm World eIoni - 3 -42.2 mum -20 cm 2.03 cm 658 MeV 12 keV 5.74 cm 6.58 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.04 cm 1.56 cm 554 MeV 10.9 keV 5.52 cm 5.52 cm World eIoni - 2 1.01 mum -10.2 cm 1.89 cm 1.07 GeV 11.5 keV 5.2 cm 10.7 cm World eIoni - 3 1.41 mum -11.2 cm 1.94 cm 1.17 GeV 1.93 keV 9.51 mm 11.7 cm World eIoni - 4 -2.67 mum -20 cm 2.22 cm 2.05 GeV 18.9 keV 8.83 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.41 mum -11.2 cm 1.94 cm 19.4 keV 0 eV 0 fm 0 fm World initStep - 1 31.2 mum -11.2 cm 1.94 cm 2.68 MeV 492 eV 268 mum 268 mum World eIoni - 2 68.7 mum -11.9 cm 1.94 cm 69.6 MeV 1.24 keV 6.7 mm 6.96 mm World eIoni - 3 94 mum -20 cm 1.94 cm 882 MeV 16.3 keV 8.13 cm 8.82 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 68.7 mum -11.9 cm 1.94 cm 1.43 keV 0 eV 0 fm 0 fm World initStep - 1 72.1 mum -11.9 cm 1.94 cm 1.04 MeV 1.43 keV 94.7 mum 94.7 mum World eIoni - 2 83.5 mum -20 cm 1.94 cm 813 MeV 12 keV 8.12 cm 8.13 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.01 mum -10.2 cm 1.89 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 -4.09 mum -10.2 cm 1.89 cm 718 keV 1.09 keV 65.2 mum 65.2 mum World eIoni - 2 -26.2 mum -20 cm 1.89 cm 977 MeV 15.4 keV 9.76 cm 9.77 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.04 cm 1.56 cm 3.39 keV 0 eV 0 fm 0 fm World initStep - 1 -4.77 mum -5.07 cm 1.56 cm 3.98 MeV 3.39 keV 369 mum 369 mum World eIoni - 2 -5.82 mum -5.12 cm 1.56 cm 8.46 MeV 232 eV 448 mum 817 mum World eIoni - 3 -10.3 mum -6.45 cm 1.56 cm 142 MeV 2.09 keV 1.34 cm 1.42 cm World eIoni - 4 -9.05 mum -8.1 cm 1.56 cm 307 MeV 2.35 keV 1.65 cm 3.07 cm World eIoni - 5 -7.48 mum -16.7 cm 1.56 cm 1.17 GeV 18.1 keV 8.59 cm 11.7 cm World eIoni - 6 -7.61 mum -18 cm 1.56 cm 1.3 GeV 3.38 keV 1.33 cm 13 cm World eIoni - 7 -7.56 mum -20 cm 1.56 cm 1.5 GeV 4.15 keV 1.97 cm 15 cm OutOfWorldTransportation + 0 0 fm -1.22 cm 9.6 mm 2.72 keV 0 eV 0 fm 0 fm World initStep + 1 -3.9 mum -1.25 cm 9.59 mm 2.77 MeV 2.72 keV 256 mum 256 mum World eIoni + 2 -5.6 mum -1.32 cm 9.58 mm 9.97 MeV 18.4 eV 721 mum 977 mum World eIoni + 3 -9.77 mum -2.78 cm 9.57 mm 156 MeV 3.52 keV 1.47 cm 1.56 cm World eIoni + 4 -14.9 mum -6.65 cm 9.56 mm 543 MeV 8.19 keV 3.86 cm 5.43 cm World eIoni + 5 -20.9 mum -12.1 cm 9.55 mm 1.09 GeV 12.5 keV 5.49 cm 10.9 cm World eIoni + 6 -22.3 mum -17.5 cm 9.55 mm 1.62 GeV 10.7 keV 5.33 cm 16.2 cm World eIoni + 7 -23.2 mum -20 cm 9.54 mm 1.88 GeV 4.75 keV 2.53 cm 18.8 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.61 mum -18 cm 1.56 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -10.1 mum -18 cm 1.56 cm 648 keV 1.01 keV 59 mum 59 mum World eIoni - 2 -18.7 mum -20 cm 1.56 cm 197 MeV 1.84 keV 1.97 cm 1.97 cm OutOfWorldTransportation + 0 -22.3 mum -17.5 cm 9.55 mm 1.96 keV 0 eV 0 fm 0 fm World initStep + 1 -15.7 mum -17.5 cm 9.54 mm 1.65 MeV 1.96 keV 151 mum 151 mum World eIoni + 2 -1.49 mum -20 cm 9.52 mm 254 MeV 5.03 keV 2.52 cm 2.53 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.48 mum -16.7 cm 1.56 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -3.94 mum -16.7 cm 1.56 cm 664 keV 1.03 keV 60.4 mum 60.4 mum World eIoni - 2 9.64 mum -20 cm 1.56 cm 330 MeV 4.54 keV 3.3 cm 3.3 cm OutOfWorldTransportation + 0 -20.9 mum -12.1 cm 9.55 mm 2.75 keV 0 eV 0 fm 0 fm World initStep + 1 -34.9 mum -12.2 cm 9.55 mm 2.59 MeV 2.75 keV 239 mum 239 mum World eIoni + 2 -58.2 mum -14.3 cm 9.55 mm 220 MeV 2.68 keV 2.17 cm 2.2 cm World eIoni + 3 -64.9 mum -20 cm 9.55 mm 787 MeV 10.9 keV 5.67 cm 7.87 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -9.05 mum -8.1 cm 1.56 cm 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 -8.3 mum -8.11 cm 1.56 cm 700 keV 1.07 keV 63.7 mum 63.7 mum World eIoni - 2 -4.98 mum -20 cm 1.56 cm 1.19 GeV 18.7 keV 11.9 cm 11.9 cm OutOfWorldTransportation + 0 -14.9 mum -6.65 cm 9.56 mm 2.04 keV 0 eV 0 fm 0 fm World initStep + 1 -4.62 mum -6.66 cm 9.56 mm 1.76 MeV 2.04 keV 161 mum 161 mum World eIoni + 2 16.1 mum -8.56 cm 9.56 mm 192 MeV 2.35 keV 1.9 cm 1.92 cm World eIoni + 3 20.4 mum -11.6 cm 9.56 mm 497 MeV 6.34 keV 3.05 cm 4.97 cm World eIoni + 4 22.1 mum -20 cm 9.56 mm 1.34 GeV 21.7 keV 8.39 cm 13.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 20.4 mum -11.6 cm 9.56 mm 2.01 keV 0 eV 0 fm 0 fm World initStep + 1 26.9 mum -11.6 cm 9.55 mm 1.72 MeV 2.01 keV 157 mum 157 mum World eIoni + 2 44.3 mum -20 cm 9.53 mm 839 MeV 11.1 keV 8.37 cm 8.39 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -10.3 mum -6.45 cm 1.56 cm 1 keV 0 eV 0 fm 0 fm World initStep - 1 -15 mum -6.46 cm 1.56 cm 637 keV 1 keV 57.9 mum 57.9 mum World eIoni - 2 -38.1 mum -20 cm 1.56 cm 1.35 GeV 19.6 keV 13.5 cm 13.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 41.2 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.23 cm 1.73 cm 773 MeV 14.3 keV 7.72 cm 7.72 cm World eIoni - 2 -1.09 mum -10.4 cm 1.9 cm 1.09 GeV 7.62 keV 3.2 cm 10.9 cm World eIoni - 3 -563 nm -12.3 cm 1.98 cm 1.28 GeV 5.53 keV 1.89 cm 12.8 cm World eIoni - 4 2.91 mum -20 cm 2.22 cm 2.05 GeV 16 keV 7.68 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -563 nm -12.3 cm 1.98 cm 2.05 keV 0 eV 0 fm 0 fm World initStep - 1 -9.88 mum -12.3 cm 1.98 cm 1.77 MeV 2.05 keV 163 mum 163 mum World eIoni - 2 -33.7 mum -20 cm 1.98 cm 768 MeV 10.8 keV 7.66 cm 7.68 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.09 mum -10.4 cm 1.9 cm 4.47 keV 0 eV 0 fm 0 fm World initStep - 1 -25.3 mum -10.5 cm 1.9 cm 6.38 MeV 4.47 keV 597 mum 597 mum World eIoni - 2 -40.5 mum -11.1 cm 1.9 cm 71.7 MeV 625 eV 6.54 mm 7.13 mm World eIoni - 3 -57.5 mum -20 cm 1.9 cm 957 MeV 18 keV 8.86 cm 9.57 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.23 cm 1.73 cm 2.37 keV 0 eV 0 fm 0 fm World initStep - 1 7.82 mum -7.25 cm 1.73 cm 2.22 MeV 2.37 keV 204 mum 204 mum World eIoni - 2 16.7 mum -7.69 cm 1.73 cm 45.3 MeV 203 eV 4.31 mm 4.51 mm World eIoni - 3 27.7 mum -20 cm 1.72 cm 1.28 GeV 22.3 keV 12.3 cm 12.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.23 cm 1.2 cm 273 MeV 4.55 keV 2.68 cm 2.68 cm World eIoni - 2 -7.34 mum -9.65 cm 1.86 cm 1.01 GeV 15.3 keV 7.45 cm 10.1 cm World eIoni - 3 -7.6 mum -10.3 cm 1.9 cm 1.08 GeV 2.44 keV 6.92 mm 10.8 cm World eIoni - 4 -10.3 mum -20 cm 2.22 cm 2.05 GeV 20.3 keV 9.67 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.6 mum -10.3 cm 1.9 cm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 -7.1 mum -10.3 cm 1.9 cm 767 keV 1.15 keV 69.6 mum 69.6 mum World eIoni - 2 -5.03 mum -20 cm 1.9 cm 966 MeV 15.4 keV 9.66 cm 9.66 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.34 mum -9.65 cm 1.86 cm 9.97 keV 0 eV 0 fm 0 fm World initStep - 1 -12.4 mum -9.69 cm 1.86 cm 4.4 MeV 1.26 keV 427 mum 427 mum World eIoni - 2 -20.7 mum -16.2 cm 1.85 cm 652 MeV 9.39 keV 6.48 cm 6.52 cm World eIoni - 3 -20.7 mum -16.3 cm 1.85 cm 663 MeV 152 eV 1.1 mm 6.63 cm World eIoni - 4 -24.6 mum -20 cm 1.85 cm 1.04 GeV 7.5 keV 3.73 cm 10.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -20.7 mum -16.3 cm 1.85 cm 5.03 keV 0 eV 0 fm 0 fm World initStep - 1 3.44 mum -16.3 cm 1.85 cm 7.74 MeV 5.03 keV 726 mum 726 mum World eIoni - 2 11.1 mum -16.6 cm 1.85 cm 29.5 MeV 453 eV 2.18 mm 2.9 mm World eIoni - 3 27 mum -20 cm 1.85 cm 373 MeV 6.84 keV 3.44 cm 3.73 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -20.7 mum -16.2 cm 1.85 cm 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 -19.1 mum -16.2 cm 1.85 cm 695 keV 1.07 keV 63.2 mum 63.2 mum World eIoni - 2 -13 mum -20 cm 1.86 cm 384 MeV 4.51 keV 3.83 cm 3.84 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.23 cm 1.2 cm 64.9 keV 0 eV 0 fm 0 fm World initStep - 1 39.7 mum -2.76 cm 1.22 cm 55.5 MeV 2.52 keV 5.47 mm 5.47 mm World eIoni - 2 59 mum -20 cm 1.23 cm 1.78 GeV 33.7 keV 17.2 cm 17.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.21 cm 1.2 cm 271 MeV 4.81 keV 2.67 cm 2.67 cm World eIoni - 2 -6.22 mum -19.4 cm 2.21 cm 1.99 GeV 37.8 keV 17.2 cm 19.9 cm World eIoni - 3 -6.23 mum -20 cm 2.22 cm 2.05 GeV 719 eV 5.92 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -6.22 mum -19.4 cm 2.21 cm 2.97 keV 0 eV 0 fm 0 fm World initStep - 1 -14.8 mum -19.4 cm 2.21 cm 3.2 MeV 2.97 keV 296 mum 296 mum World eIoni - 2 -21.3 mum -19.7 cm 2.21 cm 31.8 MeV 1.97 keV 2.86 mm 3.16 mm World eIoni - 3 -23.1 mum -20 cm 2.21 cm 59.4 MeV 250 eV 2.76 mm 5.92 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.21 cm 1.2 cm 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 5.14 mum -2.22 cm 1.2 cm 821 keV 1.2 keV 74.3 mum 74.3 mum World eIoni - 2 28 mum -20 cm 1.2 cm 1.78 GeV 24.7 keV 17.8 cm 17.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.25 cm 1.58 cm 575 MeV 10.6 keV 5.73 cm 5.73 cm World eIoni - 2 -2.68 mum -13.9 cm 2.04 cm 1.44 GeV 17.9 keV 8.62 cm 14.4 cm World eIoni - 3 -1.57 mum -20 cm 2.22 cm 2.05 GeV 13 keV 6.15 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.68 mum -13.9 cm 2.04 cm 3.58 keV 0 eV 0 fm 0 fm World initStep - 1 -21.1 mum -13.9 cm 2.04 cm 3.78 MeV 2.32 keV 353 mum 353 mum World eIoni - 2 -51.2 mum -20 cm 2.04 cm 615 MeV 11 keV 6.11 cm 6.15 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.25 cm 1.58 cm 1.61 keV 0 eV 0 fm 0 fm World initStep - 1 5.76 mum -5.26 cm 1.58 cm 1.24 MeV 1.61 keV 112 mum 112 mum World eIoni - 2 25.9 mum -20 cm 1.58 cm 1.48 GeV 22 keV 14.7 cm 14.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.92 cm 1.14 cm 242 MeV 5 keV 2.38 cm 2.38 cm World eIoni - 2 -4.73 mum -20 cm 2.22 cm 2.05 GeV 36.9 keV 18.1 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.92 cm 1.14 cm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 4.32 mum -1.93 cm 1.14 cm 1.2 MeV 1.58 keV 109 mum 109 mum World eIoni - 2 20 mum -20 cm 1.14 cm 1.81 GeV 25 keV 18.1 cm 18.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -16.5 cm 2.13 cm 1.7 GeV 32.5 keV 17 cm 17 cm World eIoni - 2 149 nm -18.1 cm 2.17 cm 1.86 GeV 2.66 keV 1.58 cm 18.6 cm World eIoni - 3 658 nm -20 cm 2.22 cm 2.05 GeV 3.82 keV 1.87 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 149 nm -18.1 cm 2.17 cm 3.58 keV 0 eV 0 fm 0 fm World initStep - 1 -11.7 mum -18.2 cm 2.17 cm 4.36 MeV 3.58 keV 406 mum 406 mum World eIoni - 2 -24.6 mum -19.7 cm 2.18 cm 158 MeV 2.61 keV 1.53 cm 1.57 cm World eIoni - 3 -25 mum -20 cm 2.18 cm 188 MeV 242 eV 2.98 mm 1.87 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -24.6 mum -19.7 cm 2.18 cm 1.33 keV 0 eV 0 fm 0 fm World initStep - 1 -18.7 mum -19.7 cm 2.18 cm 945 keV 1.33 keV 85.9 mum 85.9 mum World eIoni - 2 -8.27 mum -20 cm 2.18 cm 29.9 MeV 271 eV 2.9 mm 2.98 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -16.5 cm 2.13 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 -2.74 mum -16.6 cm 2.13 cm 819 keV 1.21 keV 74.6 mum 74.6 mum World eIoni - 2 -12.2 mum -20 cm 2.13 cm 346 MeV 3.55 keV 3.45 cm 3.46 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.82 cm 1.63 cm 632 MeV 12.3 keV 6.3 cm 6.3 cm World eIoni - 2 1.8 mum -16.7 cm 2.13 cm 1.72 GeV 24.3 keV 10.9 cm 17.2 cm World eIoni - 3 3.25 mum -20 cm 2.22 cm 2.05 GeV 6.35 keV 3.31 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.8 mum -16.7 cm 2.13 cm 5.74 keV 0 eV 0 fm 0 fm World initStep - 1 -27 mum -16.8 cm 2.13 cm 9.84 MeV 5.74 keV 926 mum 926 mum World eIoni - 2 -35.4 mum -17.1 cm 2.13 cm 37.8 MeV 133 eV 2.8 mm 3.73 mm World eIoni - 3 -49.6 mum -20 cm 2.13 cm 331 MeV 5.88 keV 2.94 cm 3.31 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.82 cm 1.63 cm 1.46 keV 0 eV 0 fm 0 fm World initStep - 1 -3.31 mum -5.83 cm 1.62 cm 1.07 MeV 1.46 keV 98 mum 98 mum World eIoni - 2 -15.8 mum -20 cm 1.62 cm 1.42 GeV 19.7 keV 14.2 cm 14.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -13.9 cm 2.04 cm 1.44 GeV 27.1 keV 14.4 cm 14.4 cm World eIoni - 2 1.43 mum -20 cm 2.22 cm 2.05 GeV 12.3 keV 6.1 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -13.9 cm 2.04 cm 1.7 keV 0 eV 0 fm 0 fm World initStep - 1 -8.25 mum -13.9 cm 2.04 cm 1.34 MeV 1.7 keV 122 mum 122 mum World eIoni - 2 -32.1 mum -20 cm 2.04 cm 609 MeV 6.58 keV 6.08 cm 6.09 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.69 mm 8.38 mm 137 MeV 2.94 keV 1.28 cm 1.28 cm World eIoni - 2 12.5 mum -20 cm 2.22 cm 2.05 GeV 39.5 keV 19.2 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.69 mm 8.38 mm 2.05 keV 0 eV 0 fm 0 fm World initStep - 1 -10.4 mum -8.85 mm 8.38 mm 1.77 MeV 2.05 keV 162 mum 162 mum World eIoni - 2 -35.8 mum -5.94 cm 8.38 mm 507 MeV 9.76 keV 5.05 cm 5.07 cm World eIoni - 3 -41.9 mum -20 cm 8.38 mm 1.91 GeV 30.7 keV 14.1 cm 19.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 41.4 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -17 mum 415 mum 50.2 MeV 83.1 eV 415 mum 415 mum World eIoni - 2 -13.2 mum -16.2 cm 2.12 cm 1.67 GeV 31.2 keV 16.6 cm 16.7 cm World eIoni - 3 -14.2 mum -19.9 cm 2.22 cm 2.04 GeV 9.31 keV 3.68 cm 20.4 cm World eIoni - 4 -14.3 mum -20 cm 2.22 cm 2.05 GeV 188 eV 1.46 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -14.2 mum -19.9 cm 2.22 cm 9.55 keV 0 eV 0 fm 0 fm World initStep - 1 91.9 mum -20 cm 2.21 cm 20.1 MeV 3.03 keV 1.57 mm 1.57 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -13.2 mum -16.2 cm 2.12 cm 1.77 keV 0 eV 0 fm 0 fm World initStep - 1 -9.84 mum -16.2 cm 2.12 cm 1.42 MeV 1.77 keV 130 mum 130 mum World eIoni - 2 -1.19 mum -20 cm 2.12 cm 382 MeV 7 keV 3.81 cm 3.82 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -17 mum 415 mum 1.29 keV 0 eV 0 fm 0 fm World initStep - 1 5.37 mum -98.3 mum 415 mum 895 keV 1.29 keV 82.3 mum 82.3 mum World eIoni - 2 29.3 mum -20 cm 414 mum 2 GeV 27 keV 20 cm 20 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 40.4 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -768 mum 2.75 mm 57.7 MeV 290 eV 2.89 mm 2.89 mm World eIoni - 2 -1.02 mum -4.48 cm 1.5 cm 498 MeV 8.23 keV 4.67 cm 4.96 cm World eIoni - 3 -2.49 mum -6.22 cm 1.66 cm 671 MeV 3.13 keV 1.74 cm 6.7 cm World eIoni - 4 -7.97 mum -17.9 cm 2.16 cm 1.84 GeV 24 keV 11.7 cm 18.4 cm World eIoni - 5 -8.16 mum -19 cm 2.19 cm 1.95 GeV 2.48 keV 1.06 cm 19.5 cm World eIoni - 6 -8.79 mum -20 cm 2.22 cm 2.05 GeV 1.53 keV 1.01 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.16 mum -19 cm 2.19 cm 16.5 keV 0 eV 0 fm 0 fm World initStep - 1 74 mum -19.4 cm 2.18 cm 46.5 MeV 8.24 keV 4.44 mm 4.44 mm World eIoni - 2 80.6 mum -20 cm 2.18 cm 104 MeV 418 eV 5.74 mm 1.02 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.97 mum -17.9 cm 2.16 cm 1.05 keV 0 eV 0 fm 0 fm World initStep - 1 -11.1 mum -17.9 cm 2.16 cm 675 keV 1.05 keV 61.5 mum 61.5 mum World eIoni - 2 -21.8 mum -20 cm 2.16 cm 207 MeV 2.66 keV 2.06 cm 2.07 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.49 mum -6.22 cm 1.66 cm 1.29 keV 0 eV 0 fm 0 fm World initStep - 1 -1.64 mum -6.22 cm 1.65 cm 895 keV 1.29 keV 81.6 mum 81.6 mum World eIoni - 2 1.9 mum -20 cm 1.65 cm 1.38 GeV 19.6 keV 13.8 cm 13.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.02 mum -4.48 cm 1.5 cm 13.3 keV 0 eV 0 fm 0 fm World initStep - 1 25 mum -4.68 cm 1.51 cm 20.5 MeV 2.49 keV 1.96 mm 1.96 mm World eIoni - 2 44.5 mum -19.8 cm 1.52 cm 1.54 GeV 28.1 keV 15.2 cm 15.4 cm World eIoni - 3 44.5 mum -20 cm 1.52 cm 1.55 GeV 292 eV 1.53 mm 15.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 44.5 mum -19.8 cm 1.52 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 48.9 mum -19.9 cm 1.52 cm 727 keV 1.1 keV 66.1 mum 66.1 mum World eIoni - 2 56.2 mum -20 cm 1.51 cm 15.4 MeV 113 eV 1.47 mm 1.54 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -768 mum 2.75 mm 1.78 keV 0 eV 0 fm 0 fm World initStep - 1 987 nm -895 mum 2.76 mm 1.58 MeV 1.78 keV 131 mum 131 mum World eIoni - 2 3.89 mum -20 cm 2.77 mm 1.99 GeV 29.1 keV 19.9 cm 19.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.96 cm 1.32 cm 346 MeV 7.75 keV 3.42 cm 3.42 cm World eIoni - 2 990 nm -4.88 cm 1.54 cm 538 MeV 2.66 keV 1.94 cm 5.36 cm World eIoni - 3 8.05 mum -20 cm 2.22 cm 2.05 GeV 31.9 keV 15.1 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 990 nm -4.88 cm 1.54 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 -3.57 mum -4.88 cm 1.54 cm 666 keV 1.04 keV 60.7 mum 60.7 mum World eIoni - 2 -25.9 mum -20 cm 1.54 cm 1.51 GeV 23.4 keV 15.1 cm 15.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.96 cm 1.32 cm 1.34 keV 0 eV 0 fm 0 fm World initStep - 1 -3.93 mum -2.96 cm 1.32 cm 954 keV 1.34 keV 86.3 mum 86.3 mum World eIoni - 2 -20 mum -20 cm 1.32 cm 1.7 GeV 24.6 keV 17 cm 17 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 39 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.57 cm 1.68 cm 707 MeV 13.4 keV 7.06 cm 7.06 cm World eIoni - 2 3.81 mum -20 cm 2.22 cm 2.05 GeV 28.8 keV 13.4 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.57 cm 1.68 cm 3.17 keV 0 eV 0 fm 0 fm World initStep - 1 -10.7 mum -6.6 cm 1.68 cm 3.54 MeV 3.17 keV 328 mum 328 mum World eIoni - 2 -12.5 mum -6.63 cm 1.68 cm 6.19 MeV 0 eV 266 mum 594 mum World eIoni - 3 -31.3 mum -17.9 cm 1.69 cm 1.13 GeV 18.4 keV 11.3 cm 11.3 cm World eIoni - 4 -32.1 mum -20 cm 1.69 cm 1.34 GeV 3.6 keV 2.12 cm 13.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -31.3 mum -17.9 cm 1.69 cm 1.9 keV 0 eV 0 fm 0 fm World initStep - 1 -23.2 mum -17.9 cm 1.69 cm 1.58 MeV 1.9 keV 144 mum 144 mum World eIoni - 2 -5.84 mum -20 cm 1.69 cm 212 MeV 2.43 keV 2.1 cm 2.12 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.16 cm 1.47 cm 466 MeV 10.3 keV 4.64 cm 4.64 cm World eIoni - 2 1.23 mum -6.29 cm 1.66 cm 679 MeV 6.14 keV 2.14 cm 6.78 cm World eIoni - 3 989 nm -9.85 cm 1.88 cm 1.04 GeV 6.46 keV 3.56 cm 10.3 cm World eIoni - 4 1.85 mum -12.6 cm 2 cm 1.31 GeV 6.76 keV 2.76 cm 13.1 cm World eIoni - 5 7.71 mum -19.8 cm 2.21 cm 2.03 GeV 15.4 keV 7.15 cm 20.3 cm World eIoni - 6 7.85 mum -20 cm 2.22 cm 2.05 GeV 469 eV 2.46 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 7.71 mum -19.8 cm 2.21 cm 1.28 keV 0 eV 0 fm 0 fm World initStep - 1 11.2 mum -19.8 cm 2.22 cm 894 keV 1.28 keV 81.2 mum 81.2 mum World eIoni - 2 17.1 mum -20 cm 2.22 cm 24.7 MeV 17.9 eV 2.38 mm 2.46 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.85 mum -12.6 cm 2 cm 16.2 keV 0 eV 0 fm 0 fm World initStep - 1 -59.4 mum -12.8 cm 2 cm 25 MeV 4.49 keV 2.4 mm 2.4 mm World eIoni - 2 -86.5 mum -16.5 cm 2 cm 391 MeV 5.81 keV 3.66 cm 3.9 cm World eIoni - 3 -89.3 mum -18.8 cm 2 cm 624 MeV 6.65 keV 2.33 cm 6.23 cm World eIoni - 4 -88.8 mum -20 cm 2 cm 740 MeV 2.54 keV 1.16 cm 7.39 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -89.3 mum -18.8 cm 2 cm 12.3 keV 0 eV 0 fm 0 fm World initStep - 1 -126 mum -18.9 cm 2 cm 5.55 MeV 703 eV 541 mum 541 mum World eIoni - 2 -159 mum -20 cm 2 cm 117 MeV 2.24 keV 1.11 cm 1.16 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -86.5 mum -16.5 cm 2 cm 1.97 keV 0 eV 0 fm 0 fm World initStep - 1 -95.1 mum -16.5 cm 2 cm 1.66 MeV 1.97 keV 152 mum 152 mum World eIoni - 2 -115 mum -20 cm 2 cm 350 MeV 5.1 keV 3.48 cm 3.49 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 989 nm -9.85 cm 1.88 cm 1.86 keV 0 eV 0 fm 0 fm World initStep - 1 -8 mum -9.87 cm 1.88 cm 1.53 MeV 1.86 keV 140 mum 140 mum World eIoni - 2 -34.2 mum -20 cm 1.87 cm 1.01 GeV 14.2 keV 10.1 cm 10.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.23 mum -6.29 cm 1.66 cm 1.45 keV 0 eV 0 fm 0 fm World initStep - 1 8.3 mum -6.3 cm 1.66 cm 1.06 MeV 1.45 keV 96.9 mum 96.9 mum World eIoni - 2 33.9 mum -20 cm 1.66 cm 1.37 GeV 20.3 keV 13.7 cm 13.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.16 cm 1.47 cm 1.63 keV 0 eV 0 fm 0 fm World initStep - 1 -6.43 mum -4.18 cm 1.47 cm 1.26 MeV 1.63 keV 115 mum 115 mum World eIoni - 2 -29.1 mum -20 cm 1.47 cm 1.58 GeV 21.9 keV 15.8 cm 15.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 38.7 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.88 cm 1.7 cm 738 MeV 13.6 keV 7.37 cm 7.37 cm World eIoni - 2 -742 nm -8.6 cm 1.81 cm 910 MeV 2.77 keV 1.73 cm 9.09 cm World eIoni - 3 -2.91 mum -16.2 cm 2.12 cm 1.67 GeV 16.2 keV 7.57 cm 16.7 cm World eIoni - 4 -3.03 mum -19 cm 2.19 cm 1.95 GeV 5.38 keV 2.81 cm 19.5 cm World eIoni - 5 -3.14 mum -20 cm 2.22 cm 2.05 GeV 2 keV 1.02 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.03 mum -19 cm 2.19 cm 2.43 keV 0 eV 0 fm 0 fm World initStep - 1 277 nm -19 cm 2.19 cm 2.31 MeV 2.43 keV 212 mum 212 mum World eIoni - 2 4.36 mum -19.6 cm 2.19 cm 61.8 MeV 827 eV 5.95 mm 6.16 mm World eIoni - 3 5.01 mum -20 cm 2.19 cm 102 MeV 1.52 keV 4.02 mm 1.02 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.91 mum -16.2 cm 2.12 cm 1.75 keV 0 eV 0 fm 0 fm World initStep - 1 -8.76 mum -16.2 cm 2.12 cm 1.39 MeV 1.75 keV 127 mum 127 mum World eIoni - 2 -24 mum -20 cm 2.11 cm 383 MeV 7.6 keV 3.82 cm 3.83 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -742 nm -8.6 cm 1.81 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 -645 nm -8.61 cm 1.81 cm 729 keV 1.1 keV 66.1 mum 66.1 mum World eIoni - 2 -228 nm -20 cm 1.81 cm 1.14 GeV 16.6 keV 11.4 cm 11.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.88 cm 1.7 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 5.91 mum -6.89 cm 1.7 cm 856 keV 1.25 keV 77.8 mum 77.8 mum World eIoni - 2 29.7 mum -20 cm 1.7 cm 1.31 GeV 20.4 keV 13.1 cm 13.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 41.1 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.95 cm 1.64 cm 645 MeV 12.4 keV 6.44 cm 6.44 cm World eIoni - 2 -5.1 mum -18.6 cm 2.18 cm 1.91 GeV 27.2 keV 12.6 cm 19.1 cm World eIoni - 3 -5.63 mum -20 cm 2.22 cm 2.05 GeV 2.68 keV 1.44 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -5.1 mum -18.6 cm 2.18 cm 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 -1.09 mum -18.6 cm 2.18 cm 699 keV 1.07 keV 63.6 mum 63.6 mum World eIoni - 2 11.7 mum -20 cm 2.18 cm 144 MeV 2.36 keV 1.43 cm 1.44 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.95 cm 1.64 cm 2.28 keV 0 eV 0 fm 0 fm World initStep - 1 11.5 mum -5.97 cm 1.64 cm 2.09 MeV 2.28 keV 192 mum 192 mum World eIoni - 2 20.1 mum -6.11 cm 1.64 cm 15.8 MeV 195 eV 1.37 mm 1.56 mm World eIoni - 3 36.9 mum -9.95 cm 1.64 cm 400 MeV 7.01 keV 3.84 cm 4 cm World eIoni - 4 41.3 mum -20 cm 1.64 cm 1.4 GeV 21.3 keV 10.1 cm 14 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 36.9 mum -9.95 cm 1.64 cm 999 eV 0 eV 0 fm 0 fm World initStep - 1 37.8 mum -9.95 cm 1.64 cm 635 keV 999 eV 57.7 mum 57.7 mum World eIoni - 2 42.2 mum -20 cm 1.63 cm 1.01 GeV 15.6 keV 10 cm 10.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.81 cm 1.7 cm 731 MeV 14.6 keV 7.3 cm 7.3 cm World eIoni - 2 6.3 mum -9.96 cm 1.88 cm 1.05 GeV 6.54 keV 3.15 cm 10.5 cm World eIoni - 3 16.1 mum -20 cm 2.22 cm 2.05 GeV 21.3 keV 10 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.3 mum -9.96 cm 1.88 cm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 11.2 mum -9.97 cm 1.88 cm 769 keV 1.15 keV 70 mum 70 mum World eIoni - 2 31.7 mum -20 cm 1.88 cm 1 GeV 16.4 keV 10 cm 10 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.81 cm 1.7 cm 52.8 keV 0 eV 0 fm 0 fm World initStep - 1 -147 mum -8.12 cm 1.71 cm 133 MeV 9.27 keV 1.32 cm 1.32 cm World eIoni - 2 -187 mum -20 cm 1.72 cm 1.32 GeV 23.9 keV 11.9 cm 13.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.98 cm 1.55 cm 548 MeV 10.4 keV 5.46 cm 5.46 cm World eIoni - 2 1.87 mum -13.4 cm 2.02 cm 1.39 GeV 16.8 keV 8.43 cm 13.9 cm World eIoni - 3 1.97 mum -13.7 cm 2.04 cm 1.42 GeV 521 eV 3.26 mm 14.2 cm World eIoni - 4 5.01 mum -20 cm 2.22 cm 2.05 GeV 12.9 keV 6.28 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.97 mum -13.7 cm 2.04 cm 1.62 keV 0 eV 0 fm 0 fm World initStep - 1 -5.35 mum -13.7 cm 2.04 cm 1.25 MeV 1.62 keV 113 mum 113 mum World eIoni - 2 -27.5 mum -20 cm 2.04 cm 628 MeV 7.58 keV 6.27 cm 6.28 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.87 mum -13.4 cm 2.02 cm 1.35 keV 0 eV 0 fm 0 fm World initStep - 1 -2.66 mum -13.4 cm 2.02 cm 959 keV 1.35 keV 87.3 mum 87.3 mum World eIoni - 2 -18.7 mum -20 cm 2.02 cm 660 MeV 15.3 keV 6.59 cm 6.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.98 cm 1.55 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 -3.25 mum -4.99 cm 1.55 cm 787 keV 1.17 keV 71.3 mum 71.3 mum World eIoni - 2 -17.7 mum -20 cm 1.56 cm 1.5 GeV 21.7 keV 15 cm 15 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.17 cm 9.43 mm 167 MeV 3.94 keV 1.59 cm 1.59 cm World eIoni - 2 -1.29 mum -9.76 cm 1.87 cm 1.03 GeV 17.8 keV 8.65 cm 10.2 cm World eIoni - 3 -1.66 mum -16.8 cm 2.13 cm 1.73 GeV 15.3 keV 7.01 cm 17.3 cm World eIoni - 4 -2.66 mum -20 cm 2.22 cm 2.05 GeV 7.92 keV 3.24 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.66 mum -16.8 cm 2.13 cm 2.91 keV 0 eV 0 fm 0 fm World initStep - 1 12.9 mum -16.8 cm 2.13 cm 3.1 MeV 2.91 keV 287 mum 287 mum World eIoni - 2 19.1 mum -16.9 cm 2.13 cm 11.6 MeV 0 eV 849 mum 1.14 mm World eIoni - 3 28.5 mum -17.5 cm 2.13 cm 74.2 MeV 1.06 keV 6.26 mm 7.4 mm World eIoni - 4 36.6 mum -20 cm 2.13 cm 324 MeV 6.6 keV 2.5 cm 3.24 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 28.5 mum -17.5 cm 2.13 cm 1.93 keV 0 eV 0 fm 0 fm World initStep - 1 27.6 mum -17.5 cm 2.13 cm 1.61 MeV 1.93 keV 147 mum 147 mum World eIoni - 2 25.6 mum -20 cm 2.13 cm 250 MeV 2.46 keV 2.49 cm 2.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.29 mum -9.76 cm 1.87 cm 1.72 keV 0 eV 0 fm 0 fm World initStep - 1 -1.26 mum -9.77 cm 1.87 cm 1.36 MeV 1.72 keV 124 mum 124 mum World eIoni - 2 -1.16 mum -20 cm 1.86 cm 1.02 GeV 14.2 keV 10.2 cm 10.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.17 cm 9.43 mm 20.1 keV 0 eV 0 fm 0 fm World initStep - 1 6.87 mum -1.87 cm 9.57 mm 73 MeV 13.4 keV 7.09 mm 7.09 mm World eIoni - 2 7.16 mum -2.25 cm 9.58 mm 111 MeV 383 eV 3.79 mm 1.09 cm World eIoni - 3 15.6 mum -5.55 cm 9.59 mm 441 MeV 6.38 keV 3.3 cm 4.39 cm World eIoni - 4 17.6 mum -14.8 cm 9.6 mm 1.36 GeV 19.8 keV 9.23 cm 13.6 cm World eIoni - 5 17.2 mum -20 cm 9.6 mm 1.89 GeV 10.6 keV 5.22 cm 18.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 17.6 mum -14.8 cm 9.6 mm 1.61 keV 0 eV 0 fm 0 fm World initStep - 1 23.9 mum -14.8 cm 9.61 mm 1.24 MeV 1.61 keV 113 mum 113 mum World eIoni - 2 42.2 mum -20 cm 9.62 mm 523 MeV 5.2 keV 5.21 cm 5.22 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 15.6 mum -5.55 cm 9.59 mm 3.77 keV 0 eV 0 fm 0 fm World initStep - 1 30.4 mum -5.59 cm 9.61 mm 4.74 MeV 3.77 keV 441 mum 441 mum World eIoni - 2 39.7 mum -5.97 cm 9.62 mm 42.7 MeV 278 eV 3.79 mm 4.24 mm World eIoni - 3 55.7 mum -19.4 cm 9.63 mm 1.39 GeV 26.7 keV 13.5 cm 13.9 cm World eIoni - 4 55.9 mum -20 cm 9.63 mm 1.45 GeV 1.3 keV 5.72 mm 14.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 55.7 mum -19.4 cm 9.63 mm 1.16 keV 0 eV 0 fm 0 fm World initStep - 1 50.8 mum -19.4 cm 9.63 mm 777 keV 1.16 keV 70.6 mum 70.6 mum World eIoni - 2 38.8 mum -20 cm 9.64 mm 57.3 MeV 1.48 keV 5.65 mm 5.72 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 7.16 mum -2.25 cm 9.58 mm 3.54 keV 0 eV 0 fm 0 fm World initStep - 1 -10.4 mum -2.28 cm 9.58 mm 4.29 MeV 3.54 keV 399 mum 399 mum World eIoni - 2 -11 mum -2.29 cm 9.58 mm 4.87 MeV 0 eV 58 mum 457 mum World eIoni - 3 -13.3 mum -4.58 cm 9.59 mm 234 MeV 3.45 keV 2.29 cm 2.34 cm World eIoni - 4 -12.4 mum -12.3 cm 9.59 mm 1.01 GeV 16.3 keV 7.74 cm 10.1 cm World eIoni - 5 -11.4 mum -16.3 cm 9.59 mm 1.41 GeV 11.3 keV 4 cm 14.1 cm World eIoni - 6 -9.48 mum -20 cm 9.59 mm 1.78 GeV 8.2 keV 3.68 cm 17.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -11.4 mum -16.3 cm 9.59 mm 3.34 keV 0 eV 0 fm 0 fm World initStep - 1 -29.2 mum -16.4 cm 9.59 mm 3.89 MeV 3.34 keV 361 mum 361 mum World eIoni - 2 -37 mum -16.5 cm 9.59 mm 16.4 MeV 40.4 eV 1.25 mm 1.61 mm World eIoni - 3 -54.8 mum -20 cm 9.58 mm 369 MeV 5.4 keV 3.52 cm 3.68 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -12.4 mum -12.3 cm 9.59 mm 1.37 keV 0 eV 0 fm 0 fm World initStep - 1 -17 mum -12.3 cm 9.6 mm 987 keV 1.37 keV 89.8 mum 89.8 mum World eIoni - 2 -32.9 mum -20 cm 9.61 mm 768 MeV 11 keV 7.67 cm 7.68 cm OutOfWorldTransportation + 0 -9.77 mum -2.78 cm 9.57 mm 2.14 keV 0 eV 0 fm 0 fm World initStep + 1 -3.53 mum -2.8 cm 9.57 mm 1.89 MeV 2.14 keV 174 mum 174 mum World eIoni + 2 3.73 mum -3.14 cm 9.59 mm 35.4 MeV 561 eV 3.35 mm 3.52 mm World eIoni + 3 12.9 mum -12.1 cm 9.6 mm 935 MeV 19.9 keV 9 cm 9.35 cm World eIoni + 4 16.5 mum -20 cm 9.6 mm 1.72 GeV 16.3 keV 7.87 cm 17.2 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -13.3 mum -4.58 cm 9.59 mm 1.61 keV 0 eV 0 fm 0 fm World initStep - 1 -15.6 mum -4.59 cm 9.6 mm 1.24 MeV 1.61 keV 113 mum 113 mum World eIoni - 2 -23.8 mum -20 cm 9.63 mm 1.54 GeV 21.4 keV 15.4 cm 15.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -11 mum -2.29 cm 9.58 mm 2.35 keV 0 eV 0 fm 0 fm World initStep - 1 -23.1 mum -2.31 cm 9.59 mm 2.19 MeV 2.35 keV 201 mum 201 mum World eIoni - 2 -38.9 mum -2.95 cm 9.59 mm 66.3 MeV 630 eV 6.41 mm 6.61 mm World eIoni - 3 -41.8 mum -3.49 cm 9.59 mm 120 MeV 697 eV 5.35 mm 1.2 cm World eIoni - 4 -56.2 mum -20 cm 9.6 mm 1.77 GeV 35 keV 16.5 cm 17.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 10 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -41.8 mum -3.49 cm 9.59 mm 1.27 keV 0 eV 0 fm 0 fm World initStep - 1 -41.6 mum -3.49 cm 9.58 mm 880 keV 1.27 keV 80 mum 80 mum World eIoni - 2 -41 mum -20 cm 9.55 mm 1.65 GeV 25.3 keV 16.5 cm 16.5 cm OutOfWorldTransportation + 0 12.9 mum -12.1 cm 9.6 mm 1.38 keV 0 eV 0 fm 0 fm World initStep + 1 6.19 mum -12.1 cm 9.6 mm 996 keV 1.38 keV 90.6 mum 90.6 mum World eIoni + 2 -17 mum -20 cm 9.6 mm 787 MeV 10.1 keV 7.86 cm 7.87 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1863,63 +489,1933 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -15.8 cm 2.1 cm 1.63 GeV 30.3 keV 16.3 cm 16.3 cm World eIoni - 2 -826 nm -20 cm 2.22 cm 2.05 GeV 10.5 keV 4.22 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -1.68 cm 1.08 cm 218 MeV 7.34 keV 2.13 cm 2.13 cm World eIoni + 2 8.71 mum -12.9 cm 2.01 cm 1.34 GeV 22.3 keV 11.2 cm 13.4 cm World eIoni + 3 8.76 mum -13.3 cm 2.02 cm 1.38 GeV 533 eV 4.55 mm 13.8 cm World eIoni + 4 8.82 mum -20 cm 2.22 cm 2.05 GeV 13.4 keV 6.67 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -15.8 cm 2.1 cm 35.1 keV 0 eV 0 fm 0 fm World initStep - 1 20.4 mum -16 cm 2.11 cm 27.1 MeV 3.72 keV 2.65 mm 2.65 mm World eIoni - 2 30.2 mum -20 cm 2.12 cm 423 MeV 10 keV 3.96 cm 4.23 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.4 cm 1.99 cm 1.29 GeV 23.4 keV 12.9 cm 12.9 cm World eIoni - 2 1.97 mum -20 cm 2.22 cm 2.05 GeV 15.4 keV 7.63 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -12.4 cm 1.99 cm 1.76 keV 0 eV 0 fm 0 fm World initStep - 1 -8.77 mum -12.4 cm 1.99 cm 1.42 MeV 1.76 keV 129 mum 129 mum World eIoni - 2 -34.4 mum -20 cm 1.99 cm 763 MeV 10.6 keV 7.61 cm 7.63 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.6 cm 1.68 cm 710 MeV 14.1 keV 7.09 cm 7.09 cm World eIoni - 2 1.77 mum -16.3 cm 2.12 cm 1.68 GeV 19.9 keV 9.66 cm 16.7 cm World eIoni - 3 2.14 mum -20 cm 2.22 cm 2.05 GeV 7.34 keV 3.75 cm 20.5 cm OutOfWorldTransportation + 0 8.76 mum -13.3 cm 2.02 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 11.1 mum -13.3 cm 2.02 cm 837 keV 1.22 keV 76 mum 76 mum World eIoni + 2 20 mum -20 cm 2.02 cm 667 MeV 9.31 keV 6.66 cm 6.67 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.77 mum -16.3 cm 2.12 cm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 2.12 mum -16.3 cm 2.12 cm 769 keV 1.15 keV 70 mum 70 mum World eIoni - 2 3.39 mum -20 cm 2.12 cm 375 MeV 5.04 keV 3.74 cm 3.75 cm OutOfWorldTransportation + 0 8.71 mum -12.9 cm 2.01 cm 1.91 keV 0 eV 0 fm 0 fm World initStep + 1 15.7 mum -12.9 cm 2.01 cm 1.6 MeV 1.91 keV 146 mum 146 mum World eIoni + 2 34.7 mum -20 cm 2.01 cm 712 MeV 10 keV 7.11 cm 7.12 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.6 cm 1.68 cm 1.36 keV 0 eV 0 fm 0 fm World initStep - 1 -3.63 mum -6.61 cm 1.68 cm 971 keV 1.36 keV 88.5 mum 88.5 mum World eIoni - 2 -17.4 mum -20 cm 1.68 cm 1.34 GeV 20.3 keV 13.4 cm 13.4 cm OutOfWorldTransportation + 0 0 fm -1.68 cm 1.08 cm 2.39 keV 0 eV 0 fm 0 fm World initStep + 1 -11.9 mum -1.7 cm 1.08 cm 2.25 MeV 2.39 keV 207 mum 207 mum World eIoni + 2 -29.3 mum -2.67 cm 1.08 cm 98.7 MeV 2.57 keV 9.65 mm 9.86 mm World eIoni + 3 -36.5 mum -6.13 cm 1.08 cm 445 MeV 9.01 keV 3.47 cm 4.45 cm World eIoni + 4 -43.8 mum -17.1 cm 1.08 cm 1.54 GeV 23.3 keV 10.9 cm 15.4 cm World eIoni + 5 -44.2 mum -17.6 cm 1.08 cm 1.59 GeV 786 eV 5.14 mm 15.9 cm World eIoni + 6 -45.7 mum -20 cm 1.08 cm 1.83 GeV 5.48 keV 2.43 cm 18.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -44.2 mum -17.6 cm 1.08 cm 6.11 keV 0 eV 0 fm 0 fm World initStep + 1 -31.5 mum -17.7 cm 1.08 cm 10.9 MeV 6.11 keV 1.03 mm 1.03 mm World eIoni + 2 -26.4 mum -18.3 cm 1.08 cm 74.6 MeV 1.23 keV 6.36 mm 7.39 mm WorldTransportation + 3 -26.4 mum -18.3 cm 1.08 cm 74.6 MeV 0 eV 0.000871 fm 7.39 mm World eIoni + 4 -26.1 mum -18.4 cm 1.08 cm 81.7 MeV 37.8 eV 710 mum 8.1 mm World eIoni + 5 -17.8 mum -20 cm 1.08 cm 244 MeV 3.74 keV 1.62 cm 2.43 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -26.1 mum -18.4 cm 1.08 cm 2.76 keV 0 eV 0 fm 0 fm World initStep + 1 -40.7 mum -18.4 cm 1.08 cm 2.83 MeV 2.76 keV 262 mum 262 mum World eIoni + 2 -55.2 mum -18.9 cm 1.08 cm 50.7 MeV 453 eV 4.78 mm 5.05 mm World eIoni + 3 -61.3 mum -20 cm 1.08 cm 162 MeV 2.28 keV 1.11 cm 1.62 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -43.8 mum -17.1 cm 1.08 cm 1.23 keV 0 eV 0 fm 0 fm World initStep + 1 -38.4 mum -17.1 cm 1.08 cm 842 keV 1.23 keV 76.5 mum 76.5 mum World eIoni + 2 -20.5 mum -20 cm 1.08 cm 294 MeV 3.04 keV 2.93 cm 2.94 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -36.5 mum -6.13 cm 1.08 cm 1.53 keV 0 eV 0 fm 0 fm World initStep + 1 -34.2 mum -6.14 cm 1.08 cm 1.15 MeV 1.53 keV 105 mum 105 mum World eIoni + 2 -26.4 mum -20 cm 1.09 cm 1.39 GeV 20 keV 13.9 cm 13.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.91 cm 1.63 cm 641 MeV 11.4 keV 6.39 cm 6.39 cm World eIoni + 2 2.52 mum -13.8 cm 2.04 cm 1.43 GeV 18.1 keV 7.88 cm 14.3 cm World eIoni + 3 807 nm -20 cm 2.22 cm 2.05 GeV 11.4 keV 6.23 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.52 mum -13.8 cm 2.04 cm 7.18 keV 0 eV 0 fm 0 fm World initStep + 1 24.7 mum -13.8 cm 2.04 cm 3.41 MeV 2.2 keV 329 mum 329 mum World eIoni + 2 56.6 mum -15.8 cm 2.04 cm 207 MeV 2.84 keV 2.04 cm 2.07 cm World eIoni + 3 65.2 mum -20 cm 2.04 cm 622 MeV 6.35 keV 4.15 cm 6.22 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.91 cm 1.63 cm 3.34 keV 0 eV 0 fm 0 fm World initStep + 1 -9.76 mum -5.94 cm 1.63 cm 3.87 MeV 3.34 keV 360 mum 360 mum World eIoni + 2 -17.1 mum -6.35 cm 1.64 cm 44.1 MeV 717 eV 4.03 mm 4.39 mm World eIoni + 3 -23.1 mum -8.9 cm 1.64 cm 299 MeV 4.53 keV 2.55 cm 2.99 cm World eIoni + 4 -27 mum -11.2 cm 1.64 cm 534 MeV 3.91 keV 2.35 cm 5.34 cm World eIoni + 5 -27.2 mum -11.5 cm 1.64 cm 555 MeV 365 eV 2.13 mm 5.55 cm World eIoni + 6 -28.5 mum -16.7 cm 1.64 cm 1.08 GeV 9.5 keV 5.2 cm 10.8 cm World eIoni + 7 -32.3 mum -20 cm 1.64 cm 1.41 GeV 9.97 keV 3.34 cm 14.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -28.5 mum -16.7 cm 1.64 cm 19.4 keV 0 eV 0 fm 0 fm World initStep + 1 94.6 mum -17.5 cm 1.64 cm 86.4 MeV 19.4 keV 8.42 mm 8.42 mm World eIoni + 2 99.9 mum -18 cm 1.64 cm 135 MeV 634 eV 4.88 mm 1.33 cm World eIoni + 3 111 mum -20 cm 1.65 cm 337 MeV 3.44 keV 2.02 cm 3.35 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -27.2 mum -11.5 cm 1.64 cm 3.39 keV 0 eV 0 fm 0 fm World initStep + 1 -31.9 mum -11.5 cm 1.64 cm 3.97 MeV 3.39 keV 369 mum 369 mum World eIoni + 2 -34.9 mum -11.8 cm 1.64 cm 30.6 MeV 244 eV 2.67 mm 3.03 mm World eIoni + 3 -39.9 mum -20 cm 1.64 cm 855 MeV 15.9 keV 8.24 cm 8.54 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -27 mum -11.2 cm 1.64 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 -31.8 mum -11.3 cm 1.64 cm 681 keV 1.05 keV 61.9 mum 61.9 mum World eIoni + 2 -52.9 mum -20 cm 1.64 cm 876 MeV 14.5 keV 8.75 cm 8.76 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -23.1 mum -8.9 cm 1.64 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 -17.1 mum -8.91 cm 1.64 cm 860 keV 1.25 keV 78.2 mum 78.2 mum World eIoni + 2 6.76 mum -20 cm 1.64 cm 1.11 GeV 18.3 keV 11.1 cm 11.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -8.25 cm 1.79 cm 875 MeV 18.1 keV 8.74 cm 8.74 cm World eIoni + 2 -6.62 mum -16.2 cm 2.12 cm 1.67 GeV 19.1 keV 8 cm 16.7 cm World eIoni + 3 -8.96 mum -19.4 cm 2.21 cm 1.99 GeV 7.62 keV 3.2 cm 19.9 cm World eIoni + 4 -9.15 mum -20 cm 2.22 cm 2.05 GeV 1.63 keV 5.59 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -8.96 mum -19.4 cm 2.21 cm 4.47 keV 0 eV 0 fm 0 fm World initStep + 1 -33.2 mum -19.5 cm 2.21 cm 6.38 MeV 4.47 keV 597 mum 597 mum World eIoni + 2 -46.8 mum -20 cm 2.21 cm 56.4 MeV 834 eV 5 mm 5.6 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -6.62 mum -16.2 cm 2.12 cm 2.37 keV 0 eV 0 fm 0 fm World initStep + 1 1.21 mum -16.3 cm 2.12 cm 2.22 MeV 2.37 keV 204 mum 204 mum World eIoni + 2 11 mum -16.8 cm 2.12 cm 59.3 MeV 621 eV 5.71 mm 5.92 mm World eIoni + 3 16.8 mum -20 cm 2.12 cm 376 MeV 5.62 keV 3.17 cm 3.76 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.25 cm 1.79 cm 27 keV 0 eV 0 fm 0 fm World initStep + 1 38.8 mum -8.34 cm 1.79 cm 9.78 MeV 254 eV 964 mum 964 mum World eIoni + 2 82.9 mum -15.8 cm 1.78 cm 753 MeV 11.6 keV 7.43 cm 7.53 cm World eIoni + 3 87.5 mum -20 cm 1.78 cm 1.18 GeV 7.95 keV 4.22 cm 11.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.47 mm 5.63 mm 84.7 MeV 2.39 keV 6.86 mm 6.86 mm World eIoni + 2 -821 nm -10.4 cm 1.9 cm 1.09 GeV 22.8 keV 10.2 cm 10.9 cm World eIoni + 3 -630 nm -11 cm 1.93 cm 1.15 GeV 3.23 keV 6.15 mm 11.5 cm World eIoni + 4 -450 nm -20 cm 2.22 cm 2.05 GeV 17.7 keV 8.96 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -630 nm -11 cm 1.93 cm 1 keV 0 eV 0 fm 0 fm World initStep + 1 4.06 mum -11 cm 1.93 cm 636 keV 1 keV 57.9 mum 57.9 mum World eIoni + 2 25.6 mum -20 cm 1.93 cm 896 MeV 14.3 keV 8.95 cm 8.96 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -821 nm -10.4 cm 1.9 cm 1.78 keV 0 eV 0 fm 0 fm World initStep + 1 -8.77 mum -10.4 cm 1.9 cm 1.44 MeV 1.78 keV 131 mum 131 mum World eIoni + 2 -32.3 mum -20 cm 1.9 cm 957 MeV 15.1 keV 9.56 cm 9.57 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.47 mm 5.63 mm 1.15 keV 0 eV 0 fm 0 fm World initStep + 1 528 nm -3.54 mm 5.63 mm 811 keV 1.15 keV 69.6 mum 69.6 mum World eIoni + 2 2.85 mum -20 cm 5.65 mm 1.97 GeV 28.8 keV 19.6 cm 19.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -6.64 cm 1.69 cm 714 MeV 16.3 keV 7.13 cm 7.13 cm World eIoni + 2 -3.28 mum -20 cm 2.22 cm 2.05 GeV 31.7 keV 13.4 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.64 cm 1.69 cm 1.2 keV 0 eV 0 fm 0 fm World initStep + 1 5.12 mum -6.65 cm 1.69 cm 819 keV 1.2 keV 74.3 mum 74.3 mum World eIoni + 2 27.1 mum -20 cm 1.69 cm 1.34 GeV 20.9 keV 13.3 cm 13.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.26 cm 1.85 cm 976 MeV 17.9 keV 9.75 cm 9.75 cm World eIoni + 2 -3.61 mum -20 cm 2.22 cm 2.05 GeV 22 keV 10.7 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.26 cm 1.85 cm 2.53 keV 0 eV 0 fm 0 fm World initStep + 1 12.6 mum -9.28 cm 1.85 cm 2.46 MeV 2.53 keV 226 mum 226 mum World eIoni + 2 26.3 mum -9.74 cm 1.85 cm 48.2 MeV 502 eV 4.57 mm 4.8 mm World eIoni + 3 40 mum -16.3 cm 1.84 cm 701 MeV 16.5 keV 6.53 cm 7.01 cm World eIoni + 4 41.1 mum -20 cm 1.84 cm 1.07 GeV 7.97 keV 3.73 cm 10.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 40 mum -16.3 cm 1.84 cm 1.58 keV 0 eV 0 fm 0 fm World initStep + 1 44.2 mum -16.3 cm 1.85 cm 1.2 MeV 1.58 keV 109 mum 109 mum World eIoni + 2 56.3 mum -20 cm 1.85 cm 373 MeV 4.23 keV 3.72 cm 3.73 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.88 cm 1.31 cm 338 MeV 4.7 keV 3.34 cm 3.34 cm World eIoni + 2 -378 nm -7.92 cm 1.77 cm 841 MeV 9.72 keV 5.06 cm 8.4 cm World eIoni + 3 -95.9 nm -20 cm 2.22 cm 2.05 GeV 22.8 keV 12.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -378 nm -7.92 cm 1.77 cm 1.45 keV 0 eV 0 fm 0 fm World initStep + 1 -1.71 mum -7.92 cm 1.77 cm 1.06 MeV 1.45 keV 96.8 mum 96.8 mum World eIoni + 2 -6.53 mum -20 cm 1.77 cm 1.21 GeV 20.3 keV 12.1 cm 12.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.88 cm 1.31 cm 1.16 keV 0 eV 0 fm 0 fm World initStep + 1 671 nm -2.88 cm 1.31 cm 788 keV 1.16 keV 71.1 mum 71.1 mum World eIoni + 2 3.7 mum -20 cm 1.31 cm 1.71 GeV 21.1 keV 17.1 cm 17.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -8.03 mm 8.11 mm 130 MeV 2.36 keV 1.21 cm 1.21 cm World eIoni + 2 9.26 mum -6.11 cm 1.65 cm 661 MeV 10 keV 5.39 cm 6.6 cm World eIoni + 3 18.5 mum -20 cm 2.22 cm 2.05 GeV 33.4 keV 13.9 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 9.26 mum -6.11 cm 1.65 cm 5.01 keV 0 eV 0 fm 0 fm World initStep + 1 -1.34 mum -6.18 cm 1.65 cm 7.68 MeV 5.01 keV 721 mum 721 mum World eIoni + 2 -5.42 mum -6.49 cm 1.64 cm 38.3 MeV 733 eV 3.07 mm 3.79 mm World eIoni + 3 -14.3 mum -15.2 cm 1.64 cm 911 MeV 18.5 keV 8.73 cm 9.11 cm World eIoni + 4 -14.2 mum -20 cm 1.64 cm 1.39 GeV 11 keV 4.78 cm 13.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -14.3 mum -15.2 cm 1.64 cm 1.01 keV 0 eV 0 fm 0 fm World initStep + 1 -18.7 mum -15.2 cm 1.64 cm 644 keV 1.01 keV 58.6 mum 58.6 mum World eIoni + 2 -36.8 mum -20 cm 1.64 cm 478 MeV 7.39 keV 4.78 cm 4.78 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.03 mm 8.11 mm 4.23 keV 0 eV 0 fm 0 fm World initStep + 1 -20.4 mum -8.56 mm 8.12 mm 5.79 MeV 4.23 keV 542 mum 542 mum World eIoni + 2 -26.4 mum -9.79 mm 8.12 mm 18.1 MeV 23.8 eV 1.23 mm 1.78 mm World eIoni + 3 -47.2 mum -8.21 cm 8.13 mm 741 MeV 10.5 keV 7.23 cm 7.41 cm World eIoni + 4 -38.7 mum -9.73 cm 8.13 mm 893 MeV 4.52 keV 1.52 cm 8.93 cm World eIoni + 5 -1.62 mum -20 cm 8.1 mm 1.92 GeV 20.3 keV 10.3 cm 19.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -38.7 mum -9.73 cm 8.13 mm 8.4 keV 0 eV 0 fm 0 fm World initStep + 1 -57.8 mum -9.91 cm 8.18 mm 19.4 MeV 8.4 keV 1.83 mm 1.83 mm World eIoni + 2 -61 mum -10.3 cm 8.19 mm 54.5 MeV 634 eV 3.51 mm 5.34 mm World eIoni + 3 -70.5 mum -20 cm 8.22 mm 1.03 GeV 19 keV 9.74 cm 10.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -47.2 mum -8.21 cm 8.13 mm 361 keV 0 eV 0 fm 0 fm World initStep + 1 -326 mum -9.09 cm 8.32 mm 89 MeV 1.29 keV 8.88 mm 8.88 mm World eIoni + 2 -457 mum -20 cm 8.4 mm 1.18 GeV 23 keV 10.9 cm 11.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.68 cm 1.08 cm 218 MeV 3.79 keV 2.13 cm 2.13 cm World eIoni + 2 -3.04 mum -3.79 cm 1.43 cm 429 MeV 3.42 keV 2.14 cm 4.27 cm World eIoni + 3 -3.2 mum -3.99 cm 1.45 cm 449 MeV 276 eV 2.02 mm 4.47 cm World eIoni + 4 -8.53 mum -15.4 cm 2.09 cm 1.59 GeV 22.7 keV 11.5 cm 15.9 cm World eIoni + 5 -10.7 mum -20 cm 2.22 cm 2.05 GeV 8.77 keV 4.58 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -8.53 mum -15.4 cm 2.09 cm 2.05 keV 0 eV 0 fm 0 fm World initStep + 1 1.02 mum -15.4 cm 2.09 cm 1.76 MeV 2.05 keV 161 mum 161 mum World eIoni + 2 23.5 mum -20 cm 2.09 cm 458 MeV 6.09 keV 4.56 cm 4.58 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -3.2 mum -3.99 cm 1.45 cm 3.08 keV 0 eV 0 fm 0 fm World initStep + 1 -1.27 mum -4.02 cm 1.45 cm 3.37 MeV 3.08 keV 312 mum 312 mum World eIoni + 2 -660 nm -4.08 cm 1.45 cm 9.27 MeV 0 eV 591 mum 903 mum World eIoni + 3 1.01 mum -5.08 cm 1.45 cm 109 MeV 1.72 keV 1 cm 1.09 cm World eIoni + 4 12.6 mum -20 cm 1.45 cm 1.6 GeV 30.3 keV 14.9 cm 16 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.01 mum -5.08 cm 1.45 cm 3.17 keV 0 eV 0 fm 0 fm World initStep + 1 -9.69 mum -5.11 cm 1.45 cm 3.54 MeV 3.17 keV 328 mum 328 mum World eIoni + 2 -16.9 mum -5.37 cm 1.45 cm 29.3 MeV 205 eV 2.58 mm 2.91 mm World eIoni + 3 -31 mum -20 cm 1.45 cm 1.49 GeV 29 keV 14.6 cm 14.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -3.04 mum -3.79 cm 1.43 cm 3.14 keV 0 eV 0 fm 0 fm World initStep + 1 -5.68 mum -3.82 cm 1.43 cm 3.47 MeV 3.14 keV 322 mum 322 mum World eIoni + 2 -6.64 mum -3.9 cm 1.43 cm 11.1 MeV 39.7 eV 766 mum 1.09 mm World eIoni + 3 -9.31 mum -5.83 cm 1.43 cm 204 MeV 4.31 keV 1.93 cm 2.04 cm World eIoni + 4 -10.9 mum -15.5 cm 1.43 cm 1.17 GeV 19.8 keV 9.65 cm 11.7 cm World eIoni + 5 -10.8 mum -18.4 cm 1.43 cm 1.46 GeV 6.61 keV 2.88 cm 14.6 cm World eIoni + 6 -10.6 mum -20 cm 1.43 cm 1.62 GeV 2.12 keV 1.64 cm 16.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -10.8 mum -18.4 cm 1.43 cm 1.69 keV 0 eV 0 fm 0 fm World initStep + 1 -15.1 mum -18.4 cm 1.43 cm 1.32 MeV 1.69 keV 121 mum 121 mum World eIoni + 2 -24.8 mum -20 cm 1.43 cm 164 MeV 2.76 keV 1.63 cm 1.64 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -10.9 mum -15.5 cm 1.43 cm 1.11 keV 0 eV 0 fm 0 fm World initStep + 1 -12.9 mum -15.5 cm 1.43 cm 738 keV 1.11 keV 67.1 mum 67.1 mum World eIoni + 2 -20.5 mum -20 cm 1.43 cm 452 MeV 4.79 keV 4.51 cm 4.52 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.68 cm 1.08 cm 1.92 keV 0 eV 0 fm 0 fm World initStep + 1 9.68 mum -1.69 cm 1.08 cm 1.61 MeV 1.92 keV 147 mum 147 mum World eIoni + 2 40.2 mum -20 cm 1.08 cm 1.83 GeV 29.4 keV 18.3 cm 18.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.26 cm 1.36 cm 376 MeV 6.28 keV 3.73 cm 3.73 cm World eIoni + 2 -264 nm -3.81 cm 1.43 cm 431 MeV 2.02 keV 5.5 mm 4.28 cm World eIoni + 3 647 nm -18.3 cm 2.18 cm 1.88 GeV 27.1 keV 14.6 cm 18.8 cm World eIoni + 4 585 nm -20 cm 2.22 cm 2.05 GeV 5.04 keV 1.66 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 647 nm -18.3 cm 2.18 cm 1.26 keV 0 eV 0 fm 0 fm World initStep + 1 2.94 mum -18.3 cm 2.18 cm 873 keV 1.26 keV 79.4 mum 79.4 mum World eIoni + 2 9.55 mum -20 cm 2.18 cm 166 MeV 2.52 keV 1.65 cm 1.66 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -264 nm -3.81 cm 1.43 cm 1.13 keV 0 eV 0 fm 0 fm World initStep + 1 -4.29 mum -3.81 cm 1.43 cm 751 keV 1.13 keV 68.5 mum 68.5 mum World eIoni + 2 -23 mum -20 cm 1.43 cm 1.62 GeV 23.6 keV 16.2 cm 16.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.26 cm 1.36 cm 1.37 keV 0 eV 0 fm 0 fm World initStep + 1 3.48 mum -3.27 cm 1.36 cm 988 keV 1.37 keV 89.4 mum 89.4 mum World eIoni + 2 17.4 mum -20 cm 1.37 cm 1.67 GeV 27 keV 16.7 cm 16.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.02 cm 1.71 cm 752 MeV 15.9 keV 7.51 cm 7.51 cm World eIoni + 2 -764 nm -13 cm 2.01 cm 1.35 GeV 12.5 keV 5.96 cm 13.5 cm World eIoni + 3 -683 nm -14.9 cm 2.07 cm 1.54 GeV 3.84 keV 1.88 cm 15.4 cm World eIoni + 4 386 nm -20 cm 2.22 cm 2.05 GeV 13.5 keV 5.15 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -683 nm -14.9 cm 2.07 cm 1.14 keV 0 eV 0 fm 0 fm World initStep + 1 -5.58 mum -14.9 cm 2.07 cm 762 keV 1.14 keV 69.3 mum 69.3 mum World eIoni + 2 -24.4 mum -20 cm 2.07 cm 515 MeV 6.84 keV 5.14 cm 5.15 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -764 nm -13 cm 2.01 cm 3.22 keV 0 eV 0 fm 0 fm World initStep + 1 -6.6 mum -13 cm 2.01 cm 3.63 MeV 3.22 keV 337 mum 337 mum World eIoni + 2 -12.1 mum -13.7 cm 2.01 cm 69.6 MeV 459 eV 6.6 mm 6.94 mm World eIoni + 3 -16.4 mum -20 cm 2.01 cm 703 MeV 11.6 keV 6.34 cm 7.03 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.02 cm 1.71 cm 2.43 keV 0 eV 0 fm 0 fm World initStep + 1 3.3 mum -7.04 cm 1.71 cm 2.31 MeV 2.43 keV 212 mum 212 mum World eIoni + 2 4.96 mum -7.11 cm 1.71 cm 9.45 MeV 78.1 eV 714 mum 927 mum World eIoni + 3 11 mum -16.3 cm 1.71 cm 925 MeV 14.4 keV 9.15 cm 9.24 cm World eIoni + 4 16.6 mum -19.4 cm 1.71 cm 1.24 GeV 6.54 keV 3.15 cm 12.4 cm World eIoni + 5 17 mum -20 cm 1.71 cm 1.3 GeV 2.23 keV 5.83 mm 13 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 16.6 mum -19.4 cm 1.71 cm 1.15 keV 0 eV 0 fm 0 fm World initStep + 1 21.5 mum -19.4 cm 1.71 cm 770 keV 1.15 keV 70 mum 70 mum World eIoni + 2 33.5 mum -20 cm 1.71 cm 58.4 MeV 1.19 keV 5.76 mm 5.83 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 11 mum -16.3 cm 1.71 cm 52.8 keV 0 eV 0 fm 0 fm World initStep + 1 -80.5 mum -16.5 cm 1.72 cm 25.7 MeV 828 eV 2.53 mm 2.53 mm World eIoni + 2 -127 mum -20 cm 1.72 cm 374 MeV 5.25 keV 3.49 cm 3.74 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -11.7 cm 1.96 cm 1.22 GeV 26.1 keV 12.2 cm 12.2 cm World eIoni + 2 1.74 mum -20 cm 2.22 cm 2.05 GeV 14.4 keV 8.26 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -11.7 cm 1.96 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 -5.86 mum -11.8 cm 1.96 cm 934 keV 1.32 keV 85 mum 85 mum World eIoni + 2 -27.3 mum -20 cm 1.96 cm 825 MeV 16.1 keV 8.25 cm 8.25 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 38.4 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.5 cm 1.51 cm 500 MeV 13.8 keV 4.98 cm 4.98 cm World eIoni + 2 -844 nm -5.62 cm 1.61 cm 612 MeV 4.23 keV 1.12 cm 6.1 cm World eIoni + 3 -1.69 mum -10.6 cm 1.91 cm 1.11 GeV 8.38 keV 5.01 cm 11.1 cm World eIoni + 4 -8.6 mum -15.3 cm 2.09 cm 1.58 GeV 12 keV 4.64 cm 15.7 cm World eIoni + 5 -14.9 mum -20 cm 2.22 cm 2.05 GeV 9.84 keV 4.75 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -8.6 mum -15.3 cm 2.09 cm 1.55 keV 0 eV 0 fm 0 fm World initStep + 1 -1.09 mum -15.3 cm 2.09 cm 1.16 MeV 1.55 keV 106 mum 106 mum World eIoni + 2 21.4 mum -20 cm 2.09 cm 475 MeV 5.44 keV 4.74 cm 4.75 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.69 mum -10.6 cm 1.91 cm 35.4 keV 0 eV 0 fm 0 fm World initStep + 1 154 mum -11.1 cm 1.91 cm 55 MeV 5.06 keV 5.34 mm 5.34 mm World eIoni + 2 207 mum -20 cm 1.91 cm 941 MeV 13.2 keV 8.86 cm 9.39 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -844 nm -5.62 cm 1.61 cm 1.85 keV 0 eV 0 fm 0 fm World initStep + 1 -6.74 mum -5.63 cm 1.61 cm 1.51 MeV 1.85 keV 138 mum 138 mum World eIoni + 2 -24.7 mum -20 cm 1.61 cm 1.44 GeV 20.7 keV 14.4 cm 14.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.5 cm 1.51 cm 2.55 keV 0 eV 0 fm 0 fm World initStep + 1 9.91 mum -4.52 cm 1.51 cm 1.97 MeV 1.84 keV 183 mum 183 mum World eIoni + 2 34.9 mum -13.3 cm 1.51 cm 884 MeV 11.8 keV 8.82 cm 8.84 cm World eIoni + 3 35.2 mum -13.9 cm 1.51 cm 939 MeV 2.46 keV 5.48 mm 9.39 cm World eIoni + 4 37.2 mum -17.8 cm 1.51 cm 1.33 GeV 5.99 keV 3.95 cm 13.3 cm World eIoni + 5 37.3 mum -20 cm 1.51 cm 1.55 GeV 3.14 keV 2.16 cm 15.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 37.2 mum -17.8 cm 1.51 cm 28.2 keV 0 eV 0 fm 0 fm World initStep + 1 80.2 mum -18.4 cm 1.52 cm 62.2 MeV 6.29 keV 6.04 mm 6.04 mm World eIoni + 2 86.1 mum -20 cm 1.53 cm 218 MeV 2.74 keV 1.56 cm 2.17 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 35.2 mum -13.9 cm 1.51 cm 1.48 keV 0 eV 0 fm 0 fm World initStep + 1 31.8 mum -13.9 cm 1.51 cm 1.1 MeV 1.48 keV 100 mum 100 mum World eIoni + 2 20.9 mum -20 cm 1.51 cm 611 MeV 9.95 keV 6.1 cm 6.11 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 34.9 mum -13.3 cm 1.51 cm 2.74 keV 0 eV 0 fm 0 fm World initStep + 1 35.3 mum -13.4 cm 1.51 cm 2.81 MeV 2.74 keV 259 mum 259 mum World eIoni + 2 35.6 mum -13.5 cm 1.51 cm 20.5 MeV 57.6 eV 1.77 mm 2.03 mm World eIoni + 3 36 mum -18.5 cm 1.51 cm 515 MeV 11.1 keV 4.94 cm 5.15 cm World eIoni + 4 34.7 mum -20 cm 1.51 cm 666 MeV 3.96 keV 1.51 cm 6.66 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 36 mum -18.5 cm 1.51 cm 7.3 keV 0 eV 0 fm 0 fm World initStep + 1 77 mum -18.6 cm 1.51 cm 15.1 MeV 7.3 keV 1.42 mm 1.42 mm World eIoni + 2 81.2 mum -18.7 cm 1.51 cm 26.7 MeV 413 eV 1.16 mm 2.58 mm World eIoni + 3 94.4 mum -20 cm 1.51 cm 152 MeV 3.13 keV 1.26 cm 1.51 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -6.55 mm 7.44 mm 116 MeV 1.64 keV 1.04 cm 1.04 cm World eIoni + 2 -9.7 mum -20 cm 2.22 cm 2.05 GeV 40.5 keV 19.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.55 mm 7.44 mm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 5.16 mum -6.62 mm 7.44 mm 719 keV 1.09 keV 65.2 mum 65.2 mum World eIoni + 2 30.2 mum -20 cm 7.45 mm 1.93 GeV 25.7 keV 19.3 cm 19.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -11.2 cm 1.94 cm 1.17 GeV 22.7 keV 11.7 cm 11.7 cm World eIoni + 2 2.08 mum -20 cm 2.22 cm 2.05 GeV 18.8 keV 8.79 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -11.2 cm 1.94 cm 1.54 keV 0 eV 0 fm 0 fm World initStep + 1 -7.08 mum -11.2 cm 1.94 cm 1.15 MeV 1.54 keV 105 mum 105 mum World eIoni + 2 -30.4 mum -20 cm 1.94 cm 879 MeV 11.7 keV 8.78 cm 8.79 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -12.3 cm 1.98 cm 1.28 GeV 27.7 keV 12.8 cm 12.8 cm World eIoni + 2 -992 nm -20 cm 2.22 cm 2.05 GeV 14 keV 7.66 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -12.3 cm 1.98 cm 1.53 keV 0 eV 0 fm 0 fm World initStep + 1 4.04 mum -12.4 cm 1.99 cm 1.15 MeV 1.53 keV 105 mum 105 mum World eIoni + 2 17.3 mum -20 cm 1.99 cm 765 MeV 11.5 keV 7.64 cm 7.65 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -14.9 cm 2.08 cm 1.54 GeV 28.4 keV 15.4 cm 15.4 cm World eIoni + 2 67.9 nm -15.6 cm 2.1 cm 1.61 GeV 1.56 keV 7.07 mm 16.1 cm World eIoni + 3 61.2 nm -18.1 cm 2.17 cm 1.86 GeV 5.09 keV 2.5 cm 18.6 cm World eIoni + 4 -241 nm -20 cm 2.22 cm 2.05 GeV 3.04 keV 1.91 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 61.2 nm -18.1 cm 2.17 cm 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 4.74 mum -18.1 cm 2.17 cm 705 keV 1.08 keV 64.2 mum 64.2 mum World eIoni + 2 20.4 mum -20 cm 2.17 cm 191 MeV 2.79 keV 1.91 cm 1.91 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 67.9 nm -15.6 cm 2.1 cm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 2.53 mum -15.6 cm 2.1 cm 747 keV 1.12 keV 67.8 mum 67.8 mum World eIoni + 2 11.8 mum -20 cm 2.1 cm 441 MeV 4.94 keV 4.4 cm 4.41 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -14.9 cm 2.08 cm 1.89 keV 0 eV 0 fm 0 fm World initStep + 1 -3.27 mum -14.9 cm 2.07 cm 1.57 MeV 1.89 keV 144 mum 144 mum World eIoni + 2 -11.7 mum -20 cm 2.07 cm 512 MeV 7.03 keV 5.1 cm 5.12 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.76 cm 1.1 cm 226 MeV 3.7 keV 2.2 cm 2.2 cm World eIoni + 2 -6.02 mum -20 cm 2.22 cm 2.05 GeV 38.6 keV 18.3 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.76 cm 1.1 cm 2.66 keV 0 eV 0 fm 0 fm World initStep + 1 7.37 mum -1.78 cm 1.1 cm 2.69 MeV 2.66 keV 247 mum 247 mum World eIoni + 2 14.4 mum -2.16 cm 1.1 cm 41.1 MeV 656 eV 3.85 mm 4.09 mm World eIoni + 3 20.2 mum -5.19 cm 1.1 cm 344 MeV 7.11 keV 3.03 cm 3.44 cm World eIoni + 4 21 mum -20 cm 1.1 cm 1.82 GeV 31.1 keV 14.8 cm 18.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 20.2 mum -5.19 cm 1.1 cm 2.54 keV 0 eV 0 fm 0 fm World initStep + 1 26.1 mum -5.22 cm 1.11 cm 2.47 MeV 2.54 keV 228 mum 228 mum World eIoni + 2 32.5 mum -5.67 cm 1.11 cm 48 MeV 799 eV 4.55 mm 4.78 mm World eIoni + 3 38.7 mum -11.8 cm 1.11 cm 657 MeV 11.2 keV 6.09 cm 6.57 cm World eIoni + 4 38.8 mum -12.6 cm 1.11 cm 745 MeV 2.36 keV 8.82 mm 7.45 cm World eIoni + 5 36.6 mum -20 cm 1.11 cm 1.48 GeV 15.3 keV 7.35 cm 14.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 38.8 mum -12.6 cm 1.11 cm 2.05 keV 0 eV 0 fm 0 fm World initStep + 1 48.1 mum -12.7 cm 1.11 cm 1.77 MeV 2.05 keV 162 mum 162 mum World eIoni + 2 64.9 mum -13.9 cm 1.11 cm 121 MeV 3.51 keV 1.2 cm 1.21 cm World eIoni + 3 72 mum -19.6 cm 1.11 cm 696 MeV 9.87 keV 5.74 cm 6.96 cm World eIoni + 4 72.2 mum -20 cm 1.11 cm 736 MeV 451 eV 4 mm 7.35 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 72 mum -19.6 cm 1.11 cm 17.3 keV 0 eV 0 fm 0 fm World initStep + 1 27.4 mum -20 cm 1.14 cm 51.5 MeV 8.33 keV 4.27 mm 4.27 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 38.7 mum -11.8 cm 1.11 cm 5.91 keV 0 eV 0 fm 0 fm World initStep + 1 45 mum -11.9 cm 1.1 cm 10.3 MeV 5.91 keV 973 mum 973 mum World eIoni + 2 47.8 mum -12.6 cm 1.1 cm 80.5 MeV 1.42 keV 7.02 mm 7.99 mm World eIoni + 3 44.3 mum -20 cm 1.1 cm 824 MeV 15.5 keV 7.44 cm 8.24 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 47.8 mum -12.6 cm 1.1 cm 1.26 keV 0 eV 0 fm 0 fm World initStep + 1 52.7 mum -12.6 cm 1.1 cm 868 keV 1.26 keV 79 mum 79 mum World eIoni + 2 70.6 mum -20 cm 1.1 cm 744 MeV 8.86 keV 7.43 cm 7.44 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -6.92 cm 1.71 cm 742 MeV 12.8 keV 7.4 cm 7.4 cm World eIoni + 2 1.34 mum -20 cm 2.22 cm 2.05 GeV 31.9 keV 13.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.92 cm 1.71 cm 998 eV 0 eV 0 fm 0 fm World initStep + 1 -1.92 mum -6.92 cm 1.71 cm 632 keV 998 eV 57.6 mum 57.6 mum World eIoni + 2 -11.4 mum -20 cm 1.7 cm 1.31 GeV 21.7 keV 13.1 cm 13.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.68 cm 1.53 cm 518 MeV 9.13 keV 5.16 cm 5.16 cm World eIoni + 2 -551 nm -8.18 cm 1.79 cm 868 MeV 5.34 keV 3.51 cm 8.67 cm World eIoni + 3 -842 nm -16.5 cm 2.12 cm 1.7 GeV 15.3 keV 8.29 cm 17 cm World eIoni + 4 -3.14 mum -20 cm 2.22 cm 2.05 GeV 9.13 keV 3.54 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -842 nm -16.5 cm 2.12 cm 41.1 keV 0 eV 0 fm 0 fm World initStep + 1 97.9 mum -17.2 cm 2.14 cm 73.4 MeV 5.73 keV 7.21 mm 7.21 mm World eIoni + 2 124 mum -20 cm 2.14 cm 356 MeV 6.95 keV 2.82 cm 3.54 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 97.9 mum -17.2 cm 2.14 cm 2.22 keV 0 eV 0 fm 0 fm World initStep + 1 86.7 mum -17.2 cm 2.14 cm 2.02 MeV 2.22 keV 185 mum 185 mum World eIoni + 2 73.8 mum -17.6 cm 2.14 cm 40.5 MeV 575 eV 3.85 mm 4.04 mm World eIoni + 3 69.8 mum -18.1 cm 2.14 cm 95.1 MeV 984 eV 5.46 mm 9.49 mm World eIoni + 4 60.7 mum -20 cm 2.14 cm 283 MeV 3.69 keV 1.88 cm 2.82 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 69.8 mum -18.1 cm 2.14 cm 1.38 keV 0 eV 0 fm 0 fm World initStep + 1 76.5 mum -18.1 cm 2.14 cm 988 keV 1.38 keV 89.9 mum 89.9 mum World eIoni + 2 94.8 mum -20 cm 2.14 cm 188 MeV 2.15 keV 1.87 cm 1.88 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -551 nm -8.18 cm 1.79 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 -1.61 mum -8.19 cm 1.79 cm 859 keV 1.25 keV 78.3 mum 78.3 mum World eIoni + 2 -5.85 mum -20 cm 1.78 cm 1.18 GeV 15.5 keV 11.8 cm 11.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.68 cm 1.53 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 1.84 mum -4.69 cm 1.53 cm 902 keV 1.29 keV 81.8 mum 81.8 mum World eIoni + 2 9.45 mum -20 cm 1.53 cm 1.53 GeV 22.3 keV 15.3 cm 15.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.14 cm 1.72 cm 764 MeV 17.2 keV 7.63 cm 7.63 cm World eIoni + 2 1.51 mum -10 cm 1.88 cm 1.05 GeV 7.94 keV 2.87 cm 10.5 cm World eIoni + 3 2.53 mum -20 cm 2.22 cm 2.05 GeV 19 keV 10 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.51 mum -10 cm 1.88 cm 1.33 keV 0 eV 0 fm 0 fm World initStep + 1 7.11 mum -10 cm 1.88 cm 945 keV 1.33 keV 86.1 mum 86.1 mum World eIoni + 2 28.3 mum -20 cm 1.88 cm 999 MeV 12.7 keV 9.98 cm 9.99 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.14 cm 1.72 cm 2.2 keV 0 eV 0 fm 0 fm World initStep + 1 -11.3 mum -7.16 cm 1.72 cm 1.98 MeV 2.2 keV 181 mum 181 mum World eIoni + 2 -22.5 mum -7.4 cm 1.72 cm 25.7 MeV 727 eV 2.37 mm 2.55 mm World eIoni + 3 -33.7 mum -17.9 cm 1.72 cm 1.08 GeV 18.1 keV 10.5 cm 10.8 cm World eIoni + 4 -34.7 mum -20 cm 1.72 cm 1.29 GeV 4.68 keV 2.08 cm 12.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -33.7 mum -17.9 cm 1.72 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 -28.4 mum -17.9 cm 1.72 cm 833 keV 1.22 keV 75.7 mum 75.7 mum World eIoni + 2 -12.2 mum -20 cm 1.72 cm 208 MeV 3.17 keV 2.07 cm 2.08 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -22.5 mum -7.4 cm 1.72 cm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 -25.3 mum -7.4 cm 1.72 cm 701 keV 1.07 keV 63.7 mum 63.7 mum World eIoni + 2 -38.2 mum -20 cm 1.72 cm 1.26 GeV 20.3 keV 12.6 cm 12.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.99 mm 6.62 mm 99.9 MeV 2.09 keV 8.68 mm 8.68 mm World eIoni + 2 -9.87 mum -3.25 cm 1.36 cm 375 MeV 5.21 keV 2.86 cm 3.72 cm World eIoni + 3 -11.5 mum -4.06 cm 1.46 cm 456 MeV 1.1 keV 8.14 mm 4.54 cm World eIoni + 4 -19 mum -16 cm 2.11 cm 1.65 GeV 25.2 keV 11.9 cm 16.5 cm World eIoni + 5 -19.5 mum -16.9 cm 2.13 cm 1.74 GeV 2.23 keV 9.01 mm 17.4 cm World eIoni + 6 -20.5 mum -20 cm 2.22 cm 2.05 GeV 5.76 keV 3.14 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -19.5 mum -16.9 cm 2.13 cm 2.85 keV 0 eV 0 fm 0 fm World initStep + 1 -31.6 mum -16.9 cm 2.13 cm 2.99 MeV 2.85 keV 277 mum 277 mum World eIoni + 2 -41.7 mum -17.2 cm 2.13 cm 35.8 MeV 738 eV 3.28 mm 3.56 mm WorldTransportation + 3 -41.7 mum -17.2 cm 2.13 cm 35.8 MeV 0 eV 0 fm 3.56 mm World eIoni + 4 -51.2 mum -20 cm 2.13 cm 314 MeV 6.39 keV 2.78 cm 3.14 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -19 mum -16 cm 2.11 cm 4.98 keV 0 eV 0 fm 0 fm World initStep + 1 -771 nm -16 cm 2.1 cm 7.62 MeV 4.98 keV 715 mum 715 mum World eIoni + 2 6.37 mum -16.3 cm 2.1 cm 39 MeV 374 eV 3.14 mm 3.86 mm World eIoni + 3 17.1 mum -20 cm 2.1 cm 405 MeV 5.54 keV 3.66 cm 4.04 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -11.5 mum -4.06 cm 1.46 cm 1.67 keV 0 eV 0 fm 0 fm World initStep + 1 -17.1 mum -4.07 cm 1.46 cm 1.31 MeV 1.67 keV 119 mum 119 mum World eIoni + 2 -36.2 mum -20 cm 1.46 cm 1.59 GeV 21 keV 15.9 cm 15.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -9.87 mum -3.25 cm 1.36 cm 1.74 keV 0 eV 0 fm 0 fm World initStep + 1 -7 mum -3.27 cm 1.36 cm 1.38 MeV 1.74 keV 127 mum 127 mum World eIoni + 2 2.42 mum -20 cm 1.36 cm 1.67 GeV 22 keV 16.7 cm 16.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.99 mm 6.62 mm 15.9 keV 0 eV 0 fm 0 fm World initStep + 1 41.5 mum -7.04 mm 6.67 mm 21.8 MeV 2.85 keV 2.11 mm 2.11 mm World eIoni + 2 67 mum -7.93 cm 6.71 mm 745 MeV 12.1 keV 7.23 cm 7.44 cm World eIoni + 3 68.4 mum -11.8 cm 6.71 mm 1.13 GeV 5.77 keV 3.86 cm 11.3 cm World eIoni + 4 67.9 mum -17.2 cm 6.72 mm 1.67 GeV 10.5 keV 5.41 cm 16.7 cm World eIoni + 5 67.4 mum -20 cm 6.72 mm 1.95 GeV 7.25 keV 2.8 cm 19.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 67.9 mum -17.2 cm 6.72 mm 1.16 keV 0 eV 0 fm 0 fm World initStep + 1 73.5 mum -17.2 cm 6.72 mm 780 keV 1.16 keV 70.9 mum 70.9 mum World eIoni + 2 92.3 mum -20 cm 6.72 mm 280 MeV 6.69 keV 2.79 cm 2.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 68.4 mum -11.8 cm 6.71 mm 2.48 keV 0 eV 0 fm 0 fm World initStep + 1 79.8 mum -11.8 cm 6.72 mm 2.38 MeV 2.48 keV 219 mum 219 mum World eIoni + 2 89.7 mum -12 cm 6.72 mm 25.4 MeV 391 eV 2.3 mm 2.52 mm World eIoni + 3 104 mum -20 cm 6.73 mm 821 MeV 17.4 keV 7.95 cm 8.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 67 mum -7.93 cm 6.71 mm 1.61 keV 0 eV 0 fm 0 fm World initStep + 1 74.6 mum -7.95 cm 6.71 mm 1.23 MeV 1.61 keV 112 mum 112 mum World eIoni + 2 99.8 mum -20 cm 6.72 mm 1.21 GeV 15.8 keV 12.1 cm 12.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.59 cm 1.06 cm 209 MeV 4.07 keV 2.03 cm 2.03 cm World eIoni + 2 1.22 mum -5.31 cm 1.58 cm 581 MeV 9.77 keV 3.76 cm 5.79 cm World eIoni + 3 5.09 mum -13.6 cm 2.03 cm 1.41 GeV 20.5 keV 8.32 cm 14.1 cm World eIoni + 4 7.71 mum -20 cm 2.22 cm 2.05 GeV 12 keV 6.39 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 5.09 mum -13.6 cm 2.03 cm 1.4 keV 0 eV 0 fm 0 fm World initStep + 1 251 nm -13.6 cm 2.03 cm 1.01 MeV 1.4 keV 91.9 mum 91.9 mum World eIoni + 2 -16.2 mum -20 cm 2.03 cm 639 MeV 9.91 keV 6.38 cm 6.39 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.22 mum -5.31 cm 1.58 cm 1.89 keV 0 eV 0 fm 0 fm World initStep + 1 -5.62 mum -5.32 cm 1.58 cm 1.56 MeV 1.89 keV 143 mum 143 mum World eIoni + 2 -26.2 mum -20 cm 1.58 cm 1.47 GeV 20 keV 14.7 cm 14.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.59 cm 1.06 cm 1.24 keV 0 eV 0 fm 0 fm World initStep + 1 -2 mum -1.59 cm 1.06 cm 859 keV 1.24 keV 77.2 mum 77.2 mum World eIoni + 2 -10.7 mum -20 cm 1.06 cm 1.84 GeV 25.8 keV 18.4 cm 18.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -18 cm 2.17 cm 1.85 GeV 32.1 keV 18.5 cm 18.5 cm World eIoni + 2 420 nm -19.4 cm 2.2 cm 1.99 GeV 3.48 keV 1.35 cm 19.9 cm World eIoni + 3 457 nm -20 cm 2.22 cm 2.05 GeV 2.62 keV 6.3 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 420 nm -19.4 cm 2.2 cm 2.25 keV 0 eV 0 fm 0 fm World initStep + 1 12 mum -19.4 cm 2.2 cm 2.06 MeV 2.25 keV 189 mum 189 mum World eIoni + 2 27.5 mum -20 cm 2.2 cm 63.2 MeV 898 eV 6.11 mm 6.3 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -18 cm 2.17 cm 4.29 keV 0 eV 0 fm 0 fm World initStep + 1 -11.7 mum -18 cm 2.17 cm 1.33 MeV 388 eV 129 mum 129 mum World eIoni + 2 -40 mum -19.9 cm 2.17 cm 188 MeV 3.7 keV 1.87 cm 1.88 cm World eIoni + 3 -40.1 mum -20 cm 2.17 cm 198 MeV 45.2 eV 992 mum 1.98 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 43 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.91 mm 5.94 mm 89.1 MeV 1.56 keV 7.4 mm 7.4 mm World eIoni + 2 -9.35 mum -8.02 cm 1.78 cm 852 MeV 16.9 keV 7.77 cm 8.51 cm World eIoni + 3 -15.5 mum -15.7 cm 2.1 cm 1.62 GeV 15.5 keV 7.67 cm 16.2 cm World eIoni + 4 -18.1 mum -19.2 cm 2.2 cm 1.97 GeV 7.13 keV 3.55 cm 19.7 cm World eIoni + 5 -18.9 mum -20 cm 2.22 cm 2.05 GeV 1.17 keV 7.68 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -18.1 mum -19.2 cm 2.2 cm 3.66 keV 0 eV 0 fm 0 fm World initStep + 1 830 nm -19.3 cm 2.2 cm 4.53 MeV 3.66 keV 421 mum 421 mum World eIoni + 2 16.3 mum -20 cm 2.2 cm 73.3 MeV 886 eV 6.88 mm 7.3 mm World eIoni + 3 16.4 mum -20 cm 2.2 cm 77.2 MeV 52.6 eV 387 mum 7.69 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -15.5 mum -15.7 cm 2.1 cm 1.55 keV 0 eV 0 fm 0 fm World initStep + 1 -7.9 mum -15.7 cm 2.1 cm 1.16 MeV 1.55 keV 106 mum 106 mum World eIoni + 2 14.3 mum -20 cm 2.1 cm 432 MeV 4.48 keV 4.3 cm 4.31 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -9.35 mum -8.02 cm 1.78 cm 7.3 keV 0 eV 0 fm 0 fm World initStep + 1 17.6 mum -8.14 cm 1.77 cm 12.6 MeV 5.87 keV 1.19 mm 1.19 mm World eIoni + 2 34.2 mum -10.6 cm 1.77 cm 257 MeV 5.02 keV 2.45 cm 2.57 cm World eIoni + 3 40 mum -12.9 cm 1.77 cm 487 MeV 5.51 keV 2.3 cm 4.86 cm World eIoni + 4 42.8 mum -14.3 cm 1.77 cm 632 MeV 2.72 keV 1.45 cm 6.31 cm World eIoni + 5 53.2 mum -20 cm 1.77 cm 1.2 GeV 10.2 keV 5.67 cm 12 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 42.8 mum -14.3 cm 1.77 cm 3.47 keV 0 eV 0 fm 0 fm World initStep + 1 25.2 mum -14.4 cm 1.77 cm 4.13 MeV 3.47 keV 384 mum 384 mum World eIoni + 2 11.4 mum -14.9 cm 1.77 cm 55.6 MeV 1.28 keV 5.15 mm 5.53 mm World eIoni + 3 -1.84 mum -19.9 cm 1.77 cm 561 MeV 10.7 keV 5.05 cm 5.61 cm World eIoni + 4 -1.85 mum -20 cm 1.77 cm 568 MeV 104 eV 657 mum 5.67 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.84 mum -19.9 cm 1.77 cm 2.21 keV 0 eV 0 fm 0 fm World initStep + 1 -12.9 mum -20 cm 1.77 cm 1.99 MeV 2.21 keV 183 mum 183 mum World eIoni + 2 -17.9 mum -20 cm 1.77 cm 6.76 MeV 709 eV 477 mum 660 mumOutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 40 mum -12.9 cm 1.77 cm 1.33 keV 0 eV 0 fm 0 fm World initStep + 1 37.2 mum -12.9 cm 1.77 cm 941 keV 1.33 keV 85.6 mum 85.6 mum World eIoni + 2 27.1 mum -20 cm 1.77 cm 712 MeV 11.1 keV 7.11 cm 7.12 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 34.2 mum -10.6 cm 1.77 cm 1.26 keV 0 eV 0 fm 0 fm World initStep + 1 28.2 mum -10.6 cm 1.77 cm 865 keV 1.26 keV 78.7 mum 78.7 mum World eIoni + 2 4.42 mum -20 cm 1.77 cm 942 MeV 14.6 keV 9.41 cm 9.42 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.91 mm 5.94 mm 2.24 keV 0 eV 0 fm 0 fm World initStep + 1 9.43 mum -4.1 mm 5.93 mm 2.02 MeV 2.24 keV 187 mum 187 mum World eIoni + 2 10 mum -4.14 mm 5.93 mm 2.42 MeV 5.68 eV 39.2 mum 226 mum World eIoni + 3 26.6 mum -1.78 cm 5.92 mm 139 MeV 1.46 keV 1.37 cm 1.39 cm World eIoni + 4 47.6 mum -20 cm 5.92 mm 1.96 GeV 38.7 keV 18.2 cm 19.6 cm World eIoni + 5 47.6 mum -20 cm 5.92 mm 1.96 GeV 0 eV 292 mum 19.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 47.6 mum -20 cm 5.92 mm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 44.6 mum -20 cm 5.93 mm 721 keV 1.1 keV 65.6 mum 65.6 mum World eIoni + 2 42.6 mum -20 cm 5.93 mm 3 MeV 0 eV 228 mum 294 mumOutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 26.6 mum -1.78 cm 5.92 mm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 21 mum -1.79 cm 5.92 mm 828 keV 1.21 keV 75.3 mum 75.3 mum World eIoni + 2 -4.2 mum -20 cm 5.92 mm 1.82 GeV 27.2 keV 18.2 cm 18.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.88 cm 1.63 cm 638 MeV 11.2 keV 6.37 cm 6.37 cm World eIoni + 2 51.3 nm -6.27 cm 1.66 cm 677 MeV 840 eV 3.9 mm 6.76 cm World eIoni + 3 -1.34 mum -12.1 cm 1.97 cm 1.26 GeV 11.5 keV 5.81 cm 12.6 cm World eIoni + 4 -3.39 mum -18.3 cm 2.18 cm 1.88 GeV 10.1 keV 6.19 cm 18.8 cm World eIoni + 5 -4.12 mum -20 cm 2.22 cm 2.05 GeV 3.8 keV 1.74 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -3.39 mum -18.3 cm 2.18 cm 2.64 keV 0 eV 0 fm 0 fm World initStep + 1 4.97 mum -18.3 cm 2.18 cm 2.63 MeV 2.64 keV 243 mum 243 mum World eIoni + 2 15.7 mum -19.2 cm 2.18 cm 92.1 MeV 833 eV 8.94 mm 9.19 mm World eIoni + 3 17.7 mum -20 cm 2.18 cm 174 MeV 1.88 keV 8.18 mm 1.74 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.34 mum -12.1 cm 1.97 cm 1.34 keV 0 eV 0 fm 0 fm World initStep + 1 3.67 mum -12.1 cm 1.97 cm 953 keV 1.34 keV 86.8 mum 86.8 mum World eIoni + 2 21.6 mum -20 cm 1.97 cm 793 MeV 14.3 keV 7.92 cm 7.92 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 51.3 nm -6.27 cm 1.66 cm 6.53 keV 0 eV 0 fm 0 fm World initStep + 1 15.4 mum -6.39 cm 1.66 cm 12.3 MeV 6.53 keV 1.16 mm 1.16 mm World eIoni + 2 15.7 mum -6.4 cm 1.66 cm 14 MeV 0 eV 164 mum 1.33 mm World eIoni + 3 29.8 mum -19.1 cm 1.65 cm 1.28 GeV 24.9 keV 12.7 cm 12.8 cm World eIoni + 4 29.7 mum -19.5 cm 1.65 cm 1.32 GeV 474 eV 4.41 mm 13.2 cm World eIoni + 5 29.8 mum -20 cm 1.65 cm 1.37 GeV 1.51 keV 4.95 mm 13.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 29.7 mum -19.5 cm 1.65 cm 1.11 keV 0 eV 0 fm 0 fm World initStep + 1 24.4 mum -19.5 cm 1.65 cm 738 keV 1.11 keV 67.1 mum 67.1 mum World eIoni + 2 11.7 mum -20 cm 1.65 cm 49.6 MeV 683 eV 4.89 mm 4.96 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 29.8 mum -19.1 cm 1.65 cm 3.06 keV 0 eV 0 fm 0 fm World initStep + 1 42.8 mum -19.1 cm 1.65 cm 3.34 MeV 3.06 keV 310 mum 310 mum World eIoni + 2 55.4 mum -19.7 cm 1.66 cm 64.6 MeV 355 eV 6.12 mm 6.43 mm World eIoni + 3 56.3 mum -20 cm 1.66 cm 93.9 MeV 1.51 keV 2.94 mm 9.37 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.88 cm 1.63 cm 2.73 keV 0 eV 0 fm 0 fm World initStep + 1 -2.37 mum -5.91 cm 1.63 cm 2.8 MeV 2.73 keV 258 mum 258 mum World eIoni + 2 -4.83 mum -6.44 cm 1.63 cm 55.4 MeV 733 eV 5.26 mm 5.52 mm WorldTransportation + 3 -4.83 mum -6.44 cm 1.63 cm 55.4 MeV 0 eV 0.00108 fm 5.52 mm World eIoni + 4 -7.55 mum -17.3 cm 1.64 cm 1.14 GeV 20.7 keV 10.8 cm 11.4 cm World eIoni + 5 -8.67 mum -20 cm 1.64 cm 1.41 GeV 3.87 keV 2.73 cm 14.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -7.55 mum -17.3 cm 1.64 cm 2.26 keV 0 eV 0 fm 0 fm World initStep + 1 4.05 mum -17.3 cm 1.64 cm 2.07 MeV 2.26 keV 190 mum 190 mum World eIoni + 2 16.6 mum -17.6 cm 1.64 cm 34.4 MeV 71.2 eV 3.24 mm 3.43 mm World eIoni + 3 28.3 mum -20 cm 1.64 cm 273 MeV 5.53 keV 2.39 cm 2.73 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 16.6 mum -17.6 cm 1.64 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 15.4 mum -17.6 cm 1.64 cm 676 keV 1.05 keV 61.5 mum 61.5 mum World eIoni + 2 11.2 mum -20 cm 1.63 cm 239 MeV 3.29 keV 2.38 cm 2.39 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.55 cm 1.86 cm 1 GeV 19.7 keV 10 cm 10 cm World eIoni + 2 6.11 mum -12.9 cm 2 cm 1.34 GeV 5.34 keV 3.32 cm 13.4 cm World eIoni + 3 13.4 mum -20 cm 2.22 cm 2.05 GeV 13.4 keV 7.13 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 6.11 mum -12.9 cm 2 cm 1.83 keV 0 eV 0 fm 0 fm World initStep + 1 15.3 mum -12.9 cm 2 cm 1.5 MeV 1.83 keV 137 mum 137 mum World eIoni + 2 40.9 mum -20 cm 2 cm 713 MeV 12.9 keV 7.12 cm 7.13 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.55 cm 1.86 cm 52.2 keV 0 eV 0 fm 0 fm World initStep + 1 -180 mum -11.3 cm 1.87 cm 179 MeV 11.6 keV 1.78 cm 1.78 cm World eIoni + 2 -214 mum -18.3 cm 1.87 cm 877 MeV 15.8 keV 6.97 cm 8.76 cm World eIoni + 3 -216 mum -19.3 cm 1.87 cm 976 MeV 2.56 keV 9.94 mm 9.75 cm World eIoni + 4 -218 mum -20 cm 1.87 cm 1.05 GeV 1.88 keV 7.07 mm 10.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -216 mum -19.3 cm 1.87 cm 2.09 keV 0 eV 0 fm 0 fm World initStep + 1 -214 mum -19.3 cm 1.87 cm 1.83 MeV 2.09 keV 168 mum 168 mum World eIoni + 2 -211 mum -20 cm 1.87 cm 70.9 MeV 1.27 keV 6.91 mm 7.08 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -214 mum -18.3 cm 1.87 cm 2.28 keV 0 eV 0 fm 0 fm World initStep + 1 -212 mum -18.3 cm 1.87 cm 2.09 MeV 2.28 keV 192 mum 192 mum World eIoni + 2 -209 mum -19.3 cm 1.87 cm 105 MeV 1.09 keV 1.03 cm 1.05 cm World eIoni + 3 -209 mum -20 cm 1.87 cm 170 MeV 1.73 keV 6.55 mm 1.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.25 cm 1.73 cm 775 MeV 13.5 keV 7.74 cm 7.74 cm World eIoni + 2 -695 nm -8.84 cm 1.82 cm 933 MeV 1.85 keV 1.58 cm 9.33 cm World eIoni + 3 -4.26 mum -20 cm 2.22 cm 2.05 GeV 21.5 keV 11.2 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -695 nm -8.84 cm 1.82 cm 4.68 keV 0 eV 0 fm 0 fm World initStep + 1 2.4 mum -8.9 cm 1.83 cm 6.88 MeV 4.68 keV 645 mum 645 mum World eIoni + 2 3.56 mum -9.14 cm 1.83 cm 31.1 MeV 78.5 eV 2.42 mm 3.06 mm World eIoni + 3 4.85 mum -10.4 cm 1.83 cm 159 MeV 4.56 keV 1.28 cm 1.59 cm World eIoni + 4 13.2 mum -17.5 cm 1.83 cm 867 MeV 12.1 keV 7.08 cm 8.67 cm World eIoni + 5 14.7 mum -20 cm 1.83 cm 1.12 GeV 4.86 keV 2.5 cm 11.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 13.2 mum -17.5 cm 1.83 cm 1.59 keV 0 eV 0 fm 0 fm World initStep + 1 11.2 mum -17.5 cm 1.83 cm 1.21 MeV 1.59 keV 110 mum 110 mum World eIoni + 2 5.87 mum -20 cm 1.83 cm 250 MeV 3.82 keV 2.48 cm 2.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 4.85 mum -10.4 cm 1.83 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 -3.29 mum -10.4 cm 1.83 cm 1.28 MeV 1.65 keV 117 mum 117 mum World eIoni + 2 -29.2 mum -20 cm 1.83 cm 958 MeV 12.7 keV 9.57 cm 9.58 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.25 cm 1.73 cm 3.01 keV 0 eV 0 fm 0 fm World initStep + 1 10.8 mum -7.28 cm 1.73 cm 3.25 MeV 3.01 keV 301 mum 301 mum World eIoni + 2 15.1 mum -7.36 cm 1.73 cm 11.3 MeV 6.46 eV 808 mum 1.11 mm World eIoni + 3 27.9 mum -10.4 cm 1.73 cm 312 MeV 4.58 keV 3.01 cm 3.12 cm World eIoni + 4 26.9 mum -18.4 cm 1.73 cm 1.11 GeV 16.5 keV 7.99 cm 11.1 cm World eIoni + 5 27.2 mum -20 cm 1.73 cm 1.27 GeV 2.79 keV 1.64 cm 12.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 26.9 mum -18.4 cm 1.73 cm 1 keV 0 eV 0 fm 0 fm World initStep + 1 23.5 mum -18.4 cm 1.73 cm 639 keV 1 keV 58.1 mum 58.1 mum World eIoni + 2 11.8 mum -20 cm 1.73 cm 164 MeV 2.91 keV 1.63 cm 1.64 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 27.9 mum -10.4 cm 1.73 cm 5.24 keV 0 eV 0 fm 0 fm World initStep + 1 46.6 mum -10.4 cm 1.72 cm 8.37 MeV 5.24 keV 786 mum 786 mum World eIoni + 2 53.9 mum -10.8 cm 1.72 cm 45.8 MeV 214 eV 3.75 mm 4.53 mm World eIoni + 3 67.2 mum -20 cm 1.72 cm 964 MeV 17.2 keV 9.18 cm 9.63 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.11 cm 9.24 mm 161 MeV 4.3 keV 1.53 cm 1.53 cm World eIoni + 2 7.72 mum -20 cm 2.22 cm 2.05 GeV 33.6 keV 19 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.11 cm 9.24 mm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 -5.04 mum -1.11 cm 9.24 mm 839 keV 1.22 keV 75.7 mum 75.7 mum World eIoni + 2 -27.3 mum -20 cm 9.25 mm 1.89 GeV 26.5 keV 18.9 cm 18.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -23.8 mum 491 mum 50.2 MeV 27.2 eV 491 mum 491 mum World eIoni + 2 -4.28 mum -1.21 cm 9.55 mm 171 MeV 2.76 keV 1.59 cm 1.64 cm World eIoni + 3 -15.7 mum -8.72 cm 1.82 cm 922 MeV 13.9 keV 7.58 cm 9.21 cm World eIoni + 4 -21.6 mum -14.6 cm 2.07 cm 1.51 GeV 11.8 keV 5.84 cm 15.1 cm World eIoni + 5 -24.1 mum -18.5 cm 2.18 cm 1.87 GeV 6.42 keV 3.93 cm 19 cm World eIoni + 6 -33.8 mum -20 cm 2.23 cm 2.02 GeV 3.02 keV 1.52 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -24.1 mum -18.5 cm 2.18 cm 26.6 MeV 0 eV 0 fm 0 fm World initStep + 1 191 mum -20 cm 2.1 cm 178 MeV 3.8 keV 1.52 cm 1.52 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -21.6 mum -14.6 cm 2.07 cm 3.06 keV 0 eV 0 fm 0 fm World initStep + 1 -24.3 mum -14.6 cm 2.07 cm 3.35 MeV 3.06 keV 310 mum 310 mum World eIoni + 2 -24.8 mum -14.6 cm 2.07 cm 6.6 MeV 12.8 eV 325 mum 636 mum World eIoni + 3 -28.9 mum -20 cm 2.07 cm 545 MeV 10.4 keV 5.38 cm 5.45 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -15.7 mum -8.72 cm 1.82 cm 4.25 keV 0 eV 0 fm 0 fm World initStep + 1 -3.62 mum -8.74 cm 1.82 cm 1.99 MeV 323 eV 189 mum 189 mum World eIoni + 2 6.57 mum -8.89 cm 1.82 cm 16.8 MeV 47.6 eV 1.48 mm 1.67 mm World eIoni + 3 27.5 mum -18 cm 1.81 cm 929 MeV 15.8 keV 9.12 cm 9.29 cm World eIoni + 4 27.7 mum -20 cm 1.81 cm 1.13 GeV 5.8 keV 1.99 cm 11.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 27.5 mum -18 cm 1.81 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 32 mum -18 cm 1.82 cm 861 keV 1.25 keV 78.3 mum 78.3 mum World eIoni + 2 45.5 mum -20 cm 1.82 cm 199 MeV 1.86 keV 1.98 cm 1.99 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -4.28 mum -1.21 cm 9.55 mm 4.71 keV 0 eV 0 fm 0 fm World initStep + 1 12.4 mum -1.27 cm 9.53 mm 6.96 MeV 4.71 keV 652 mum 652 mum World eIoni + 2 18.2 mum -1.48 cm 9.53 mm 28.2 MeV 202 eV 2.12 mm 2.78 mm World eIoni + 3 31.7 mum -6.13 cm 9.51 mm 492 MeV 8.89 keV 4.64 cm 4.92 cm World eIoni + 4 30.7 mum -17.4 cm 9.51 mm 1.61 GeV 24.3 keV 11.2 cm 16.1 cm World eIoni + 5 30.5 mum -20 cm 9.51 mm 1.88 GeV 4.97 keV 2.65 cm 18.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 30.7 mum -17.4 cm 9.51 mm 1.87 keV 0 eV 0 fm 0 fm World initStep + 1 31.1 mum -17.4 cm 9.5 mm 1.54 MeV 1.87 keV 141 mum 141 mum World eIoni + 2 32 mum -20 cm 9.48 mm 265 MeV 4.09 keV 2.63 cm 2.65 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 31.7 mum -6.13 cm 9.51 mm 3.65 keV 0 eV 0 fm 0 fm World initStep + 1 48.8 mum -6.17 cm 9.5 mm 4.51 MeV 3.65 keV 420 mum 420 mum World eIoni + 2 61.6 mum -6.7 cm 9.49 mm 58 MeV 808 eV 5.35 mm 5.77 mm World eIoni + 3 62.5 mum -6.8 cm 9.49 mm 68.1 MeV 529 eV 1.01 mm 6.78 mm World eIoni + 4 58.8 mum -9.84 cm 9.49 mm 372 MeV 6.34 keV 3.04 cm 3.72 cm World eIoni + 5 58.6 mum -20 cm 9.5 mm 1.39 GeV 24.6 keV 10.2 cm 13.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 58.8 mum -9.84 cm 9.49 mm 2.35 keV 0 eV 0 fm 0 fm World initStep + 1 53.8 mum -9.86 cm 9.48 mm 2.19 MeV 2.35 keV 202 mum 202 mum World eIoni + 2 46.9 mum -10.7 cm 9.47 mm 81.9 MeV 564 eV 7.97 mm 8.18 mm World eIoni + 3 38.7 mum -20 cm 9.46 mm 1.02 GeV 20.8 keV 9.34 cm 10.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 11 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 46.9 mum -10.7 cm 9.47 mm 1.19 keV 0 eV 0 fm 0 fm World initStep + 1 49 mum -10.7 cm 9.46 mm 803 keV 1.19 keV 73 mum 73 mum World eIoni + 2 57.6 mum -20 cm 9.44 mm 934 MeV 12 keV 9.33 cm 9.34 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 62.5 mum -6.8 cm 9.49 mm 6.1 keV 0 eV 0 fm 0 fm World initStep + 1 96.9 mum -6.9 cm 9.48 mm 10.9 MeV 6.1 keV 1.03 mm 1.03 mm World eIoni + 2 104 mum -7.07 cm 9.48 mm 27.6 MeV 993 eV 1.67 mm 2.7 mm World eIoni + 3 130 mum -15.8 cm 9.47 mm 896 MeV 17.4 keV 8.69 cm 8.96 cm World eIoni + 4 131 mum -18.8 cm 9.46 mm 1.2 GeV 7.08 keV 3.08 cm 12 cm World eIoni + 5 132 mum -20 cm 9.46 mm 1.32 GeV 3.19 keV 1.16 cm 13.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 10 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 131 mum -18.8 cm 9.46 mm 1.58 keV 0 eV 0 fm 0 fm World initStep + 1 131 mum -18.9 cm 9.47 mm 1.2 MeV 1.58 keV 109 mum 109 mum World eIoni + 2 129 mum -20 cm 9.49 mm 116 MeV 2.56 keV 1.15 cm 1.16 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 10 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 130 mum -15.8 cm 9.47 mm 2.62 keV 0 eV 0 fm 0 fm World initStep + 1 134 mum -15.8 cm 9.48 mm 2.61 MeV 2.62 keV 241 mum 241 mum World eIoni + 2 138 mum -16.3 cm 9.49 mm 57.6 MeV 392 eV 5.5 mm 5.74 mm World eIoni + 3 141 mum -18.1 cm 9.5 mm 232 MeV 2.31 keV 1.75 cm 2.32 cm World eIoni + 4 144 mum -20 cm 9.5 mm 424 MeV 2.57 keV 1.92 cm 4.24 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 13 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 141 mum -18.1 cm 9.5 mm 2.1 keV 0 eV 0 fm 0 fm World initStep + 1 130 mum -18.1 cm 9.5 mm 1.84 MeV 2.1 keV 169 mum 169 mum World eIoni + 2 109 mum -20 cm 9.5 mm 192 MeV 2.07 keV 1.9 cm 1.92 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -23.8 mum 491 mum 1.14 keV 0 eV 0 fm 0 fm World initStep + 1 3.65 mum -92.3 mum 490 mum 748 keV 1.14 keV 68.9 mum 68.9 mum World eIoni + 2 21.1 mum -20 cm 489 mum 2 GeV 31.8 keV 20 cm 20 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.93 cm 1.77 cm 843 MeV 15.5 keV 8.42 cm 8.42 cm World eIoni + 2 462 nm -8.94 cm 1.83 cm 944 MeV 1.72 keV 1.01 cm 9.43 cm World eIoni + 3 9.34 mum -18.6 cm 2.18 cm 1.91 GeV 21.8 keV 9.69 cm 19.1 cm World eIoni + 4 10.1 mum -20 cm 2.22 cm 2.05 GeV 2.01 keV 1.38 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 9.34 mum -18.6 cm 2.18 cm 1.75 keV 0 eV 0 fm 0 fm World initStep + 1 13.8 mum -18.6 cm 2.19 cm 1.4 MeV 1.75 keV 128 mum 128 mum World eIoni + 2 22.7 mum -20 cm 2.19 cm 138 MeV 1.21 keV 1.37 cm 1.38 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 462 nm -8.94 cm 1.83 cm 12.8 keV 0 eV 0 fm 0 fm World initStep + 1 -31.2 mum -9.01 cm 1.83 cm 7.7 MeV 2.12 keV 748 mum 748 mum World eIoni + 2 -72.9 mum -20 cm 1.84 cm 1.11 GeV 21.5 keV 11 cm 11.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.93 cm 1.77 cm 2.87 keV 0 eV 0 fm 0 fm World initStep + 1 -11.5 mum -7.95 cm 1.77 cm 3.03 MeV 2.87 keV 280 mum 280 mum World eIoni + 2 -26.3 mum -9.19 cm 1.77 cm 126 MeV 2.65 keV 1.23 cm 1.26 cm World eIoni + 3 -34 mum -16.1 cm 1.77 cm 820 MeV 13.2 keV 6.94 cm 8.2 cm World eIoni + 4 -33.7 mum -20 cm 1.77 cm 1.21 GeV 8.54 keV 3.87 cm 12.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -34 mum -16.1 cm 1.77 cm 5.08 keV 0 eV 0 fm 0 fm World initStep + 1 -54.4 mum -16.2 cm 1.77 cm 7.88 MeV 5.08 keV 739 mum 739 mum World eIoni + 2 -61.8 mum -16.5 cm 1.77 cm 36.4 MeV 279 eV 2.86 mm 3.59 mm World eIoni + 3 -74 mum -20 cm 1.77 cm 388 MeV 6.79 keV 3.51 cm 3.87 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -8.02 cm 1.78 cm 852 MeV 19.1 keV 8.51 cm 8.51 cm World eIoni + 2 507 nm -10.5 cm 1.91 cm 1.1 GeV 6.04 keV 2.5 cm 11 cm World eIoni + 3 223 nm -17 cm 2.14 cm 1.75 GeV 13 keV 6.47 cm 17.5 cm World eIoni + 4 544 nm -18.9 cm 2.19 cm 1.94 GeV 3.87 keV 1.94 cm 19.4 cm World eIoni + 5 869 nm -20 cm 2.22 cm 2.05 GeV 1.96 keV 1.08 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 544 nm -18.9 cm 2.19 cm 1.35 keV 0 eV 0 fm 0 fm World initStep + 1 -4.68 mum -18.9 cm 2.19 cm 957 keV 1.35 keV 87.1 mum 87.1 mum World eIoni + 2 -17.4 mum -20 cm 2.19 cm 108 MeV 1.32 keV 1.07 cm 1.08 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 223 nm -17 cm 2.14 cm 34.5 keV 0 eV 0 fm 0 fm World initStep + 1 -4.89 mum -17 cm 2.14 cm 732 keV 0 eV 76.6 mum 76.6 mum World eIoni + 2 -16.5 mum -17.3 cm 2.13 cm 26.9 MeV 569 eV 2.62 mm 2.7 mm World eIoni + 3 -25.3 mum -20 cm 2.13 cm 301 MeV 4.05 keV 2.74 cm 3.01 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 507 nm -10.5 cm 1.91 cm 1.26 keV 0 eV 0 fm 0 fm World initStep + 1 4.87 mum -10.5 cm 1.91 cm 872 keV 1.26 keV 79.4 mum 79.4 mum World eIoni + 2 22 mum -20 cm 1.91 cm 948 MeV 12 keV 9.47 cm 9.48 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.02 cm 1.78 cm 1.35 keV 0 eV 0 fm 0 fm World initStep + 1 -3.46 mum -8.03 cm 1.78 cm 962 keV 1.35 keV 87.7 mum 87.7 mum World eIoni + 2 -16.6 mum -20 cm 1.77 cm 1.2 GeV 18.9 keV 12 cm 12 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -6.58 cm 1.68 cm 708 MeV 11.4 keV 7.07 cm 7.07 cm World eIoni + 2 1.26 mum -9.96 cm 1.88 cm 1.05 GeV 7.56 keV 3.38 cm 10.5 cm World eIoni + 3 4.65 mum -16.2 cm 2.12 cm 1.67 GeV 16.6 keV 6.25 cm 16.7 cm World eIoni + 4 6.38 mum -20 cm 2.22 cm 2.05 GeV 8.64 keV 3.8 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 4.65 mum -16.2 cm 2.12 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 2.66 mum -16.2 cm 2.12 cm 837 keV 1.22 keV 76 mum 76 mum World eIoni + 2 -4.21 mum -20 cm 2.12 cm 380 MeV 4.22 keV 3.79 cm 3.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.26 mum -9.96 cm 1.88 cm 1.8 keV 0 eV 0 fm 0 fm World initStep + 1 -7.19 mum -9.97 cm 1.88 cm 1.46 MeV 1.8 keV 133 mum 133 mum World eIoni + 2 -32.4 mum -20 cm 1.88 cm 1 GeV 14.9 keV 10 cm 10 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.58 cm 1.68 cm 1.94 keV 0 eV 0 fm 0 fm World initStep + 1 -7.06 mum -6.6 cm 1.68 cm 1.62 MeV 1.94 keV 149 mum 149 mum World eIoni + 2 -27.8 mum -20 cm 1.68 cm 1.34 GeV 15.9 keV 13.4 cm 13.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.71 cm 1.76 cm 821 MeV 13.6 keV 8.2 cm 8.2 cm World eIoni + 2 -4.32 mum -20 cm 2.22 cm 2.05 GeV 26.6 keV 12.3 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.71 cm 1.76 cm 2.58 keV 0 eV 0 fm 0 fm World initStep + 1 12.4 mum -7.74 cm 1.76 cm 2.54 MeV 2.58 keV 234 mum 234 mum World eIoni + 2 31.8 mum -9.33 cm 1.76 cm 162 MeV 1.83 keV 1.59 cm 1.62 cm World eIoni + 3 36.3 mum -11.9 cm 1.76 cm 422 MeV 5.15 keV 2.6 cm 4.22 cm World eIoni + 4 39.2 mum -20 cm 1.76 cm 1.23 GeV 17.1 keV 8.07 cm 12.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 36.3 mum -11.9 cm 1.76 cm 1.24 keV 0 eV 0 fm 0 fm World initStep + 1 39.6 mum -11.9 cm 1.76 cm 847 keV 1.24 keV 77 mum 77 mum World eIoni + 2 52.3 mum -20 cm 1.76 cm 807 MeV 10.7 keV 8.06 cm 8.07 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.75 mm 4.1 mm 67.5 MeV 804 eV 4.56 mm 4.56 mm World eIoni + 2 13.4 mum -3.05 cm 1.33 cm 355 MeV 5.56 keV 3.06 cm 3.52 cm World eIoni + 3 20.7 mum -11 cm 1.93 cm 1.15 GeV 14.8 keV 7.94 cm 11.5 cm World eIoni + 4 26.6 mum -20 cm 2.22 cm 2.05 GeV 21.8 keV 9.04 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 20.7 mum -11 cm 1.93 cm 2.98 keV 0 eV 0 fm 0 fm World initStep + 1 9.01 mum -11 cm 1.93 cm 3.21 MeV 2.98 keV 297 mum 297 mum World eIoni + 2 -2.17 mum -11.5 cm 1.93 cm 57.8 MeV 518 eV 5.46 mm 5.75 mm World eIoni + 3 -8.31 mum -13.6 cm 1.92 cm 264 MeV 4.42 keV 2.06 cm 2.63 cm World eIoni + 4 -15.1 mum -20 cm 1.92 cm 904 MeV 12.6 keV 6.41 cm 9.04 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -8.31 mum -13.6 cm 1.92 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 -5.83 mum -13.6 cm 1.92 cm 927 keV 1.32 keV 84.4 mum 84.4 mum World eIoni + 2 3.05 mum -20 cm 1.92 cm 641 MeV 9.9 keV 6.4 cm 6.41 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 13.4 mum -3.05 cm 1.33 cm 2.13 keV 0 eV 0 fm 0 fm World initStep + 1 16 mum -3.07 cm 1.33 cm 1.9 MeV 2.13 keV 173 mum 173 mum World eIoni + 2 20.8 mum -4.54 cm 1.34 cm 149 MeV 1.41 keV 1.47 cm 1.49 cm World eIoni + 3 21 mum -4.82 cm 1.34 cm 177 MeV 141 eV 2.75 mm 1.77 cm World eIoni + 4 37.9 mum -16.3 cm 1.35 cm 1.32 GeV 26.2 keV 11.5 cm 13.2 cm World eIoni + 5 38.6 mum -17.2 cm 1.35 cm 1.42 GeV 1.6 keV 9.2 mm 14.2 cm World eIoni + 6 40.8 mum -20 cm 1.35 cm 1.7 GeV 7.9 keV 2.8 cm 17 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 38.6 mum -17.2 cm 1.35 cm 1.92 keV 0 eV 0 fm 0 fm World initStep + 1 35.7 mum -17.2 cm 1.34 cm 1.6 MeV 1.92 keV 147 mum 147 mum World eIoni + 2 29.1 mum -20 cm 1.34 cm 280 MeV 3.33 keV 2.78 cm 2.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 37.9 mum -16.3 cm 1.35 cm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 33.9 mum -16.3 cm 1.35 cm 659 keV 1.03 keV 59.9 mum 59.9 mum World eIoni + 2 18.1 mum -20 cm 1.35 cm 372 MeV 5.34 keV 3.71 cm 3.72 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 21 mum -4.82 cm 1.34 cm 141 keV 0 eV 0 fm 0 fm World initStep + 1 -11.1 mum -5.08 cm 1.32 cm 26.8 MeV 1.19 keV 2.67 mm 2.67 mm World eIoni + 2 -39.7 mum -20 cm 1.31 cm 1.52 GeV 28.9 keV 14.9 cm 15.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.75 mm 4.1 mm 7.2 keV 0 eV 0 fm 0 fm World initStep + 1 -38.6 mum -3.13 mm 4.08 mm 14.7 MeV 7.2 keV 1.39 mm 1.39 mm World eIoni + 2 -45.7 mum -5.59 mm 4.08 mm 39.3 MeV 349 eV 2.46 mm 3.85 mm World eIoni + 3 -69.9 mum -9.86 cm 4.07 mm 969 MeV 14.6 keV 9.3 cm 9.68 cm World eIoni + 4 -78.9 mum -20 cm 4.07 mm 1.98 GeV 17.1 keV 10.1 cm 19.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -69.9 mum -9.86 cm 4.07 mm 4.71 keV 0 eV 0 fm 0 fm World initStep + 1 -49 mum -9.92 cm 4.06 mm 6.94 MeV 4.71 keV 651 mum 651 mum World eIoni + 2 -37.4 mum -10.5 cm 4.05 mm 64.4 MeV 1.21 keV 5.75 mm 6.4 mm World eIoni + 3 -22.3 mum -20 cm 4.03 mm 1.01 GeV 19.1 keV 9.5 cm 10.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.73 cm 1.87 cm 1.02 GeV 19.2 keV 10.2 cm 10.2 cm World eIoni + 2 -840 nm -13.1 cm 2.01 cm 1.36 GeV 7.6 keV 3.35 cm 13.6 cm World eIoni + 3 -2.72 mum -20 cm 2.22 cm 2.05 GeV 16 keV 6.92 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -840 nm -13.1 cm 2.01 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 1.64 mum -13.1 cm 2.01 cm 714 keV 1.09 keV 64.8 mum 64.8 mum World eIoni + 2 11.7 mum -20 cm 2.02 cm 692 MeV 7.81 keV 6.91 cm 6.92 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.73 cm 1.87 cm 1.44 keV 0 eV 0 fm 0 fm World initStep + 1 5.44 mum -9.74 cm 1.87 cm 1.05 MeV 1.44 keV 95.8 mum 95.8 mum World eIoni + 2 24.9 mum -20 cm 1.87 cm 1.03 GeV 16.4 keV 10.3 cm 10.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -17.6 cm 2.16 cm 1.81 GeV 34.2 keV 18.1 cm 18.1 cm World eIoni + 2 442 nm -20 cm 2.22 cm 2.05 GeV 3.25 keV 2.37 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -17.6 cm 2.16 cm 1.79 keV 0 eV 0 fm 0 fm World initStep + 1 -7.53 mum -17.6 cm 2.16 cm 1.44 MeV 1.79 keV 132 mum 132 mum World eIoni + 2 -25 mum -20 cm 2.16 cm 237 MeV 2.92 keV 2.35 cm 2.37 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -8.9 cm 1.83 cm 940 MeV 18.7 keV 9.39 cm 9.39 cm World eIoni + 2 -1.73 mum -20 cm 2.22 cm 2.05 GeV 18.4 keV 11.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.9 cm 1.83 cm 1.46 keV 0 eV 0 fm 0 fm World initStep + 1 4.09 mum -8.91 cm 1.83 cm 1.07 MeV 1.46 keV 97.9 mum 97.9 mum World eIoni + 2 18.7 mum -20 cm 1.82 cm 1.11 GeV 13.9 keV 11.1 cm 11.1 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1935,92 +2431,57 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.21 cm 1.2 cm 271 MeV 5.09 keV 2.67 cm 2.67 cm World eIoni - 2 2.14 mum -3.32 cm 1.37 cm 382 MeV 2.64 keV 1.12 cm 3.8 cm World eIoni - 3 19.7 mum -20 cm 2.22 cm 2.05 GeV 34.9 keV 16.7 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -7.51 cm 1.75 cm 801 MeV 16.9 keV 8 cm 8 cm World eIoni + 2 1.04 mum -10.9 cm 1.93 cm 1.14 GeV 5.09 keV 3.42 cm 11.4 cm World eIoni + 3 1.81 mum -12.4 cm 1.98 cm 1.29 GeV 1.33 keV 1.43 cm 12.8 cm World eIoni + 4 3.33 mum -15.3 cm 2.09 cm 1.58 GeV 4.68 keV 2.96 cm 15.8 cm World eIoni + 5 2.89 mum -20 cm 2.22 cm 2.05 GeV 10.4 keV 4.69 cm 20.5 cm World eIoni + 6 2.89 mum -20 cm 2.22 cm 2.05 GeV 0 eV 53.7 mum 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.89 mum -20 cm 2.22 cm 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 6.28 mum -20 cm 2.22 cm 1.04 MeV 1.04 keV 58 mum 58 mumOutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.33 mum -15.3 cm 2.09 cm 8.81 keV 0 eV 0 fm 0 fm World initStep + 1 60.1 mum -15.5 cm 2.09 cm 21.2 MeV 8.81 keV 2 mm 2 mm World eIoni + 2 70.8 mum -16 cm 2.09 cm 70.3 MeV 309 eV 4.92 mm 6.92 mm World eIoni + 3 88.1 mum -20 cm 2.09 cm 470 MeV 7.13 keV 4 cm 4.69 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.81 mum -12.4 cm 1.98 cm 1.06 keV 0 eV 0 fm 0 fm World initStep + 1 520 nm -12.4 cm 1.99 cm 689 keV 1.06 keV 62.5 mum 62.5 mum World eIoni + 2 -5 mum -20 cm 1.99 cm 765 MeV 9.24 keV 7.64 cm 7.65 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.14 mum -3.32 cm 1.37 cm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 -7.67 mum -3.34 cm 1.37 cm 1.83 MeV 2.09 keV 168 mum 168 mum World eIoni - 2 -32.5 mum -10.9 cm 1.37 cm 760 MeV 11.6 keV 7.58 cm 7.6 cm World eIoni - 3 -33 mum -11.8 cm 1.37 cm 846 MeV 1.96 keV 8.61 mm 8.46 cm World eIoni - 4 -33.3 mum -20 cm 1.37 cm 1.67 GeV 17.2 keV 8.22 cm 16.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -33 mum -11.8 cm 1.37 cm 4.09 keV 0 eV 0 fm 0 fm World initStep - 1 -45.7 mum -11.8 cm 1.37 cm 5.45 MeV 4.09 keV 509 mum 509 mum World eIoni - 2 -53.8 mum -12.3 cm 1.37 cm 56.2 MeV 721 eV 5.08 mm 5.59 mm World eIoni - 3 -58.1 mum -13.6 cm 1.37 cm 183 MeV 1.38 keV 1.27 cm 1.83 cm World eIoni - 4 -71 mum -20 cm 1.37 cm 822 MeV 13.8 keV 6.39 cm 8.22 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -58.1 mum -13.6 cm 1.37 cm 2.42 keV 0 eV 0 fm 0 fm World initStep - 1 -45.6 mum -13.6 cm 1.37 cm 2.28 MeV 2.42 keV 210 mum 210 mum World eIoni - 2 -36.9 mum -13.8 cm 1.37 cm 15.4 MeV 47.8 eV 1.31 mm 1.52 mm World eIoni - 3 -18.6 mum -20 cm 1.37 cm 639 MeV 10.8 keV 6.24 cm 6.39 cm OutOfWorldTransportation + 0 1.04 mum -10.9 cm 1.93 cm 1.41 keV 0 eV 0 fm 0 fm World initStep + 1 -5.43 mum -10.9 cm 1.93 cm 1.03 MeV 1.41 keV 93.3 mum 93.3 mum World eIoni + 2 -28.6 mum -20 cm 1.92 cm 907 MeV 11.8 keV 9.06 cm 9.07 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.21 cm 1.2 cm 3.98 keV 0 eV 0 fm 0 fm World initStep - 1 -21.4 mum -2.26 cm 1.2 cm 5.18 MeV 3.98 keV 483 mum 483 mum World eIoni - 2 -21.6 mum -2.26 cm 1.2 cm 5.44 MeV 0 eV 25.9 mum 509 mum World eIoni - 3 -39.5 mum -3.07 cm 1.19 cm 86.4 MeV 722 eV 8.1 mm 8.61 mm World eIoni - 4 -44.3 mum -7.03 cm 1.2 cm 482 MeV 7.16 keV 3.96 cm 4.82 cm World eIoni - 5 -47.8 mum -11.1 cm 1.2 cm 889 MeV 8.4 keV 4.07 cm 8.89 cm World eIoni - 6 -48.8 mum -16.5 cm 1.2 cm 1.43 GeV 11.8 keV 5.42 cm 14.3 cm World eIoni - 7 -50 mum -20 cm 1.2 cm 1.78 GeV 6.28 keV 3.48 cm 17.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -48.8 mum -16.5 cm 1.2 cm 1.93 keV 0 eV 0 fm 0 fm World initStep - 1 -39.7 mum -16.5 cm 1.2 cm 1.62 MeV 1.93 keV 148 mum 148 mum World eIoni - 2 -18.3 mum -20 cm 1.2 cm 348 MeV 6.22 keV 3.47 cm 3.48 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -47.8 mum -11.1 cm 1.2 cm 1.54 keV 0 eV 0 fm 0 fm World initStep - 1 -54.5 mum -11.1 cm 1.2 cm 1.16 MeV 1.54 keV 105 mum 105 mum World eIoni - 2 -76.7 mum -20 cm 1.19 cm 890 MeV 12.9 keV 8.89 cm 8.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -44.3 mum -7.03 cm 1.2 cm 1.06 keV 0 eV 0 fm 0 fm World initStep - 1 -39.7 mum -7.04 cm 1.2 cm 692 keV 1.06 keV 62.9 mum 62.9 mum World eIoni - 2 -18.4 mum -20 cm 1.19 cm 1.3 GeV 19.9 keV 13 cm 13 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -39.5 mum -3.07 cm 1.19 cm 4.19 keV 0 eV 0 fm 0 fm World initStep - 1 -51.8 mum -3.13 cm 1.19 cm 5.69 MeV 4.19 keV 532 mum 532 mum World eIoni - 2 -58.5 mum -3.51 cm 1.19 cm 44 MeV 1.01 keV 3.83 mm 4.36 mm World eIoni - 3 -71.1 mum -20 cm 1.19 cm 1.69 GeV 32.6 keV 16.5 cm 16.9 cm OutOfWorldTransportation + 0 0 fm -7.51 cm 1.75 cm 1.47 keV 0 eV 0 fm 0 fm World initStep + 1 -5.41 mum -7.52 cm 1.75 cm 1.08 MeV 1.47 keV 98.6 mum 98.6 mum World eIoni + 2 -24.8 mum -20 cm 1.74 cm 1.25 GeV 18.9 keV 12.5 cm 12.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2028,51 +2489,48 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -16.3 cm 2.12 cm 1.68 GeV 31.9 keV 16.8 cm 16.8 cm World eIoni - 2 377 nm -17.7 cm 2.16 cm 1.82 GeV 3.95 keV 1.45 cm 18.2 cm World eIoni - 3 901 nm -20 cm 2.22 cm 2.05 GeV 4.75 keV 2.27 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -11.4 cm 1.94 cm 1.19 GeV 21 keV 11.9 cm 11.9 cm World eIoni + 2 -715 nm -16.1 cm 2.11 cm 1.66 GeV 7.92 keV 4.74 cm 16.6 cm World eIoni + 3 -1.12 mum -17.4 cm 2.15 cm 1.79 GeV 1.61 keV 1.31 cm 17.9 cm World eIoni + 4 -1.25 mum -18.3 cm 2.18 cm 1.88 GeV 3.2 keV 9.32 mm 18.8 cm World eIoni + 5 -1.85 mum -20 cm 2.22 cm 2.05 GeV 4.11 keV 1.66 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.25 mum -18.3 cm 2.18 cm 1.94 keV 0 eV 0 fm 0 fm World initStep + 1 8.41 mum -18.4 cm 2.18 cm 1.63 MeV 1.94 keV 149 mum 149 mum World eIoni + 2 26.9 mum -20 cm 2.18 cm 167 MeV 1.79 keV 1.65 cm 1.66 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.12 mum -17.4 cm 2.15 cm 1.57 keV 0 eV 0 fm 0 fm World initStep + 1 -6.42 mum -17.4 cm 2.15 cm 1.19 MeV 1.57 keV 109 mum 109 mum World eIoni + 2 -20.4 mum -20 cm 2.15 cm 260 MeV 4.42 keV 2.58 cm 2.6 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 377 nm -17.7 cm 2.16 cm 4.85 keV 0 eV 0 fm 0 fm World initStep - 1 652 nm -17.8 cm 2.16 cm 7.28 MeV 4.85 keV 683 mum 683 mum World eIoni - 2 679 nm -17.8 cm 2.16 cm 11 MeV 39.3 eV 370 mum 1.05 mm World eIoni - 3 776 nm -18.2 cm 2.16 cm 45.5 MeV 474 eV 3.45 mm 4.51 mm World eIoni - 4 -174 nm -20 cm 2.16 cm 227 MeV 3.77 keV 1.82 cm 2.27 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 776 nm -18.2 cm 2.16 cm 4.74 keV 0 eV 0 fm 0 fm World initStep - 1 3.36 mum -18.2 cm 2.16 cm 7.01 MeV 4.74 keV 658 mum 658 mum World eIoni - 2 3.69 mum -18.3 cm 2.16 cm 12 MeV 73.9 eV 496 mum 1.15 mm World eIoni - 3 5.49 mum -20 cm 2.16 cm 182 MeV 3.04 keV 1.7 cm 1.82 cm OutOfWorldTransportation + 0 -715 nm -16.1 cm 2.11 cm 25.7 keV 0 eV 0 fm 0 fm World initStep + 1 11 mum -16.2 cm 2.11 cm 8.31 MeV 1.03 keV 820 mum 820 mum World eIoni + 2 23.2 mum -20 cm 2.1 cm 390 MeV 3.47 keV 3.82 cm 3.9 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -16.3 cm 2.12 cm 2.33 keV 0 eV 0 fm 0 fm World initStep - 1 -11.2 mum -16.3 cm 2.12 cm 2.17 MeV 2.33 keV 199 mum 199 mum World eIoni - 2 -20.5 mum -16.5 cm 2.12 cm 19.8 MeV 92.4 eV 1.76 mm 1.96 mm World eIoni - 3 -29.8 mum -17.8 cm 2.12 cm 152 MeV 1.82 keV 1.32 cm 1.51 cm World eIoni - 4 -39.1 mum -20 cm 2.12 cm 372 MeV 3.29 keV 2.2 cm 3.72 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -29.8 mum -17.8 cm 2.12 cm 5.46 keV 0 eV 0 fm 0 fm World initStep - 1 -349 nm -17.9 cm 2.12 cm 9.03 MeV 5.46 keV 849 mum 849 mum World eIoni - 2 6.27 mum -18 cm 2.12 cm 24.7 MeV 326 eV 1.56 mm 2.41 mm World eIoni - 3 21.5 mum -20 cm 2.12 cm 221 MeV 3.29 keV 1.96 cm 2.2 cm OutOfWorldTransportation + 0 0 fm -11.4 cm 1.94 cm 5.4 keV 0 eV 0 fm 0 fm World initStep + 1 9.11 mum -11.4 cm 1.94 cm 8.85 MeV 5.4 keV 832 mum 832 mum World eIoni + 2 10.9 mum -11.6 cm 1.94 cm 21.6 MeV 53.7 eV 1.28 mm 2.11 mm World eIoni + 3 18.8 mum -20 cm 1.94 cm 865 MeV 13.6 keV 8.43 cm 8.64 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2080,17 +2538,28 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.75 cm 1.53 cm 525 MeV 10.3 keV 5.23 cm 5.23 cm World eIoni - 2 -2.42 mum -20 cm 2.22 cm 2.05 GeV 33.2 keV 15.3 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -13.1 cm 2.01 cm 1.36 GeV 29.3 keV 13.5 cm 13.5 cm World eIoni + 2 396 nm -19.5 cm 2.21 cm 2 GeV 13.5 keV 6.47 cm 20 cm World eIoni + 3 525 nm -20 cm 2.22 cm 2.05 GeV 1.11 keV 4.83 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 396 nm -19.5 cm 2.21 cm 5.35 keV 0 eV 0 fm 0 fm World initStep + 1 -18.2 mum -19.6 cm 2.21 cm 8.68 MeV 5.35 keV 816 mum 816 mum World eIoni + 2 -19.4 mum -19.6 cm 2.21 cm 11.8 MeV 0 eV 311 mum 1.13 mm World eIoni + 3 -25.5 mum -20 cm 2.2 cm 49 MeV 1.03 keV 3.72 mm 4.84 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.75 cm 1.53 cm 1.18 keV 0 eV 0 fm 0 fm World initStep - 1 2.9 mum -4.76 cm 1.53 cm 797 keV 1.18 keV 72.2 mum 72.2 mum World eIoni - 2 15.7 mum -20 cm 1.53 cm 1.53 GeV 22.3 keV 15.2 cm 15.3 cm OutOfWorldTransportation + 0 0 fm -13.1 cm 2.01 cm 1.49 keV 0 eV 0 fm 0 fm World initStep + 1 -1.9 mum -13.1 cm 2.01 cm 1.11 MeV 1.49 keV 100 mum 100 mum World eIoni + 2 -8.16 mum -20 cm 2.01 cm 695 MeV 13.8 keV 6.94 cm 6.95 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2098,17 +2567,39 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -14.8 cm 2.07 cm 1.53 GeV 28.1 keV 15.3 cm 15.3 cm World eIoni - 2 957 nm -20 cm 2.22 cm 2.05 GeV 10.9 keV 5.24 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -3.33 cm 1.37 cm 383 MeV 9.35 keV 3.8 cm 3.8 cm World eIoni + 2 -649 nm -7.12 cm 1.72 cm 762 MeV 9.62 keV 3.81 cm 7.61 cm World eIoni + 3 -4.25 mum -20 cm 2.22 cm 2.05 GeV 22.3 keV 12.9 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -649 nm -7.12 cm 1.72 cm 1.58 keV 0 eV 0 fm 0 fm World initStep + 1 4.55 mum -7.13 cm 1.72 cm 1.2 MeV 1.58 keV 109 mum 109 mum World eIoni + 2 22.3 mum -20 cm 1.72 cm 1.29 GeV 21.5 keV 12.9 cm 12.9 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -14.8 cm 2.07 cm 1.19 keV 0 eV 0 fm 0 fm World initStep - 1 -5.29 mum -14.8 cm 2.07 cm 809 keV 1.19 keV 73.6 mum 73.6 mum World eIoni - 2 -25 mum -20 cm 2.07 cm 524 MeV 7.48 keV 5.23 cm 5.24 cm OutOfWorldTransportation + 0 0 fm -3.33 cm 1.37 cm 7.02 keV 0 eV 0 fm 0 fm World initStep + 1 4.92 mum -3.46 cm 1.38 cm 14.1 MeV 7.02 keV 1.33 mm 1.33 mm World eIoni + 2 6.05 mum -3.8 cm 1.38 cm 48.3 MeV 495 eV 3.42 mm 4.75 mm World eIoni + 3 8.66 mum -9.87 cm 1.38 cm 655 MeV 8.35 keV 6.07 cm 6.55 cm World eIoni + 4 8.28 mum -20 cm 1.38 cm 1.67 GeV 21.2 keV 10.1 cm 16.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 8.66 mum -9.87 cm 1.38 cm 2.74 keV 0 eV 0 fm 0 fm World initStep + 1 12.3 mum -9.9 cm 1.38 cm 2.81 MeV 2.74 keV 259 mum 259 mum World eIoni + 2 14.8 mum -10.1 cm 1.38 cm 19.3 MeV 190 eV 1.65 mm 1.91 mm World eIoni + 3 20 mum -20 cm 1.37 cm 1.01 GeV 15.6 keV 9.94 cm 10.1 cm OutOfWorldTransportation ---> Begin of Event: 50 @@ -2118,37 +2609,152 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.78 cm 1.29 cm 328 MeV 8.65 keV 3.24 cm 3.24 cm World eIoni - 2 -4.36 mum -9.26 cm 1.85 cm 976 MeV 13.1 keV 6.51 cm 9.75 cm World eIoni - 3 -20.4 mum -20 cm 2.22 cm 2.05 GeV 22.2 keV 10.7 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -5.01 cm 1.56 cm 551 MeV 10.3 keV 5.49 cm 5.49 cm World eIoni + 2 -2.21 mum -13.1 cm 2.01 cm 1.36 GeV 18.5 keV 8.08 cm 13.6 cm World eIoni + 3 -1.52 mum -20 cm 2.22 cm 2.05 GeV 11.4 keV 6.92 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.36 mum -9.26 cm 1.85 cm 103 keV 0 eV 0 fm 0 fm World initStep - 1 41.9 mum -9.31 cm 1.84 cm 4.55 MeV 150 eV 460 mum 460 mum World eIoni - 2 114 mum -12.3 cm 1.83 cm 300 MeV 4.45 keV 2.95 cm 3 cm World eIoni - 3 136 mum -19.7 cm 1.82 cm 1.04 GeV 16.2 keV 7.41 cm 10.4 cm World eIoni - 4 137 mum -20 cm 1.82 cm 1.07 GeV 521 eV 3.28 mm 10.7 cm OutOfWorldTransportation + 0 -2.21 mum -13.1 cm 2.01 cm 1.69 keV 0 eV 0 fm 0 fm World initStep + 1 -10.6 mum -13.1 cm 2.01 cm 1.34 MeV 1.69 keV 122 mum 122 mum World eIoni + 2 -35.5 mum -20 cm 2.01 cm 692 MeV 14 keV 6.91 cm 6.92 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.01 cm 1.56 cm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 3.68 mum -5.02 cm 1.56 cm 663 keV 1.03 keV 60.1 mum 60.1 mum World eIoni + 2 21.6 mum -20 cm 1.56 cm 1.5 GeV 25.7 keV 15 cm 15 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -8.25 cm 1.79 cm 875 MeV 18.8 keV 8.74 cm 8.74 cm World eIoni + 2 66.9 nm -11.7 cm 1.96 cm 1.22 GeV 8.16 keV 3.45 cm 12.2 cm World eIoni + 3 1.27 mum -20 cm 2.22 cm 2.05 GeV 15.8 keV 8.3 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 66.9 nm -11.7 cm 1.96 cm 1.19 keV 0 eV 0 fm 0 fm World initStep + 1 -3.41 mum -11.7 cm 1.96 cm 807 keV 1.19 keV 73.3 mum 73.3 mum World eIoni + 2 -17.3 mum -20 cm 1.96 cm 830 MeV 13.4 keV 8.29 cm 8.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.25 cm 1.79 cm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 -324 nm -8.26 cm 1.79 cm 790 keV 1.17 keV 72 mum 72 mum World eIoni + 2 -1.68 mum -20 cm 1.79 cm 1.17 GeV 17.5 keV 11.7 cm 11.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.72 cm 1.09 cm 222 MeV 5.08 keV 2.17 cm 2.17 cm World eIoni + 2 63.9 nm -20 cm 2.22 cm 2.05 GeV 42 keV 18.3 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.72 cm 1.09 cm 2.01 keV 0 eV 0 fm 0 fm World initStep + 1 -63.3 nm -1.73 cm 1.09 cm 1.71 MeV 2.01 keV 157 mum 157 mum World eIoni + 2 -257 nm -20 cm 1.09 cm 1.83 GeV 23.9 keV 18.3 cm 18.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.38 cm 1.74 cm 788 MeV 16.8 keV 7.86 cm 7.86 cm World eIoni + 2 1.19 mum -10.8 cm 1.92 cm 1.13 GeV 4.6 keV 3.41 cm 11.3 cm World eIoni + 3 2.07 mum -17.3 cm 2.15 cm 1.78 GeV 13.3 keV 6.53 cm 17.8 cm World eIoni + 4 3.12 mum -20 cm 2.22 cm 2.05 GeV 7.66 keV 2.69 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.07 mum -17.3 cm 2.15 cm 3.55 keV 0 eV 0 fm 0 fm World initStep + 1 -15.8 mum -17.4 cm 2.15 cm 4.3 MeV 3.55 keV 400 mum 400 mum World eIoni + 2 -28.9 mum -17.8 cm 2.15 cm 50.2 MeV 1.18 keV 4.59 mm 4.99 mm World eIoni + 3 -38.3 mum -20 cm 2.15 cm 269 MeV 3.46 keV 2.19 cm 2.69 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.19 mum -10.8 cm 1.92 cm 1.04 keV 0 eV 0 fm 0 fm World initStep + 1 3.29 mum -10.8 cm 1.92 cm 672 keV 1.04 keV 61 mum 61 mum World eIoni + 2 12.6 mum -20 cm 1.92 cm 922 MeV 13.7 keV 9.21 cm 9.22 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.38 cm 1.74 cm 1.16 keV 0 eV 0 fm 0 fm World initStep + 1 -5.32 mum -7.38 cm 1.74 cm 777 keV 1.16 keV 70.7 mum 70.7 mum World eIoni + 2 -27.8 mum -20 cm 1.74 cm 1.26 GeV 19.8 keV 12.6 cm 12.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -10.9 cm 1.92 cm 1.14 GeV 21.9 keV 11.4 cm 11.4 cm World eIoni + 2 1.1 mum -17.2 cm 2.15 cm 1.77 GeV 14.8 keV 6.3 cm 17.7 cm World eIoni + 3 2.27 mum -20 cm 2.22 cm 2.05 GeV 6.6 keV 2.84 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.1 mum -17.2 cm 2.15 cm 4.19 keV 0 eV 0 fm 0 fm World initStep + 1 -18.1 mum -17.2 cm 2.14 cm 5.69 MeV 4.19 keV 532 mum 532 mum World eIoni + 2 -21.2 mum -17.3 cm 2.14 cm 10.5 MeV 487 eV 481 mum 1.01 mm World eIoni + 3 -36.6 mum -18.7 cm 2.14 cm 158 MeV 3.22 keV 1.48 cm 1.58 cm World eIoni + 4 -36.4 mum -20 cm 2.14 cm 285 MeV 1.94 keV 1.26 cm 2.84 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 136 mum -19.7 cm 1.82 cm 21.8 keV 0 eV 0 fm 0 fm World initStep - 1 216 mum -20 cm 1.85 cm 41.1 MeV 3.84 keV 3.5 mm 3.5 mm OutOfWorldTransportation + 0 -36.6 mum -18.7 cm 2.14 cm 12 keV 0 eV 0 fm 0 fm World initStep + 1 -83.1 mum -19.1 cm 2.13 cm 36.6 MeV 12 keV 3.48 mm 3.48 mm World eIoni + 2 -88.7 mum -19.7 cm 2.13 cm 102 MeV 2.17 keV 6.5 mm 9.98 mm World eIoni + 3 -90.1 mum -20 cm 2.13 cm 129 MeV 515 eV 2.69 mm 1.27 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.78 cm 1.29 cm 1.55 keV 0 eV 0 fm 0 fm World initStep - 1 7.63 mum -2.79 cm 1.29 cm 1.17 MeV 1.55 keV 107 mum 107 mum World eIoni - 2 35.8 mum -20 cm 1.29 cm 1.72 GeV 27 keV 17.2 cm 17.2 cm OutOfWorldTransportation + 0 0 fm -10.9 cm 1.92 cm 1.74 keV 0 eV 0 fm 0 fm World initStep + 1 -5.16 mum -10.9 cm 1.92 cm 1.4 MeV 1.74 keV 127 mum 127 mum World eIoni + 2 -20.5 mum -20 cm 1.93 cm 914 MeV 15.8 keV 9.13 cm 9.14 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2156,1250 +2762,138 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.48 cm 1.03 cm 198 MeV 2.15 keV 1.92 cm 1.92 cm World eIoni - 2 2.51 mum -4.47 cm 1.5 cm 497 MeV 5.51 keV 3.03 cm 4.95 cm World eIoni - 3 22.6 mum -15.4 cm 2.09 cm 1.59 GeV 24.2 keV 10.9 cm 15.9 cm World eIoni - 4 26.2 mum -20 cm 2.22 cm 2.05 GeV 8.89 keV 4.63 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -2.01 cm 1.16 cm 251 MeV 4.05 keV 2.47 cm 2.47 cm World eIoni + 2 -7.76 mum -18.5 cm 2.18 cm 1.9 GeV 31.7 keV 16.6 cm 19 cm World eIoni + 3 -8.21 mum -20 cm 2.22 cm 2.05 GeV 4.94 keV 1.48 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -7.76 mum -18.5 cm 2.18 cm 1.13 keV 0 eV 0 fm 0 fm World initStep + 1 -4.29 mum -18.5 cm 2.18 cm 749 keV 1.13 keV 68 mum 68 mum World eIoni + 2 6.38 mum -20 cm 2.18 cm 148 MeV 3.71 keV 1.47 cm 1.48 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.01 cm 1.16 cm 1.55 keV 0 eV 0 fm 0 fm World initStep + 1 7.34 mum -2.02 cm 1.16 cm 1.17 MeV 1.55 keV 106 mum 106 mum World eIoni + 2 34.5 mum -20 cm 1.16 cm 1.8 GeV 27.6 keV 18 cm 18 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.83 cm 1.54 cm 533 MeV 8.09 keV 5.31 cm 5.31 cm World eIoni + 2 993 nm -15.6 cm 2.1 cm 1.61 GeV 20.5 keV 10.8 cm 16.1 cm World eIoni + 3 1.82 mum -20 cm 2.22 cm 2.05 GeV 9.28 keV 4.43 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 993 nm -15.6 cm 2.1 cm 1.72 keV 0 eV 0 fm 0 fm World initStep + 1 -4.12 mum -15.6 cm 2.1 cm 1.37 MeV 1.72 keV 125 mum 125 mum World eIoni + 2 -17.9 mum -20 cm 2.1 cm 443 MeV 6.2 keV 4.42 cm 4.43 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.83 cm 1.54 cm 2.24 keV 0 eV 0 fm 0 fm World initStep + 1 -2.18 mum -4.85 cm 1.54 cm 2.05 MeV 2.24 keV 187 mum 187 mum World eIoni + 2 -4.84 mum -5.3 cm 1.54 cm 47.9 MeV 377 eV 4.59 mm 4.78 mm World eIoni + 3 -8.05 mum -20 cm 1.54 cm 1.52 GeV 23.5 keV 14.7 cm 15.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.53 cm 1.05 cm 203 MeV 5.24 keV 1.97 cm 1.97 cm World eIoni + 2 3.78 mum -4.65 cm 1.52 cm 515 MeV 7.09 keV 3.16 cm 5.13 cm World eIoni + 3 5.35 mum -5.79 cm 1.62 cm 629 MeV 1.82 keV 1.14 cm 6.27 cm World eIoni + 4 7.88 mum -11.1 cm 1.93 cm 1.16 GeV 8.95 keV 5.29 cm 11.6 cm World eIoni + 5 10.5 mum -20 cm 2.22 cm 2.05 GeV 15.6 keV 8.93 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 7.88 mum -11.1 cm 1.93 cm 1.34 keV 0 eV 0 fm 0 fm World initStep + 1 7.11 mum -11.1 cm 1.93 cm 951 keV 1.34 keV 86.6 mum 86.6 mum World eIoni + 2 4.22 mum -20 cm 1.93 cm 893 MeV 14.3 keV 8.92 cm 8.93 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 22.6 mum -15.4 cm 2.09 cm 1.19 keV 0 eV 0 fm 0 fm World initStep - 1 27.4 mum -15.4 cm 2.09 cm 804 keV 1.19 keV 73.2 mum 73.2 mum World eIoni - 2 44.9 mum -20 cm 2.09 cm 463 MeV 7.55 keV 4.62 cm 4.63 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.51 mum -4.47 cm 1.5 cm 58.8 keV 0 eV 0 fm 0 fm World initStep - 1 -113 mum -5.38 cm 1.52 cm 93.4 MeV 3.83 keV 9.24 mm 9.24 mm World eIoni - 2 -154 mum -20 cm 1.53 cm 1.56 GeV 28.8 keV 14.6 cm 15.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.48 cm 1.03 cm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 -6.28 mum -1.5 cm 1.03 cm 1.84 MeV 2.09 keV 167 mum 167 mum World eIoni - 2 -20.1 mum -4.92 cm 1.04 cm 344 MeV 6.22 keV 3.42 cm 3.44 cm World eIoni - 3 -20.3 mum -5.21 cm 1.04 cm 373 MeV 294 eV 2.86 mm 3.73 cm World eIoni - 4 -22.2 mum -6.5 cm 1.04 cm 502 MeV 1.59 keV 1.3 cm 5.02 cm World eIoni - 5 -32.5 mum -15.6 cm 1.04 cm 1.41 GeV 18.4 keV 9.08 cm 14.1 cm World eIoni - 6 -34 mum -19.1 cm 1.04 cm 1.76 GeV 8.47 keV 3.48 cm 17.6 cm World eIoni - 7 -34.2 mum -20 cm 1.04 cm 1.85 GeV 1.63 keV 9.41 mm 18.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -34 mum -19.1 cm 1.04 cm 3.89 keV 0 eV 0 fm 0 fm World initStep - 1 -40.4 mum -19.1 cm 1.04 cm 2.11 MeV 819 eV 200 mum 200 mum World eIoni - 2 -50.1 mum -20 cm 1.03 cm 94.2 MeV 1.44 keV 9.21 mm 9.41 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -32.5 mum -15.6 cm 1.04 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -37.1 mum -15.6 cm 1.04 cm 660 keV 1.03 keV 60.1 mum 60.1 mum World eIoni - 2 -55.8 mum -20 cm 1.04 cm 442 MeV 6.2 keV 4.41 cm 4.42 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -22.2 mum -6.5 cm 1.04 cm 1.38 keV 0 eV 0 fm 0 fm World initStep - 1 -15.8 mum -6.51 cm 1.04 cm 991 keV 1.38 keV 90.2 mum 90.2 mum World eIoni - 2 7.97 mum -20 cm 1.04 cm 1.35 GeV 18 keV 13.5 cm 13.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -20.3 mum -5.21 cm 1.04 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 -13.4 mum -5.22 cm 1.04 cm 1.1 MeV 1.48 keV 99.7 mum 99.7 mum World eIoni - 2 12.6 mum -20 cm 1.04 cm 1.48 GeV 20.6 keV 14.8 cm 14.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.47 cm 1.6 cm 597 MeV 10.7 keV 5.96 cm 5.96 cm World eIoni - 2 -781 nm -17.1 cm 2.15 cm 1.76 GeV 25.2 keV 11.7 cm 17.6 cm World eIoni - 3 -307 nm -20 cm 2.22 cm 2.05 GeV 4.69 keV 2.86 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -781 nm -17.1 cm 2.15 cm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 -8.04 mum -17.2 cm 2.15 cm 1.11 MeV 1.49 keV 101 mum 101 mum World eIoni - 2 -28.4 mum -20 cm 2.15 cm 286 MeV 3.83 keV 2.85 cm 2.86 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.47 cm 1.6 cm 2.73 keV 0 eV 0 fm 0 fm World initStep - 1 1.96 mum -5.5 cm 1.6 cm 2.79 MeV 2.73 keV 258 mum 258 mum World eIoni - 2 2.69 mum -5.56 cm 1.6 cm 8.52 MeV 17.6 eV 573 mum 830 mum World eIoni - 3 3.2 mum -5.65 cm 1.59 cm 18 MeV 181 eV 949 mum 1.78 mm World eIoni - 4 19.5 mum -8.39 cm 1.59 cm 292 MeV 6.5 keV 2.74 cm 2.91 cm World eIoni - 5 33.3 mum -20 cm 1.59 cm 1.45 GeV 24.5 keV 11.6 cm 14.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 19.5 mum -8.39 cm 1.59 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 14.2 mum -8.39 cm 1.59 cm 858 keV 1.25 keV 78 mum 78 mum World eIoni - 2 -6.67 mum -20 cm 1.59 cm 1.16 GeV 18 keV 11.6 cm 11.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.2 mum -5.65 cm 1.59 cm 2.2 keV 0 eV 0 fm 0 fm World initStep - 1 -8.04 mum -5.67 cm 1.6 cm 1.98 MeV 2.2 keV 181 mum 181 mum World eIoni - 2 -19.4 mum -5.91 cm 1.6 cm 26.6 MeV 390 eV 2.46 mm 2.64 mm World eIoni - 3 -34.9 mum -11.4 cm 1.6 cm 572 MeV 9.52 keV 5.46 cm 5.72 cm World eIoni - 4 -38.1 mum -20 cm 1.6 cm 1.44 GeV 17.7 keV 8.63 cm 14.4 cm OutOfWorldTransportation + 0 5.35 mum -5.79 cm 1.62 cm 14 keV 0 eV 0 fm 0 fm World initStep + 1 41.7 mum -6.25 cm 1.63 cm 49 MeV 14 keV 4.66 mm 4.66 mm World eIoni + 2 42.3 mum -6.33 cm 1.63 cm 57 MeV 785 eV 796 mum 5.46 mm World eIoni + 3 53.2 mum -14.9 cm 1.64 cm 919 MeV 13.9 keV 8.62 cm 9.16 cm World eIoni + 4 53.2 mum -20 cm 1.64 cm 1.42 GeV 9.33 keV 5.06 cm 14.2 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -34.9 mum -11.4 cm 1.6 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 -37.2 mum -11.4 cm 1.59 cm 1.09 MeV 1.48 keV 99.6 mum 99.6 mum World eIoni - 2 -44.9 mum -20 cm 1.59 cm 863 MeV 13 keV 8.62 cm 8.63 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.07 mm 5.32 mm 80.7 MeV 2.61 keV 6.36 mm 6.36 mm World eIoni - 2 -1.18 mum -5.43 cm 1.59 cm 593 MeV 11.2 keV 5.28 cm 5.92 cm World eIoni - 3 -1.49 mum -20 cm 2.22 cm 2.05 GeV 30.1 keV 14.6 cm 20.5 cm OutOfWorldTransportation + 0 53.2 mum -14.9 cm 1.64 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 60.4 mum -15 cm 1.64 cm 1.29 MeV 1.65 keV 117 mum 117 mum World eIoni + 2 81.1 mum -20 cm 1.64 cm 506 MeV 6.24 keV 5.05 cm 5.06 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.18 mum -5.43 cm 1.59 cm 1.66 keV 0 eV 0 fm 0 fm World initStep - 1 -1.8 mum -5.44 cm 1.59 cm 1.29 MeV 1.66 keV 118 mum 118 mum World eIoni - 2 -3.86 mum -20 cm 1.59 cm 1.46 GeV 20.3 keV 14.6 cm 14.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.07 mm 5.32 mm 1.78 keV 0 eV 0 fm 0 fm World initStep - 1 1.13 mum -3.2 mm 5.31 mm 1.43 MeV 1.78 keV 131 mum 131 mum World eIoni - 2 5 mum -20 cm 5.29 mm 1.97 GeV 28.4 keV 19.7 cm 19.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -13.5 cm 2.03 cm 1.4 GeV 27.7 keV 14 cm 14 cm World eIoni - 2 2.29 mum -20 cm 2.22 cm 2.05 GeV 13.1 keV 6.51 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -13.5 cm 2.03 cm 3.85 keV 0 eV 0 fm 0 fm World initStep - 1 -20.4 mum -13.5 cm 2.03 cm 4.91 MeV 3.85 keV 458 mum 458 mum World eIoni - 2 -34.4 mum -14 cm 2.03 cm 56.1 MeV 1.51 keV 5.12 mm 5.57 mm World eIoni - 3 -48.1 mum -18.7 cm 2.03 cm 517 MeV 7.71 keV 4.61 cm 5.17 cm World eIoni - 4 -49.7 mum -19.8 cm 2.03 cm 634 MeV 3.87 keV 1.16 cm 6.33 cm World eIoni - 5 -49.7 mum -20 cm 2.03 cm 651 MeV 352 eV 1.76 mm 6.51 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -49.7 mum -19.8 cm 2.03 cm 2.35 keV 0 eV 0 fm 0 fm World initStep - 1 -56.8 mum -19.8 cm 2.03 cm 2.2 MeV 2.35 keV 202 mum 202 mum World eIoni - 2 -61.8 mum -20 cm 2.03 cm 17.8 MeV 142 eV 1.56 mm 1.76 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -48.1 mum -18.7 cm 2.03 cm 2.06 keV 0 eV 0 fm 0 fm World initStep - 1 -44.3 mum -18.7 cm 2.03 cm 1.79 MeV 2.06 keV 164 mum 164 mum World eIoni - 2 -37.2 mum -20 cm 2.03 cm 134 MeV 1.71 keV 1.32 cm 1.34 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.04 cm 1.72 cm 754 MeV 13.9 keV 7.53 cm 7.53 cm World eIoni - 2 4.86 mum -17.5 cm 2.15 cm 1.8 GeV 22.2 keV 10.5 cm 18 cm World eIoni - 3 5.48 mum -20 cm 2.22 cm 2.05 GeV 5.62 keV 2.51 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.86 mum -17.5 cm 2.15 cm 1.29 keV 0 eV 0 fm 0 fm World initStep - 1 6.22 mum -17.5 cm 2.15 cm 903 keV 1.29 keV 82.3 mum 82.3 mum World eIoni - 2 10.4 mum -20 cm 2.15 cm 251 MeV 3.18 keV 2.5 cm 2.51 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.04 cm 1.72 cm 10.1 keV 0 eV 0 fm 0 fm World initStep - 1 -24.2 mum -7.14 cm 1.72 cm 10.5 MeV 2.78 keV 1.01 mm 1.01 mm World eIoni - 2 -38.9 mum -8.56 cm 1.72 cm 153 MeV 2.5 keV 1.42 cm 1.53 cm World eIoni - 3 -43.5 mum -16.3 cm 1.72 cm 931 MeV 17.2 keV 7.78 cm 9.3 cm World eIoni - 4 -43.6 mum -17.5 cm 1.72 cm 1.05 GeV 1.93 keV 1.18 cm 10.5 cm World eIoni - 5 -45.3 mum -20 cm 1.72 cm 1.3 GeV 5.32 keV 2.47 cm 13 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -43.6 mum -17.5 cm 1.72 cm 17.6 keV 0 eV 0 fm 0 fm World initStep - 1 53.7 mum -18.2 cm 1.73 cm 73.2 MeV 17.6 keV 7.08 mm 7.08 mm World eIoni - 2 58.5 mum -18.7 cm 1.73 cm 122 MeV 742 eV 4.9 mm 1.2 cm World eIoni - 3 65.4 mum -20 cm 1.73 cm 251 MeV 2.64 keV 1.28 cm 2.48 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -43.5 mum -16.3 cm 1.72 cm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 -46.8 mum -16.4 cm 1.72 cm 1.19 MeV 1.58 keV 109 mum 109 mum World eIoni - 2 -56.2 mum -20 cm 1.72 cm 366 MeV 7 keV 3.65 cm 3.66 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -38.9 mum -8.56 cm 1.72 cm 1e+03 eV 0 eV 0 fm 0 fm World initStep - 1 -43.4 mum -8.57 cm 1.72 cm 635 keV 1e+03 eV 57.8 mum 57.8 mum World eIoni - 2 -64.3 mum -20 cm 1.72 cm 1.14 GeV 17.7 keV 11.4 cm 11.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.32 cm 1.79 cm 882 MeV 16.8 keV 8.81 cm 8.81 cm World eIoni - 2 1.77 mum -11 cm 1.93 cm 1.15 GeV 5.38 keV 2.63 cm 11.4 cm World eIoni - 3 5.07 mum -16.3 cm 2.12 cm 1.68 GeV 11.3 keV 5.4 cm 16.8 cm World eIoni - 4 6.95 mum -20 cm 2.22 cm 2.05 GeV 9.92 keV 3.66 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.07 mum -16.3 cm 2.12 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 3.43 mum -16.4 cm 2.12 cm 743 keV 1.12 keV 67.5 mum 67.5 mum World eIoni - 2 -2.57 mum -20 cm 2.12 cm 366 MeV 6.58 keV 3.65 cm 3.65 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.77 mum -11 cm 1.93 cm 1.41 keV 0 eV 0 fm 0 fm World initStep - 1 -1.36 mum -11 cm 1.93 cm 1.03 MeV 1.41 keV 93.6 mum 93.6 mum World eIoni - 2 -12.5 mum -20 cm 1.93 cm 905 MeV 12.9 keV 9.04 cm 9.05 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.32 cm 1.79 cm 5.12 keV 0 eV 0 fm 0 fm World initStep - 1 -28 mum -8.4 cm 1.79 cm 8 MeV 5.12 keV 751 mum 751 mum World eIoni - 2 -39.3 mum -8.76 cm 1.79 cm 44.4 MeV 680 eV 3.64 mm 4.39 mm World eIoni - 3 -61.1 mum -17.3 cm 1.79 cm 902 MeV 16.4 keV 8.58 cm 9.02 cm World eIoni - 4 -63.4 mum -20 cm 1.79 cm 1.17 GeV 4.78 keV 2.66 cm 11.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -61.1 mum -17.3 cm 1.79 cm 6.36 keV 0 eV 0 fm 0 fm World initStep - 1 -44.4 mum -17.4 cm 1.8 cm 11.7 MeV 6.36 keV 1.1 mm 1.1 mm World eIoni - 2 -42.1 mum -17.6 cm 1.8 cm 22.6 MeV 723 eV 1.08 mm 2.19 mm World eIoni - 3 -33.6 mum -20 cm 1.8 cm 267 MeV 6.73 keV 2.45 cm 2.66 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.3 cm 1.98 cm 1.28 GeV 25.1 keV 12.8 cm 12.8 cm World eIoni - 2 223 nm -13.3 cm 2.02 cm 1.38 GeV 2.08 keV 9.53 mm 13.8 cm World eIoni - 3 581 nm -14.5 cm 2.06 cm 1.5 GeV 3.49 keV 1.27 cm 15 cm World eIoni - 4 1.83 mum -17.4 cm 2.15 cm 1.79 GeV 6.01 keV 2.88 cm 17.9 cm World eIoni - 5 3.09 mum -20 cm 2.22 cm 2.05 GeV 6.47 keV 2.57 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.83 mum -17.4 cm 2.15 cm 4.33 keV 0 eV 0 fm 0 fm World initStep - 1 -6.4 mum -17.5 cm 2.15 cm 6.03 MeV 4.33 keV 564 mum 564 mum World eIoni - 2 -9.75 mum -17.7 cm 2.15 cm 28.6 MeV 123 eV 2.26 mm 2.82 mm World eIoni - 3 -14.8 mum -20 cm 2.15 cm 257 MeV 3.92 keV 2.29 cm 2.57 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 581 nm -14.5 cm 2.06 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -4.05 mum -14.6 cm 2.06 cm 659 keV 1.03 keV 59.9 mum 59.9 mum World eIoni - 2 -23.5 mum -20 cm 2.06 cm 545 MeV 9.36 keV 5.44 cm 5.45 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 223 nm -13.3 cm 2.02 cm 1.56 keV 0 eV 0 fm 0 fm World initStep - 1 -1.59 mum -13.3 cm 2.02 cm 1.18 MeV 1.56 keV 107 mum 107 mum World eIoni - 2 -7.33 mum -20 cm 2.02 cm 672 MeV 8.68 keV 6.71 cm 6.72 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -12.3 cm 1.98 cm 1.18 keV 0 eV 0 fm 0 fm World initStep - 1 -5.05 mum -12.3 cm 1.98 cm 799 keV 1.18 keV 72.7 mum 72.7 mum World eIoni - 2 -24.9 mum -20 cm 1.98 cm 768 MeV 11.3 keV 7.67 cm 7.68 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.19 cm 1.19 cm 269 MeV 5.81 keV 2.65 cm 2.65 cm World eIoni - 2 -1.8 mum -3.97 cm 1.45 cm 447 MeV 3.59 keV 1.8 cm 4.45 cm World eIoni - 3 -1.84 mum -4.98 cm 1.55 cm 548 MeV 1.32 keV 1.01 cm 5.46 cm World eIoni - 4 -5.41 mum -17 cm 2.14 cm 1.75 GeV 25.1 keV 12.1 cm 17.5 cm World eIoni - 5 -5.93 mum -20 cm 2.22 cm 2.05 GeV 6.83 keV 2.98 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -5.41 mum -17 cm 2.14 cm 3.98 keV 0 eV 0 fm 0 fm World initStep - 1 -4.67 mum -17.1 cm 2.14 cm 5.17 MeV 3.98 keV 483 mum 483 mum World eIoni - 2 -4.09 mum -17.8 cm 2.14 cm 81.8 MeV 1.24 keV 7.67 mm 8.15 mm World eIoni - 3 -3.81 mum -20 cm 2.14 cm 298 MeV 7.26 keV 2.16 cm 2.98 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.84 mum -4.98 cm 1.55 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 2.96 mum -4.98 cm 1.55 cm 830 keV 1.22 keV 75.7 mum 75.7 mum World eIoni - 2 23.9 mum -20 cm 1.55 cm 1.5 GeV 21.6 keV 15 cm 15 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.8 mum -3.97 cm 1.45 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 -7.42 mum -3.98 cm 1.45 cm 864 keV 1.26 keV 78.7 mum 78.7 mum World eIoni - 2 -31.6 mum -20 cm 1.45 cm 1.6 GeV 25.7 keV 16 cm 16 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.19 cm 1.19 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 5.77 mum -2.2 cm 1.19 cm 820 keV 1.21 keV 74.6 mum 74.6 mum World eIoni - 2 31.6 mum -20 cm 1.19 cm 1.78 GeV 27.3 keV 17.8 cm 17.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -13.6 cm 2.03 cm 1.33 GeV 26.5 keV 14.1 cm 14.1 cm World eBrem - 2 0 fm -20 cm 2.22 cm 1.97 GeV 13.1 keV 6.41 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -13.6 cm 2.03 cm 79.1 MeV 0 eV 0 fm 0 fm World initStep - 1 40.8 mum -20 cm 2.25 cm 79.1 MeV 0 eV 6.41 cm 6.41 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 38.6 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -10.2 cm 1.89 cm 1.07 GeV 20.8 keV 10.6 cm 10.6 cm World eIoni - 2 743 nm -20 cm 2.22 cm 2.05 GeV 20.6 keV 9.85 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10.2 cm 1.89 cm 3.02 keV 0 eV 0 fm 0 fm World initStep - 1 -3.3 mum -10.2 cm 1.89 cm 3.28 MeV 3.02 keV 303 mum 303 mum World eIoni - 2 -5.04 mum -10.3 cm 1.89 cm 17 MeV 48.2 eV 1.37 mm 1.67 mm World eIoni - 3 -6.26 mum -10.7 cm 1.89 cm 50.8 MeV 287 eV 3.38 mm 5.05 mm World eIoni - 4 -21.3 mum -18.4 cm 1.9 cm 823 MeV 15.7 keV 7.73 cm 8.23 cm World eIoni - 5 -22.1 mum -20 cm 1.9 cm 985 MeV 2.88 keV 1.62 cm 9.85 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -21.3 mum -18.4 cm 1.9 cm 1.71 keV 0 eV 0 fm 0 fm World initStep - 1 -20.9 mum -18.4 cm 1.89 cm 1.36 MeV 1.71 keV 124 mum 124 mum World eIoni - 2 -20 mum -20 cm 1.89 cm 162 MeV 1.76 keV 1.6 cm 1.62 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -6.26 mum -10.7 cm 1.89 cm 2.24 keV 0 eV 0 fm 0 fm World initStep - 1 3.33 mum -10.7 cm 1.89 cm 2.03 MeV 2.24 keV 187 mum 187 mum World eIoni - 2 17.3 mum -11.5 cm 1.89 cm 80.1 MeV 1.05 keV 7.81 mm 8 mm World eIoni - 3 27.4 mum -20 cm 1.89 cm 935 MeV 17.9 keV 8.54 cm 9.34 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.94 cm 1.32 cm 344 MeV 7.82 keV 3.41 cm 3.41 cm World eIoni - 2 -428 nm -7.06 cm 1.72 cm 756 MeV 8.72 keV 4.14 cm 7.55 cm World eIoni - 3 588 nm -10 cm 1.88 cm 1.05 GeV 7.66 keV 2.95 cm 10.5 cm World eIoni - 4 2.39 mum -13.8 cm 2.04 cm 1.43 GeV 9.14 keV 3.76 cm 14.3 cm World eIoni - 5 4.79 mum -16.5 cm 2.13 cm 1.7 GeV 5.85 keV 2.77 cm 17 cm World eIoni - 6 7.77 mum -20 cm 2.22 cm 2.05 GeV 8.14 keV 3.47 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.79 mum -16.5 cm 2.13 cm 2.17 keV 0 eV 0 fm 0 fm World initStep - 1 -1.27 mum -16.6 cm 2.13 cm 1.94 MeV 2.17 keV 178 mum 178 mum World eIoni - 2 -10.4 mum -17.4 cm 2.13 cm 82.7 MeV 934 eV 8.07 mm 8.25 mm World eIoni - 3 -14.1 mum -20 cm 2.13 cm 347 MeV 4.22 keV 2.64 cm 3.46 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.39 mum -13.8 cm 2.04 cm 5.8 keV 0 eV 0 fm 0 fm World initStep - 1 -32.2 mum -13.9 cm 2.04 cm 10 MeV 5.8 keV 942 mum 942 mum World eIoni - 2 -37.2 mum -14 cm 2.04 cm 19.8 MeV 8.43 eV 982 mum 1.92 mm World eIoni - 3 -51.3 mum -15 cm 2.04 cm 125 MeV 2.92 keV 1.05 cm 1.24 cm World eIoni - 4 -58.9 mum -18.5 cm 2.04 cm 472 MeV 7.34 keV 3.47 cm 4.71 cm World eIoni - 5 -61 mum -20 cm 2.04 cm 624 MeV 2.48 keV 1.52 cm 6.24 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -58.9 mum -18.5 cm 2.04 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 -55.4 mum -18.5 cm 2.04 cm 868 keV 1.26 keV 79 mum 79 mum World eIoni - 2 -45.4 mum -20 cm 2.04 cm 152 MeV 3.01 keV 1.52 cm 1.52 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -51.3 mum -15 cm 2.04 cm 14.7 keV 0 eV 0 fm 0 fm World initStep - 1 -56.2 mum -15 cm 2.03 cm 2.99 MeV 114 eV 296 mum 296 mum World eIoni - 2 -63.5 mum -16.5 cm 2.03 cm 147 MeV 1.97 keV 1.44 cm 1.47 cm World eIoni - 3 -62.5 mum -20 cm 2.03 cm 499 MeV 9.63 keV 3.52 cm 4.99 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -63.5 mum -16.5 cm 2.03 cm 1.55 keV 0 eV 0 fm 0 fm World initStep - 1 -68.7 mum -16.5 cm 2.03 cm 1.17 MeV 1.55 keV 106 mum 106 mum World eIoni - 2 -83.4 mum -20 cm 2.03 cm 353 MeV 5.22 keV 3.51 cm 3.52 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 588 nm -10 cm 1.88 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 -3.74 mum -10 cm 1.88 cm 711 keV 1.08 keV 64.6 mum 64.6 mum World eIoni - 2 -22.6 mum -20 cm 1.88 cm 999 MeV 14.7 keV 9.99 cm 9.99 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -428 nm -7.06 cm 1.72 cm 1.54 keV 0 eV 0 fm 0 fm World initStep - 1 -7.35 mum -7.07 cm 1.72 cm 1.16 MeV 1.54 keV 105 mum 105 mum World eIoni - 2 -31.2 mum -20 cm 1.72 cm 1.29 GeV 19 keV 12.9 cm 12.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.94 cm 1.32 cm 1 keV 0 eV 0 fm 0 fm World initStep - 1 791 nm -2.95 cm 1.32 cm 636 keV 1 keV 58.2 mum 58.2 mum World eIoni - 2 4.85 mum -20 cm 1.31 cm 1.71 GeV 27.8 keV 17.1 cm 17.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.22 cm 1.36 cm 372 MeV 4.25 keV 3.69 cm 3.69 cm World eIoni - 2 194 nm -8.98 cm 1.83 cm 948 MeV 12.5 keV 5.79 cm 9.47 cm World eIoni - 3 -583 nm -12.1 cm 1.98 cm 1.26 GeV 7.15 keV 3.16 cm 12.6 cm World eIoni - 4 -740 nm -14.2 cm 2.05 cm 1.47 GeV 3.06 keV 2.08 cm 14.7 cm World eIoni - 5 -546 nm -20 cm 2.22 cm 2.05 GeV 11.9 keV 5.78 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -740 nm -14.2 cm 2.05 cm 4.41 keV 0 eV 0 fm 0 fm World initStep - 1 -6.78 mum -14.3 cm 2.05 cm 6.21 MeV 4.41 keV 582 mum 582 mum World eIoni - 2 -10.1 mum -14.7 cm 2.06 cm 50.4 MeV 673 eV 4.42 mm 5 mm World eIoni - 3 -14.2 mum -20 cm 2.06 cm 579 MeV 9.94 keV 5.28 cm 5.78 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -583 nm -12.1 cm 1.98 cm 2.14 keV 0 eV 0 fm 0 fm World initStep - 1 -4.47 mum -12.2 cm 1.97 cm 1.89 MeV 2.14 keV 173 mum 173 mum World eIoni - 2 -9.65 mum -12.7 cm 1.97 cm 52.3 MeV 126 eV 5.04 mm 5.21 mm World eIoni - 3 -13.8 mum -17.8 cm 1.97 cm 569 MeV 10.1 keV 5.17 cm 5.69 cm World eIoni - 4 -14.6 mum -20 cm 1.97 cm 786 MeV 2.94 keV 2.17 cm 7.86 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -13.8 mum -17.8 cm 1.97 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 -12.6 mum -17.8 cm 1.97 cm 832 keV 1.22 keV 75.7 mum 75.7 mum World eIoni - 2 -8.8 mum -20 cm 1.97 cm 217 MeV 2.88 keV 2.16 cm 2.17 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 194 nm -8.98 cm 1.83 cm 1.56 keV 0 eV 0 fm 0 fm World initStep - 1 5.78 mum -8.99 cm 1.83 cm 1.18 MeV 1.56 keV 107 mum 107 mum World eIoni - 2 24.8 mum -20 cm 1.83 cm 1.1 GeV 16.7 keV 11 cm 11 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.22 cm 1.36 cm 2.64 keV 0 eV 0 fm 0 fm World initStep - 1 -554 nm -3.24 cm 1.36 cm 2.64 MeV 2.64 keV 243 mum 243 mum World eIoni - 2 -570 nm -3.24 cm 1.36 cm 2.9 MeV 0 eV 26.5 mum 269 mum World eIoni - 3 -1.7 mum -10 cm 1.36 cm 681 MeV 10.2 keV 6.78 cm 6.81 cm World eIoni - 4 -1.88 mum -13.3 cm 1.36 cm 1.01 GeV 5.66 keV 3.29 cm 10.1 cm World eIoni - 5 -2.15 mum -15.6 cm 1.36 cm 1.24 GeV 6.15 keV 2.31 cm 12.4 cm World eIoni - 6 -2.71 mum -20 cm 1.36 cm 1.68 GeV 10.6 keV 4.38 cm 16.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.15 mum -15.6 cm 1.36 cm 1.39 keV 0 eV 0 fm 0 fm World initStep - 1 -986 nm -15.6 cm 1.36 cm 1 MeV 1.39 keV 91 mum 91 mum World eIoni - 2 2.75 mum -20 cm 1.36 cm 438 MeV 6.97 keV 4.37 cm 4.38 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.88 mum -13.3 cm 1.36 cm 4.03 keV 0 eV 0 fm 0 fm World initStep - 1 1.1 mum -13.4 cm 1.36 cm 4.98 MeV 4.03 keV 465 mum 465 mum World eIoni - 2 5.06 mum -17.9 cm 1.37 cm 454 MeV 6.95 keV 4.49 cm 4.54 cm World eIoni - 3 5.4 mum -20 cm 1.37 cm 669 MeV 4.51 keV 2.15 cm 6.68 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.7 mum -10 cm 1.36 cm 2.37 keV 0 eV 0 fm 0 fm World initStep - 1 -1.06 mum -10 cm 1.36 cm 2.22 MeV 2.37 keV 204 mum 204 mum World eIoni - 2 75.9 nm -12.2 cm 1.36 cm 216 MeV 3.13 keV 2.14 cm 2.16 cm World eIoni - 3 463 nm -20 cm 1.36 cm 998 MeV 15.9 keV 7.81 cm 9.97 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.49 cm 1.68 cm 699 MeV 14.3 keV 6.98 cm 6.98 cm World eIoni - 2 -2.72 mum -20 cm 2.22 cm 2.05 GeV 28.1 keV 13.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.49 cm 1.68 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 4.02 mum -6.5 cm 1.68 cm 755 keV 1.13 keV 68.5 mum 68.5 mum World eIoni - 2 22.1 mum -20 cm 1.68 cm 1.35 GeV 21.3 keV 13.5 cm 13.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -18.8 cm 2.19 cm 1.93 GeV 36.8 keV 19.3 cm 19.3 cm World eIoni - 2 -30.1 nm -20 cm 2.22 cm 2.05 GeV 1.45 keV 1.21 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -18.8 cm 2.19 cm 3.53 keV 0 eV 0 fm 0 fm World initStep - 1 1.59 mum -18.8 cm 2.19 cm 4.26 MeV 3.53 keV 396 mum 396 mum World eIoni - 2 2.01 mum -18.9 cm 2.19 cm 10.6 MeV 84.8 eV 633 mum 1.03 mm World eIoni - 3 2.85 mum -19.4 cm 2.19 cm 59.4 MeV 1.61 keV 4.88 mm 5.91 mm World eIoni - 4 -41.7 nm -20 cm 2.19 cm 121 MeV 836 eV 6.21 mm 1.21 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.85 mum -19.4 cm 2.19 cm 2.05 keV 0 eV 0 fm 0 fm World initStep - 1 13.2 mum -19.4 cm 2.19 cm 1.77 MeV 2.05 keV 162 mum 162 mum World eIoni - 2 28.5 mum -20 cm 2.19 cm 62.2 MeV 785 eV 6.05 mm 6.21 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -14.8 cm 2.07 cm 1.53 GeV 30.9 keV 15.3 cm 15.3 cm World eIoni - 2 -486 nm -19.2 cm 2.2 cm 1.97 GeV 10.7 keV 4.42 cm 19.7 cm World eIoni - 3 264 nm -20 cm 2.22 cm 2.05 GeV 961 eV 7.74 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -486 nm -19.2 cm 2.2 cm 52.2 keV 0 eV 0 fm 0 fm World initStep - 1 -156 mum -19.7 cm 2.21 cm 48.1 MeV 2.85 keV 4.71 mm 4.71 mm World eIoni - 2 -167 mum -20 cm 2.21 cm 79.2 MeV 413 eV 3.11 mm 7.82 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -14.8 cm 2.07 cm 2.73 keV 0 eV 0 fm 0 fm World initStep - 1 4.51 mum -14.8 cm 2.07 cm 1.97 MeV 2.46 keV 183 mum 183 mum World eIoni - 2 13.2 mum -16.8 cm 2.07 cm 203 MeV 2.6 keV 2.01 cm 2.03 cm World eIoni - 3 14.3 mum -18.4 cm 2.07 cm 356 MeV 3.23 keV 1.53 cm 3.56 cm World eIoni - 4 16 mum -20 cm 2.07 cm 519 MeV 3.3 keV 1.63 cm 5.19 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 14.3 mum -18.4 cm 2.07 cm 1.56 keV 0 eV 0 fm 0 fm World initStep - 1 6.89 mum -18.4 cm 2.07 cm 1.18 MeV 1.56 keV 108 mum 108 mum World eIoni - 2 -10.9 mum -20 cm 2.07 cm 163 MeV 2.69 keV 1.62 cm 1.63 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.45 cm 1.39 cm 395 MeV 7.87 keV 3.93 cm 3.93 cm World eIoni - 2 -927 nm -10.1 cm 1.89 cm 1.06 GeV 14.1 keV 6.64 cm 10.6 cm World eIoni - 3 1.69 mum -20 cm 2.22 cm 2.05 GeV 21 keV 9.93 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -927 nm -10.1 cm 1.89 cm 2.6 keV 0 eV 0 fm 0 fm World initStep - 1 -13.8 mum -10.1 cm 1.89 cm 2.57 MeV 2.6 keV 237 mum 237 mum World eIoni - 2 -27.7 mum -10.6 cm 1.89 cm 51.3 MeV 652 eV 4.88 mm 5.11 mm World eIoni - 3 -42.2 mum -18.9 cm 1.89 cm 883 MeV 16.4 keV 8.32 cm 8.83 cm World eIoni - 4 -42.8 mum -20 cm 1.89 cm 993 MeV 2.67 keV 1.09 cm 9.92 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -42.2 mum -18.9 cm 1.89 cm 4.19 keV 0 eV 0 fm 0 fm World initStep - 1 -35.4 mum -19 cm 1.89 cm 5.69 MeV 4.19 keV 532 mum 532 mum World eIoni - 2 -33 mum -19.1 cm 1.89 cm 20.4 MeV 118 eV 1.47 mm 2.01 mm World eIoni - 3 -29.9 mum -20 cm 1.89 cm 110 MeV 2.24 keV 8.94 mm 1.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.45 cm 1.39 cm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 2.15 mum -3.47 cm 1.39 cm 1.83 MeV 2.09 keV 168 mum 168 mum World eIoni - 2 7.34 mum -8.51 cm 1.38 cm 506 MeV 6.61 keV 5.04 cm 5.06 cm World eIoni - 3 8.38 mum -18.8 cm 1.38 cm 1.53 GeV 22.3 keV 10.3 cm 15.3 cm World eIoni - 4 8.36 mum -18.8 cm 1.38 cm 1.54 GeV 0 eV 700 mum 15.4 cm World eIoni - 5 8.09 mum -20 cm 1.38 cm 1.65 GeV 2.36 keV 1.17 cm 16.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 8.36 mum -18.8 cm 1.38 cm 2.16 keV 0 eV 0 fm 0 fm World initStep - 1 11.6 mum -18.9 cm 1.38 cm 1.93 MeV 2.16 keV 177 mum 177 mum World eIoni - 2 12 mum -18.9 cm 1.38 cm 2.75 MeV 0 eV 81.9 mum 259 mum World eIoni - 3 17.2 mum -20 cm 1.38 cm 117 MeV 1.92 keV 1.14 cm 1.17 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 8.38 mum -18.8 cm 1.38 cm 3.86 keV 0 eV 0 fm 0 fm World initStep - 1 23.2 mum -18.8 cm 1.39 cm 4.93 MeV 3.86 keV 460 mum 460 mum World eIoni - 2 27.1 mum -18.9 cm 1.39 cm 12.9 MeV 478 eV 802 mum 1.26 mm World eIoni - 3 36.8 mum -20 cm 1.39 cm 124 MeV 1.62 keV 1.11 cm 1.24 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -14.4 cm 2.06 cm 1.49 GeV 28.4 keV 14.9 cm 14.9 cm World eIoni - 2 475 nm -17.2 cm 2.15 cm 1.77 GeV 7.12 keV 2.89 cm 17.7 cm World eIoni - 3 420 nm -20 cm 2.22 cm 2.05 GeV 4.58 keV 2.76 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 475 nm -17.2 cm 2.15 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 4.99 mum -17.2 cm 2.15 cm 644 keV 1.01 keV 58.6 mum 58.6 mum World eIoni - 2 22 mum -20 cm 2.15 cm 276 MeV 4.4 keV 2.75 cm 2.76 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -14.4 cm 2.06 cm 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 -4.11 mum -14.4 cm 2.06 cm 702 keV 1.07 keV 63.7 mum 63.7 mum World eIoni - 2 -20.9 mum -20 cm 2.06 cm 565 MeV 8.42 keV 5.64 cm 5.65 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.82 cm 1.11 cm 232 MeV 2.64 keV 2.27 cm 2.27 cm World eIoni - 2 -1.69 mum -20 cm 2.22 cm 2.05 GeV 37.5 keV 18.2 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.82 cm 1.11 cm 1.36 keV 0 eV 0 fm 0 fm World initStep - 1 1.35 mum -1.83 cm 1.11 cm 965 keV 1.36 keV 88.3 mum 88.3 mum World eIoni - 2 6.97 mum -20 cm 1.11 cm 1.82 GeV 26.9 keV 18.2 cm 18.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 38 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.08 mm 3.24 mm 60.8 MeV 1.31 keV 3.47 mm 3.47 mm World eIoni - 2 4.06 mum -2.27 cm 1.21 cm 277 MeV 4.21 keV 2.38 cm 2.73 cm World eIoni - 3 1.08 mum -20 cm 2.22 cm 2.05 GeV 37.6 keV 17.8 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.06 mum -2.27 cm 1.21 cm 3.15 keV 0 eV 0 fm 0 fm World initStep - 1 15.5 mum -2.3 cm 1.21 cm 3.51 MeV 3.15 keV 325 mum 325 mum World eIoni - 2 25 mum -2.75 cm 1.21 cm 48.5 MeV 214 eV 4.5 mm 4.82 mm World eIoni - 3 39.1 mum -20 cm 1.21 cm 1.77 GeV 32.6 keV 17.2 cm 17.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.08 mm 3.24 mm 1 keV 0 eV 0 fm 0 fm World initStep - 1 -3.65 mum -1.13 mm 3.24 mm 678 keV 1 keV 58.1 mum 58.1 mum World eIoni - 2 -21.4 mum -20 cm 3.26 mm 1.99 GeV 31.5 keV 19.9 cm 19.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.02 mm 3.16 mm 60.2 MeV 703 eV 3.37 mm 3.37 mm World eIoni - 2 1.95 mum -7.95 cm 1.77 cm 845 MeV 15.8 keV 8.1 cm 8.44 cm World eIoni - 3 2.26 mum -10 cm 1.88 cm 1.05 GeV 4.5 keV 2.08 cm 10.5 cm World eIoni - 4 3.32 mum -13.1 cm 2.02 cm 1.36 GeV 4.82 keV 3.11 cm 13.6 cm World eIoni - 5 3.62 mum -20 cm 2.22 cm 2.05 GeV 15.5 keV 6.87 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.32 mum -13.1 cm 2.02 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 8.47 mum -13.1 cm 2.02 cm 713 keV 1.09 keV 64.8 mum 64.8 mum World eIoni - 2 29.3 mum -20 cm 2.02 cm 687 MeV 10.5 keV 6.86 cm 6.87 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.26 mum -10 cm 1.88 cm 2.01 keV 0 eV 0 fm 0 fm World initStep - 1 -3.68 mum -10 cm 1.88 cm 1.71 MeV 2.01 keV 156 mum 156 mum World eIoni - 2 -17.2 mum -13.1 cm 1.88 cm 306 MeV 4.95 keV 3.04 cm 3.06 cm World eIoni - 3 -25.1 mum -20 cm 1.88 cm 997 MeV 15.4 keV 6.91 cm 9.97 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -17.2 mum -13.1 cm 1.88 cm 4.71 keV 0 eV 0 fm 0 fm World initStep - 1 -399 nm -13.2 cm 1.88 cm 6.96 MeV 4.71 keV 652 mum 652 mum World eIoni - 2 7.66 mum -13.6 cm 1.88 cm 47.9 MeV 171 eV 4.09 mm 4.75 mm World eIoni - 3 13.3 mum -14.9 cm 1.88 cm 179 MeV 2.46 keV 1.31 cm 1.79 cm World eIoni - 4 19.1 mum -20 cm 1.88 cm 692 MeV 10.6 keV 5.12 cm 6.91 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 13.3 mum -14.9 cm 1.88 cm 2.25 keV 0 eV 0 fm 0 fm World initStep - 1 13.4 mum -14.9 cm 1.88 cm 2.06 MeV 2.25 keV 189 mum 189 mum World eIoni - 2 13.5 mum -15 cm 1.88 cm 14.9 MeV 234 eV 1.29 mm 1.48 mm World eIoni - 3 13.5 mum -15.7 cm 1.88 cm 83 MeV 1.16 keV 6.81 mm 8.29 mm World eIoni - 4 13.6 mum -20 cm 1.87 cm 513 MeV 7.91 keV 4.3 cm 5.12 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.95 mum -7.95 cm 1.77 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 787 nm -7.95 cm 1.77 cm 713 keV 1.09 keV 65 mum 65 mum World eIoni - 2 -4.33 mum -20 cm 1.77 cm 1.21 GeV 20.3 keV 12 cm 12.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.02 mm 3.16 mm 1.16 keV 0 eV 0 fm 0 fm World initStep - 1 -1.04 mum -1.09 mm 3.16 mm 764 keV 1.16 keV 70.4 mum 70.4 mum World eIoni - 2 -5.06 mum -3.87 cm 3.15 mm 377 MeV 4.35 keV 3.76 cm 3.77 cm World eBrem - 3 -6.19 mum -20 cm 3.14 mm 1.99 GeV 31.9 keV 16.1 cm 19.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -5.06 mum -3.87 cm 3.15 mm 324 keV 0 eV 0 fm 0 fm World initStep - 1 -169 mum -20 cm 3 mm 324 keV 0 eV 16.1 cm 16.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -958 mum 3.06 mm 59.6 MeV 961 eV 3.26 mm 3.26 mm World eIoni - 2 -5.82 mum -20 cm 2.22 cm 2.05 GeV 40.2 keV 20.2 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -958 mum 3.06 mm 1.7 keV 0 eV 0 fm 0 fm World initStep - 1 2.99 mum -1.08 mm 3.06 mm 1.33 MeV 1.7 keV 122 mum 122 mum World eIoni - 2 13.8 mum -20 cm 3.05 mm 1.99 GeV 28.6 keV 19.9 cm 19.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 41.4 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -18.3 cm 2.18 cm 1.88 GeV 37.4 keV 18.8 cm 18.8 cm World eIoni - 2 289 nm -20 cm 2.22 cm 2.05 GeV 4.61 keV 1.68 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -18.3 cm 2.18 cm 3.15 keV 0 eV 0 fm 0 fm World initStep - 1 -10.1 mum -18.4 cm 2.18 cm 3.49 MeV 3.15 keV 324 mum 324 mum World eIoni - 2 -18.4 mum -18.8 cm 2.18 cm 45.9 MeV 399 eV 4.24 mm 4.57 mm World eIoni - 3 -19.9 mum -19 cm 2.18 cm 72.8 MeV 634 eV 2.69 mm 7.26 mm World eIoni - 4 -24.9 mum -20 cm 2.18 cm 168 MeV 1.29 keV 9.54 mm 1.68 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -19.9 mum -19 cm 2.18 cm 1.39 keV 0 eV 0 fm 0 fm World initStep - 1 -15.1 mum -19.1 cm 2.18 cm 1 MeV 1.39 keV 91 mum 91 mum World eIoni - 2 -3.74 mum -20 cm 2.18 cm 95.5 MeV 1.49 keV 9.45 mm 9.54 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.95 cm 1.14 cm 245 MeV 4.46 keV 2.41 cm 2.41 cm World eIoni - 2 -11.6 mum -19 cm 2.2 cm 1.95 GeV 34.7 keV 17.1 cm 19.5 cm World eIoni - 3 -11.6 mum -20 cm 2.22 cm 2.05 GeV 981 eV 1.01 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -11.6 mum -19 cm 2.2 cm 6.1 keV 0 eV 0 fm 0 fm World initStep - 1 -35.2 mum -19.1 cm 2.19 cm 10.9 MeV 6.1 keV 1.03 mm 1.03 mm World eIoni - 2 -42 mum -19.4 cm 2.19 cm 43.3 MeV 537 eV 3.24 mm 4.27 mm World eIoni - 3 -43.7 mum -19.6 cm 2.19 cm 61.1 MeV 215 eV 1.77 mm 6.04 mm World eIoni - 4 -47.6 mum -20 cm 2.19 cm 102 MeV 1.01 keV 4.05 mm 1.01 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -43.7 mum -19.6 cm 2.19 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 -39.2 mum -19.6 cm 2.19 cm 872 keV 1.26 keV 79.3 mum 79.3 mum World eIoni - 2 -29.9 mum -20 cm 2.19 cm 40.6 MeV 515 eV 3.97 mm 4.05 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.95 cm 1.14 cm 3.43 keV 0 eV 0 fm 0 fm World initStep - 1 17.6 mum -1.99 cm 1.14 cm 4.06 MeV 3.43 keV 378 mum 378 mum World eIoni - 2 32 mum -2.55 cm 1.14 cm 59.5 MeV 808 eV 5.55 mm 5.93 mm World eIoni - 3 32.8 mum -2.65 cm 1.14 cm 69.6 MeV 748 eV 1.01 mm 6.94 mm World eIoni - 4 29.8 mum -5.69 cm 1.14 cm 374 MeV 6.35 keV 3.04 cm 3.73 cm World eIoni - 5 30.2 mum -20 cm 1.14 cm 1.8 GeV 29.4 keV 14.3 cm 18 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 29.8 mum -5.69 cm 1.14 cm 2.35 keV 0 eV 0 fm 0 fm World initStep - 1 24.9 mum -5.71 cm 1.14 cm 2.19 MeV 2.35 keV 202 mum 202 mum World eIoni - 2 19.6 mum -6.06 cm 1.14 cm 37.3 MeV 275 eV 3.51 mm 3.71 mm WorldTransportation - 3 19.6 mum -6.06 cm 1.14 cm 37.3 MeV 0 eV 0.000398 fm 3.71 mm World eIoni - 4 18.2 mum -6.43 cm 1.14 cm 74.6 MeV 589 eV 3.73 mm 7.44 mm World eIoni - 5 -19.6 mum -20 cm 1.14 cm 1.43 GeV 26.5 keV 13.6 cm 14.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 18.2 mum -6.43 cm 1.14 cm 12.7 keV 0 eV 0 fm 0 fm World initStep - 1 111 mum -6.81 cm 1.14 cm 40.1 MeV 11.9 keV 3.81 mm 3.81 mm World eIoni - 2 149 mum -20 cm 1.14 cm 1.36 GeV 24 keV 13.2 cm 13.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 32.8 mum -2.65 cm 1.14 cm 6.1 keV 0 eV 0 fm 0 fm World initStep - 1 65.7 mum -2.74 cm 1.14 cm 9.89 MeV 4.23 keV 933 mum 933 mum World eIoni - 2 94.5 mum -7.37 cm 1.14 cm 473 MeV 7.95 keV 4.63 cm 4.72 cm World eIoni - 3 104 mum -20 cm 1.14 cm 1.74 GeV 26.5 keV 12.6 cm 17.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 94.5 mum -7.37 cm 1.14 cm 1.68 keV 0 eV 0 fm 0 fm World initStep - 1 94.7 mum -7.38 cm 1.14 cm 1.32 MeV 1.68 keV 120 mum 120 mum World eIoni - 2 95.4 mum -20 cm 1.14 cm 1.26 GeV 17.7 keV 12.6 cm 12.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.7 cm 1.09 cm 220 MeV 5.94 keV 2.15 cm 2.15 cm World eIoni - 2 -1.39 mum -4.75 cm 1.53 cm 525 MeV 7.02 keV 3.08 cm 5.23 cm World eIoni - 3 -3 mum -20 cm 2.22 cm 2.05 GeV 31.8 keV 15.3 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.39 mum -4.75 cm 1.53 cm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 -2.15 mum -4.76 cm 1.53 cm 1.2 MeV 1.58 keV 109 mum 109 mum World eIoni - 2 -4.87 mum -20 cm 1.53 cm 1.53 GeV 22 keV 15.2 cm 15.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.7 cm 1.09 cm 2.62 keV 0 eV 0 fm 0 fm World initStep - 1 4.24 mum -1.72 cm 1.09 cm 2.62 MeV 2.62 keV 241 mum 241 mum World eIoni - 2 10.1 mum -2.89 cm 1.09 cm 119 MeV 1.67 keV 1.17 cm 1.19 cm World eIoni - 3 14.3 mum -17.6 cm 1.09 cm 1.59 GeV 31.5 keV 14.7 cm 15.9 cm World eIoni - 4 15.7 mum -20 cm 1.09 cm 1.83 GeV 4.87 keV 2.36 cm 18.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 14.3 mum -17.6 cm 1.09 cm 7.53 keV 0 eV 0 fm 0 fm World initStep - 1 -32.9 mum -17.8 cm 1.09 cm 15.9 MeV 7.53 keV 1.5 mm 1.5 mm World eIoni - 2 -34.3 mum -17.8 cm 1.09 cm 18.9 MeV 0 eV 301 mum 1.8 mm World eIoni - 3 -55.8 mum -20 cm 1.09 cm 237 MeV 3.58 keV 2.18 cm 2.36 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.62 cm 1.52 cm 512 MeV 10.1 keV 5.1 cm 5.1 cm World eIoni - 2 6.84 mum -12.3 cm 1.98 cm 1.28 GeV 15.5 keV 7.65 cm 12.8 cm World eIoni - 3 6.87 mum -12.5 cm 1.99 cm 1.3 GeV 248 eV 2.37 mm 13 cm World eIoni - 4 6.86 mum -12.7 cm 2 cm 1.32 GeV 878 eV 2.46 mm 13.2 cm World eIoni - 5 9.29 mum -19.8 cm 2.21 cm 2.03 GeV 14.7 keV 7.04 cm 20.3 cm World eIoni - 6 9.43 mum -20 cm 2.22 cm 2.05 GeV 804 eV 2.2 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 9.29 mum -19.8 cm 2.21 cm 6.56 keV 0 eV 0 fm 0 fm World initStep - 1 5.26 mum -19.8 cm 2.21 cm 90.5 keV 0 eV 9.9 mum 9.9 mum World eIoni - 2 -23.4 mum -20 cm 2.22 cm 22 MeV 778 eV 2.19 mm 2.2 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.86 mum -12.7 cm 2 cm 3.28 keV 0 eV 0 fm 0 fm World initStep - 1 -10.8 mum -12.8 cm 2 cm 3.75 MeV 3.28 keV 349 mum 349 mum World eIoni - 2 -25.9 mum -13.3 cm 2 cm 58.1 MeV 853 eV 5.43 mm 5.78 mm World eIoni - 3 -41.1 mum -20 cm 2 cm 726 MeV 13.4 keV 6.68 cm 7.26 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.87 mum -12.5 cm 1.99 cm 1.16 keV 0 eV 0 fm 0 fm World initStep - 1 9.11 mum -12.5 cm 1.99 cm 776 keV 1.16 keV 70.5 mum 70.5 mum World eIoni - 2 18 mum -20 cm 1.99 cm 751 MeV 10.4 keV 7.5 cm 7.51 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.84 mum -12.3 cm 1.98 cm 3.78 keV 0 eV 0 fm 0 fm World initStep - 1 27.5 mum -12.3 cm 1.98 cm 4.76 MeV 3.78 keV 444 mum 444 mum World eIoni - 2 34 mum -12.4 cm 1.98 cm 14.7 MeV 105 eV 993 mum 1.44 mm World eIoni - 3 44.8 mum -13.1 cm 1.98 cm 86 MeV 1.43 keV 7.13 mm 8.57 mm World eIoni - 4 79.3 mum -20 cm 1.98 cm 775 MeV 13 keV 6.89 cm 7.74 cm OutOfWorldTransportation + 0 3.78 mum -4.65 cm 1.52 cm 3.56 keV 0 eV 0 fm 0 fm World initStep + 1 -8.69 mum -4.69 cm 1.52 cm 4.31 MeV 3.56 keV 401 mum 401 mum World eIoni + 2 -12.4 mum -4.77 cm 1.52 cm 12.2 MeV 101 eV 787 mum 1.19 mm World eIoni + 3 -30 mum -16.5 cm 1.53 cm 1.19 GeV 22.8 keV 11.7 cm 11.9 cm World eIoni + 4 -30.6 mum -20 cm 1.53 cm 1.54 GeV 5.29 keV 3.49 cm 15.4 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 44.8 mum -13.1 cm 1.98 cm 23.3 keV 0 eV 0 fm 0 fm World initStep - 1 14.1 mum -13.2 cm 1.98 cm 5.89 MeV 445 eV 583 mum 583 mum World eIoni - 2 -30.5 mum -20 cm 1.97 cm 689 MeV 10.7 keV 6.83 cm 6.89 cm OutOfWorldTransportation + 0 -30 mum -16.5 cm 1.53 cm 1.27 keV 0 eV 0 fm 0 fm World initStep + 1 -31.1 mum -16.5 cm 1.53 cm 878 keV 1.27 keV 79.8 mum 79.8 mum World eIoni + 2 -34.5 mum -20 cm 1.52 cm 349 MeV 4.07 keV 3.48 cm 3.49 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.62 cm 1.52 cm 7.81 keV 0 eV 0 fm 0 fm World initStep - 1 -42.3 mum -4.77 cm 1.52 cm 16.9 MeV 7.81 keV 1.6 mm 1.6 mm World eIoni - 2 -46.3 mum -4.9 cm 1.52 cm 29.2 MeV 173 eV 1.23 mm 2.83 mm World eIoni - 3 -65.9 mum -8.18 cm 1.52 cm 357 MeV 5.12 keV 3.28 cm 3.56 cm World eIoni - 4 -70.7 mum -13.9 cm 1.52 cm 925 MeV 11.9 keV 5.68 cm 9.24 cm World eIoni - 5 -70.7 mum -20 cm 1.52 cm 1.54 GeV 12.8 keV 6.15 cm 15.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -70.7 mum -13.9 cm 1.52 cm 5.08 keV 0 eV 0 fm 0 fm World initStep - 1 -81.7 mum -13.9 cm 1.52 cm 1.77 MeV 858 eV 171 mum 171 mum World eIoni - 2 -109 mum -18.5 cm 1.52 cm 463 MeV 6.69 keV 4.61 cm 4.63 cm World eIoni - 3 -111 mum -20 cm 1.52 cm 615 MeV 4.28 keV 1.52 cm 6.15 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -109 mum -18.5 cm 1.52 cm 1.62 keV 0 eV 0 fm 0 fm World initStep - 1 -101 mum -18.5 cm 1.52 cm 1.25 MeV 1.62 keV 114 mum 114 mum World eIoni - 2 -84 mum -20 cm 1.52 cm 152 MeV 1.87 keV 1.51 cm 1.52 cm OutOfWorldTransportation + 0 0 fm -1.53 cm 1.05 cm 2.49 keV 0 eV 0 fm 0 fm World initStep + 1 -10.4 mum -1.55 cm 1.05 cm 2.39 MeV 2.49 keV 219 mum 219 mum World eIoni + 2 -24.3 mum -2.43 cm 1.05 cm 90.5 MeV 2.16 keV 8.81 mm 9.03 mm World eIoni + 3 -36 mum -17 cm 1.05 cm 1.55 GeV 32.2 keV 14.6 cm 15.5 cm World eIoni + 4 -36.8 mum -20 cm 1.05 cm 1.85 GeV 7.01 keV 2.96 cm 18.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -65.9 mum -8.18 cm 1.52 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 -69.8 mum -8.18 cm 1.52 cm 788 keV 1.17 keV 71.6 mum 71.6 mum World eIoni - 2 -86.3 mum -20 cm 1.53 cm 1.18 GeV 17.5 keV 11.8 cm 11.8 cm OutOfWorldTransportation + 0 -36 mum -17 cm 1.05 cm 6.42 keV 0 eV 0 fm 0 fm World initStep + 1 -15.2 mum -17.1 cm 1.05 cm 11.9 MeV 6.42 keV 1.12 mm 1.12 mm World eIoni + 2 -9.47 mum -17.5 cm 1.05 cm 46.4 MeV 614 eV 3.45 mm 4.57 mm World eIoni + 3 -1.93 mum -20 cm 1.05 cm 297 MeV 7.52 keV 2.51 cm 2.96 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3407,529 +2901,142 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.78 cm 1.29 cm 328 MeV 6.36 keV 3.24 cm 3.24 cm World eIoni - 2 -1.13 mum -4.62 cm 1.52 cm 512 MeV 2.87 keV 1.85 cm 5.1 cm World eIoni - 3 -875 nm -7.06 cm 1.72 cm 756 MeV 3.71 keV 2.45 cm 7.54 cm World eIoni - 4 357 nm -14.8 cm 2.07 cm 1.53 GeV 15.2 keV 7.76 cm 15.3 cm World eIoni - 5 2.47 mum -20 cm 2.22 cm 2.05 GeV 10.5 keV 5.19 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 357 nm -14.8 cm 2.07 cm 2.95 keV 0 eV 0 fm 0 fm World initStep - 1 -9.02 mum -14.8 cm 2.07 cm 936 keV 810 eV 90.1 mum 90.1 mum World eIoni - 2 -41.9 mum -20 cm 2.07 cm 516 MeV 6.12 keV 5.15 cm 5.16 cm World eIoni - 3 -41.9 mum -20 cm 2.07 cm 519 MeV 0 eV 323 mum 5.19 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -875 nm -7.06 cm 1.72 cm 1.44 keV 0 eV 0 fm 0 fm World initStep - 1 -2.86 mum -7.07 cm 1.72 cm 1.05 MeV 1.44 keV 95.6 mum 95.6 mum World eIoni - 2 -10 mum -20 cm 1.72 cm 1.29 GeV 17.7 keV 12.9 cm 12.9 cm OutOfWorldTransportation + 1 0 fm -6.47 cm 1.68 cm 697 MeV 12.9 keV 6.96 cm 6.96 cm World eIoni + 2 2.81 mum -11.1 cm 1.94 cm 1.16 GeV 11.2 keV 4.68 cm 11.6 cm World eIoni + 3 7.8 mum -20 cm 2.22 cm 2.05 GeV 16.5 keV 8.86 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.13 mum -4.62 cm 1.52 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 -5.96 mum -4.62 cm 1.52 cm 676 keV 1.04 keV 61.4 mum 61.4 mum World eIoni - 2 -29.4 mum -20 cm 1.52 cm 1.54 GeV 24.4 keV 15.4 cm 15.4 cm OutOfWorldTransportation + 0 2.81 mum -11.1 cm 1.94 cm 1.51 keV 0 eV 0 fm 0 fm World initStep + 1 -3.49 mum -11.2 cm 1.94 cm 1.12 MeV 1.51 keV 102 mum 102 mum World eIoni + 2 -24.6 mum -20 cm 1.94 cm 885 MeV 12.1 keV 8.84 cm 8.85 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.78 cm 1.29 cm 1.19 keV 0 eV 0 fm 0 fm World initStep - 1 4.1 mum -2.78 cm 1.29 cm 804 keV 1.19 keV 73.4 mum 73.4 mum World eIoni - 2 22.7 mum -20 cm 1.29 cm 1.72 GeV 25.9 keV 17.2 cm 17.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.97 cm 1.88 cm 1.05 GeV 21.5 keV 10.5 cm 10.5 cm World eIoni - 2 9.42 mum -20 cm 2.22 cm 2.05 GeV 20.9 keV 10 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.97 cm 1.88 cm 20.7 keV 0 eV 0 fm 0 fm World initStep - 1 -71.7 mum -10.1 cm 1.88 cm 18.5 MeV 3.78 keV 1.79 mm 1.79 mm World eIoni - 2 -128 mum -20 cm 1.88 cm 1 GeV 16.5 keV 9.85 cm 10 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 39.8 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 40.1 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -10.5 cm 1.91 cm 1.1 GeV 22.2 keV 11 cm 11 cm World eIoni - 2 187 nm -17.4 cm 2.15 cm 1.79 GeV 13.9 keV 6.84 cm 17.9 cm World eIoni - 3 1.05 mum -20 cm 2.22 cm 2.05 GeV 4.71 keV 2.64 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 187 nm -17.4 cm 2.15 cm 22.3 keV 0 eV 0 fm 0 fm World initStep - 1 -55.9 mum -17.9 cm 2.14 cm 61.8 MeV 11.1 keV 5.97 mm 5.97 mm World eIoni - 2 -64.5 mum -20 cm 2.14 cm 267 MeV 3.11 keV 2.05 cm 2.65 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10.5 cm 1.91 cm 1.6 keV 0 eV 0 fm 0 fm World initStep - 1 -754 nm -10.5 cm 1.91 cm 1.22 MeV 1.6 keV 111 mum 111 mum World eIoni - 2 -3.22 mum -20 cm 1.9 cm 948 MeV 13.7 keV 9.47 cm 9.48 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -835 mum 2.87 mm 58.3 MeV 565 eV 3.02 mm 3.02 mm World eIoni - 2 9.82 mum -5.32 cm 1.58 cm 582 MeV 11.4 keV 5.5 cm 5.8 cm World eIoni - 3 15.4 mum -17.2 cm 2.15 cm 1.77 GeV 24.2 keV 11.9 cm 17.7 cm World eIoni - 4 15.6 mum -20 cm 2.22 cm 2.05 GeV 6.64 keV 2.83 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 15.4 mum -17.2 cm 2.15 cm 4.03 keV 0 eV 0 fm 0 fm World initStep - 1 28.5 mum -17.2 cm 2.15 cm 5.28 MeV 4.03 keV 493 mum 493 mum World eIoni - 2 34.1 mum -17.4 cm 2.15 cm 25.6 MeV 113 eV 2.04 mm 2.53 mm World eIoni - 3 38.2 mum -17.9 cm 2.15 cm 77.5 MeV 741 eV 5.18 mm 7.71 mm World eIoni - 4 47.9 mum -20 cm 2.15 cm 283 MeV 3.04 keV 2.06 cm 2.83 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 38.2 mum -17.9 cm 2.15 cm 1.39 keV 0 eV 0 fm 0 fm World initStep - 1 31.5 mum -18 cm 2.15 cm 1 MeV 1.39 keV 91.4 mum 91.4 mum World eIoni - 2 12.7 mum -20 cm 2.15 cm 206 MeV 3.68 keV 2.05 cm 2.06 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 9.82 mum -5.32 cm 1.58 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 7.82 mum -5.32 cm 1.58 cm 839 keV 1.22 keV 76 mum 76 mum World eIoni - 2 -754 nm -20 cm 1.59 cm 1.47 GeV 21.7 keV 14.7 cm 14.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -835 mum 2.87 mm 1.76 keV 0 eV 0 fm 0 fm World initStep - 1 -7.77 mum -963 mum 2.86 mm 1.41 MeV 1.76 keV 129 mum 129 mum World eIoni - 2 -34.9 mum -20 cm 2.86 mm 1.99 GeV 28.5 keV 19.9 cm 19.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.08 cm 1.17 cm 258 MeV 4.76 keV 2.54 cm 2.54 cm World eIoni - 2 -8.32 mum -14.4 cm 2.06 cm 1.49 GeV 26.6 keV 12.4 cm 14.9 cm World eIoni - 3 -11.2 mum -20 cm 2.22 cm 2.05 GeV 11.6 keV 5.57 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.32 mum -14.4 cm 2.06 cm 2.73 keV 0 eV 0 fm 0 fm World initStep - 1 3.85 mum -14.5 cm 2.06 cm 2.78 MeV 2.73 keV 257 mum 257 mum World eIoni - 2 9.58 mum -14.5 cm 2.06 cm 11.3 MeV 180 eV 852 mum 1.11 mm World eIoni - 3 27.1 mum -20 cm 2.06 cm 557 MeV 8.77 keV 5.46 cm 5.57 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.08 cm 1.17 cm 2.58 keV 0 eV 0 fm 0 fm World initStep - 1 12.4 mum -2.1 cm 1.17 cm 2.54 MeV 2.58 keV 234 mum 234 mum World eIoni - 2 29.7 mum -3.19 cm 1.17 cm 112 MeV 1.95 keV 1.09 cm 1.11 cm World eIoni - 3 38.3 mum -8.86 cm 1.17 cm 678 MeV 11.2 keV 5.66 cm 6.78 cm World eIoni - 4 40.1 mum -20 cm 1.17 cm 1.79 GeV 24.3 keV 11.1 cm 17.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 38.3 mum -8.86 cm 1.17 cm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 41.6 mum -8.86 cm 1.17 cm 847 keV 1.24 keV 77 mum 77 mum World eIoni - 2 54.8 mum -20 cm 1.17 cm 1.11 GeV 16.8 keV 11.1 cm 11.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -10.8 cm 1.92 cm 1.13 GeV 22.6 keV 11.3 cm 11.3 cm World eIoni - 2 29.9 mum -17.7 cm 2.16 cm 1.82 GeV 14.9 keV 6.93 cm 18.2 cm World eIoni - 3 37.7 mum -20 cm 2.22 cm 2.05 GeV 4.56 keV 2.27 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 29.9 mum -17.7 cm 2.16 cm 8.75 keV 0 eV 0 fm 0 fm World initStep - 1 6.24 mum -17.9 cm 2.16 cm 19.4 MeV 8.43 keV 1.84 mm 1.84 mm World eIoni - 2 -3.4 mum -20 cm 2.15 cm 228 MeV 3.43 keV 2.09 cm 2.27 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10.8 cm 1.92 cm 393 keV 0 eV 0 fm 0 fm World initStep - 1 -360 mum -12.2 cm 1.93 cm 140 MeV 2.68 keV 1.4 cm 1.4 cm World eIoni - 2 -478 mum -20 cm 1.93 cm 921 MeV 15 keV 7.81 cm 9.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.82 cm 1.87 cm 1.03 GeV 19 keV 10.3 cm 10.3 cm World eIoni - 2 -395 nm -20 cm 2.22 cm 2.05 GeV 22.2 keV 10.2 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.82 cm 1.87 cm 2.44 keV 0 eV 0 fm 0 fm World initStep - 1 1.46 mum -9.84 cm 1.88 cm 2.32 MeV 2.44 keV 213 mum 213 mum World eIoni - 2 3.83 mum -11.3 cm 1.88 cm 153 MeV 2.68 keV 1.51 cm 1.53 cm World eIoni - 3 4.27 mum -13.1 cm 1.88 cm 324 MeV 4.07 keV 1.72 cm 3.24 cm World eIoni - 4 -1.41 mum -20 cm 1.88 cm 1.02 GeV 14.9 keV 6.94 cm 10.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.27 mum -13.1 cm 1.88 cm 4.31 keV 0 eV 0 fm 0 fm World initStep - 1 21.1 mum -13.1 cm 1.88 cm 3.87 MeV 2.92 keV 364 mum 364 mum World eIoni - 2 47.2 mum -17.4 cm 1.87 cm 435 MeV 7.69 keV 4.31 cm 4.35 cm World eIoni - 3 47.5 mum -17.6 cm 1.87 cm 455 MeV 296 eV 1.95 mm 4.55 cm World eIoni - 4 49.9 mum -20 cm 1.87 cm 694 MeV 6.04 keV 2.39 cm 6.94 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 47.5 mum -17.6 cm 1.87 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 48.5 mum -17.6 cm 1.87 cm 738 keV 1.11 keV 67.1 mum 67.1 mum World eIoni - 2 52.1 mum -20 cm 1.87 cm 239 MeV 2.89 keV 2.39 cm 2.39 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 47.2 mum -17.4 cm 1.87 cm 2.02 keV 0 eV 0 fm 0 fm World initStep - 1 44.9 mum -17.4 cm 1.87 cm 1.73 MeV 2.02 keV 158 mum 158 mum World eIoni - 2 39.9 mum -20 cm 1.87 cm 259 MeV 4.81 keV 2.57 cm 2.59 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.23 mm 6.75 mm 102 MeV 3.94 keV 8.95 mm 8.95 mm World eIoni - 2 -13.5 mum -10.2 cm 1.89 cm 1.07 GeV 20.2 keV 9.79 cm 10.7 cm World eIoni - 3 -16.4 mum -20 cm 2.22 cm 2.05 GeV 21 keV 9.82 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -13.5 mum -10.2 cm 1.89 cm 2.64 keV 0 eV 0 fm 0 fm World initStep - 1 -16.5 mum -10.2 cm 1.89 cm 2.63 MeV 2.64 keV 243 mum 243 mum World eIoni - 2 -19.6 mum -10.7 cm 1.89 cm 46.5 MeV 164 eV 4.39 mm 4.63 mm World eIoni - 3 -22.5 mum -15.4 cm 1.89 cm 523 MeV 12 keV 4.77 cm 5.23 cm World eIoni - 4 -18.6 mum -20 cm 1.89 cm 981 MeV 9.84 keV 4.58 cm 9.81 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -22.5 mum -15.4 cm 1.89 cm 13.7 keV 0 eV 0 fm 0 fm World initStep - 1 -82.1 mum -15.7 cm 1.88 cm 29.4 MeV 5.02 keV 2.81 mm 2.81 mm World eIoni - 2 -105 mum -20 cm 1.88 cm 460 MeV 8.86 keV 4.31 cm 4.59 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.23 mm 6.75 mm 10.1 keV 0 eV 0 fm 0 fm World initStep - 1 39.7 mum -7.7 mm 6.81 mm 26.7 MeV 10.1 keV 2.53 mm 2.53 mm World eIoni - 2 42 mum -9.02 mm 6.81 mm 39.9 MeV 45.9 eV 1.32 mm 3.85 mm World eIoni - 3 63.8 mum -20 cm 6.84 mm 1.95 GeV 36.3 keV 19.1 cm 19.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -17.8 cm 2.16 cm 1.83 GeV 34.5 keV 18.3 cm 18.3 cm World eIoni - 2 -455 nm -20 cm 2.22 cm 2.05 GeV 5.7 keV 2.19 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -17.8 cm 2.16 cm 3.07 keV 0 eV 0 fm 0 fm World initStep - 1 11.8 mum -17.8 cm 2.16 cm 3.35 MeV 3.07 keV 311 mum 311 mum World eIoni - 2 21.8 mum -18.3 cm 2.16 cm 46 MeV 211 eV 4.26 mm 4.57 mm World eIoni - 3 28.1 mum -20 cm 2.16 cm 220 MeV 4.7 keV 1.74 cm 2.19 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 38.8 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.67 mm 7.96 mm 127 MeV 2.21 keV 1.17 cm 1.17 cm World eIoni - 2 -1.63 mum -1.38 cm 1.01 cm 188 MeV 1.42 keV 6.52 mm 1.82 cm World eIoni - 3 -40.8 mum -20 cm 2.22 cm 2.05 GeV 37.7 keV 18.7 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.63 mum -1.38 cm 1.01 cm 18.6 keV 0 eV 0 fm 0 fm World initStep - 1 127 mum -2.15 cm 1 cm 80.2 MeV 18.6 keV 7.78 mm 7.78 mm World eIoni - 2 131 mum -2.47 cm 1 cm 112 MeV 328 eV 3.14 mm 1.09 cm World eIoni - 3 147 mum -5.38 cm 1 cm 403 MeV 5.15 keV 2.91 cm 4 cm World eIoni - 4 153 mum -8.73 cm 1 cm 738 MeV 7.58 keV 3.35 cm 7.36 cm World eIoni - 5 160 mum -20 cm 9.99 mm 1.86 GeV 24.5 keV 11.3 cm 18.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 153 mum -8.73 cm 1 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 155 mum -8.74 cm 1 cm 713 keV 1.09 keV 64.8 mum 64.8 mum World eIoni - 2 166 mum -20 cm 1 cm 1.13 GeV 18 keV 11.3 cm 11.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 147 mum -5.38 cm 1 cm 1.44 keV 0 eV 0 fm 0 fm World initStep - 1 152 mum -5.39 cm 1 cm 1.05 MeV 1.44 keV 95.8 mum 95.8 mum World eIoni - 2 173 mum -20 cm 1 cm 1.46 GeV 21 keV 14.6 cm 14.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.67 mm 7.96 mm 1.53 keV 0 eV 0 fm 0 fm World initStep - 1 7.37 mum -7.77 mm 7.95 mm 1.14 MeV 1.53 keV 104 mum 104 mum World eIoni - 2 35.4 mum -20 cm 7.95 mm 1.92 GeV 27.4 keV 19.2 cm 19.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.01 cm 1.45 cm 451 MeV 9.82 keV 4.49 cm 4.49 cm World eIoni - 2 -6.39 mum -20 cm 2.22 cm 2.05 GeV 33.5 keV 16 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.01 cm 1.45 cm 1.95 keV 0 eV 0 fm 0 fm World initStep - 1 9.3 mum -4.02 cm 1.46 cm 1.64 MeV 1.95 keV 150 mum 150 mum World eIoni - 2 37.7 mum -20 cm 1.46 cm 1.6 GeV 24.8 keV 16 cm 16 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.6 cm 1.26 cm 310 MeV 4.13 keV 3.06 cm 3.06 cm World eIoni - 2 -1.54 mum -4 cm 1.45 cm 450 MeV 1.27 keV 1.41 cm 4.47 cm World eIoni - 3 -9.52 mum -20 cm 2.22 cm 2.05 GeV 33.7 keV 16 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.54 mum -4 cm 1.45 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 262 nm -4 cm 1.45 cm 743 keV 1.12 keV 67.2 mum 67.2 mum World eIoni - 2 8.61 mum -20 cm 1.46 cm 1.6 GeV 24.8 keV 16 cm 16 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.6 cm 1.26 cm 1.74 keV 0 eV 0 fm 0 fm World initStep - 1 8.43 mum -2.61 cm 1.26 cm 1.39 MeV 1.74 keV 127 mum 127 mum World eIoni - 2 37 mum -20 cm 1.26 cm 1.74 GeV 26.9 keV 17.4 cm 17.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -34.9 mum 593 mum 50.2 MeV 35.5 eV 594 mum 594 mum World eIoni - 2 91.9 mum -7.92 cm 1.77 cm 842 MeV 16.9 keV 8.35 cm 8.41 cm World eIoni - 3 102 mum -12.1 cm 1.97 cm 1.26 GeV 9.48 keV 4.18 cm 12.6 cm World eIoni - 4 114 mum -20 cm 2.21 cm 2.05 GeV 16 keV 7.91 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 102 mum -12.1 cm 1.97 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 99.1 mum -12.1 cm 1.97 cm 931 keV 1.32 keV 84.5 mum 84.5 mum World eIoni - 2 89.7 mum -20 cm 1.97 cm 791 MeV 11.7 keV 7.9 cm 7.91 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 91.9 mum -7.92 cm 1.77 cm 1.28 keV 0 eV 0 fm 0 fm World initStep - 1 96.7 mum -7.93 cm 1.77 cm 892 keV 1.28 keV 81.2 mum 81.2 mum World eIoni - 2 115 mum -20 cm 1.76 cm 1.21 GeV 16.2 keV 12.1 cm 12.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -34.9 mum 593 mum 106 keV 0 eV 0 fm 0 fm World initStep - 1 -206 mum -2.71 cm 690 mum 272 MeV 9.6 keV 2.72 cm 2.72 cm World eIoni - 2 -240 mum -9.46 cm 706 mum 947 MeV 13.5 keV 6.76 cm 9.47 cm World eIoni - 3 -241 mum -10.1 cm 707 mum 1.01 GeV 1.47 keV 6.34 mm 10.1 cm World eIoni - 4 -254 mum -18.4 cm 720 mum 1.85 GeV 17.2 keV 8.35 cm 18.5 cm World eIoni - 5 -255 mum -20 cm 722 mum 2 GeV 2.67 keV 1.56 cm 20 cm OutOfWorldTransportation + 0 0 fm -6.47 cm 1.68 cm 3.16 keV 0 eV 0 fm 0 fm World initStep + 1 -16.3 mum -6.5 cm 1.68 cm 3.51 MeV 3.16 keV 325 mum 325 mum World eIoni + 2 -28.7 mum -6.85 cm 1.67 cm 38.2 MeV 575 eV 3.47 mm 3.8 mm World eIoni + 3 -31.4 mum -15 cm 1.67 cm 854 MeV 13.9 keV 8.15 cm 8.53 cm World eIoni + 4 -30.8 mum -16.2 cm 1.67 cm 974 MeV 1.33 keV 1.2 cm 9.73 cm World eIoni + 5 -31.3 mum -19.9 cm 1.67 cm 1.34 GeV 6.77 keV 3.71 cm 13.4 cm World eIoni + 6 -31.3 mum -20 cm 1.67 cm 1.35 GeV 175 eV 906 mum 13.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -254 mum -18.4 cm 720 mum 3.52 keV 0 eV 0 fm 0 fm World initStep - 1 -260 mum -18.5 cm 702 mum 4.23 MeV 3.52 keV 394 mum 394 mum World eIoni - 2 -264 mum -18.8 cm 690 mum 37.3 MeV 419 eV 3.3 mm 3.7 mm World eIoni - 3 -267 mum -20 cm 682 mum 156 MeV 2.88 keV 1.19 cm 1.56 cm OutOfWorldTransportation + 0 -31.3 mum -19.9 cm 1.67 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 -27.7 mum -19.9 cm 1.67 cm 903 keV 1.29 keV 82.2 mum 82.2 mum World eIoni + 2 -24.1 mum -20 cm 1.67 cm 9.16 MeV 626 eV 825 mum 908 mumOutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -241 mum -10.1 cm 707 mum 6.99 keV 0 eV 0 fm 0 fm World initStep - 1 -278 mum -10.2 cm 683 mum 14 MeV 6.99 keV 1.32 mm 1.32 mm World eIoni - 2 -283 mum -10.4 cm 679 mum 30.9 MeV 233 eV 1.69 mm 3.01 mm World eIoni - 3 -285 mum -10.5 cm 678 mum 41 MeV 0 eV 1.01 mm 4.02 mm World eIoni - 4 -325 mum -20 cm 660 mum 991 MeV 18.2 keV 9.5 cm 9.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -285 mum -10.5 cm 678 mum 3.05 keV 0 eV 0 fm 0 fm World initStep - 1 -269 mum -10.5 cm 679 mum 3.32 MeV 3.05 keV 308 mum 308 mum World eIoni - 2 -261 mum -10.7 cm 680 mum 16.4 MeV 232 eV 1.3 mm 1.61 mm World eIoni - 3 -269 mum -20 cm 712 mum 951 MeV 18.2 keV 9.34 cm 9.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -261 mum -10.7 cm 680 mum 10.9 keV 0 eV 0 fm 0 fm World initStep - 1 -202 mum -10.9 cm 625 mum 31.1 MeV 10.9 keV 2.95 mm 2.95 mm World eIoni - 2 -202 mum -11 cm 624 mum 33.5 MeV 0 eV 238 mum 3.19 mm World eIoni - 3 -177 mum -20 cm 600 mum 936 MeV 17 keV 9.03 cm 9.35 cm OutOfWorldTransportation + 0 -30.8 mum -16.2 cm 1.67 cm 4.17 keV 0 eV 0 fm 0 fm World initStep + 1 -7.61 mum -16.3 cm 1.68 cm 5.65 MeV 4.17 keV 528 mum 528 mum World eIoni + 2 407 nm -16.4 cm 1.68 cm 20.7 MeV 424 eV 1.51 mm 2.03 mm World eIoni + 3 19.2 mum -20 cm 1.68 cm 380 MeV 8.25 keV 3.59 cm 3.8 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -240 mum -9.46 cm 706 mum 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 -239 mum -9.47 cm 701 mum 717 keV 1.09 keV 65.2 mum 65.2 mum World eIoni - 2 -238 mum -20 cm 679 mum 1.05 GeV 14.8 keV 10.5 cm 10.5 cm OutOfWorldTransportation + 0 -31.4 mum -15 cm 1.67 cm 3.35 keV 0 eV 0 fm 0 fm World initStep + 1 -49.3 mum -15 cm 1.68 cm 3.89 MeV 3.35 keV 361 mum 361 mum World eIoni + 2 -61.1 mum -15.3 cm 1.68 cm 33.9 MeV 219 eV 3 mm 3.36 mm World eIoni + 3 -71.9 mum -17.2 cm 1.68 cm 218 MeV 3.42 keV 1.84 cm 2.18 cm World eIoni + 4 -72 mum -17.3 cm 1.68 cm 231 MeV 151 eV 1.28 mm 2.3 cm World eIoni + 5 -72.3 mum -19.2 cm 1.68 cm 424 MeV 3.07 keV 1.94 cm 4.24 cm World eIoni + 6 -72.7 mum -20 cm 1.68 cm 500 MeV 993 eV 7.55 mm 5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -72.3 mum -19.2 cm 1.68 cm 2.7 keV 0 eV 0 fm 0 fm World initStep + 1 -64.3 mum -19.3 cm 1.68 cm 2.73 MeV 2.7 keV 252 mum 252 mum World eIoni + 2 -54.7 mum -20 cm 1.68 cm 75.8 MeV 1.73 keV 7.31 mm 7.56 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -72 mum -17.3 cm 1.68 cm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 -74.8 mum -17.3 cm 1.68 cm 743 keV 1.12 keV 67.5 mum 67.5 mum World eIoni + 2 -84.6 mum -20 cm 1.67 cm 269 MeV 3.71 keV 2.69 cm 2.69 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -71.9 mum -17.2 cm 1.68 cm 1.14 keV 0 eV 0 fm 0 fm World initStep + 1 -77.2 mum -17.2 cm 1.68 cm 758 keV 1.14 keV 68.9 mum 68.9 mum World eIoni + 2 -95.9 mum -20 cm 1.68 cm 282 MeV 7.82 keV 2.81 cm 2.82 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -28.7 mum -6.85 cm 1.67 cm 2.35 keV 0 eV 0 fm 0 fm World initStep + 1 -40.3 mum -6.87 cm 1.67 cm 2.2 MeV 2.35 keV 202 mum 202 mum World eIoni + 2 -53.4 mum -7.3 cm 1.67 cm 44.8 MeV 1.13 keV 4.26 mm 4.46 mm World eIoni + 3 -61.5 mum -9.39 cm 1.67 cm 254 MeV 2.67 keV 2.09 cm 2.54 cm World eIoni + 4 -64.9 mum -11.1 cm 1.67 cm 429 MeV 2.47 keV 1.75 cm 4.29 cm World eIoni + 5 -65 mum -18.7 cm 1.67 cm 1.19 GeV 14 keV 7.6 cm 11.9 cm World eIoni + 6 -65.1 mum -18.9 cm 1.67 cm 1.21 GeV 550 eV 1.99 mm 12.1 cm World eIoni + 7 -65.4 mum -20 cm 1.67 cm 1.32 GeV 1.89 keV 1.06 cm 13.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -65.1 mum -18.9 cm 1.67 cm 7.47 keV 0 eV 0 fm 0 fm World initStep + 1 -62.6 mum -18.9 cm 1.68 cm 732 keV 447 eV 74.2 mum 74.2 mum World eIoni + 2 -55.2 mum -20 cm 1.68 cm 106 MeV 2.18 keV 1.05 cm 1.06 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -65 mum -18.7 cm 1.67 cm 4.74 keV 0 eV 0 fm 0 fm World initStep + 1 -56.3 mum -18.8 cm 1.68 cm 7.02 MeV 4.74 keV 658 mum 658 mum World eIoni + 2 -53.5 mum -19 cm 1.68 cm 26.1 MeV 203 eV 1.91 mm 2.56 mm World eIoni + 3 -49.9 mum -20 cm 1.68 cm 126 MeV 2.13 keV 1 cm 1.26 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -64.9 mum -11.1 cm 1.67 cm 4.35 keV 0 eV 0 fm 0 fm World initStep + 1 -88.5 mum -11.2 cm 1.67 cm 6.08 MeV 4.35 keV 569 mum 569 mum World eIoni + 2 -99.1 mum -11.5 cm 1.67 cm 34.5 MeV 349 eV 2.85 mm 3.41 mm World eIoni + 3 -120 mum -20 cm 1.67 cm 886 MeV 15.3 keV 8.52 cm 8.86 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -61.5 mum -9.39 cm 1.67 cm 1.95 keV 0 eV 0 fm 0 fm World initStep + 1 -57.4 mum -9.4 cm 1.67 cm 1.64 MeV 1.95 keV 150 mum 150 mum World eIoni + 2 -45.6 mum -20 cm 1.67 cm 1.06 GeV 14.1 keV 10.6 cm 10.6 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3937,99 +3044,81 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.57 cm 1.26 cm 307 MeV 4.68 keV 3.03 cm 3.03 cm World eIoni - 2 663 nm -3.01 cm 1.33 cm 351 MeV 1.92 keV 4.51 mm 3.48 cm World eIoni - 3 2.21 mum -5.48 cm 1.6 cm 598 MeV 5.56 keV 2.48 cm 5.96 cm World eIoni - 4 5.23 mum -12.6 cm 1.99 cm 1.31 GeV 15.2 keV 7.11 cm 13.1 cm World eIoni - 5 6.51 mum -15.4 cm 2.09 cm 1.59 GeV 4.68 keV 2.79 cm 15.9 cm World eIoni - 6 9.16 mum -20 cm 2.22 cm 2.05 GeV 10.9 keV 4.64 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.51 mum -15.4 cm 2.09 cm 1.43 keV 0 eV 0 fm 0 fm World initStep - 1 -233 nm -15.4 cm 2.09 cm 1.05 MeV 1.43 keV 95.2 mum 95.2 mum World eIoni - 2 -21.5 mum -20 cm 2.09 cm 464 MeV 6.57 keV 4.63 cm 4.64 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.23 mum -12.6 cm 1.99 cm 3.31 keV 0 eV 0 fm 0 fm World initStep - 1 -3.35 mum -12.6 cm 1.99 cm 3.81 MeV 3.31 keV 354 mum 354 mum World eIoni - 2 -9.78 mum -13 cm 1.99 cm 42.7 MeV 194 eV 3.89 mm 4.24 mm World eIoni - 3 -17.1 mum -17.7 cm 1.99 cm 517 MeV 7.44 keV 4.74 cm 5.17 cm World eIoni - 4 -19.3 mum -20 cm 1.99 cm 743 MeV 6.1 keV 2.26 cm 7.42 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -17.1 mum -17.7 cm 1.99 cm 1.29 keV 0 eV 0 fm 0 fm World initStep - 1 -10.9 mum -17.8 cm 1.99 cm 895 keV 1.29 keV 81.4 mum 81.4 mum World eIoni - 2 7.77 mum -20 cm 1.99 cm 226 MeV 4.14 keV 2.25 cm 2.26 cm OutOfWorldTransportation + 1 0 fm -13 cm 2.01 cm 1.35 GeV 24.7 keV 13.5 cm 13.5 cm World eIoni + 2 474 nm -14 cm 2.05 cm 1.45 GeV 2.13 keV 9.51 mm 14.5 cm World eIoni + 3 638 nm -14.5 cm 2.06 cm 1.5 GeV 644 eV 5.04 mm 15 cm World eIoni + 4 3.28 mum -20 cm 2.22 cm 2.05 GeV 13.7 keV 5.5 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.21 mum -5.48 cm 1.6 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 428 nm -5.49 cm 1.6 cm 1.1 MeV 1.48 keV 99.7 mum 99.7 mum World eIoni - 2 -6.19 mum -20 cm 1.6 cm 1.45 GeV 20.3 keV 14.5 cm 14.5 cm OutOfWorldTransportation + 0 638 nm -14.5 cm 2.06 cm 1.42 keV 0 eV 0 fm 0 fm World initStep + 1 -6.01 mum -14.5 cm 2.06 cm 1.03 MeV 1.42 keV 93.7 mum 93.7 mum World eIoni + 2 -27.9 mum -20 cm 2.06 cm 550 MeV 6.36 keV 5.49 cm 5.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 663 nm -3.01 cm 1.33 cm 2.91 keV 0 eV 0 fm 0 fm World initStep - 1 6.15 mum -3.04 cm 1.33 cm 3.1 MeV 2.91 keV 287 mum 287 mum World eIoni - 2 9.2 mum -3.18 cm 1.33 cm 16.7 MeV 52.2 eV 1.36 mm 1.64 mm World eIoni - 3 34.3 mum -20 cm 1.32 cm 1.7 GeV 28.5 keV 16.8 cm 17 cm OutOfWorldTransportation + 0 474 nm -14 cm 2.05 cm 5.43 keV 0 eV 0 fm 0 fm World initStep + 1 10 mum -14.1 cm 2.05 cm 8.92 MeV 5.43 keV 839 mum 839 mum World eIoni + 2 10.8 mum -14.1 cm 2.05 cm 12.6 MeV 25.2 eV 366 mum 1.2 mm World eIoni + 3 14.8 mum -14.8 cm 2.05 cm 79.6 MeV 1.06 keV 6.71 mm 7.91 mm World eIoni + 4 8.35 mum -20 cm 2.05 cm 601 MeV 12 keV 5.22 cm 6.01 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 9.2 mum -3.18 cm 1.33 cm 1.4 keV 0 eV 0 fm 0 fm World initStep - 1 2.91 mum -3.18 cm 1.33 cm 1.01 MeV 1.4 keV 92 mum 92 mum World eIoni - 2 -22.1 mum -20 cm 1.32 cm 1.68 GeV 24.1 keV 16.8 cm 16.8 cm OutOfWorldTransportation + 0 14.8 mum -14.8 cm 2.05 cm 2.91 keV 0 eV 0 fm 0 fm World initStep + 1 30 mum -14.8 cm 2.05 cm 3.08 MeV 2.91 keV 285 mum 285 mum World eIoni + 2 45.4 mum -15.4 cm 2.05 cm 61.6 MeV 1.82 keV 5.85 mm 6.14 mm World eIoni + 3 57 mum -20 cm 2.05 cm 522 MeV 10.8 keV 4.6 cm 5.22 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.57 cm 1.26 cm 2.36 keV 0 eV 0 fm 0 fm World initStep - 1 -12 mum -2.59 cm 1.26 cm 2.21 MeV 2.36 keV 203 mum 203 mum World eIoni - 2 -20 mum -2.7 cm 1.26 cm 13.4 MeV 0 eV 1.12 mm 1.33 mm World eIoni - 3 -39 mum -9.48 cm 1.26 cm 692 MeV 12.1 keV 6.79 cm 6.92 cm World eIoni - 4 -39.2 mum -10.4 cm 1.26 cm 785 MeV 3.2 keV 9.32 mm 7.85 cm World eIoni - 5 -44.4 mum -20 cm 1.26 cm 1.74 GeV 20.6 keV 9.58 cm 17.4 cm OutOfWorldTransportation + 0 0 fm -13 cm 2.01 cm 4.84 keV 0 eV 0 fm 0 fm World initStep + 1 -27.7 mum -13.1 cm 2.01 cm 7.26 MeV 4.84 keV 681 mum 681 mum World eIoni + 2 -33.2 mum -13.2 cm 2.01 cm 16.6 MeV 65.2 eV 929 mum 1.61 mm World eIoni + 3 -48 mum -14.4 cm 2.01 cm 135 MeV 1.98 keV 1.19 cm 1.35 cm World eIoni + 4 -50 mum -20 cm 2.01 cm 696 MeV 11.2 keV 5.61 cm 6.96 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -39.2 mum -10.4 cm 1.26 cm 1.94 keV 0 eV 0 fm 0 fm World initStep - 1 -29.6 mum -10.4 cm 1.26 cm 1.63 MeV 1.94 keV 149 mum 149 mum World eIoni - 2 -3.07 mum -20 cm 1.26 cm 958 MeV 13.9 keV 9.57 cm 9.58 cm OutOfWorldTransportation + 0 -48 mum -14.4 cm 2.01 cm 7.98 keV 0 eV 0 fm 0 fm World initStep + 1 -81.1 mum -14.6 cm 2.01 cm 17.5 MeV 7.98 keV 1.66 mm 1.66 mm World eIoni + 2 -85.5 mum -14.8 cm 2.01 cm 38.4 MeV 266 eV 2.09 mm 3.75 mm World eIoni + 3 -100 mum -18.7 cm 2.01 cm 431 MeV 9.13 keV 3.93 cm 4.3 cm World eIoni + 4 -101 mum -19.2 cm 2.01 cm 483 MeV 1.58 keV 5.18 mm 4.82 cm World eIoni + 5 -102 mum -20 cm 2.01 cm 562 MeV 1.86 keV 7.9 mm 5.61 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -39 mum -9.48 cm 1.26 cm 1.57 keV 0 eV 0 fm 0 fm World initStep - 1 -44.3 mum -9.5 cm 1.26 cm 1.19 MeV 1.57 keV 109 mum 109 mum World eIoni - 2 -62.3 mum -20 cm 1.26 cm 1.05 GeV 14.8 keV 10.5 cm 10.5 cm OutOfWorldTransportation + 0 -101 mum -19.2 cm 2.01 cm 9.22 keV 0 eV 0 fm 0 fm World initStep + 1 -96.9 mum -19.3 cm 2 cm 9.74 MeV 2.15 keV 933 mum 933 mum World eIoni + 2 -95.1 mum -20 cm 2 cm 79.5 MeV 2.12 keV 6.98 mm 7.91 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -100 mum -18.7 cm 2.01 cm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 -98.7 mum -18.7 cm 2 cm 790 keV 1.17 keV 71.8 mum 71.8 mum World eIoni + 2 -95.4 mum -20 cm 2 cm 131 MeV 1.55 keV 1.3 cm 1.31 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -4037,93 +3126,557 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -14.7 cm 2.07 cm 1.52 GeV 28.8 keV 15.2 cm 15.2 cm World eIoni - 2 -550 nm -18.7 cm 2.19 cm 1.92 GeV 7.08 keV 4.01 cm 19.2 cm World eIoni - 3 1.35 mum -20 cm 2.22 cm 2.05 GeV 3.6 keV 1.29 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -20 cm 2.22 cm 2.05 GeV 42.3 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 34.2 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -6.55 cm 1.68 cm 705 MeV 17 keV 7.04 cm 7.04 cm World eIoni + 2 1.63 mum -9.82 cm 1.87 cm 1.03 GeV 7.28 keV 3.28 cm 10.3 cm World eIoni + 3 1.66 mum -10.3 cm 1.9 cm 1.08 GeV 1.01 keV 4.52 mm 10.8 cm World eIoni + 4 376 nm -16.3 cm 2.12 cm 1.68 GeV 14.3 keV 6.03 cm 16.8 cm World eIoni + 5 559 nm -20 cm 2.22 cm 2.05 GeV 5.52 keV 3.71 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 376 nm -16.3 cm 2.12 cm 2.03 keV 0 eV 0 fm 0 fm World initStep + 1 -8.26 mum -16.3 cm 2.12 cm 1.74 MeV 2.03 keV 160 mum 160 mum World eIoni + 2 -28.2 mum -20 cm 2.12 cm 371 MeV 5.76 keV 3.69 cm 3.71 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.66 mum -10.3 cm 1.9 cm 1.55 keV 0 eV 0 fm 0 fm World initStep + 1 9 mum -10.3 cm 1.9 cm 1.17 MeV 1.55 keV 107 mum 107 mum World eIoni + 2 33.8 mum -20 cm 1.9 cm 973 MeV 12.1 keV 9.72 cm 9.73 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -550 nm -18.7 cm 2.19 cm 104 keV 0 eV 0 fm 0 fm World initStep - 1 -226 mum -19.8 cm 2.18 cm 109 MeV 3.57 keV 1.08 cm 1.08 cm World eIoni - 2 -233 mum -20 cm 2.18 cm 131 MeV 575 eV 2.2 mm 1.3 cm OutOfWorldTransportation + 0 1.63 mum -9.82 cm 1.87 cm 2.19 keV 0 eV 0 fm 0 fm World initStep + 1 9.57 mum -9.84 cm 1.87 cm 1.97 MeV 2.19 keV 181 mum 181 mum World eIoni + 2 26.9 mum -13.7 cm 1.88 cm 390 MeV 6.12 keV 3.88 cm 3.9 cm World eIoni + 3 30.1 mum -20 cm 1.88 cm 1.02 GeV 13.3 keV 6.28 cm 10.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.55 cm 1.68 cm 1.82 keV 0 eV 0 fm 0 fm World initStep + 1 -9.02 mum -6.56 cm 1.68 cm 1.49 MeV 1.82 keV 136 mum 136 mum World eIoni + 2 -36.7 mum -20 cm 1.68 cm 1.35 GeV 20.6 keV 13.4 cm 13.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -6.78 cm 1.7 cm 728 MeV 13.5 keV 7.27 cm 7.27 cm World eIoni + 2 -2.44 mum -19.5 cm 2.21 cm 2 GeV 29 keV 12.7 cm 20 cm World eIoni + 3 -2.42 mum -20 cm 2.22 cm 2.05 GeV 718 eV 5.07 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.44 mum -19.5 cm 2.21 cm 1.87 keV 0 eV 0 fm 0 fm World initStep + 1 -8.91 mum -19.5 cm 2.21 cm 1.54 MeV 1.87 keV 141 mum 141 mum World eIoni + 2 -18.7 mum -20 cm 2.21 cm 50.9 MeV 919 eV 4.93 mm 5.07 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.78 cm 1.7 cm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 3.98 mum -6.79 cm 1.7 cm 824 keV 1.21 keV 74.7 mum 74.7 mum World eIoni + 2 21 mum -20 cm 1.7 cm 1.32 GeV 20.3 keV 13.2 cm 13.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 40.9 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 36.9 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.55 cm 1.4 cm 405 MeV 6.93 keV 4.02 cm 4.02 cm World eIoni + 2 1.16 mum -5.72 cm 1.62 cm 622 MeV 4.16 keV 2.18 cm 6.21 cm World eIoni + 3 6.38 mum -20 cm 2.22 cm 2.05 GeV 26.6 keV 14.3 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.16 mum -5.72 cm 1.62 cm 11.2 keV 0 eV 0 fm 0 fm World initStep + 1 -12 mum -6.03 cm 1.61 cm 32.6 MeV 11.2 keV 3.09 mm 3.09 mm World eIoni + 2 -12.2 mum -6.06 cm 1.61 cm 35.8 MeV 11.4 eV 319 mum 3.41 mm World eIoni + 3 -18.4 mum -20 cm 1.61 cm 1.43 GeV 26.5 keV 13.9 cm 14.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.55 cm 1.4 cm 1.83 keV 0 eV 0 fm 0 fm World initStep + 1 -5.68 mum -3.56 cm 1.4 cm 1.49 MeV 1.83 keV 137 mum 137 mum World eIoni + 2 -24.1 mum -20 cm 1.4 cm 1.65 GeV 20.5 keV 16.4 cm 16.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.2 cm 9.53 mm 170 MeV 4.57 keV 1.63 cm 1.63 cm World eIoni + 2 82.6 nm -13.2 cm 2.02 cm 1.37 GeV 22.3 keV 12 cm 13.7 cm World eIoni + 3 -73.5 nm -20 cm 2.22 cm 2.05 GeV 16.2 keV 6.83 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 82.6 nm -13.2 cm 2.02 cm 1.51 keV 0 eV 0 fm 0 fm World initStep + 1 883 nm -13.2 cm 2.02 cm 1.12 MeV 1.51 keV 102 mum 102 mum World eIoni + 2 3.49 mum -20 cm 2.02 cm 683 MeV 12.6 keV 6.81 cm 6.82 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.2 cm 9.53 mm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 -70 nm -1.21 cm 9.54 mm 951 keV 1.32 keV 85.1 mum 85.1 mum World eIoni + 2 -357 nm -20 cm 9.57 mm 1.88 GeV 31.2 keV 18.8 cm 18.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -10.4 cm 1.9 cm 1.09 GeV 20.9 keV 10.8 cm 10.8 cm World eIoni + 2 571 nm -11.6 cm 1.95 cm 1.21 GeV 2.93 keV 1.2 cm 12.1 cm World eIoni + 3 6.89 mum -20 cm 2.22 cm 2.05 GeV 16.1 keV 8.45 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 571 nm -11.6 cm 1.95 cm 17.2 keV 0 eV 0 fm 0 fm World initStep + 1 -66 mum -12.2 cm 1.96 cm 70.3 MeV 17.2 keV 6.79 mm 6.79 mm World eIoni + 2 -66.3 mum -12.3 cm 1.96 cm 73.9 MeV 0 eV 368 mum 7.16 mm World eIoni + 3 -74.9 mum -14.3 cm 1.97 cm 280 MeV 3.01 keV 2.06 cm 2.78 cm World eIoni + 4 -75 mum -14.4 cm 1.97 cm 283 MeV 0 eV 297 mum 2.8 cm World eIoni + 5 -90.5 mum -20 cm 1.97 cm 848 MeV 12.3 keV 5.65 cm 8.45 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -75 mum -14.4 cm 1.97 cm 1.13 keV 0 eV 0 fm 0 fm World initStep + 1 -70.7 mum -14.4 cm 1.97 cm 755 keV 1.13 keV 68.7 mum 68.7 mum World eIoni + 2 -53.6 mum -20 cm 1.97 cm 565 MeV 8.4 keV 5.64 cm 5.65 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -226 mum -19.8 cm 2.18 cm 1.65 keV 0 eV 0 fm 0 fm World initStep - 1 -221 mum -19.8 cm 2.18 cm 1.28 MeV 1.65 keV 117 mum 117 mum World eIoni - 2 -214 mum -20 cm 2.18 cm 22.2 MeV 45.3 eV 2.09 mm 2.2 mm OutOfWorldTransportation + 0 -74.9 mum -14.3 cm 1.97 cm 4.72 keV 0 eV 0 fm 0 fm World initStep + 1 -55.7 mum -14.4 cm 1.96 cm 6.98 MeV 4.72 keV 654 mum 654 mum World eIoni + 2 -54.3 mum -14.4 cm 1.96 cm 9.49 MeV 0 eV 251 mum 905 mum World eIoni + 3 -34.7 mum -19.6 cm 1.96 cm 525 MeV 7 keV 5.16 cm 5.25 cm World eBrem + 4 -34.4 mum -20 cm 1.96 cm 568 MeV 616 eV 4.32 mm 5.68 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -14.7 cm 2.07 cm 3.14 keV 0 eV 0 fm 0 fm World initStep - 1 6.99 mum -14.7 cm 2.07 cm 3.47 MeV 3.14 keV 322 mum 322 mum World eIoni - 2 12.7 mum -15.1 cm 2.07 cm 44.2 MeV 200 eV 4.07 mm 4.39 mm World eIoni - 3 17 mum -17.4 cm 2.07 cm 272 MeV 6.32 keV 2.28 cm 2.72 cm World eIoni - 4 18.6 mum -20 cm 2.07 cm 531 MeV 4.49 keV 2.58 cm 5.3 cm OutOfWorldTransportation + 0 0 fm -10.4 cm 1.9 cm 3.53 keV 0 eV 0 fm 0 fm World initStep + 1 -17.5 mum -10.4 cm 1.9 cm 4.26 MeV 3.53 keV 396 mum 396 mum World eIoni + 2 -23.9 mum -10.5 cm 1.9 cm 14.8 MeV 938 eV 1.06 mm 1.45 mm World eIoni + 3 -41.1 mum -13.5 cm 1.9 cm 319 MeV 4.95 keV 3.04 cm 3.19 cm World eIoni + 4 -42.6 mum -20 cm 1.9 cm 965 MeV 13.3 keV 6.46 cm 9.65 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -41.1 mum -13.5 cm 1.9 cm 2.49 keV 0 eV 0 fm 0 fm World initStep + 1 -50.9 mum -13.6 cm 1.9 cm 2.39 MeV 2.49 keV 220 mum 220 mum World eIoni + 2 -60.3 mum -13.9 cm 1.9 cm 32.8 MeV 293 eV 3.04 mm 3.26 mm World eIoni + 3 -72 mum -20 cm 1.9 cm 646 MeV 11.3 keV 6.13 cm 6.46 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -12.6 cm 1.99 cm 1.31 GeV 23.6 keV 13.1 cm 13.1 cm World eIoni + 2 1.03 mum -18.1 cm 2.17 cm 1.86 GeV 13.3 keV 5.53 cm 18.6 cm World eIoni + 3 977 nm -19.3 cm 2.2 cm 1.98 GeV 3.25 keV 1.18 cm 19.8 cm World eIoni + 4 1.07 mum -20 cm 2.22 cm 2.05 GeV 753 eV 6.8 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 977 nm -19.3 cm 2.2 cm 1.98 keV 0 eV 0 fm 0 fm World initStep + 1 -6.94 mum -19.3 cm 2.2 cm 1.67 MeV 1.98 keV 153 mum 153 mum World eIoni + 2 -19.3 mum -20 cm 2.21 cm 68.1 MeV 1.48 keV 6.65 mm 6.8 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.03 mum -18.1 cm 2.17 cm 1.38 keV 0 eV 0 fm 0 fm World initStep + 1 7.71 mum -18.1 cm 2.17 cm 994 keV 1.38 keV 90.4 mum 90.4 mum World eIoni + 2 26 mum -20 cm 2.17 cm 187 MeV 2.91 keV 1.86 cm 1.86 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -12.6 cm 1.99 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 -4.83 mum -12.6 cm 1.99 cm 834 keV 1.22 keV 75.9 mum 75.9 mum World eIoni + 2 -23 mum -20 cm 1.99 cm 739 MeV 9.79 keV 7.38 cm 7.39 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.58 mm 8.71 mm 146 MeV 1.1 keV 1.37 cm 1.37 cm World eIoni + 2 -4.31 mum -4.15 cm 1.47 cm 465 MeV 7.03 keV 3.26 cm 4.63 cm World eIoni + 3 9.59 mum -20 cm 2.22 cm 2.05 GeV 29.2 keV 15.9 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -4.31 mum -4.15 cm 1.47 cm 21.2 keV 0 eV 0 fm 0 fm World initStep + 1 -47.2 mum -4.21 cm 1.47 cm 6.11 MeV 802 eV 603 mum 603 mum World eIoni + 2 -116 mum -16.9 cm 1.48 cm 1.27 GeV 17.8 keV 12.7 cm 12.7 cm World eIoni + 3 -119 mum -20 cm 1.48 cm 1.59 GeV 7.02 keV 3.13 cm 15.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.58 mm 8.71 mm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 6.35 mum -9.66 mm 8.72 mm 935 keV 1.32 keV 84.9 mum 84.9 mum World eIoni + 2 33 mum -20 cm 8.72 mm 1.9 GeV 28.7 keV 19 cm 19 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 42.5 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.93 mm 7.13 mm 109 MeV 1.57 keV 9.75 mm 9.75 mm World eIoni + 2 -10.6 mum -5.66 cm 1.61 cm 616 MeV 9.7 keV 5.17 cm 6.15 cm World eIoni + 3 -16.2 mum -13.8 cm 2.04 cm 1.43 GeV 18 keV 8.13 cm 14.3 cm World eIoni + 4 -16.4 mum -14.8 cm 2.08 cm 1.53 GeV 1.86 keV 1.06 cm 15.3 cm World eIoni + 5 -16.7 mum -16.5 cm 2.13 cm 1.7 GeV 3.22 keV 1.64 cm 17 cm World eIoni + 6 -16.8 mum -20 cm 2.22 cm 2.05 GeV 6.5 keV 3.53 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -16.7 mum -16.5 cm 2.13 cm 1.49 keV 0 eV 0 fm 0 fm World initStep + 1 -21.7 mum -16.5 cm 2.13 cm 1.11 MeV 1.49 keV 101 mum 101 mum World eIoni + 2 -36.3 mum -20 cm 2.13 cm 353 MeV 6.02 keV 3.52 cm 3.53 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -16.4 mum -14.8 cm 2.08 cm 1.23 keV 0 eV 0 fm 0 fm World initStep + 1 -18 mum -14.8 cm 2.08 cm 843 keV 1.23 keV 76.6 mum 76.6 mum World eIoni + 2 -23.8 mum -20 cm 2.08 cm 516 MeV 7.26 keV 5.15 cm 5.16 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -16.2 mum -13.8 cm 2.04 cm 1.72 keV 0 eV 0 fm 0 fm World initStep + 1 -22 mum -13.8 cm 2.04 cm 1.37 MeV 1.72 keV 125 mum 125 mum World eIoni + 2 -38.8 mum -20 cm 2.04 cm 622 MeV 9.94 keV 6.21 cm 6.22 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -10.6 mum -5.66 cm 1.61 cm 1.2 keV 0 eV 0 fm 0 fm World initStep + 1 -9.41 mum -5.67 cm 1.61 cm 814 keV 1.2 keV 74.3 mum 74.3 mum World eIoni + 2 -4.29 mum -20 cm 1.61 cm 1.43 GeV 20.7 keV 14.3 cm 14.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.93 mm 7.13 mm 4.04 keV 0 eV 0 fm 0 fm World initStep + 1 20.6 mum -6.42 mm 7.12 mm 5.32 MeV 4.04 keV 497 mum 497 mum World eIoni + 2 25.1 mum -7.07 mm 7.12 mm 11.8 MeV 46.6 eV 653 mum 1.15 mm World eIoni + 3 53.2 mum -14.2 cm 7.11 mm 1.36 GeV 20.1 keV 13.5 cm 13.6 cm World eIoni + 4 56.3 mum -20 cm 7.11 mm 1.94 GeV 11.1 keV 5.76 cm 19.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 53.2 mum -14.2 cm 7.11 mm 1.54 keV 0 eV 0 fm 0 fm World initStep + 1 47.3 mum -14.2 cm 7.12 mm 1.16 MeV 1.54 keV 106 mum 106 mum World eIoni + 2 29 mum -20 cm 7.13 mm 577 MeV 7.21 keV 5.75 cm 5.77 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -14.9 cm 2.08 cm 1.54 GeV 31.3 keV 15.4 cm 15.4 cm World eIoni + 2 974 nm -20 cm 2.22 cm 2.05 GeV 8.92 keV 5.11 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -14.9 cm 2.08 cm 3.18 keV 0 eV 0 fm 0 fm World initStep + 1 -10.2 mum -14.9 cm 2.07 cm 3.56 MeV 3.18 keV 330 mum 330 mum World eIoni + 2 -19.1 mum -15.4 cm 2.07 cm 54.6 MeV 706 eV 5.11 mm 5.44 mm World eIoni + 3 -26.9 mum -20 cm 2.07 cm 511 MeV 6.93 keV 4.56 cm 5.11 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.03 mm 6.02 mm 90.3 MeV 895 eV 7.55 mm 7.55 mm World eIoni + 2 -2.54 mum -8.59 cm 1.81 cm 909 MeV 12.9 keV 8.33 cm 9.09 cm World eIoni + 3 -3.41 mum -10.5 cm 1.91 cm 1.1 GeV 4.8 keV 1.92 cm 11 cm World eIoni + 4 -5.12 mum -20 cm 2.22 cm 2.05 GeV 19.2 keV 9.49 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -3.41 mum -10.5 cm 1.91 cm 4.75 keV 0 eV 0 fm 0 fm World initStep + 1 -9.36 mum -10.6 cm 1.91 cm 4.78 MeV 2.03 keV 450 mum 450 mum World eIoni + 2 -16.4 mum -12.8 cm 1.9 cm 234 MeV 5.38 keV 2.29 cm 2.33 cm World eIoni + 3 -23.8 mum -20 cm 1.9 cm 949 MeV 15.6 keV 7.15 cm 9.49 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -16.4 mum -12.8 cm 1.9 cm 4.35 keV 0 eV 0 fm 0 fm World initStep + 1 -3.94 mum -12.9 cm 1.9 cm 5.68 MeV 4.35 keV 532 mum 532 mum World eIoni + 2 5.73 mum -13.8 cm 1.9 cm 98.8 MeV 2.36 keV 9.31 mm 9.85 mm World eIoni + 3 10.9 mum -20 cm 1.9 cm 716 MeV 11.7 keV 6.17 cm 7.15 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 5.73 mum -13.8 cm 1.9 cm 1.56 keV 0 eV 0 fm 0 fm World initStep + 1 7.4 mum -13.8 cm 1.9 cm 1.18 MeV 1.56 keV 108 mum 108 mum World eIoni + 2 12.6 mum -20 cm 1.9 cm 617 MeV 6.09 keV 6.16 cm 6.17 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.54 mum -8.59 cm 1.81 cm 1.2 keV 0 eV 0 fm 0 fm World initStep + 1 3.17 mum -8.6 cm 1.81 cm 818 keV 1.2 keV 74.4 mum 74.4 mum World eIoni + 2 26.6 mum -20 cm 1.81 cm 1.14 GeV 15.4 keV 11.4 cm 11.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.03 mm 6.02 mm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 1.61 mum -4.1 mm 6.01 mm 718 keV 1.1 keV 66.1 mum 66.1 mum World eIoni + 2 9.67 mum -20 cm 5.99 mm 1.96 GeV 31.1 keV 19.6 cm 19.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.64 cm 1.52 cm 514 MeV 11.4 keV 5.12 cm 5.12 cm World eIoni + 2 2.82 mum -16.8 cm 2.13 cm 1.73 GeV 21.6 keV 12.1 cm 17.3 cm World eIoni + 3 3.62 mum -18.5 cm 2.18 cm 1.9 GeV 3.39 keV 1.71 cm 19 cm World eIoni + 4 4.39 mum -19.7 cm 2.21 cm 2.02 GeV 1.89 keV 1.21 cm 20.2 cm World eIoni + 5 4.79 mum -20 cm 2.22 cm 2.05 GeV 1.27 keV 3.12 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 4.39 mum -19.7 cm 2.21 cm 18.5 keV 0 eV 0 fm 0 fm World initStep + 1 -49.3 mum -19.8 cm 2.21 cm 9.73 MeV 1.76 keV 951 mum 951 mum World eIoni + 2 -64.8 mum -20 cm 2.21 cm 31.6 MeV 148 eV 2.18 mm 3.13 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.62 mum -18.5 cm 2.18 cm 1.82 keV 0 eV 0 fm 0 fm World initStep + 1 -4.79 mum -18.5 cm 2.18 cm 1.48 MeV 1.82 keV 135 mum 135 mum World eIoni + 2 -21.6 mum -20 cm 2.18 cm 152 MeV 2.76 keV 1.5 cm 1.52 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.82 mum -16.8 cm 2.13 cm 7.98 keV 0 eV 0 fm 0 fm World initStep + 1 -32.6 mum -16.9 cm 2.13 cm 17.6 MeV 7.98 keV 1.66 mm 1.66 mm World eIoni + 2 -43.6 mum -17.8 cm 2.13 cm 107 MeV 1.32 keV 8.97 mm 1.06 cm World eIoni + 3 -50.4 mum -20 cm 2.13 cm 324 MeV 5.22 keV 2.17 cm 3.23 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.64 cm 1.52 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 -3.87 mum -4.65 cm 1.52 cm 854 keV 1.25 keV 77.8 mum 77.8 mum World eIoni + 2 -20.6 mum -20 cm 1.52 cm 1.54 GeV 21.2 keV 15.4 cm 15.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.09 mm 4.45 mm 70.9 MeV 1.36 keV 5.05 mm 5.05 mm World eIoni + 2 2.56 mum -20 cm 2.22 cm 2.05 GeV 35.2 keV 20 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.09 mm 4.45 mm 3.18 keV 0 eV 0 fm 0 fm World initStep + 1 -2.12 mum -2.42 mm 4.44 mm 3.55 MeV 3.18 keV 329 mum 329 mum World eIoni + 2 -3.4 mum -4.35 mm 4.44 mm 22.8 MeV 306 eV 1.93 mm 2.26 mm World eIoni + 3 -5.98 mum -5.22 cm 4.42 mm 502 MeV 9.59 keV 4.79 cm 5.01 cm World eIoni + 4 -10.1 mum -15.5 cm 4.42 mm 1.53 GeV 20.5 keV 10.3 cm 15.3 cm World eIoni + 5 -8.92 mum -16.4 cm 4.41 mm 1.62 GeV 2.6 keV 8.84 mm 16.2 cm World eIoni + 6 -8.23 mum -16.9 cm 4.41 mm 1.67 GeV 1.53 keV 4.76 mm 16.7 cm World eBrem + 7 -4.12 mum -20 cm 4.4 mm 1.98 GeV 6.92 keV 3.11 cm 19.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -8.23 mum -16.9 cm 4.41 mm 2.59 MeV 0 eV 0 fm 0 fm World initStep + 1 -4.36 mum -20 cm 4.4 mm 2.59 MeV 0 eV 3.11 cm 3.11 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 17 mum -17.4 cm 2.07 cm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 15.1 mum -17.4 cm 2.07 cm 1.1 MeV 1.49 keV 100 mum 100 mum World eIoni - 2 9.84 mum -20 cm 2.08 cm 259 MeV 4.22 keV 2.57 cm 2.58 cm OutOfWorldTransportation + 0 -8.92 mum -16.4 cm 4.41 mm 2.06 keV 0 eV 0 fm 0 fm World initStep + 1 -14.5 mum -16.4 cm 4.42 mm 1.79 MeV 2.06 keV 164 mum 164 mum World eIoni + 2 -27.2 mum -20 cm 4.44 mm 359 MeV 5.09 keV 3.57 cm 3.59 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.17 cm 1.84 cm 967 MeV 17.8 keV 9.66 cm 9.66 cm World eIoni - 2 -1.43 mum -20 cm 2.22 cm 2.05 GeV 23 keV 10.8 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.17 cm 1.84 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 3.3 mum -9.18 cm 1.84 cm 932 keV 1.32 keV 84.6 mum 84.6 mum World eIoni - 2 15.9 mum -20 cm 1.84 cm 1.08 GeV 16.4 keV 10.8 cm 10.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.04 cm 9.01 mm 154 MeV 2.74 keV 1.46 cm 1.46 cm World eIoni - 2 -4.83 mum -20 cm 2.22 cm 2.05 GeV 39.3 keV 19 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.04 cm 9.01 mm 12.1 keV 0 eV 0 fm 0 fm World initStep - 1 6.95 mum -1.11 cm 9.05 mm 7.53 MeV 1.19 keV 732 mum 732 mum World eIoni - 2 15.3 mum -7.97 cm 9.1 mm 693 MeV 10.9 keV 6.86 cm 6.93 cm World eIoni - 3 15.1 mum -20 cm 9.11 mm 1.9 GeV 24 keV 12 cm 19 cm OutOfWorldTransportation + 0 -10.1 mum -15.5 cm 4.42 mm 202 keV 0 eV 0 fm 0 fm World initStep + 1 -89.3 mum -15.6 cm 4.53 mm 10.1 MeV 292 eV 1.01 mm 1.01 mm World eIoni + 2 -174 mum -18.5 cm 4.66 mm 293 MeV 5.62 keV 2.83 cm 2.93 cm World eBrem + 3 -184 mum -20 cm 4.68 mm 448 MeV 3.75 keV 1.55 cm 4.48 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 15.3 mum -7.97 cm 9.1 mm 1.02 keV 0 eV 0 fm 0 fm World initStep - 1 18.4 mum -7.98 cm 9.09 mm 649 keV 1.02 keV 59.1 mum 59.1 mum World eIoni - 2 32.4 mum -20 cm 9.08 mm 1.2 GeV 18.9 keV 12 cm 12 cm OutOfWorldTransportation + 0 -5.98 mum -5.22 cm 4.42 mm 1.47 keV 0 eV 0 fm 0 fm World initStep + 1 -432 nm -5.23 cm 4.43 mm 1.09 MeV 1.47 keV 99 mum 99 mum World eIoni + 2 20.4 mum -20 cm 4.44 mm 1.48 GeV 22.1 keV 14.8 cm 14.8 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -4131,11 +3684,930 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 41.6 keV 20.5 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -9.73 cm 1.87 cm 1.02 GeV 16.8 keV 10.2 cm 10.2 cm World eIoni + 2 -3.01 mum -14.9 cm 2.08 cm 1.54 GeV 10.9 keV 5.18 cm 15.4 cm World eIoni + 3 -6.08 mum -20 cm 2.22 cm 2.05 GeV 11.7 keV 5.09 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -3.01 mum -14.9 cm 2.08 cm 1.73 keV 0 eV 0 fm 0 fm World initStep + 1 3.98 mum -14.9 cm 2.08 cm 1.37 MeV 1.73 keV 125 mum 125 mum World eIoni + 2 23.3 mum -20 cm 2.07 cm 509 MeV 7.17 keV 5.08 cm 5.09 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.73 cm 1.87 cm 6.57 keV 0 eV 0 fm 0 fm World initStep + 1 36.3 mum -9.84 cm 1.87 cm 12.5 MeV 6.57 keV 1.17 mm 1.17 mm World eIoni + 2 50.1 mum -10.6 cm 1.87 cm 84.5 MeV 752 eV 7.21 mm 8.38 mm World eIoni + 3 69.3 mum -20 cm 1.87 cm 1.03 GeV 22.7 keV 9.43 cm 10.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.71 cm 1.62 cm 621 MeV 11 keV 6.19 cm 6.19 cm World eIoni + 2 2.05 mum -12.7 cm 2 cm 1.32 GeV 16.2 keV 7.05 cm 13.2 cm World eIoni + 3 120 nm -17.1 cm 2.14 cm 1.76 GeV 8.51 keV 4.33 cm 17.6 cm World eIoni + 4 -958 nm -19.2 cm 2.2 cm 1.97 GeV 3.82 keV 2.13 cm 19.7 cm World eIoni + 5 -1.41 mum -20 cm 2.22 cm 2.05 GeV 2.25 keV 7.98 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -958 nm -19.2 cm 2.2 cm 2.86 keV 0 eV 0 fm 0 fm World initStep + 1 4.42 mum -19.2 cm 2.2 cm 3 MeV 2.86 keV 277 mum 277 mum World eIoni + 2 8.66 mum -19.5 cm 2.2 cm 31.3 MeV 697 eV 2.83 mm 3.1 mm World eIoni + 3 10.4 mum -20 cm 2.2 cm 80.1 MeV 656 eV 4.88 mm 7.98 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 120 nm -17.1 cm 2.14 cm 2.53 keV 0 eV 0 fm 0 fm World initStep + 1 6.92 mum -17.1 cm 2.14 cm 2.45 MeV 2.53 keV 226 mum 226 mum World eIoni + 2 15.6 mum -17.8 cm 2.14 cm 76.6 MeV 815 eV 7.41 mm 7.64 mm World eIoni + 3 19.1 mum -20 cm 2.14 cm 293 MeV 5.21 keV 2.16 cm 2.92 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.05 mum -12.7 cm 2 cm 12.7 keV 0 eV 0 fm 0 fm World initStep + 1 86 mum -13.1 cm 2.01 cm 40.8 MeV 12.7 keV 3.88 mm 3.88 mm World eIoni + 2 94.8 mum -13.8 cm 2.01 cm 104 MeV 1.77 keV 6.29 mm 1.02 cm World eIoni + 3 102 mum -15 cm 2.01 cm 230 MeV 3.14 keV 1.26 cm 2.28 cm World eIoni + 4 117 mum -20 cm 2.01 cm 728 MeV 11.3 keV 4.98 cm 7.26 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 102 mum -15 cm 2.01 cm 3.49 keV 0 eV 0 fm 0 fm World initStep + 1 92.2 mum -15.1 cm 2.01 cm 4.17 MeV 3.49 keV 388 mum 388 mum World eIoni + 2 85.1 mum -15.4 cm 2.01 cm 42 MeV 491 eV 3.78 mm 4.17 mm World eIoni + 3 77.1 mum -20 cm 2.01 cm 498 MeV 6.83 keV 4.56 cm 4.98 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.71 cm 1.62 cm 4.43 keV 0 eV 0 fm 0 fm World initStep + 1 -10.1 mum -5.77 cm 1.62 cm 6.26 MeV 4.43 keV 586 mum 586 mum World eIoni + 2 -17 mum -6.58 cm 1.62 cm 87.1 MeV 1.24 keV 8.08 mm 8.67 mm World eIoni + 3 -28.2 mum -10.3 cm 1.62 cm 460 MeV 5.82 keV 3.73 cm 4.6 cm World eIoni + 4 -41.6 mum -20 cm 1.62 cm 1.43 GeV 21.5 keV 9.7 cm 14.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -28.2 mum -10.3 cm 1.62 cm 2.58 keV 0 eV 0 fm 0 fm World initStep + 1 -14.8 mum -10.3 cm 1.62 cm 2.54 MeV 2.58 keV 234 mum 234 mum World eIoni + 2 5.15 mum -11.7 cm 1.62 cm 139 MeV 1.1 keV 1.36 cm 1.38 cm World eIoni + 3 21.7 mum -20 cm 1.62 cm 970 MeV 17 keV 8.31 cm 9.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 5.15 mum -11.7 cm 1.62 cm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 -15.3 nm -11.7 cm 1.62 cm 724 keV 1.1 keV 65.9 mum 65.9 mum World eIoni + 2 -22.2 mum -20 cm 1.62 cm 831 MeV 12.4 keV 8.31 cm 8.31 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -17 mum -6.58 cm 1.62 cm 2.01 keV 0 eV 0 fm 0 fm World initStep + 1 -8.06 mum -6.59 cm 1.62 cm 1.71 MeV 2.01 keV 156 mum 156 mum World eIoni + 2 17.9 mum -20 cm 1.62 cm 1.34 GeV 19.6 keV 13.4 cm 13.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -400 mum 2 mm 54 MeV 217 eV 2.05 mm 2.05 mm World eIoni + 2 13.7 mum -10.5 cm 1.91 cm 1.1 GeV 22.1 keV 10.8 cm 11 cm World eIoni + 3 13.8 mum -13.3 cm 2.02 cm 1.38 GeV 7.24 keV 2.8 cm 13.8 cm World eIoni + 4 15 mum -20 cm 2.22 cm 2.05 GeV 14.2 keV 6.72 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 13.8 mum -13.3 cm 2.02 cm 1.31 keV 0 eV 0 fm 0 fm World initStep + 1 9.6 mum -13.3 cm 2.02 cm 920 keV 1.31 keV 83.6 mum 83.6 mum World eIoni + 2 -5.71 mum -20 cm 2.02 cm 672 MeV 9.81 keV 6.71 cm 6.72 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 13.7 mum -10.5 cm 1.91 cm 1.62 keV 0 eV 0 fm 0 fm World initStep + 1 20.9 mum -10.5 cm 1.9 cm 1.25 MeV 1.62 keV 114 mum 114 mum World eIoni + 2 44 mum -20 cm 1.9 cm 952 MeV 11.4 keV 9.51 cm 9.52 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -400 mum 2 mm 1.75 keV 0 eV 0 fm 0 fm World initStep + 1 -8.28 mum -525 mum 2 mm 1.39 MeV 1.75 keV 128 mum 128 mum World eIoni + 2 -37.1 mum -20 cm 1.99 mm 2 GeV 28.6 keV 19.9 cm 20 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.34 cm 9.95 mm 184 MeV 3.35 keV 1.78 cm 1.78 cm World eIoni + 2 -8.42 mum -20 cm 2.22 cm 2.05 GeV 44 keV 18.7 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.34 cm 9.95 mm 1.43 keV 0 eV 0 fm 0 fm World initStep + 1 6.38 mum -1.35 cm 9.95 mm 1.05 MeV 1.43 keV 94.8 mum 94.8 mum World eIoni + 2 31.5 mum -20 cm 9.96 mm 1.87 GeV 29.6 keV 18.7 cm 18.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.25 cm 1.36 cm 375 MeV 8.33 keV 3.72 cm 3.72 cm World eIoni + 2 2.47 mum -20 cm 2.22 cm 2.05 GeV 38.4 keV 16.8 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.25 cm 1.36 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 -2.26 mum -3.25 cm 1.36 cm 718 keV 1.09 keV 64.9 mum 64.9 mum World eIoni + 2 -13 mum -20 cm 1.36 cm 1.68 GeV 23.6 keV 16.7 cm 16.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.53 cm 1.75 cm 803 MeV 12.8 keV 8.02 cm 8.02 cm World eIoni + 2 -2.23 mum -10 cm 1.88 cm 1.05 GeV 5.6 keV 2.49 cm 10.5 cm World eIoni + 3 -5.38 mum -20 cm 2.22 cm 2.05 GeV 20.4 keV 10 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.23 mum -10 cm 1.88 cm 1.6 keV 0 eV 0 fm 0 fm World initStep + 1 -9.13 mum -10 cm 1.88 cm 1.22 MeV 1.6 keV 111 mum 111 mum World eIoni + 2 -32.2 mum -20 cm 1.88 cm 999 MeV 17.4 keV 9.98 cm 9.99 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.53 cm 1.75 cm 6.79 keV 0 eV 0 fm 0 fm World initStep + 1 42 mum -7.65 cm 1.75 cm 13.3 MeV 6.79 keV 1.25 mm 1.25 mm World eIoni + 2 47.8 mum -7.79 cm 1.75 cm 27.4 MeV 199 eV 1.42 mm 2.67 mm World eIoni + 3 76.2 mum -15.1 cm 1.75 cm 755 MeV 14.6 keV 7.27 cm 7.54 cm World eBrem + 4 80.4 mum -20 cm 1.75 cm 1.25 GeV 12.5 keV 4.93 cm 12.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.56 mm 6.94 mm 106 MeV 2.34 keV 9.34 mm 9.34 mm World eIoni + 2 529 nm -7.66 cm 1.76 cm 816 MeV 13.1 keV 7.21 cm 8.15 cm World eIoni + 3 5.09 mum -20 cm 2.22 cm 2.05 GeV 25.1 keV 12.4 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 529 nm -7.66 cm 1.76 cm 2.3 keV 0 eV 0 fm 0 fm World initStep + 1 -11 mum -7.68 cm 1.76 cm 2.12 MeV 2.3 keV 195 mum 195 mum World eIoni + 2 -21.5 mum -7.89 cm 1.76 cm 23.7 MeV 767 eV 2.16 mm 2.36 mm World eIoni + 3 -37.3 mum -13.1 cm 1.75 cm 546 MeV 10.7 keV 5.22 cm 5.46 cm World eIoni + 4 -36.8 mum -15.3 cm 1.75 cm 764 MeV 5.31 keV 2.18 cm 7.64 cm World eIoni + 5 -35.8 mum -20 cm 1.75 cm 1.23 GeV 9.17 keV 4.7 cm 12.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -36.8 mum -15.3 cm 1.75 cm 1.68 keV 0 eV 0 fm 0 fm World initStep + 1 -40.4 mum -15.3 cm 1.76 cm 1.32 MeV 1.68 keV 121 mum 121 mum World eIoni + 2 -50.4 mum -20 cm 1.76 cm 471 MeV 5.15 keV 4.69 cm 4.71 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -37.3 mum -13.1 cm 1.75 cm 3.67 keV 0 eV 0 fm 0 fm World initStep + 1 -44.6 mum -13.1 cm 1.75 cm 431 keV 425 eV 43.6 mum 43.6 mum World eIoni + 2 -77 mum -14.8 cm 1.75 cm 171 MeV 3.49 keV 1.7 cm 1.71 cm World eIoni + 3 -85.5 mum -20 cm 1.75 cm 688 MeV 13.3 keV 5.18 cm 6.88 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.56 mm 6.94 mm 1.04 keV 0 eV 0 fm 0 fm World initStep + 1 -368 nm -5.63 mm 6.93 mm 663 keV 1.04 keV 61 mum 61 mum World eIoni + 2 -2.28 mum -20 cm 6.91 mm 1.94 GeV 32.2 keV 19.4 cm 19.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.92 cm 1.44 cm 441 MeV 7.61 keV 4.39 cm 4.39 cm World eIoni + 2 9.74 mum -20 cm 2.22 cm 2.05 GeV 30.1 keV 16.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.92 cm 1.44 cm 4.17 keV 0 eV 0 fm 0 fm World initStep + 1 -22.7 mum -3.97 cm 1.44 cm 5.63 MeV 4.17 keV 526 mum 526 mum World eIoni + 2 -34.3 mum -4.29 cm 1.44 cm 38.1 MeV 1.18 keV 3.25 mm 3.77 mm World eIoni + 3 -57.8 mum -20 cm 1.44 cm 1.61 GeV 30.7 keV 15.7 cm 16.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.55 cm 1.26 cm 305 MeV 8.08 keV 3.02 cm 3.02 cm World eIoni + 2 1.2 mum -3.37 cm 1.38 cm 387 MeV 2.58 keV 8.26 mm 3.84 cm World eIoni + 3 2.17 mum -4.61 cm 1.52 cm 511 MeV 2.66 keV 1.25 cm 5.09 cm World eIoni + 4 1.87 mum -20 cm 2.22 cm 2.05 GeV 28.4 keV 15.4 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.17 mum -4.61 cm 1.52 cm 1.48 keV 0 eV 0 fm 0 fm World initStep + 1 9.06 mum -4.62 cm 1.52 cm 1.1 MeV 1.48 keV 100 mum 100 mum World eIoni + 2 34.9 mum -20 cm 1.52 cm 1.54 GeV 21.2 keV 15.4 cm 15.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.2 mum -3.37 cm 1.38 cm 1.85 keV 0 eV 0 fm 0 fm World initStep + 1 4.4 mum -3.38 cm 1.38 cm 1.52 MeV 1.85 keV 139 mum 139 mum World eIoni + 2 14.7 mum -20 cm 1.37 cm 1.66 GeV 22.1 keV 16.6 cm 16.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.55 cm 1.26 cm 2.98 keV 0 eV 0 fm 0 fm World initStep + 1 -14.3 mum -2.58 cm 1.26 cm 3.2 MeV 2.98 keV 296 mum 296 mum World eIoni + 2 -34.2 mum -4.3 cm 1.25 cm 175 MeV 2.97 keV 1.72 cm 1.75 cm World eIoni + 3 -38 mum -6.3 cm 1.25 cm 375 MeV 3.63 keV 2 cm 3.75 cm World eIoni + 4 -42.9 mum -9.68 cm 1.25 cm 713 MeV 5.13 keV 3.38 cm 7.12 cm World eIoni + 5 -48.3 mum -15.2 cm 1.25 cm 1.27 GeV 10.6 keV 5.56 cm 12.7 cm World eIoni + 6 -53.2 mum -20 cm 1.25 cm 1.74 GeV 11.5 keV 4.76 cm 17.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -48.3 mum -15.2 cm 1.25 cm 5.39 keV 0 eV 0 fm 0 fm World initStep + 1 -16.6 mum -15.3 cm 1.25 cm 8.82 MeV 5.39 keV 829 mum 829 mum World eIoni + 2 -6.01 mum -15.6 cm 1.25 cm 38.6 MeV 1.1 keV 2.98 mm 3.81 mm World eIoni + 3 4.72 mum -16.9 cm 1.25 cm 166 MeV 1.67 keV 1.28 cm 1.66 cm World eIoni + 4 16.2 mum -18.2 cm 1.25 cm 299 MeV 3.22 keV 1.32 cm 2.98 cm World eIoni + 5 26.1 mum -20 cm 1.25 cm 477 MeV 4.44 keV 1.78 cm 4.76 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 16.2 mum -18.2 cm 1.25 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 13.5 mum -18.2 cm 1.25 cm 681 keV 1.05 keV 61.9 mum 61.9 mum World eIoni + 2 4.44 mum -20 cm 1.25 cm 178 MeV 2.96 keV 1.78 cm 1.78 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 4.72 mum -16.9 cm 1.25 cm 18.4 keV 0 eV 0 fm 0 fm World initStep + 1 -87.3 mum -17.2 cm 1.25 cm 36.3 MeV 3.95 keV 3.49 mm 3.49 mm World eIoni + 2 -113 mum -20 cm 1.25 cm 313 MeV 5.83 keV 2.76 cm 3.11 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -42.9 mum -9.68 cm 1.25 cm 1.23 keV 0 eV 0 fm 0 fm World initStep + 1 -40 mum -9.68 cm 1.26 cm 843 keV 1.23 keV 76.6 mum 76.6 mum World eIoni + 2 -28.4 mum -20 cm 1.26 cm 1.03 GeV 16.8 keV 10.3 cm 10.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -38 mum -6.3 cm 1.25 cm 1.72 keV 0 eV 0 fm 0 fm World initStep + 1 -32.6 mum -6.31 cm 1.25 cm 1.36 MeV 1.72 keV 124 mum 124 mum World eIoni + 2 -15.9 mum -15.2 cm 1.25 cm 889 MeV 11.5 keV 8.88 cm 8.9 cm World eBrem + 3 -14.7 mum -20 cm 1.25 cm 1.37 GeV 10.4 keV 4.8 cm 13.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -15.9 mum -15.2 cm 1.25 cm 646 keV 0 eV 0 fm 0 fm World initStep + 1 -36.7 mum -20 cm 1.25 cm 646 keV 0 eV 4.8 cm 4.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -10 cm 1.88 cm 1.05 GeV 22.7 keV 10.5 cm 10.5 cm World eIoni + 2 2.47 mum -20 cm 2.22 cm 2.05 GeV 26 keV 9.97 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -10 cm 1.88 cm 2.01 keV 0 eV 0 fm 0 fm World initStep + 1 -8.31 mum -10 cm 1.88 cm 1.71 MeV 2.01 keV 156 mum 156 mum World eIoni + 2 -29.8 mum -16.6 cm 1.89 cm 659 MeV 7.7 keV 6.57 cm 6.59 cm World eIoni + 3 -32.4 mum -20 cm 1.89 cm 997 MeV 6.36 keV 3.38 cm 9.97 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -29.8 mum -16.6 cm 1.89 cm 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 -25.5 mum -16.6 cm 1.89 cm 706 keV 1.08 keV 64.2 mum 64.2 mum World eIoni + 2 -9.5 mum -20 cm 1.89 cm 338 MeV 5.2 keV 3.37 cm 3.38 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.27 cm 1.48 cm 477 MeV 8.93 keV 4.75 cm 4.75 cm World eIoni + 2 1.52 mum -11.8 cm 1.96 cm 1.23 GeV 17.9 keV 7.55 cm 12.3 cm World eIoni + 3 1.96 mum -20 cm 2.22 cm 2.05 GeV 18.2 keV 8.2 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.52 mum -11.8 cm 1.96 cm 1.31 keV 0 eV 0 fm 0 fm World initStep + 1 2.84 mum -11.8 cm 1.96 cm 915 keV 1.31 keV 83.4 mum 83.4 mum World eIoni + 2 7.69 mum -20 cm 1.96 cm 819 MeV 11.2 keV 8.18 cm 8.19 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.27 cm 1.48 cm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 -2.45 mum -4.28 cm 1.48 cm 699 keV 1.07 keV 63.8 mum 63.8 mum World eIoni + 2 -14.3 mum -20 cm 1.48 cm 1.57 GeV 24.3 keV 15.7 cm 15.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.97 cm 1.15 cm 247 MeV 6.12 keV 2.42 cm 2.42 cm World eIoni + 2 -6.56 mum -7.6 cm 1.75 cm 810 MeV 11.9 keV 5.67 cm 8.09 cm World eIoni + 3 -12.6 mum -20 cm 2.22 cm 2.05 GeV 31.6 keV 12.4 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -6.56 mum -7.6 cm 1.75 cm 1.54 keV 0 eV 0 fm 0 fm World initStep + 1 -4.69 mum -7.61 cm 1.75 cm 1.16 MeV 1.54 keV 106 mum 106 mum World eIoni + 2 1.8 mum -20 cm 1.75 cm 1.24 GeV 20.6 keV 12.4 cm 12.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.97 cm 1.15 cm 2.95 keV 0 eV 0 fm 0 fm World initStep + 1 15.7 mum -1.99 cm 1.15 cm 3.17 MeV 2.95 keV 293 mum 293 mum World eIoni + 2 34.5 mum -3.06 cm 1.15 cm 110 MeV 4.19 keV 1.06 cm 1.09 cm World eIoni + 3 48.9 mum -16.2 cm 1.15 cm 1.43 GeV 28.7 keV 13.2 cm 14.2 cm World eIoni + 4 50.7 mum -20 cm 1.15 cm 1.8 GeV 6.42 keV 3.79 cm 18 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 48.9 mum -16.2 cm 1.15 cm 8.23 keV 0 eV 0 fm 0 fm World initStep + 1 32.7 mum -16.4 cm 1.15 cm 18.6 MeV 8.23 keV 1.76 mm 1.76 mm World eIoni + 2 30.2 mum -16.7 cm 1.15 cm 48.2 MeV 444 eV 2.96 mm 4.72 mm World eIoni + 3 24.5 mum -20 cm 1.15 cm 380 MeV 4.51 keV 3.32 cm 3.79 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.75 cm 1.62 cm 625 MeV 11.5 keV 6.23 cm 6.23 cm World eIoni + 2 5.76 mum -12.7 cm 2 cm 1.32 GeV 17.7 keV 6.95 cm 13.2 cm World eIoni + 3 5.86 mum -13 cm 2.01 cm 1.35 GeV 207 eV 3.11 mm 13.5 cm World eIoni + 4 6.01 mum -18.5 cm 2.18 cm 1.9 GeV 13 keV 5.53 cm 19 cm World eIoni + 5 6.3 mum -20 cm 2.22 cm 2.05 GeV 2.44 keV 1.47 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 6.01 mum -18.5 cm 2.18 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 -862 nm -18.5 cm 2.18 cm 1.28 MeV 1.65 keV 116 mum 116 mum World eIoni + 2 -15.6 mum -20 cm 2.18 cm 147 MeV 2.54 keV 1.46 cm 1.47 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 5.86 mum -13 cm 2.01 cm 1.4 keV 0 eV 0 fm 0 fm World initStep + 1 12.7 mum -13 cm 2.01 cm 1.02 MeV 1.4 keV 92.6 mum 92.6 mum World eIoni + 2 36.3 mum -20 cm 2.01 cm 700 MeV 9.67 keV 6.99 cm 7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 5.76 mum -12.7 cm 2 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 11.7 mum -12.7 cm 2 cm 903 keV 1.29 keV 82.1 mum 82.1 mum World eIoni + 2 33.1 mum -20 cm 2 cm 732 MeV 9.42 keV 7.31 cm 7.31 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.75 cm 1.62 cm 10.4 keV 0 eV 0 fm 0 fm World initStep + 1 -42.6 mum -5.91 cm 1.62 cm 17.6 MeV 3 keV 1.68 mm 1.68 mm World eIoni + 2 -68.2 mum -10.4 cm 1.63 cm 463 MeV 8.13 keV 4.46 cm 4.62 cm World eIoni + 3 -80.4 mum -20 cm 1.63 cm 1.43 GeV 20.1 keV 9.63 cm 14.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -68.2 mum -10.4 cm 1.63 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 -63.3 mum -10.4 cm 1.63 cm 715 keV 1.09 keV 65 mum 65 mum World eIoni + 2 -42.1 mum -20 cm 1.63 cm 963 MeV 15.3 keV 9.62 cm 9.63 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.34 cm 1.85 cm 984 MeV 20 keV 9.83 cm 9.83 cm World eIoni + 2 -1.02 mum -12.7 cm 2 cm 1.32 GeV 7.14 keV 3.33 cm 13.2 cm World eIoni + 3 -1.03 mum -13.2 cm 2.02 cm 1.37 GeV 874 eV 5.3 mm 13.7 cm World eIoni + 4 -1.12 mum -13.8 cm 2.04 cm 1.43 GeV 959 eV 6 mm 14.3 cm World eIoni + 5 -2.53 mum -20 cm 2.22 cm 2.05 GeV 11.3 keV 6.21 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.12 mum -13.8 cm 2.04 cm 2.53 keV 0 eV 0 fm 0 fm World initStep + 1 3.15 mum -13.8 cm 2.04 cm 2.44 MeV 2.53 keV 225 mum 225 mum World eIoni + 2 5.28 mum -13.9 cm 2.04 cm 10.1 MeV 67.5 eV 764 mum 989 mum World eIoni + 3 12 mum -20 cm 2.03 cm 621 MeV 10.3 keV 6.11 cm 6.21 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.03 mum -13.2 cm 2.02 cm 2.57 keV 0 eV 0 fm 0 fm World initStep + 1 4.52 mum -13.2 cm 2.02 cm 2.51 MeV 2.57 keV 231 mum 231 mum World eIoni + 2 8.58 mum -13.4 cm 2.01 cm 19.6 MeV 95.3 eV 1.71 mm 1.94 mm World eIoni + 3 16.6 mum -19.7 cm 2.01 cm 653 MeV 8.31 keV 6.33 cm 6.53 cm World eIoni + 4 16.6 mum -20 cm 2.01 cm 681 MeV 670 eV 2.81 mm 6.81 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 16.6 mum -19.7 cm 2.01 cm 3.35 keV 0 eV 0 fm 0 fm World initStep + 1 20 mum -19.8 cm 2.01 cm 3.9 MeV 3.35 keV 362 mum 362 mum World eIoni + 2 22 mum -20 cm 2.01 cm 28.4 MeV 885 eV 2.45 mm 2.81 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.02 mum -12.7 cm 2 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 -6.63 mum -12.7 cm 2 cm 835 keV 1.22 keV 76 mum 76 mum World eIoni + 2 -27.7 mum -20 cm 2 cm 734 MeV 14.8 keV 7.33 cm 7.34 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.34 cm 1.85 cm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 5.77 mum -9.35 cm 1.85 cm 820 keV 1.21 keV 74.6 mum 74.6 mum World eIoni + 2 29.3 mum -20 cm 1.85 cm 1.07 GeV 19.4 keV 10.7 cm 10.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.27 cm 9.74 mm 177 MeV 2.83 keV 1.7 cm 1.7 cm World eIoni + 2 510 nm -2.25 cm 1.2 cm 275 MeV 1.69 keV 1 cm 2.7 cm World eIoni + 3 1.14 mum -10.9 cm 1.92 cm 1.14 GeV 23 keV 8.73 cm 11.4 cm World eIoni + 4 2.3 mum -20 cm 2.22 cm 2.05 GeV 18.4 keV 9.07 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.14 mum -10.9 cm 1.92 cm 1.49 keV 0 eV 0 fm 0 fm World initStep + 1 -1.77 mum -10.9 cm 1.92 cm 1.11 MeV 1.49 keV 101 mum 101 mum World eIoni + 2 -11.7 mum -20 cm 1.92 cm 906 MeV 13.5 keV 9.05 cm 9.06 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 510 nm -2.25 cm 1.2 cm 1.52 keV 0 eV 0 fm 0 fm World initStep + 1 1.84 mum -2.26 cm 1.2 cm 1.14 MeV 1.52 keV 103 mum 103 mum World eIoni + 2 6.78 mum -20 cm 1.21 cm 1.78 GeV 22.3 keV 17.7 cm 17.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.27 cm 9.74 mm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 -1.73 mum -1.28 cm 9.75 mm 670 keV 1.03 keV 60 mum 60 mum World eIoni + 2 -10.3 mum -20 cm 9.77 mm 1.87 GeV 24.7 keV 18.7 cm 18.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -19.5 cm 2.21 cm 2 GeV 37.3 keV 20 cm 20 cm World eIoni + 2 -106 nm -20 cm 2.22 cm 2.05 GeV 1.22 keV 5.41 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -19.5 cm 2.21 cm 1.6 keV 0 eV 0 fm 0 fm World initStep + 1 7.74 mum -19.5 cm 2.21 cm 1.22 MeV 1.6 keV 111 mum 111 mum World eIoni + 2 21.6 mum -20 cm 2.21 cm 54.2 MeV 332 eV 5.3 mm 5.41 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -10.7 cm 1.92 cm 1.12 GeV 21.1 keV 11.2 cm 11.2 cm World eIoni + 2 -2.39 mum -20 cm 2.22 cm 2.05 GeV 18.8 keV 9.28 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -10.7 cm 1.92 cm 1.63 keV 0 eV 0 fm 0 fm World initStep + 1 7.82 mum -10.7 cm 1.92 cm 1.25 MeV 1.63 keV 114 mum 114 mum World eIoni + 2 32.7 mum -20 cm 1.92 cm 928 MeV 15.5 keV 9.27 cm 9.28 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.59 cm 1.52 cm 509 MeV 9.9 keV 5.07 cm 5.07 cm World eIoni + 2 -5.97 mum -16.8 cm 2.14 cm 1.73 GeV 19.4 keV 12.3 cm 17.3 cm World eIoni + 3 -7.3 mum -20 cm 2.22 cm 2.05 GeV 5.78 keV 3.18 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -5.97 mum -16.8 cm 2.14 cm 2.97 keV 0 eV 0 fm 0 fm World initStep + 1 2.68 mum -16.9 cm 2.14 cm 3.19 MeV 2.97 keV 295 mum 295 mum World eIoni + 2 12.3 mum -17.7 cm 2.14 cm 87.1 MeV 2.22 keV 8.4 mm 8.69 mm World eIoni + 3 16.1 mum -20 cm 2.14 cm 318 MeV 4.82 keV 2.31 cm 3.17 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.59 cm 1.52 cm 2.93 keV 0 eV 0 fm 0 fm World initStep + 1 13.9 mum -4.62 cm 1.52 cm 3.12 MeV 2.93 keV 289 mum 289 mum World eIoni + 2 25.5 mum -4.97 cm 1.52 cm 38.7 MeV 1.48 keV 3.56 mm 3.85 mm World eIoni + 3 42.7 mum -15.9 cm 1.52 cm 1.13 GeV 21.9 keV 10.9 cm 11.3 cm World eIoni + 4 44.8 mum -18.6 cm 1.52 cm 1.4 GeV 7.19 keV 2.65 cm 14 cm World eIoni + 5 46.7 mum -20 cm 1.52 cm 1.54 GeV 4.46 keV 1.43 cm 15.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 44.8 mum -18.6 cm 1.52 cm 25.9 keV 0 eV 0 fm 0 fm World initStep + 1 -51.7 mum -18.9 cm 1.51 cm 33.1 MeV 2.77 keV 3.21 mm 3.21 mm World eIoni + 2 -72.9 mum -20 cm 1.51 cm 145 MeV 1.55 keV 1.12 cm 1.44 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 42.7 mum -15.9 cm 1.52 cm 3.38 keV 0 eV 0 fm 0 fm World initStep + 1 29.3 mum -15.9 cm 1.52 cm 3 MeV 1.81 keV 279 mum 279 mum World eIoni + 2 14 mum -16.7 cm 1.52 cm 79.4 MeV 1.28 keV 7.64 mm 7.92 mm World eIoni + 3 -1.72 mum -19.9 cm 1.52 cm 403 MeV 5.83 keV 3.24 cm 4.03 cm World eIoni + 4 -1.75 mum -20 cm 1.52 cm 409 MeV 146 eV 549 mum 4.09 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.72 mum -19.9 cm 1.52 cm 4.93 keV 0 eV 0 fm 0 fm World initStep + 1 -19.7 mum -20 cm 1.52 cm 8.19 MeV 3.89 keV 590 mum 590 mumOutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 14 mum -16.7 cm 1.52 cm 2.61 keV 0 eV 0 fm 0 fm World initStep + 1 26.8 mum -16.7 cm 1.52 cm 2.59 MeV 2.61 keV 239 mum 239 mum World eIoni + 2 48.1 mum -18.9 cm 1.52 cm 223 MeV 4.07 keV 2.2 cm 2.23 cm World eIoni + 3 49.9 mum -20 cm 1.52 cm 330 MeV 1.88 keV 1.07 cm 3.29 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -14 cm 2.05 cm 1.45 GeV 25.2 keV 14.5 cm 14.5 cm World eIoni + 2 970 nm -20 cm 2.22 cm 2.05 GeV 14.3 keV 6.01 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -14 cm 2.05 cm 1.69 keV 0 eV 0 fm 0 fm World initStep + 1 -5.66 mum -14 cm 2.05 cm 1.33 MeV 1.69 keV 121 mum 121 mum World eIoni + 2 -22.1 mum -20 cm 2.05 cm 600 MeV 9.88 keV 5.99 cm 6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.78 cm 1.76 cm 828 MeV 15.9 keV 8.27 cm 8.27 cm World eIoni + 2 7.86 mum -20 cm 2.22 cm 2.05 GeV 23.8 keV 12.2 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.78 cm 1.76 cm 9.55 keV 0 eV 0 fm 0 fm World initStep + 1 -20.8 mum -7.81 cm 1.76 cm 2.32 MeV 1.23 keV 228 mum 228 mum World eIoni + 2 -73.3 mum -20 cm 1.77 cm 1.22 GeV 18.9 keV 12.2 cm 12.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -12.9 cm 2.01 cm 1.34 GeV 29.2 keV 13.4 cm 13.4 cm World eIoni + 2 1.57 mum -16.7 cm 2.13 cm 1.72 GeV 7.58 keV 3.81 cm 17.2 cm World eIoni + 3 2.12 mum -20 cm 2.22 cm 2.05 GeV 7.37 keV 3.26 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.57 mum -16.7 cm 2.13 cm 1.85 keV 0 eV 0 fm 0 fm World initStep + 1 8.21 mum -16.8 cm 2.13 cm 1.52 MeV 1.85 keV 139 mum 139 mum World eIoni + 2 24.1 mum -20 cm 2.14 cm 326 MeV 6.77 keV 3.24 cm 3.26 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -12.9 cm 2.01 cm 3.86 keV 0 eV 0 fm 0 fm World initStep + 1 -21.4 mum -13 cm 2.01 cm 4.93 MeV 3.86 keV 460 mum 460 mum World eIoni + 2 -36.6 mum -13.5 cm 2.01 cm 61.1 MeV 1.1 keV 5.62 mm 6.08 mm World eIoni + 3 -46.2 mum -15.7 cm 2.01 cm 281 MeV 3.47 keV 2.2 cm 2.81 cm World eIoni + 4 -52.5 mum -20 cm 2.01 cm 707 MeV 8.1 keV 4.26 cm 7.07 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -46.2 mum -15.7 cm 2.01 cm 1.28 keV 0 eV 0 fm 0 fm World initStep + 1 -45.2 mum -15.7 cm 2.01 cm 888 keV 1.28 keV 80.8 mum 80.8 mum World eIoni + 2 -41.7 mum -20 cm 2 cm 426 MeV 4.77 keV 4.25 cm 4.26 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -957 mum 3.06 mm 59.6 MeV 776 eV 3.25 mm 3.25 mm World eIoni + 2 -9.07 mum -6.07 cm 1.65 cm 657 MeV 12.5 keV 6.23 cm 6.56 cm World eIoni + 3 -9.28 mum -20 cm 2.22 cm 2.05 GeV 32.7 keV 13.9 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -9.07 mum -6.07 cm 1.65 cm 3.42 keV 0 eV 0 fm 0 fm World initStep + 1 -19.2 mum -6.11 cm 1.64 cm 4.03 MeV 3.42 keV 374 mum 374 mum World eIoni + 2 -22.3 mum -6.18 cm 1.64 cm 11.1 MeV 174 eV 709 mum 1.08 mm World eIoni + 3 -36.9 mum -16.4 cm 1.64 cm 1.03 GeV 19.6 keV 10.2 cm 10.3 cm World eIoni + 4 -38.1 mum -17.9 cm 1.64 cm 1.19 GeV 3.11 keV 1.56 cm 11.9 cm World eIoni + 5 -38.6 mum -20 cm 1.64 cm 1.39 GeV 2.85 keV 2.06 cm 13.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -38.1 mum -17.9 cm 1.64 cm 1.64 keV 0 eV 0 fm 0 fm World initStep + 1 -45.4 mum -18 cm 1.64 cm 1.28 MeV 1.64 keV 116 mum 116 mum World eIoni + 2 -63.2 mum -20 cm 1.64 cm 206 MeV 2.33 keV 2.05 cm 2.06 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -36.9 mum -16.4 cm 1.64 cm 2.59 keV 0 eV 0 fm 0 fm World initStep + 1 -23.5 mum -16.4 cm 1.64 cm 2.55 MeV 2.59 keV 235 mum 235 mum World eIoni + 2 -14.2 mum -16.6 cm 1.64 cm 18.5 MeV 145 eV 1.59 mm 1.83 mm World eIoni + 3 576 nm -20 cm 1.64 cm 363 MeV 6.12 keV 3.44 cm 3.62 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -957 mum 3.06 mm 1.16 keV 0 eV 0 fm 0 fm World initStep + 1 5.56 mum -1.03 mm 3.06 mm 786 keV 1.16 keV 71.1 mum 71.1 mum World eIoni + 2 31.2 mum -20 cm 3.07 mm 1.99 GeV 39.1 keV 19.9 cm 19.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -12.7 cm 2 cm 1.32 GeV 26.7 keV 13.2 cm 13.2 cm World eIoni + 2 409 nm -16.6 cm 2.13 cm 1.71 GeV 6.36 keV 3.86 cm 17.1 cm World eIoni + 3 327 nm -16.9 cm 2.14 cm 1.74 GeV 312 eV 3.63 mm 17.4 cm World eIoni + 4 -262 nm -20 cm 2.22 cm 2.05 GeV 7.94 keV 3.06 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 327 nm -16.9 cm 2.14 cm 2.07 keV 0 eV 0 fm 0 fm World initStep + 1 -184 nm -17 cm 2.14 cm 1.79 MeV 2.07 keV 164 mum 164 mum World eIoni + 2 -814 nm -17.3 cm 2.14 cm 37.5 MeV 1.4 keV 3.57 mm 3.74 mm WorldTransportation + 3 -814 nm -17.3 cm 2.14 cm 37.5 MeV 0 eV 0.000429 fm 3.74 mm World eIoni + 4 -1.29 mum -20 cm 2.14 cm 306 MeV 4.6 keV 2.69 cm 3.06 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 409 nm -16.6 cm 2.13 cm 7.76 keV 0 eV 0 fm 0 fm World initStep + 1 31.1 mum -16.7 cm 2.12 cm 16.7 MeV 7.76 keV 1.58 mm 1.58 mm World eIoni + 2 37.9 mum -17.2 cm 2.12 cm 59 MeV 680 eV 4.22 mm 5.8 mm World eIoni + 3 46.7 mum -19.5 cm 2.12 cm 294 MeV 3.15 keV 2.35 cm 2.93 cm World eIoni + 4 47.2 mum -20 cm 2.12 cm 344 MeV 470 eV 4.97 mm 3.43 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 46.7 mum -19.5 cm 2.12 cm 1.47 keV 0 eV 0 fm 0 fm World initStep + 1 49 mum -19.5 cm 2.12 cm 1.09 MeV 1.47 keV 99.2 mum 99.2 mum World eIoni + 2 53.3 mum -20 cm 2.12 cm 49.8 MeV 283 eV 4.87 mm 4.97 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -12.7 cm 2 cm 1.72 keV 0 eV 0 fm 0 fm World initStep + 1 -3.26 mum -12.7 cm 2 cm 1.37 MeV 1.72 keV 125 mum 125 mum World eIoni + 2 -12.9 mum -20 cm 2 cm 728 MeV 9.69 keV 7.27 cm 7.28 cm OutOfWorldTransportation Run terminated. Run Summary Number of events processed : 100 - User=0.61s Real=1.93s Sys=0.94s + User=1.51s Real=2.05s Sys=0.48s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/field/field02/include/F02CalorHit.hh b/examples/extended/field/field02/include/F02CalorHit.hh index 040bedc77d..c06b604455 100644 --- a/examples/extended/field/field02/include/F02CalorHit.hh +++ b/examples/extended/field/field02/include/F02CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: F02CalorHit.hh,v 1.3 2003/06/25 17:33:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02CalorimeterSD.hh b/examples/extended/field/field02/include/F02CalorimeterSD.hh index 2b1e3ebe4b..6ab7698533 100644 --- a/examples/extended/field/field02/include/F02CalorimeterSD.hh +++ b/examples/extended/field/field02/include/F02CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: F02CalorimeterSD.hh,v 1.3 2001/10/15 17:20:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02DetectorConstruction.hh b/examples/extended/field/field02/include/F02DetectorConstruction.hh index d29cff4c13..6e09a9b101 100644 --- a/examples/extended/field/field02/include/F02DetectorConstruction.hh +++ b/examples/extended/field/field02/include/F02DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: F02DetectorConstruction.hh,v 1.5 2003/11/12 16:35:03 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02DetectorMessenger.hh b/examples/extended/field/field02/include/F02DetectorMessenger.hh index 5cb0be146c..8a7123444b 100644 --- a/examples/extended/field/field02/include/F02DetectorMessenger.hh +++ b/examples/extended/field/field02/include/F02DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02DetectorMessenger.hh,v 1.3 2001/10/25 09:30:13 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02ElectricFieldSetup.hh b/examples/extended/field/field02/include/F02ElectricFieldSetup.hh index f742bdeb89..19f10072b3 100644 --- a/examples/extended/field/field02/include/F02ElectricFieldSetup.hh +++ b/examples/extended/field/field02/include/F02ElectricFieldSetup.hh @@ -22,7 +22,7 @@ // // // $Id: F02ElectricFieldSetup.hh,v 1.1 2003/11/12 16:36:14 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // A class for control of the Electric Field of the detector. // The field for this case is uniform. diff --git a/examples/extended/field/field02/include/F02EventAction.hh b/examples/extended/field/field02/include/F02EventAction.hh index 9ab89abdf0..f3df0bfd0d 100644 --- a/examples/extended/field/field02/include/F02EventAction.hh +++ b/examples/extended/field/field02/include/F02EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: F02EventAction.hh,v 1.3 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02EventActionMessenger.hh b/examples/extended/field/field02/include/F02EventActionMessenger.hh index b5b9cef273..862ba3bcfe 100644 --- a/examples/extended/field/field02/include/F02EventActionMessenger.hh +++ b/examples/extended/field/field02/include/F02EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02EventActionMessenger.hh,v 1.2 2001/07/11 09:58:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02FieldMessenger.hh b/examples/extended/field/field02/include/F02FieldMessenger.hh index e9b5af024d..7f6ca31425 100644 --- a/examples/extended/field/field02/include/F02FieldMessenger.hh +++ b/examples/extended/field/field02/include/F02FieldMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02FieldMessenger.hh,v 1.3 2003/11/12 16:35:03 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02PhysicsList.hh b/examples/extended/field/field02/include/F02PhysicsList.hh index 837e6c69d8..1a2a7be805 100644 --- a/examples/extended/field/field02/include/F02PhysicsList.hh +++ b/examples/extended/field/field02/include/F02PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: F02PhysicsList.hh,v 1.3 2003/08/27 17:44:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef F02PhysicsList_h diff --git a/examples/extended/field/field02/include/F02PhysicsListMessenger.hh b/examples/extended/field/field02/include/F02PhysicsListMessenger.hh index 5e187a2649..62a127b35d 100644 --- a/examples/extended/field/field02/include/F02PhysicsListMessenger.hh +++ b/examples/extended/field/field02/include/F02PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02PhysicsListMessenger.hh,v 1.3 2001/10/15 17:20:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh b/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh index 9fa4a3b621..366aa56a0c 100644 --- a/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh +++ b/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: F02PrimaryGeneratorAction.hh,v 1.3 2001/10/15 17:20:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh b/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh index 8f1d5b8124..6604dc9232 100644 --- a/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh +++ b/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02PrimaryGeneratorMessenger.hh,v 1.2 2001/07/11 09:58:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02RunAction.hh b/examples/extended/field/field02/include/F02RunAction.hh index 126efb8b15..454af42353 100644 --- a/examples/extended/field/field02/include/F02RunAction.hh +++ b/examples/extended/field/field02/include/F02RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: F02RunAction.hh,v 1.5 2003/06/16 16:49:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02RunMessenger.hh b/examples/extended/field/field02/include/F02RunMessenger.hh index 172b330d0e..e0d37bfabb 100644 --- a/examples/extended/field/field02/include/F02RunMessenger.hh +++ b/examples/extended/field/field02/include/F02RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: F02RunMessenger.hh,v 1.3 2001/10/15 17:20:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02StepCut.hh b/examples/extended/field/field02/include/F02StepCut.hh index f223926e80..2a246c889e 100644 --- a/examples/extended/field/field02/include/F02StepCut.hh +++ b/examples/extended/field/field02/include/F02StepCut.hh @@ -22,7 +22,7 @@ // // // $Id: F02StepCut.hh,v 1.4 2003/06/25 17:33:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02SteppingAction.hh b/examples/extended/field/field02/include/F02SteppingAction.hh index 00175e7507..7781968abb 100644 --- a/examples/extended/field/field02/include/F02SteppingAction.hh +++ b/examples/extended/field/field02/include/F02SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: F02SteppingAction.hh,v 1.4 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/include/F02SteppingMessenger.hh b/examples/extended/field/field02/include/F02SteppingMessenger.hh index cde5774160..ee41d76be6 100644 --- a/examples/extended/field/field02/include/F02SteppingMessenger.hh +++ b/examples/extended/field/field02/include/F02SteppingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02SteppingMessenger.hh,v 1.2 2001/07/11 09:58:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/include/F02SteppingVerbose.hh b/examples/extended/field/field02/include/F02SteppingVerbose.hh index 4a3065dc8a..dff03d8869 100644 --- a/examples/extended/field/field02/include/F02SteppingVerbose.hh +++ b/examples/extended/field/field02/include/F02SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: F02SteppingVerbose.hh,v 1.3 2001/10/15 17:20:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field02/include/F02VisManager.hh b/examples/extended/field/field02/include/F02VisManager.hh deleted file mode 100644 index 97b0ad222e..0000000000 --- a/examples/extended/field/field02/include/F02VisManager.hh +++ /dev/null @@ -1,66 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: F02VisManager.hh,v 1.2 2001/07/11 09:58:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef F02VisManager_h -#define F02VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class F02VisManager: public G4VisManager -{ - public: - - F02VisManager (); - - private: - - void RegisterGraphicsSystems (); - -}; - -#endif diff --git a/examples/extended/field/field02/src/F02CalorHit.cc b/examples/extended/field/field02/src/F02CalorHit.cc index a04159b20d..ea1b9450f5 100644 --- a/examples/extended/field/field02/src/F02CalorHit.cc +++ b/examples/extended/field/field02/src/F02CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: F02CalorHit.cc,v 1.3 2003/06/25 17:33:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02CalorimeterSD.cc b/examples/extended/field/field02/src/F02CalorimeterSD.cc index c76ecf5842..3b0969faf8 100644 --- a/examples/extended/field/field02/src/F02CalorimeterSD.cc +++ b/examples/extended/field/field02/src/F02CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: F02CalorimeterSD.cc,v 1.5 2003/06/25 17:33:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02DetectorConstruction.cc b/examples/extended/field/field02/src/F02DetectorConstruction.cc index 39f044b062..d1fcaee573 100644 --- a/examples/extended/field/field02/src/F02DetectorConstruction.cc +++ b/examples/extended/field/field02/src/F02DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: F02DetectorConstruction.cc,v 1.10 2003/11/25 14:51:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02DetectorMessenger.cc b/examples/extended/field/field02/src/F02DetectorMessenger.cc index 8cc150a478..20fab8cebc 100644 --- a/examples/extended/field/field02/src/F02DetectorMessenger.cc +++ b/examples/extended/field/field02/src/F02DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02DetectorMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02ElectricFieldSetup.cc b/examples/extended/field/field02/src/F02ElectricFieldSetup.cc index bb17701913..3a76b8aac2 100644 --- a/examples/extended/field/field02/src/F02ElectricFieldSetup.cc +++ b/examples/extended/field/field02/src/F02ElectricFieldSetup.cc @@ -22,7 +22,7 @@ // // // $Id: F02ElectricFieldSetup.cc,v 1.1 2003/11/12 16:36:16 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // User Field class implementation. diff --git a/examples/extended/field/field02/src/F02EventAction.cc b/examples/extended/field/field02/src/F02EventAction.cc index e3d8657f03..230d543f4f 100644 --- a/examples/extended/field/field02/src/F02EventAction.cc +++ b/examples/extended/field/field02/src/F02EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: F02EventAction.cc,v 1.4 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02EventActionMessenger.cc b/examples/extended/field/field02/src/F02EventActionMessenger.cc index 1dade049eb..7f1851b935 100644 --- a/examples/extended/field/field02/src/F02EventActionMessenger.cc +++ b/examples/extended/field/field02/src/F02EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02EventActionMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02FieldMessenger.cc b/examples/extended/field/field02/src/F02FieldMessenger.cc index 6ae297eb27..49d9e7edf3 100644 --- a/examples/extended/field/field02/src/F02FieldMessenger.cc +++ b/examples/extended/field/field02/src/F02FieldMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02FieldMessenger.cc,v 1.5 2003/11/12 16:35:23 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02PhysicsList.cc b/examples/extended/field/field02/src/F02PhysicsList.cc index 3b91a09c9c..584b2e9dc7 100644 --- a/examples/extended/field/field02/src/F02PhysicsList.cc +++ b/examples/extended/field/field02/src/F02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: F02PhysicsList.cc,v 1.9 2004/12/03 15:22:19 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc index 1cf0038bd7..35ebc6fc6d 100644 --- a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc +++ b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02PhysicsListMessenger.cc,v 1.5 2003/08/27 17:44:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc b/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc index 8e39af3340..fa7bf4f84d 100644 --- a/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc +++ b/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: F02PrimaryGeneratorAction.cc,v 1.4 2004/12/03 16:07:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc b/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc index 3c1d622347..72c2451ede 100644 --- a/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02RunAction.cc b/examples/extended/field/field02/src/F02RunAction.cc index 0fcdfb3976..fd325a9f87 100644 --- a/examples/extended/field/field02/src/F02RunAction.cc +++ b/examples/extended/field/field02/src/F02RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: F02RunAction.cc,v 1.6 2003/06/25 17:33:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02RunMessenger.cc b/examples/extended/field/field02/src/F02RunMessenger.cc index 6536438ae2..8f0801448c 100644 --- a/examples/extended/field/field02/src/F02RunMessenger.cc +++ b/examples/extended/field/field02/src/F02RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02RunMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02StepCut.cc b/examples/extended/field/field02/src/F02StepCut.cc index 9dd0c31d94..8d0b214266 100644 --- a/examples/extended/field/field02/src/F02StepCut.cc +++ b/examples/extended/field/field02/src/F02StepCut.cc @@ -22,7 +22,7 @@ // // // $Id: F02StepCut.cc,v 1.2 2001/07/11 09:58:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "F02StepCut.hh" diff --git a/examples/extended/field/field02/src/F02SteppingAction.cc b/examples/extended/field/field02/src/F02SteppingAction.cc index 3e7f5c6181..ab4ebc0e5f 100644 --- a/examples/extended/field/field02/src/F02SteppingAction.cc +++ b/examples/extended/field/field02/src/F02SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: F02SteppingAction.cc,v 1.5 2003/06/16 16:49:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field02/src/F02SteppingMessenger.cc b/examples/extended/field/field02/src/F02SteppingMessenger.cc index 604f74001a..9d6c9c56b9 100644 --- a/examples/extended/field/field02/src/F02SteppingMessenger.cc +++ b/examples/extended/field/field02/src/F02SteppingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02SteppingMessenger.cc,v 1.3 2003/06/25 17:33:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/src/F02SteppingVerbose.cc b/examples/extended/field/field02/src/F02SteppingVerbose.cc index c8c6d43b7e..522068b145 100644 --- a/examples/extended/field/field02/src/F02SteppingVerbose.cc +++ b/examples/extended/field/field02/src/F02SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: F02SteppingVerbose.cc,v 1.5 2003/06/16 16:49:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field02/src/F02VisManager.cc b/examples/extended/field/field02/src/F02VisManager.cc deleted file mode 100644 index 5b1701acce..0000000000 --- a/examples/extended/field/field02/src/F02VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: F02VisManager.cc,v 1.5 2003/11/13 15:11:03 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifdef G4VIS_USE - -#include "F02VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -F02VisManager::F02VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void F02VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/History b/examples/extended/field/field03/History index 9d1bea7b47..7391a844e8 100644 --- a/examples/extended/field/field03/History +++ b/examples/extended/field/field03/History @@ -1,4 +1,4 @@ -$Id: History,v 1.16 2004/12/03 16:07:23 gcosmo Exp $ +$Id: History,v 1.17 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec 3rd, 2004 Gabriele Cosmo ---------------------------- - Implemented migration to . diff --git a/examples/extended/field/field03/field03.cc b/examples/extended/field/field03/field03.cc index 503898e9df..840aef8829 100644 --- a/examples/extended/field/field03/field03.cc +++ b/examples/extended/field/field03/field03.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: field03.cc,v 1.5 2003/12/01 17:31:13 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: field03.cc,v 1.6 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -40,7 +40,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "F03VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "F03DetectorConstruction.hh" @@ -78,7 +78,7 @@ int main(int argc,char** argv) // visualization manager - G4VisManager* visManager = new F03VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/field/field03/field03.out b/examples/extended/field/field03/field03.out index 02b59c2ce2..90426a3a84 100644 --- a/examples/extended/field/field03/field03.out +++ b/examples/extended/field/field03/field03.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -10,47 +10,47 @@ ***** Table : Nb of materials = 11 ***** Material: Mylar density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.743 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % Material: Polypropelene density: 910.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 49.214 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % Material: Kr density: 3.700 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 30.736 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Kr ( ) Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Argon density: 1.784 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 109.604 m - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: N2 density: 1.251 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.846 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: O2 density: 1.429 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 239.621 m - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Air density: 0.000 mg/cm3 temperature: 273.15 K pressure: 0.00 atm RadLength: 28329272.015 km - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % Material: Xenon density: 5.858 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.478 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 183.083 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % Material: Xe20CO2 density: 5.082 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 17.750 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 92.20 % Abundance 56.91 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.13 % Abundance 14.36 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 5.67 % Abundance 28.73 % + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 92.20 % Abundance 56.91 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.13 % Abundance 14.36 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 5.67 % Abundance 28.73 % Material: Kr20CO2 density: 3.601 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 34.158 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 89.00 % Abundance 58.62 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 3.00 % Abundance 13.79 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 8.00 % Abundance 27.59 % + ---> Element: Kr ( ) Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 89.00 % Abundance 58.62 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 3.00 % Abundance 13.79 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 8.00 % Abundance 27.59 % G4ClassicalRK4 (default) is called @@ -64,8 +64,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -81,28 +81,29 @@ fRadiatorMat = Air WorldMaterial = Air zModule = 21790 mm 21790 mm - -phot: Total cross sections from Sandia parametrisation. F03PhysicsList::SetCuts:CutLength : 1 mm total time(SetCuts)=0 s G4ClassicalRK4 (default) is called The minimal step is equal to 10 mm -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -113,8 +114,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -129,8 +130,9 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -139,9 +141,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -156,9 +158,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -199,16 +201,16 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng 1 0 fm 4.0138452 cm 21.79201 m 500 MeV0.00049459459 eV 20.288442 cm 20.288442 cm World Transportation 0 fm 390.36094 mum -920.6619 mum 2 0 fm 6.5801508 cm 21.74 m 500 MeV0.00014148327 eV 5.8028638 cm 26.091306 cm RadSlice Transportation 0 fm 493.16452 mum -869.93607 mum 3 0 fm 19.942498 cm 21.58699 m 500 MeV0.00049863047 eV 20.453361 cm 46.544667 cm Radiator Transportation 0 fm 795.60591 mum -605.81452 mum - 4 0 fm 81.240793 cm 21.58699 m 500 MeV 0 eV 65.848987 cm 1.1239365 m World Transportation 0 fm 795.60595 mum 605.81447 mum + 4 0 fm 81.240793 cm 21.58699 m 500 MeV0.0016053718 eV 65.848987 cm 1.1239365 m World Transportation 0 fm 795.60595 mum 605.81447 mum 5 0 fm 94.603131 cm 21.74 m 500 MeV0.00049863047 eV 20.453354 cm 1.3284701 m Radiator Transportation 0 fm 493.1647 mum 869.93596 mum 6 0 fm 98.923943 cm 21.84 m 500 MeV0.00026608404 eV 10.914704 cm 1.4376171 m RadSlice Transportation 0 fm 295.50359 mum 955.34163 mum - 7 0 fm 1.0118328 m 21.9895 m 500 MeV0.00036999381 eV 15.176601 cm 1.5893831 m World Transportation 0 fm 2.1925965 Ang 1000 mum + 7 0 fm 1.0118328 m 21.9895 m 500 MeV0.00036999381 eV 15.176601 cm 1.5893831 m World Transportation 0 fm 2.1925711 Ang 1000 mum 8 0 fm 1.0118318 m 21.9905 m 500 MeV2.444267e-06 eV 1.0000007 mm 1.5903831 m Absorber Transportation 0 fm -1.9763919 mum 999.99805 mum 9 0 fm 1.0117238 m 22 m 500 MeV2.3135271e-05 eV 9.5007541 mm 1.5998839 m OutOfWorld Transportation 0 fm -20.7542 mum 999.78461 mum Run terminated. Run Summary Number of events processed : 1 - User=0.01s Real=0.01s Sys=0s + User=0.01s Real=0.09s Sys=0s ========= Table of registered couples ============================== @@ -230,7 +232,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=0.26s Real=0.3s Sys=0s + User=0.77s Real=0.77s Sys=0s Set field value to (0,0,1000) Gauss ========= Table of registered couples ============================== @@ -251,7 +253,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=0.03s Real=0.03s Sys=0s + User=0.07s Real=0.07s Sys=0s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/field/field03/include/F03CalorHit.hh b/examples/extended/field/field03/include/F03CalorHit.hh index 1e74de92f2..cc262610af 100644 --- a/examples/extended/field/field03/include/F03CalorHit.hh +++ b/examples/extended/field/field03/include/F03CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: F03CalorHit.hh,v 1.3 2003/06/25 17:18:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03CalorimeterSD.hh b/examples/extended/field/field03/include/F03CalorimeterSD.hh index 64bd848bf4..08a610904c 100644 --- a/examples/extended/field/field03/include/F03CalorimeterSD.hh +++ b/examples/extended/field/field03/include/F03CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: F03CalorimeterSD.hh,v 1.3 2001/10/15 17:20:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03DetectorConstruction.hh b/examples/extended/field/field03/include/F03DetectorConstruction.hh index 17667e18c2..607f14566f 100644 --- a/examples/extended/field/field03/include/F03DetectorConstruction.hh +++ b/examples/extended/field/field03/include/F03DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: F03DetectorConstruction.hh,v 1.5 2003/12/01 17:28:26 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03DetectorMessenger.hh b/examples/extended/field/field03/include/F03DetectorMessenger.hh index 747e62d60b..749756680b 100644 --- a/examples/extended/field/field03/include/F03DetectorMessenger.hh +++ b/examples/extended/field/field03/include/F03DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03DetectorMessenger.hh,v 1.3 2001/10/25 10:03:53 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03EventAction.hh b/examples/extended/field/field03/include/F03EventAction.hh index 95c96ca887..97240e12bc 100644 --- a/examples/extended/field/field03/include/F03EventAction.hh +++ b/examples/extended/field/field03/include/F03EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: F03EventAction.hh,v 1.3 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03EventActionMessenger.hh b/examples/extended/field/field03/include/F03EventActionMessenger.hh index ed78ed472d..4099271a48 100644 --- a/examples/extended/field/field03/include/F03EventActionMessenger.hh +++ b/examples/extended/field/field03/include/F03EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03EventActionMessenger.hh,v 1.2 2001/07/11 09:58:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03FieldMessenger.hh b/examples/extended/field/field03/include/F03FieldMessenger.hh index 6ade82ffb1..046323a0f3 100644 --- a/examples/extended/field/field03/include/F03FieldMessenger.hh +++ b/examples/extended/field/field03/include/F03FieldMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03FieldMessenger.hh,v 1.3 2003/12/01 17:28:46 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03FieldSetup.hh b/examples/extended/field/field03/include/F03FieldSetup.hh index b8ed0b8ca2..71e5f4e1ee 100644 --- a/examples/extended/field/field03/include/F03FieldSetup.hh +++ b/examples/extended/field/field03/include/F03FieldSetup.hh @@ -22,7 +22,7 @@ // // // $Id: F03FieldSetup.hh,v 1.1 2003/12/01 17:03:02 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // A class for setting up the Magnetic Field of the setup, and // creating the necessary classes to control accuracy of propagation. diff --git a/examples/extended/field/field03/include/F03PhysicsList.hh b/examples/extended/field/field03/include/F03PhysicsList.hh index e83ee80436..52224d85ab 100644 --- a/examples/extended/field/field03/include/F03PhysicsList.hh +++ b/examples/extended/field/field03/include/F03PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: F03PhysicsList.hh,v 1.4 2003/08/27 17:50:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef F03PhysicsList_h diff --git a/examples/extended/field/field03/include/F03PhysicsListMessenger.hh b/examples/extended/field/field03/include/F03PhysicsListMessenger.hh index f26c9ac78f..98e489c7d4 100644 --- a/examples/extended/field/field03/include/F03PhysicsListMessenger.hh +++ b/examples/extended/field/field03/include/F03PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03PhysicsListMessenger.hh,v 1.3 2001/10/15 17:20:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh b/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh index ead35ccc31..b1149203d0 100644 --- a/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh +++ b/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: F03PrimaryGeneratorAction.hh,v 1.3 2001/10/15 17:20:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh b/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh index c614befbb1..65e58965fb 100644 --- a/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh +++ b/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03PrimaryGeneratorMessenger.hh,v 1.2 2001/07/11 09:58:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03RunAction.hh b/examples/extended/field/field03/include/F03RunAction.hh index 3c9c79c6bd..03c52d1a85 100644 --- a/examples/extended/field/field03/include/F03RunAction.hh +++ b/examples/extended/field/field03/include/F03RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: F03RunAction.hh,v 1.5 2003/06/16 16:49:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03RunMessenger.hh b/examples/extended/field/field03/include/F03RunMessenger.hh index ee7e66ab7d..f3427513e0 100644 --- a/examples/extended/field/field03/include/F03RunMessenger.hh +++ b/examples/extended/field/field03/include/F03RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: F03RunMessenger.hh,v 1.3 2001/10/15 17:20:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03StepCut.hh b/examples/extended/field/field03/include/F03StepCut.hh index fddf30fbdd..8716ecb3ca 100644 --- a/examples/extended/field/field03/include/F03StepCut.hh +++ b/examples/extended/field/field03/include/F03StepCut.hh @@ -22,7 +22,7 @@ // // // $Id: F03StepCut.hh,v 1.4 2003/06/25 17:18:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03SteppingAction.hh b/examples/extended/field/field03/include/F03SteppingAction.hh index 6d1dc22c5e..f28506027b 100644 --- a/examples/extended/field/field03/include/F03SteppingAction.hh +++ b/examples/extended/field/field03/include/F03SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: F03SteppingAction.hh,v 1.4 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/include/F03SteppingMessenger.hh b/examples/extended/field/field03/include/F03SteppingMessenger.hh index fa0e7d2c8f..4cffe0ad8b 100644 --- a/examples/extended/field/field03/include/F03SteppingMessenger.hh +++ b/examples/extended/field/field03/include/F03SteppingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03SteppingMessenger.hh,v 1.2 2001/07/11 09:58:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/include/F03SteppingVerbose.hh b/examples/extended/field/field03/include/F03SteppingVerbose.hh index 0114203343..62a8abce63 100644 --- a/examples/extended/field/field03/include/F03SteppingVerbose.hh +++ b/examples/extended/field/field03/include/F03SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: F03SteppingVerbose.hh,v 1.3 2001/10/15 17:20:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field03/include/F03VisManager.hh b/examples/extended/field/field03/include/F03VisManager.hh deleted file mode 100644 index 1a0d5110f9..0000000000 --- a/examples/extended/field/field03/include/F03VisManager.hh +++ /dev/null @@ -1,66 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: F03VisManager.hh,v 1.2 2001/07/11 09:58:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef F03VisManager_h -#define F03VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class F03VisManager: public G4VisManager -{ - public: - - F03VisManager (); - - private: - - void RegisterGraphicsSystems (); - -}; - -#endif diff --git a/examples/extended/field/field03/src/F03CalorHit.cc b/examples/extended/field/field03/src/F03CalorHit.cc index 27bfcefb17..228580d353 100644 --- a/examples/extended/field/field03/src/F03CalorHit.cc +++ b/examples/extended/field/field03/src/F03CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: F03CalorHit.cc,v 1.3 2003/06/25 17:19:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03CalorimeterSD.cc b/examples/extended/field/field03/src/F03CalorimeterSD.cc index a9906b763e..9bbf3166ee 100644 --- a/examples/extended/field/field03/src/F03CalorimeterSD.cc +++ b/examples/extended/field/field03/src/F03CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: F03CalorimeterSD.cc,v 1.5 2003/06/25 17:19:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03DetectorConstruction.cc b/examples/extended/field/field03/src/F03DetectorConstruction.cc index c9b4a4e923..f0900e8d91 100644 --- a/examples/extended/field/field03/src/F03DetectorConstruction.cc +++ b/examples/extended/field/field03/src/F03DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: F03DetectorConstruction.cc,v 1.10 2003/12/01 17:28:33 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03DetectorMessenger.cc b/examples/extended/field/field03/src/F03DetectorMessenger.cc index 7539c6f50f..32f6e2347c 100644 --- a/examples/extended/field/field03/src/F03DetectorMessenger.cc +++ b/examples/extended/field/field03/src/F03DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03DetectorMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03EventAction.cc b/examples/extended/field/field03/src/F03EventAction.cc index 5ea2ff73fa..dfad4f5e4f 100644 --- a/examples/extended/field/field03/src/F03EventAction.cc +++ b/examples/extended/field/field03/src/F03EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: F03EventAction.cc,v 1.4 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03EventActionMessenger.cc b/examples/extended/field/field03/src/F03EventActionMessenger.cc index 7540102656..09b025a216 100644 --- a/examples/extended/field/field03/src/F03EventActionMessenger.cc +++ b/examples/extended/field/field03/src/F03EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03EventActionMessenger.cc,v 1.3 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03FieldMessenger.cc b/examples/extended/field/field03/src/F03FieldMessenger.cc index eb370e0808..babb591360 100644 --- a/examples/extended/field/field03/src/F03FieldMessenger.cc +++ b/examples/extended/field/field03/src/F03FieldMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03FieldMessenger.cc,v 1.6 2004/03/23 15:40:39 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03FieldSetup.cc b/examples/extended/field/field03/src/F03FieldSetup.cc index 64b05ac786..f4c015efb4 100644 --- a/examples/extended/field/field03/src/F03FieldSetup.cc +++ b/examples/extended/field/field03/src/F03FieldSetup.cc @@ -22,7 +22,7 @@ // // // $Id: F03FieldSetup.cc,v 1.3 2004/03/23 15:41:38 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Field Setup class implementation. diff --git a/examples/extended/field/field03/src/F03PhysicsList.cc b/examples/extended/field/field03/src/F03PhysicsList.cc index 27ee198389..13fd277d72 100644 --- a/examples/extended/field/field03/src/F03PhysicsList.cc +++ b/examples/extended/field/field03/src/F03PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: F03PhysicsList.cc,v 1.9 2004/12/03 15:22:19 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc index e13e1b78e6..148a69a681 100644 --- a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc +++ b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03PhysicsListMessenger.cc,v 1.4 2003/08/27 17:50:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc b/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc index ff60ac5b72..dbdd442fdd 100644 --- a/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc +++ b/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: F03PrimaryGeneratorAction.cc,v 1.5 2004/12/03 16:07:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc b/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc index 0ffc847f8d..35e39cc7df 100644 --- a/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03RunAction.cc b/examples/extended/field/field03/src/F03RunAction.cc index 06472da818..123cf6a678 100644 --- a/examples/extended/field/field03/src/F03RunAction.cc +++ b/examples/extended/field/field03/src/F03RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: F03RunAction.cc,v 1.7 2003/06/25 17:19:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "F03RunAction.hh" diff --git a/examples/extended/field/field03/src/F03RunMessenger.cc b/examples/extended/field/field03/src/F03RunMessenger.cc index dd09be77e7..ff3a7d6ce3 100644 --- a/examples/extended/field/field03/src/F03RunMessenger.cc +++ b/examples/extended/field/field03/src/F03RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03RunMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03StepCut.cc b/examples/extended/field/field03/src/F03StepCut.cc index 8969cc4db0..3131750104 100644 --- a/examples/extended/field/field03/src/F03StepCut.cc +++ b/examples/extended/field/field03/src/F03StepCut.cc @@ -22,7 +22,7 @@ // // // $Id: F03StepCut.cc,v 1.2 2001/07/11 09:58:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "F03StepCut.hh" diff --git a/examples/extended/field/field03/src/F03SteppingAction.cc b/examples/extended/field/field03/src/F03SteppingAction.cc index e93488cd26..5d59e42d6d 100644 --- a/examples/extended/field/field03/src/F03SteppingAction.cc +++ b/examples/extended/field/field03/src/F03SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: F03SteppingAction.cc,v 1.5 2003/06/16 16:49:08 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/field/field03/src/F03SteppingMessenger.cc b/examples/extended/field/field03/src/F03SteppingMessenger.cc index 41603ca4b2..e1d4d0fd52 100644 --- a/examples/extended/field/field03/src/F03SteppingMessenger.cc +++ b/examples/extended/field/field03/src/F03SteppingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03SteppingMessenger.cc,v 1.4 2003/06/25 17:19:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/src/F03SteppingVerbose.cc b/examples/extended/field/field03/src/F03SteppingVerbose.cc index a34148f23d..9064e8ee9b 100644 --- a/examples/extended/field/field03/src/F03SteppingVerbose.cc +++ b/examples/extended/field/field03/src/F03SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: F03SteppingVerbose.cc,v 1.4 2003/06/16 16:49:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/field/field03/src/F03VisManager.cc b/examples/extended/field/field03/src/F03VisManager.cc deleted file mode 100644 index 463b9be719..0000000000 --- a/examples/extended/field/field03/src/F03VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: F03VisManager.cc,v 1.5 2003/11/13 15:11:08 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifdef G4VIS_USE - -#include "F03VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -F03VisManager::F03VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void F03VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/g3tog4/History b/examples/extended/g3tog4/History index bc13885c0a..888b086e8c 100644 --- a/examples/extended/g3tog4/History +++ b/examples/extended/g3tog4/History @@ -1,4 +1,4 @@ -$Id: History,v 1.4 2004/12/03 16:13:33 gcosmo Exp $ +$Id: History,v 1.5 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec 3rd, 2004 Gabriele Cosmo (g3tog4Tests-V06-02-00) ---------------------------- - Implemented migration to . diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.cc b/examples/extended/g3tog4/clGeometry/clGeometry.cc index 90063767d2..0b37e9e613 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.cc +++ b/examples/extended/g3tog4/clGeometry/clGeometry.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: clGeometry.cc,v 1.4 2003/07/04 15:55:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: clGeometry.cc,v 1.6 2005/06/27 15:27:39 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // controls whether drawing is to be Done or not #include -#include +#include #include "G4ios.hh" // package includes @@ -50,7 +50,7 @@ // visualization #ifdef G4VIS_USE -#include "G3toG4VisManager.hh" +#include "G4VisExecutive.hh" #endif int main(int argc, char** argv) @@ -106,7 +106,7 @@ int main(int argc, char** argv) //---------------- #ifdef G4VIS_USE - G4VisManager* VisManager = new G3toG4VisManager; + G4VisManager* VisManager = new G4VisExecutive; VisManager -> Initialize(); #endif diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.out b/examples/extended/g3tog4/clGeometry/clGeometry.out index ee333dcb22..eecac90dbc 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.out +++ b/examples/extended/g3tog4/clGeometry/clGeometry.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (27-June-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh index c7c47884b5..8fa25b0c3e 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4DetectorConstruction.hh,v 1.3 2003/02/20 08:48:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G3toG4DetectorConstruction_h #define G3toG4DetectorConstruction_h 1 diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4EventAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4EventAction.hh index ef73db5389..49e499a302 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4EventAction.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventAction.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh index 7abe281f64..78bb59930e 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventActionMessenger.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh index b86cf08c57..d527f01e53 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4PhysicsList.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh index 7fae2164d5..0874928dc7 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4PrimaryGeneratorAction.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G3toG4PrimaryGeneratorAction_h diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh index a24a73acdf..3712567231 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4RunAction.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G3toG4RunAction_h diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh deleted file mode 100644 index a54e6458a0..0000000000 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh +++ /dev/null @@ -1,66 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G3toG4VisManager.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef G3toG4VisManager_h -#define G3toG4VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class G3toG4VisManager: public G4VisManager { - -public: - - G3toG4VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -#endif diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc index 94f37be6e2..0e766c05eb 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4DetectorConstruction.cc,v 1.4 2003/07/04 15:55:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //-------------------------------------------------------------------------- // G3toG4DetectorConstruction. Most the work is Done in diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc index 60fd4fe377..2f8873959c 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventAction.cc,v 1.4 2003/07/04 15:55:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc index 03ce360bcc..0edd8ffd38 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventActionMessenger.cc,v 1.3 2002/12/05 01:06:59 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc index f73122b333..c27a4e6534 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4PhysicsList.cc,v 1.3 2003/02/20 08:48:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc index 7bd043b442..ac6c10959b 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4PrimaryGeneratorAction.cc,v 1.4 2004/12/03 16:13:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc index d48e11b7ba..65fe810219 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4RunAction.cc,v 1.3 2003/07/04 15:55:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4ios.hh" diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc deleted file mode 100644 index c540674fb9..0000000000 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc +++ /dev/null @@ -1,146 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G3toG4VisManager.cc,v 1.6 2003/11/13 15:10:10 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4ios.hh" -#ifdef G4VIS_USE - -#include "G3toG4VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G3toG4VisManager::G3toG4VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G3toG4VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/g3tog4/cltog4/cltog4.cc b/examples/extended/g3tog4/cltog4/cltog4.cc index 534748ef8d..84c9de4dbf 100644 --- a/examples/extended/g3tog4/cltog4/cltog4.cc +++ b/examples/extended/g3tog4/cltog4/cltog4.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: cltog4.cc,v 1.4 2003/07/04 15:45:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: cltog4.cc,v 1.5 2005/06/27 15:27:42 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // #include "G4ios.hh" #include -#include +#include // example header file includes diff --git a/examples/extended/g3tog4/cltog4/cltog4.out b/examples/extended/g3tog4/cltog4/cltog4.out index c1ef669608..90b82c10a4 100644 --- a/examples/extended/g3tog4/cltog4/cltog4.out +++ b/examples/extended/g3tog4/cltog4/cltog4.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (27-June-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4DetectorConstruction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4DetectorConstruction.hh index 740aabd23a..58d9770e6d 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4DetectorConstruction.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4DetectorConstruction.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G3toG4DetectorConstruction_h #define G3toG4DetectorConstruction_h 1 diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4EventAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4EventAction.hh index c87bdbe020..78c9862fd3 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4EventAction.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventAction.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh b/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh index 0a5dcf544b..78084dd3ba 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventActionMessenger.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh b/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh index 613f515994..dbad359360 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4PhysicsList.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh index 5a6e6e5b25..23905631b0 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4PrimaryGeneratorAction.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G3toG4PrimaryGeneratorAction_h diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh index 9087ce6ade..3aec61d1fd 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4RunAction.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G3toG4RunAction_h diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh b/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh deleted file mode 100644 index 5059f3b1f3..0000000000 --- a/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh +++ /dev/null @@ -1,66 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G3toG4VisManager.hh,v 1.2 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef G3toG4VisManager_h -#define G3toG4VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class G3toG4VisManager: public G4VisManager { - -public: - - G3toG4VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -#endif diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc index a04e6172e2..99349a1a94 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4DetectorConstruction.cc,v 1.4 2003/07/04 15:45:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //-------------------------------------------------------------------------- // G3toG4DetectorConstruction. Most the work is Done in diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc index 213941c9b1..9c7c356113 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventAction.cc,v 1.5 2003/07/04 15:55:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc b/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc index 03ce360bcc..0edd8ffd38 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventActionMessenger.cc,v 1.3 2002/12/05 01:06:59 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc b/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc index 46222d3e68..34103ea516 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4PhysicsList.cc,v 1.3 2003/02/20 08:52:39 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc index 7bd043b442..ac6c10959b 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4PrimaryGeneratorAction.cc,v 1.4 2004/12/03 16:13:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc index 43cde1892e..9cb0cd4cb7 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4RunAction.cc,v 1.3 2003/07/04 15:45:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4ios.hh" diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc b/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc deleted file mode 100644 index a805bc9199..0000000000 --- a/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc +++ /dev/null @@ -1,146 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G3toG4VisManager.cc,v 1.6 2003/11/13 15:10:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4ios.hh" -#ifdef G4VIS_USE - -#include "G3toG4VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G3toG4VisManager::G3toG4VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G3toG4VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/gdml/History b/examples/extended/gdml/History index 51d58e562c..339049594c 100644 --- a/examples/extended/gdml/History +++ b/examples/extended/gdml/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2004/12/07 10:31:14 gcosmo Exp $ +$Id: History,v 1.6 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Dec 7th, 2004 R.Chytracek, W.Pokorski - exgdml-V06-02-00 - Archived old example and setup. New example based on GDML-2.0.0 demonstrating the abilities of import/export of GDML descriptions. diff --git a/examples/extended/gdml/g4_gdml_read_write.cc b/examples/extended/gdml/g4_gdml_read_write.cc index 428fc94436..46cccfdeca 100644 --- a/examples/extended/gdml/g4_gdml_read_write.cc +++ b/examples/extended/gdml/g4_gdml_read_write.cc @@ -22,7 +22,7 @@ // // // -*- C++ -*- -// $Id: g4_gdml_read_write.cc,v 1.3 2004/12/15 15:41:26 gunter Exp $ +// $Id: g4_gdml_read_write.cc,v 1.4 2005/05/03 10:21:16 allison Exp $ // // Author: Radovan Chytracek 2000 - 2004 // Witek Pokorski @@ -39,7 +39,7 @@ #include "G4TransportationManager.hh" #ifdef G4VIS_USE -#include "g4rwVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "g4rwDetectorConstruction.hh" @@ -56,7 +56,7 @@ int main() G4RunManager* runManager = new G4RunManager; // #ifdef G4VIS_USE - G4VisManager* visManager = new gogdmlVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/gdml/include/g4rwPrimaryGeneratorAction.hh b/examples/extended/gdml/include/g4rwPrimaryGeneratorAction.hh index d7528c844e..c1cef1ecdd 100644 --- a/examples/extended/gdml/include/g4rwPrimaryGeneratorAction.hh +++ b/examples/extended/gdml/include/g4rwPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: g4rwPrimaryGeneratorAction.hh,v 1.1 2004/12/06 11:01:14 radoone Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/src/g4rwDetectorConstruction.cc b/examples/extended/gdml/src/g4rwDetectorConstruction.cc index 116a225f05..2ab34956e8 100644 --- a/examples/extended/gdml/src/g4rwDetectorConstruction.cc +++ b/examples/extended/gdml/src/g4rwDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: g4rwDetectorConstruction.cc,v 1.1 2004/12/06 11:01:14 radoone Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/src/g4rwPhysicsList.cc b/examples/extended/gdml/src/g4rwPhysicsList.cc index 73e791cd70..dafaf864fa 100644 --- a/examples/extended/gdml/src/g4rwPhysicsList.cc +++ b/examples/extended/gdml/src/g4rwPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: g4rwPhysicsList.cc,v 1.1 2004/12/06 11:01:14 radoone Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/src/g4rwPrimaryGeneratorAction.cc b/examples/extended/gdml/src/g4rwPrimaryGeneratorAction.cc index abb1f6c7d1..9f2d72ebc7 100644 --- a/examples/extended/gdml/src/g4rwPrimaryGeneratorAction.cc +++ b/examples/extended/gdml/src/g4rwPrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: g4rwPrimaryGeneratorAction.cc,v 1.3 2004/12/07 09:45:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "g4rwPrimaryGeneratorAction.hh" diff --git a/examples/extended/gdml/src/g4rwVisManager.cc b/examples/extended/gdml/src/g4rwVisManager.cc deleted file mode 100644 index 47537f1379..0000000000 --- a/examples/extended/gdml/src/g4rwVisManager.cc +++ /dev/null @@ -1,141 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: g4rwVisManager.cc,v 1.2 2004/12/06 18:13:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "g4rwVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -gogdmlVisManager::gogdmlVisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void gogdmlVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/geometry/olap/History b/examples/extended/geometry/olap/History index 3fd52ddc91..651ff7181d 100644 --- a/examples/extended/geometry/olap/History +++ b/examples/extended/geometry/olap/History @@ -1,4 +1,4 @@ -$Id: History,v 1.8 2004/06/28 07:25:57 gcosmo Exp $ +$Id: History,v 1.9 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + June 28th, 2004 G.Cosmo - olapex-V06-02-00 - Reordered storage of parameters for solids according to arguments order in construction in SolidAnalyser.cc. Resolving issue in problem report diff --git a/examples/extended/geometry/olap/include/G4GeoNav.hh b/examples/extended/geometry/olap/include/G4GeoNav.hh index 6fa85cf5f1..e5ec6996f1 100644 --- a/examples/extended/geometry/olap/include/G4GeoNav.hh +++ b/examples/extended/geometry/olap/include/G4GeoNav.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeoNav.hh,v 1.3 2003/06/16 16:49:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapDetConstr.hh b/examples/extended/geometry/olap/include/OlapDetConstr.hh index 74ea0bbfd0..deb8d8de90 100644 --- a/examples/extended/geometry/olap/include/OlapDetConstr.hh +++ b/examples/extended/geometry/olap/include/OlapDetConstr.hh @@ -22,7 +22,7 @@ // // // $Id: OlapDetConstr.hh,v 1.1 2002/06/04 07:40:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapEventAction.hh b/examples/extended/geometry/olap/include/OlapEventAction.hh index 3e241fa975..e6fbbc3a0b 100644 --- a/examples/extended/geometry/olap/include/OlapEventAction.hh +++ b/examples/extended/geometry/olap/include/OlapEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: OlapEventAction.hh,v 1.2 2003/06/16 16:49:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapGenerator.hh b/examples/extended/geometry/olap/include/OlapGenerator.hh index acd33f34a1..853532820b 100644 --- a/examples/extended/geometry/olap/include/OlapGenerator.hh +++ b/examples/extended/geometry/olap/include/OlapGenerator.hh @@ -22,7 +22,7 @@ // // // $Id: OlapGenerator.hh,v 1.2 2003/06/16 16:49:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapLogManager.hh b/examples/extended/geometry/olap/include/OlapLogManager.hh index b0e1e86ff3..a3a049083b 100644 --- a/examples/extended/geometry/olap/include/OlapLogManager.hh +++ b/examples/extended/geometry/olap/include/OlapLogManager.hh @@ -22,7 +22,7 @@ // // // $Id: OlapLogManager.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapManager.hh b/examples/extended/geometry/olap/include/OlapManager.hh index 06b345c06f..4eefea1a89 100644 --- a/examples/extended/geometry/olap/include/OlapManager.hh +++ b/examples/extended/geometry/olap/include/OlapManager.hh @@ -22,7 +22,7 @@ // // // $Id: OlapManager.hh,v 1.3 2003/06/16 16:49:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapManagerMessenger.hh b/examples/extended/geometry/olap/include/OlapManagerMessenger.hh index d081704d56..66d39840c7 100644 --- a/examples/extended/geometry/olap/include/OlapManagerMessenger.hh +++ b/examples/extended/geometry/olap/include/OlapManagerMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: OlapManagerMessenger.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapNotify.hh b/examples/extended/geometry/olap/include/OlapNotify.hh index feeeda68bd..762759fd73 100644 --- a/examples/extended/geometry/olap/include/OlapNotify.hh +++ b/examples/extended/geometry/olap/include/OlapNotify.hh @@ -22,7 +22,7 @@ // // // $Id: OlapNotify.hh,v 1.2 2003/06/16 16:49:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapPhysicsList.hh b/examples/extended/geometry/olap/include/OlapPhysicsList.hh index e65ed79eda..605aea48cb 100644 --- a/examples/extended/geometry/olap/include/OlapPhysicsList.hh +++ b/examples/extended/geometry/olap/include/OlapPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: OlapPhysicsList.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapRunAction.hh b/examples/extended/geometry/olap/include/OlapRunAction.hh index 44a325604d..51d002e841 100644 --- a/examples/extended/geometry/olap/include/OlapRunAction.hh +++ b/examples/extended/geometry/olap/include/OlapRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: OlapRunAction.hh,v 1.2 2003/06/16 16:49:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapSteppingAction.hh b/examples/extended/geometry/olap/include/OlapSteppingAction.hh index 819e4b006e..c87f30038c 100644 --- a/examples/extended/geometry/olap/include/OlapSteppingAction.hh +++ b/examples/extended/geometry/olap/include/OlapSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: OlapSteppingAction.hh,v 1.2 2003/06/16 16:49:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/RandomDetector.hh b/examples/extended/geometry/olap/include/RandomDetector.hh index 41d4ba01e6..48d45dcf3c 100644 --- a/examples/extended/geometry/olap/include/RandomDetector.hh +++ b/examples/extended/geometry/olap/include/RandomDetector.hh @@ -22,7 +22,7 @@ // // // $Id: RandomDetector.hh,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/SolidAnalyser.hh b/examples/extended/geometry/olap/include/SolidAnalyser.hh index b9a1295619..e430265035 100644 --- a/examples/extended/geometry/olap/include/SolidAnalyser.hh +++ b/examples/extended/geometry/olap/include/SolidAnalyser.hh @@ -22,7 +22,7 @@ // // // $Id: SolidAnalyser.hh,v 1.2 2003/06/16 16:49:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/tree.hh b/examples/extended/geometry/olap/include/tree.hh index dfbfc08b61..e8e31ebfb3 100644 --- a/examples/extended/geometry/olap/include/tree.hh +++ b/examples/extended/geometry/olap/include/tree.hh @@ -22,7 +22,7 @@ // // // $Id: tree.hh,v 1.3 2003/06/16 16:49:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/olapex.cc b/examples/extended/geometry/olap/olapex.cc index 17b144dcf3..b6ee9e77b2 100644 --- a/examples/extended/geometry/olap/olapex.cc +++ b/examples/extended/geometry/olap/olapex.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: olapex.cc,v 1.1 2002/06/04 07:40:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: olapex.cc,v 1.2 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -51,7 +51,7 @@ #include "G4GeoNav.hh" #ifdef G4VIS_USE - #include "OlapVisManager.hh" + #include "G4VisExecutive.hh" #endif #ifdef debug @@ -82,8 +82,8 @@ int main(int argc,char** argv) { olap->GotoLV(olap->GetFullWorld()->GetLogicalVolume()->GetName()); #ifdef G4VIS_USE - //Instantiating OlapVisManager - OlapVisManager *visManager = new OlapVisManager; + //Instantiating VisManager + G4VisManager *visManager = new G4VisExecutive; visManager -> Initialize(); #endif diff --git a/examples/extended/geometry/olap/src/G4GeoNav.cc b/examples/extended/geometry/olap/src/G4GeoNav.cc index 5b4d48cb08..39f2950d7f 100644 --- a/examples/extended/geometry/olap/src/G4GeoNav.cc +++ b/examples/extended/geometry/olap/src/G4GeoNav.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeoNav.cc,v 1.2 2003/06/16 16:49:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapDetConstr.cc b/examples/extended/geometry/olap/src/OlapDetConstr.cc index 1e71d8f828..7f47830ee8 100644 --- a/examples/extended/geometry/olap/src/OlapDetConstr.cc +++ b/examples/extended/geometry/olap/src/OlapDetConstr.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: OlapDetConstr.cc,v 1.2 2003/06/12 12:24:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: OlapDetConstr.cc,v 1.3 2005/06/27 15:27:45 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -346,7 +346,7 @@ void OlapDetConstr::ConstructNewWorld() extY += extY/1000.; extZ += extZ/1000.; */ - G4double worldDim = sqrt(extX*extX + extY*extY + extZ*extZ); + G4double worldDim = std::sqrt(extX*extX + extY*extY + extZ*extZ); worldDim += worldDim/100.; // this automatically sets the dimensions of the // solid in theNewWorldLV, because it's a ptr to the same solid @@ -377,9 +377,9 @@ void OlapDetConstr::ConstructNewWorld() #endif delete theNewWorldRot; - G4ThreeVector rotAxis(cos(thePhi)*sin(theTheta), - sin(thePhi)*sin(theTheta), - cos(theTheta)); + G4ThreeVector rotAxis(std::cos(thePhi)*std::sin(theTheta), + std::sin(thePhi)*std::sin(theTheta), + std::cos(theTheta)); theNewWorldRot = new G4RotationMatrix(rotAxis,theAlpha); diff --git a/examples/extended/geometry/olap/src/OlapEventAction.cc b/examples/extended/geometry/olap/src/OlapEventAction.cc index d4eb51d8db..a3cb1c2bd5 100644 --- a/examples/extended/geometry/olap/src/OlapEventAction.cc +++ b/examples/extended/geometry/olap/src/OlapEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: OlapEventAction.cc,v 1.3 2003/06/16 16:49:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapGenerator.cc b/examples/extended/geometry/olap/src/OlapGenerator.cc index b27df2617c..645fddebf9 100644 --- a/examples/extended/geometry/olap/src/OlapGenerator.cc +++ b/examples/extended/geometry/olap/src/OlapGenerator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: OlapGenerator.cc,v 1.2 2002/06/04 09:23:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: OlapGenerator.cc,v 1.3 2005/06/27 15:27:48 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -129,7 +129,7 @@ void OlapGenerator::GeneratePrimaries(G4Event * anEvent) // create one geantino per vertex as primary G4double mass = pd->GetPDGMass(); G4double energy = 1. + mass; - G4double pmom = sqrt(energy*energy-mass*mass); + G4double pmom = std::sqrt(energy*energy-mass*mass); G4double pxAB = pmom*dirAB.x(); G4double pyAB = pmom*dirAB.y(); G4double pzAB = pmom*dirAB.z(); diff --git a/examples/extended/geometry/olap/src/OlapLogManager.cc b/examples/extended/geometry/olap/src/OlapLogManager.cc index 57b7227291..57eae2073d 100644 --- a/examples/extended/geometry/olap/src/OlapLogManager.cc +++ b/examples/extended/geometry/olap/src/OlapLogManager.cc @@ -22,7 +22,7 @@ // // // $Id: OlapLogManager.cc,v 1.2 2003/06/16 16:49:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapManager.cc b/examples/extended/geometry/olap/src/OlapManager.cc index e1a07b6c90..14403c9c43 100644 --- a/examples/extended/geometry/olap/src/OlapManager.cc +++ b/examples/extended/geometry/olap/src/OlapManager.cc @@ -22,7 +22,7 @@ // // // $Id: OlapManager.cc,v 1.2 2003/06/16 16:49:28 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapManagerMessenger.cc b/examples/extended/geometry/olap/src/OlapManagerMessenger.cc index 2257a5c6e1..536fbb367b 100644 --- a/examples/extended/geometry/olap/src/OlapManagerMessenger.cc +++ b/examples/extended/geometry/olap/src/OlapManagerMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: OlapManagerMessenger.cc,v 1.2 2002/12/05 01:07:00 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapNotify.cc b/examples/extended/geometry/olap/src/OlapNotify.cc index 178e2fd46f..87b60039ef 100644 --- a/examples/extended/geometry/olap/src/OlapNotify.cc +++ b/examples/extended/geometry/olap/src/OlapNotify.cc @@ -22,7 +22,7 @@ // // // $Id: OlapNotify.cc,v 1.1 2002/06/04 07:40:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapPhysicsList.cc b/examples/extended/geometry/olap/src/OlapPhysicsList.cc index 20b77933ed..280a1b1b94 100644 --- a/examples/extended/geometry/olap/src/OlapPhysicsList.cc +++ b/examples/extended/geometry/olap/src/OlapPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: OlapPhysicsList.cc,v 1.1 2002/06/04 07:40:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapRunAction.cc b/examples/extended/geometry/olap/src/OlapRunAction.cc index eccfd06ac4..168c6de0e5 100644 --- a/examples/extended/geometry/olap/src/OlapRunAction.cc +++ b/examples/extended/geometry/olap/src/OlapRunAction.cc @@ -22,7 +22,7 @@ // // // $Id: OlapRunAction.cc,v 1.4 2003/06/16 16:49:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapSteppingAction.cc b/examples/extended/geometry/olap/src/OlapSteppingAction.cc index 2d55555b6a..fbf168f689 100644 --- a/examples/extended/geometry/olap/src/OlapSteppingAction.cc +++ b/examples/extended/geometry/olap/src/OlapSteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: OlapSteppingAction.cc,v 1.2 2003/06/16 16:49:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapVisManager.cc b/examples/extended/geometry/olap/src/OlapVisManager.cc deleted file mode 100644 index b9044db8d1..0000000000 --- a/examples/extended/geometry/olap/src/OlapVisManager.cc +++ /dev/null @@ -1,147 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: OlapVisManager.cc,v 1.2 2003/11/13 15:11:34 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// -------------------------------------------------------------- -// OlapVisManager -// -// Author: Martin Liendl - Martin.Liendl@cern.ch -// -// -------------------------------------------------------------- -// -#include "globals.hh" - -#ifdef G4VIS_USE -#include "OlapVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -OlapVisManager::OlapVisManager (G4int verboseLevel) -{ - SetVerboseLevel( verboseLevel ); -} - -void OlapVisManager::RegisterGraphicsSystems () -{ - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) - { - G4cout << G4endl - << "You have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif diff --git a/examples/extended/geometry/olap/src/RandomDetector.cc b/examples/extended/geometry/olap/src/RandomDetector.cc index 1cf82c31c3..bc907c192a 100644 --- a/examples/extended/geometry/olap/src/RandomDetector.cc +++ b/examples/extended/geometry/olap/src/RandomDetector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RandomDetector.cc,v 1.2 2003/02/19 07:59:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RandomDetector.cc,v 1.3 2005/06/27 15:27:51 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -73,7 +73,7 @@ G4VPhysicalVolume * RandomDetector::Construct() // G4double outer = sqrt(3.*halfDim*halfDim); G4double inner = halfDim; G4double childDim = halfDim/3.; - G4double childRad = sqrt(3.*childDim*childDim); + G4double childRad = std::sqrt(3.*childDim*childDim); G4Box * aChildBox = new G4Box("ChildBox", childDim, childDim, childDim); G4LogicalVolume * child1 = new G4LogicalVolume(aChildBox, lAr, "Child_1_LV"); G4LogicalVolume * child2 = new G4LogicalVolume(aChildBox, lAr, "Child_2_LV"); @@ -109,8 +109,8 @@ G4VPhysicalVolume * RandomDetector::Construct() p2 = p1; } - G4ThreeVector tr1( r1*cos(p1)*sin(t1), r1*sin(p1)*sin(t1), r1*cos(t1)); - G4ThreeVector tr2( r2*cos(p2)*sin(t2), r2*sin(p2)*sin(t2), r2*cos(t2)); + G4ThreeVector tr1( r1*std::cos(p1)*std::sin(t1), r1*std::sin(p1)*std::sin(t1), r1*std::cos(t1)); + G4ThreeVector tr2( r2*std::cos(p2)*std::sin(t2), r2*std::sin(p2)*std::sin(t2), r2*std::cos(t2)); new G4PVPlacement(rm1,tr1,child1,"Child_1",aWorldLV,false,1); new G4PVPlacement(rm2,tr2,child2,"Child_2",aWorldLV,false,2); diff --git a/examples/extended/geometry/olap/src/SolidAnalyser.cc b/examples/extended/geometry/olap/src/SolidAnalyser.cc index 419749462b..ae8da1ac06 100644 --- a/examples/extended/geometry/olap/src/SolidAnalyser.cc +++ b/examples/extended/geometry/olap/src/SolidAnalyser.cc @@ -22,7 +22,7 @@ // // // $Id: SolidAnalyser.cc,v 1.4 2004/06/28 07:25:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/medical/DICOM/14196616.dat b/examples/extended/medical/DICOM/14196616.dat index 36580655ae..ee09432814 100644 --- a/examples/extended/medical/DICOM/14196616.dat +++ b/examples/extended/medical/DICOM/14196616.dat @@ -1,4 +1,4 @@ Rows,columns(#): 512 512 -PixelSpacing_X,Y(mm): 0.9765625 0.9765625 -SliceTickness(mm): 3 +PixelSpacing_X,Y(mm): 0.976562 0.976562 +SliceThickness(mm): 3.000000 SliceLocation(mm): -24.000000 diff --git a/examples/extended/medical/DICOM/14196616.g4 b/examples/extended/medical/DICOM/14196616.g4 index d88bca66fe24d8721a89ed431761e53ee9b0ac00..59150411bad8f05d69a45172d6ce19a69a47c097 100644 GIT binary patch literal 524326 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

KfBb2E(bxKLunqOzxm7j$P10L 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

+3Ve-t(Kg)=z#IK=LJ2?6!DV=-AHDMk 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 z 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 X+v#3U1b4>RpWD5z6ZtE`r2qL}(|;fq diff --git a/examples/extended/medical/DICOM/14196633.dat b/examples/extended/medical/DICOM/14196633.dat index 9daa52510b..b9d455a009 100644 --- a/examples/extended/medical/DICOM/14196633.dat +++ b/examples/extended/medical/DICOM/14196633.dat @@ -1,4 +1,4 @@ Rows,columns(#): 512 512 -PixelSpacing_X,Y(mm): 0.9765625 0.9765625 -SliceTickness(mm): 3 +PixelSpacing_X,Y(mm): 0.976562 0.976562 +SliceThickness(mm): 3.000000 SliceLocation(mm): -27.000000 diff --git a/examples/extended/medical/DICOM/14196633.g4 b/examples/extended/medical/DICOM/14196633.g4 index bfdaa792e2eb16d626e12ef62dc70725184caf70..7482722e25b33f627e3c3f70b881733fd8ba9d87 100644 GIT binary patch literal 524326 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 literal 721221 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®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 UIkHZ-@>{!=GeUlGc<_JzFIw#^DgXcg diff --git a/examples/extended/medical/DICOM/14196650.dat b/examples/extended/medical/DICOM/14196650.dat index 6e50b672f7..223f5046d1 100644 --- a/examples/extended/medical/DICOM/14196650.dat +++ b/examples/extended/medical/DICOM/14196650.dat @@ -1,4 +1,4 @@ Rows,columns(#): 512 512 -PixelSpacing_X,Y(mm): 0.9765625 0.9765625 -SliceTickness(mm): 3 +PixelSpacing_X,Y(mm): 0.976562 0.976562 +SliceThickness(mm): 3.000000 SliceLocation(mm): -30.000000 diff --git a/examples/extended/medical/DICOM/14196650.g4 b/examples/extended/medical/DICOM/14196650.g4 index 565eb6e24349f6f3bfc5403c26b73cab86df99fa..88834993d054c44bc9ac58fca3a2d78e9f0d5b42 100644 GIT binary patch literal 524326 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 literal 721221 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

8~6)@;EQeSqM65< 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 diff --git a/examples/extended/medical/DICOM/CT2Density.dat b/examples/extended/medical/DICOM/CT2Density.dat index 3f525fcd6d..e5dd580e51 100644 --- a/examples/extended/medical/DICOM/CT2Density.dat +++ b/examples/extended/medical/DICOM/CT2Density.dat @@ -1,12 +1,10 @@ - 11 - 0.0 0.0 - 189 0.217 - 491 0.508 - 929 0.967 - 967 0.990 - 1008 1.018 - 1049 1.061 - 1056 1.071 - 1235 1.159 - 1927 1.575 - 4927 3.379 \ No newline at end of file + 8 + -5000 0.0 + -1000 0.0 + -400 0.602 + -150 0.924 + 100 1.075 + 300 1.145 + 2000 1.856 + 4927 3.379 + diff --git a/examples/extended/medical/DICOM/Colormap.dat b/examples/extended/medical/DICOM/Colormap.dat new file mode 100644 index 0000000000..6550a3a4e9 --- /dev/null +++ b/examples/extended/medical/DICOM/Colormap.dat @@ -0,0 +1,21 @@ +19 +0.000 0.0 0.0 0.0 1.0 +0.207 0.8 0.5 0.5 1.0 +0.227 0.8 0.5 0.5 1.0 +0.481 0.7 0.7 0.7 1.0 +0.534 0.7 0.7 0.7 1.0 +0.919 1.0 0.8 0.8 1.0 +0.979 1.0 0.8 0.8 1.0 +0.980 0.9 0.0 0.9 1.0 +1.004 0.9 0.0 0.9 1.0 +1.005 0.9 0.8 0.8 1.0 +1.043 0.9 0.8 0.8 1.0 +1.044 0.8 0.3 0.3 1.0 +1.109 0.8 0.3 0.3 1.0 +1.114 0.9 0.9 0.9 1.0 +1.217 0.9 0.9 0.9 1.0 +1.496 1.0 1.0 1.0 1.0 +1.856 1.0 1.0 1.0 1.0 +2.000 0.8 0.8 0.8 1.0 +4.000 0.0 0.0 0.0 1.0 +density red green blue opacity diff --git a/examples/extended/medical/DICOM/History b/examples/extended/medical/DICOM/History index 636354cef6..0a6c3f4166 100644 --- a/examples/extended/medical/DICOM/History +++ b/examples/extended/medical/DICOM/History @@ -6,7 +6,13 @@ Category History file --------------------- -10.12.2004 - MG Pia, tag DICOM-V06-02-02 +12.06.2005 - Stephane Chauvie (DICOM-V07-00-01) + Added improvement by Akinori Kimura. + +03.05.2005 - John Allison + Replaced vis manager with G4VisExecutive. + +10.12.2004 - Maria Grazia Pia (DICOM-V06-02-02) Update README to announce further improvements and fixes by Akinori Kimura. diff --git a/examples/extended/medical/DICOM/README b/examples/extended/medical/DICOM/README index b0bbaab694..475c962ac8 100644 --- a/examples/extended/medical/DICOM/README +++ b/examples/extended/medical/DICOM/README @@ -1,5 +1,5 @@ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Dicom | +| DicomG4 | + + | README | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -17,16 +17,12 @@ web : thomson.phy.ulaval.ca/phys_med + Université Laval, Québec (QC) Canada This example illustrates a preliminary version of a Geant4 interface -to the DICOM image format. -The example consists in modeling a phantom inside a Geant4 application, -given the dicom files describing the phantom. -An improved version of the code, also including fixes to some problems -encountered with the current version provided by Akinori Kimura, -will be released with the next version of the Geant4 Toolkit. +to the DICOM image format. +The example consists in creating an image from dicom files. --->1) Introduction -DICOM images are read and used to model the geometry set-up for simulation. +DICOM images are read and used as Geometry for simulation. Three file .dcm give the experimental set-up (in terms of tissues and tissue geometry position) are read. @@ -38,15 +34,15 @@ In the application the phantom is placed on a table. ---> 2) Installation: - -example enviroment with the compiler 3.2.3 + -example enviroment with the compiler 3.2 -a standard Geant4 example GNUmakefile is provided setup with: -compiler = gcc-3.2.3 +compiler = gcc-3.2 G4SYSTEM = linux-g++ The following environment variables need to be set: -G4LEDATA: points to low energy data base - G4EMLOW2.3 +G4LEDATA: points to low energy data base - G4EMLOW2.2 visualisation package: OpenGL diff --git a/examples/extended/medical/DICOM/dicom.cc b/examples/extended/medical/DICOM/dicom.cc index 152cd2418e..2527510aef 100644 --- a/examples/extended/medical/DICOM/dicom.cc +++ b/examples/extended/medical/DICOM/dicom.cc @@ -45,7 +45,7 @@ #include "DicomPhysicsList.hh" #ifdef G4VIS_USE -#include "DicomVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "DicomGeometry.hh" @@ -72,7 +72,7 @@ int main(int argc,char** argv) #ifdef G4VIS_USE // visualisation manager - G4VisManager* visManager = new DicomVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/medical/DICOM/include/DicomConfiguration.hh b/examples/extended/medical/DICOM/include/DicomConfiguration.hh index c852f502ca..dfa9659308 100644 --- a/examples/extended/medical/DICOM/include/DicomConfiguration.hh +++ b/examples/extended/medical/DICOM/include/DicomConfiguration.hh @@ -50,16 +50,14 @@ class DicomConfiguration { public: - DicomConfiguration() { } + DicomConfiguration(); ~DicomConfiguration() { } // This function reads , return true or false // if successfull or not G4bool ReadDataFile(); - G4int ReadG4File(G4String g4File); - - G4int GetCompressionValue() {return compressionValue;} + G4int GetCompressionValue() {return compressionValue;} G4int GetTotalNumberOfFile() {return totalNumberOfFile;} @@ -69,30 +67,40 @@ public: G4int GetTotalColumns() {return totalColumns;} + G4int GetTotalPixels() {return totalPixels;} + //G4int GetTotalPixels() {return densityValue.size();} + G4double GetXPixelSpacing() {return xPixelSpacing;} G4double GetYPixelSpacing() {return yPixelSpacing;} G4double GetSliceThickness() {return sliceTickness;} - G4double GetSliceLocation() {return sliceLocation;} + std::vector GetSliceLocation() {return sliceLocation;} G4int IsCompressionUsed() {return compressionUsed;} G4double GetDensityValue(G4int i); + + void ClearDensityData() {densityValue.clear(); }; + + G4int ReadG4File(G4String g4File); private: - G4int compressionValue; - G4int totalNumberOfFile; - std::vector listOfFile; - G4int totalRows; - G4int totalColumns; - G4double xPixelSpacing; - G4double yPixelSpacing; - G4double sliceTickness; - G4double sliceLocation; - G4int compressionUsed; - std::vector densityValue; + + static short compressionValue; + static G4int totalNumberOfFile; + static std::vector listOfFile; + static short totalRows; + static short totalColumns; + static G4int totalPixels; + static G4double xPixelSpacing; + static G4double yPixelSpacing; + static G4double sliceTickness; + static std::vector sliceLocation; + static short compressionUsed; + static std::vector densityValue; + }; #endif diff --git a/examples/extended/medical/DICOM/include/DicomGeometry.hh b/examples/extended/medical/DICOM/include/DicomGeometry.hh index e4f373692a..5254d4c32e 100644 --- a/examples/extended/medical/DICOM/include/DicomGeometry.hh +++ b/examples/extended/medical/DICOM/include/DicomGeometry.hh @@ -49,7 +49,6 @@ #include "globals.hh" #include "G4VUserDetectorConstruction.hh" -#include class DicomConfiguration; class DicomPatientConstructor; diff --git a/examples/extended/medical/DICOM/include/DicomHandler.hh b/examples/extended/medical/DICOM/include/DicomHandler.hh index ae3e8e524c..f6327a78a5 100644 --- a/examples/extended/medical/DICOM/include/DicomHandler.hh +++ b/examples/extended/medical/DICOM/include/DicomHandler.hh @@ -53,6 +53,8 @@ #ifndef DicomHandler_h #define DicomHandler_h 1 +#include + #include "globals.hh" class DicomHandler @@ -61,29 +63,45 @@ public: DicomHandler(); - ~DicomHandler() { } + ~DicomHandler(); - G4int readHeader(FILE *,char[300]); - - G4int readData(FILE *,char[300]); // note: always use readHeader + G4int readHeader(FILE *,char *); + G4int readData(FILE *,char *); // note: always use readHeader // before readData // use ImageMagick to display the image //G4int displayImage(char[500]); - void checkFileFormat(); + void checkFileFormat(); + +private: + template void getValue(char *, Type &); private: - G4int compression, max; - G4double pixel2density(G4int pixel); - G4int rows; - G4int columns; - G4int bitAllocated; + const int DATABUFFSIZE; + const int LINEBUFFSIZE; + const int FILENAMESIZE; - char pixelSpacingX[300],pixelSpacingY[300]; - char sliceThickness[300]; - G4double sliceLocation; + void storeInformation(char *); + void getInformation(G4int &, char *); + G4double pixel2density(G4int pixel); + + short compression; + G4int max; + short rows; + short columns; + short bitAllocated; + G4int maxPixelValue, minPixelValue; + + G4double pixelSpacingX, pixelSpacingY; + G4double sliceThickness; + G4double sliceLocation; + + G4int rescaleIntercept, rescaleSlope; + + G4bool littleEndian, implicitEndian; + short pixelRepresentation; }; #endif diff --git a/examples/extended/medical/DICOM/include/DicomPatientConstructor.hh b/examples/extended/medical/DICOM/include/DicomPatientConstructor.hh index b7957b5631..3bc61ab719 100644 --- a/examples/extended/medical/DICOM/include/DicomPatientConstructor.hh +++ b/examples/extended/medical/DICOM/include/DicomPatientConstructor.hh @@ -38,7 +38,6 @@ #define DicomPatientConstructor_h 1 #include "globals.hh" -#include class DicomPatientConstructor { diff --git a/examples/extended/medical/DICOM/include/DicomPatientParameterisation.hh b/examples/extended/medical/DICOM/include/DicomPatientParameterisation.hh index a288126a13..cff372da46 100644 --- a/examples/extended/medical/DICOM/include/DicomPatientParameterisation.hh +++ b/examples/extended/medical/DICOM/include/DicomPatientParameterisation.hh @@ -70,39 +70,39 @@ public: // virtual void ComputeDimensions (G4Box & voxels, const G4int copyNo, const G4VPhysicalVolume* physVol) const; - virtual void ComputeDimension (G4Box&, + virtual void ComputeDimensions (G4Box&, const G4int, const G4VPhysicalVolume* ) const; - virtual void ComputeDimension(G4Tubs &, + virtual void ComputeDimensions(G4Tubs &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimension(G4Trd &, + virtual void ComputeDimensions(G4Trd &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimension(G4Trap &, + virtual void ComputeDimensions(G4Trap &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimension(G4Cons &, + virtual void ComputeDimensions(G4Cons &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimension(G4Sphere &, + virtual void ComputeDimensions(G4Sphere &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimension(G4Torus &, + virtual void ComputeDimensions(G4Torus &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimension(G4Para &, + virtual void ComputeDimensions(G4Para &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimension(G4Hype &, + virtual void ComputeDimensions(G4Hype &, const G4int, const G4VPhysicalVolume *) const {} @@ -135,10 +135,10 @@ private: G4VisAttributes* attributeDenseBone; G4int max; - G4int compression; + short compression; FILE* readData; - G4int columns,rows; + short columns,rows; G4double pixelSpacingX; G4double pixelSpacingY; G4double sliceThickness; @@ -153,6 +153,20 @@ private: //G4LogicalVolume* LogicalVolumeParam; G4double middleLocationValue; + +private: + + void readColorChart(); + class ColorChart { + public: + G4double density; + G4double color[3]; + G4double alpha; + enum {CRED, CGREEN, CBLUE}; + }; + std::vector colorChart; + G4int numColorChart; + G4double getChartColor(G4int, G4double density); }; #endif diff --git a/examples/extended/medical/DICOM/include/DicomVisManager.hh b/examples/extended/medical/DICOM/include/DicomVisManager.hh deleted file mode 100644 index 102f73fd2d..0000000000 --- a/examples/extended/medical/DICOM/include/DicomVisManager.hh +++ /dev/null @@ -1,60 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// The code was written by : -// *Louis Archambault louis.archambault@phy.ulaval.ca, -// *Luc Beaulieu beaulieu@phy.ulaval.ca -// +Vincent Hubert-Tremblay at tigre.2@sympatico.ca -// -// -// *Centre Hospitalier Universitaire de Quebec (CHUQ), -// Hotel-Dieu de Quebec, departement de Radio-oncologie -// 11 cote du palais. Quebec, QC, Canada, G1R 2J6 -// tel (418) 525-4444 #6720 -// fax (418) 691 5268 -// -// + Université Laval, Québec (QC) Canada -//*******************************************************// -#ifdef G4VIS_USE - -#ifndef DicomVisManager_h -#define DicomVisManager_h 1 - -#include "G4VisManager.hh" - -class DicomVisManager: public G4VisManager -{ - -public: - - DicomVisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -#endif -#endif - diff --git a/examples/extended/medical/DICOM/src/DicomConfiguration.cc b/examples/extended/medical/DICOM/src/DicomConfiguration.cc index 292a2ea385..43935b183c 100644 --- a/examples/extended/medical/DICOM/src/DicomConfiguration.cc +++ b/examples/extended/medical/DICOM/src/DicomConfiguration.cc @@ -45,69 +45,102 @@ #include #include -G4bool DicomConfiguration::ReadDataFile() -{ - std::ifstream dataFile( "Data.dat" ); - G4String nameOfFileBuffer; - if ( dataFile.good() != 1 ) - return 1; +short DicomConfiguration::compressionValue = 0; +G4int DicomConfiguration::totalNumberOfFile = 0; +std::vector DicomConfiguration::listOfFile; +short DicomConfiguration::totalRows = 0; +short DicomConfiguration::totalColumns = 0; +G4int DicomConfiguration::totalPixels = 0; +G4double DicomConfiguration::xPixelSpacing = 0.; +G4double DicomConfiguration::yPixelSpacing = 0.; +G4double DicomConfiguration::sliceTickness = 0.; +std::vector DicomConfiguration::sliceLocation; +short DicomConfiguration::compressionUsed = 0; +std::vector DicomConfiguration::densityValue; - dataFile >> compressionValue; - dataFile >> totalNumberOfFile; +// +DicomConfiguration::DicomConfiguration() { + ReadDataFile(); +} + +// +G4bool DicomConfiguration::ReadDataFile() { + + if(totalNumberOfFile > 0) return true; + + totalPixels = 0; + + std::ifstream dataFile("Data.dat"); + G4String nameOfFileBuffer; + if(dataFile.good() != 1 ) return 1; + + dataFile >> compressionValue; + dataFile >> totalNumberOfFile; - for ( G4int i = 1;i <= totalNumberOfFile;i++ ) - { - dataFile >> nameOfFileBuffer; - listOfFile.push_back( nameOfFileBuffer ); + for(G4int i = 0; i < totalNumberOfFile; i++ ) { + + dataFile >> nameOfFileBuffer; + listOfFile.push_back( nameOfFileBuffer ); + + // read densities from .g4 file + ReadG4File(nameOfFileBuffer); } - - dataFile.close(); - return 0; + + dataFile.close(); + return 0; } -G4int DicomConfiguration::ReadG4File( G4String g4File ) -{ - densityValue.clear(); - - g4File = g4File + ".g4"; - std::ifstream readingG4FileHeader( g4File.c_str() ); +G4int DicomConfiguration::ReadG4File( G4String g4File ) { - if ( readingG4FileHeader.good() != 1 ) - return 1; - - readingG4FileHeader >> totalRows >> totalColumns; - readingG4FileHeader >> xPixelSpacing >> yPixelSpacing; - // X is horizontal, Y is vertical - readingG4FileHeader >> sliceTickness; - readingG4FileHeader >> sliceLocation; - readingG4FileHeader >> compressionUsed; + //densityValue.clear(); - G4double densityValueBuffer = 0; - while ( readingG4FileHeader >> densityValueBuffer ) - { - densityValue.push_back( densityValueBuffer ); + g4File = g4File + ".g4"; + std::ifstream readingG4FileHeader(g4File.c_str(), + std::ios_base::in | std::ios_base::binary); + + if ( readingG4FileHeader.good() != 1 ) return 1; + + readingG4FileHeader.read((char *)&totalRows, 2); + readingG4FileHeader.read((char *)&totalColumns, 2); + readingG4FileHeader.read((char *)&xPixelSpacing, 8); + readingG4FileHeader.read((char *)&yPixelSpacing, 8); + readingG4FileHeader.read((char *)&sliceTickness, 8); + G4double sliceLocationBuff; + readingG4FileHeader.read((char *)&sliceLocationBuff, 8); + readingG4FileHeader.read((char *)&compressionUsed, 2); + + sliceLocation.push_back(sliceLocationBuff); + + G4double density; + for(int y = 0; y < totalRows/compressionUsed; y++) { + for(int x = 0; x < totalColumns/compressionUsed; x++) { + readingG4FileHeader.read((char *)&density, sizeof(G4double)); + densityValue.push_back(density); + totalPixels++; + } } - - readingG4FileHeader.close(); - return 0; + + readingG4FileHeader.close(); + return 0; } -G4double DicomConfiguration::GetDensityValue(G4int i) -{ - G4double value = 0.; - if (i <0.) G4cout << "out of range in GetDensityValue()!"<=0) - { - unsigned int j = i; - if(j >= densityValue.size() ) - { - // Throw exception, return dummy, cerr error message... - G4cout << "out of range in GetDensityValue()!"<= 0) { + unsigned int j = i; + // + if(j > densityValue.size() ) { + // Throw exception, return dummy, cerr error message... + G4cout << "out of range in GetDensityValue()! : " + << j << ", " << totalPixels << G4endl; + } else { + value = densityValue[i]; + } + } else { + G4cout << "out of range in GetDensityValue()!"< maxsl) maxsl = sliceLoc; + if(sliceLoc < minsl) minsl = sliceLoc; + } + middleLocationValue = (maxsl + minsl)/2.; + + //Building up the parameterisation ... - G4Box* parameterisedBox = new G4Box( "Parameterisation Mother", + G4Box* parameterisedBox = new G4Box( "Parameterisation_Mother", totalColumns*(xPixelSpacing)/2.*mm, totalRows*(yPixelSpacing)/2.*mm, - totalNumberOfFile*(sliceThickness)/2.*mm); + (maxsl-minsl+sliceThickness)/2.*mm); + G4LogicalVolume* parameterisedLogicalvolume = new G4LogicalVolume( parameterisedBox, air, - "Parameterisation Mother (logical)" ); + "Parameterisation_Mother (logical)" ); parameterisedLogicalvolume->SetVisAttributes(visualisationAttribute); - G4double middleLocationValue = 0; - for ( G4int i=0; i< totalNumberOfFile;i++ ) - { - readConfiguration.ReadG4File( readConfiguration.GetListOfFile()[i] ); - middleLocationValue = middleLocationValue + readConfiguration.GetSliceLocation(); - } - middleLocationValue = middleLocationValue / totalNumberOfFile; + G4ThreeVector origin( 0.*mm,0.*mm,middleLocationValue*mm ); parameterisedPhysVolume = new G4PVPlacement( 0, origin, parameterisedLogicalvolume, - "Parameterisation Mother (placement)", + "Parameterisation_Mother_placement", logicWorld, false, 0 ); - + G4Box* LungINhale = new G4Box( "LungINhale", patientX, patientY, patientZ); - + G4LogicalVolume* logicLungInHale = new G4LogicalVolume(LungINhale,lunginhale,"Logical_LungINhale",0,0,0); // ---- MGP ---- Numbers (2.0, 0.207) to be removed from code; move to const diff --git a/examples/extended/medical/DICOM/src/DicomHandler.cc b/examples/extended/medical/DICOM/src/DicomHandler.cc index bd53a75741..c837525186 100644 --- a/examples/extended/medical/DICOM/src/DicomHandler.cc +++ b/examples/extended/medical/DICOM/src/DicomHandler.cc @@ -32,7 +32,7 @@ // tel (418) 525-4444 #6720 // fax (418) 691 5268 // -// + Université Laval, Québec (QC) Canada +// + Universit-Aé Laval, Québec (QC) Canada$)B //******************************************************* // //******************************************************* @@ -50,384 +50,450 @@ #include "DicomHandler.hh" #include "globals.hh" #include "G4ios.hh" -#include -#include -#include "G4strstreambuf.hh" #include +#include +#include + + DicomHandler::DicomHandler() -{ - compression = 0; - max = 0; + : DATABUFFSIZE(8192), LINEBUFFSIZE(128), FILENAMESIZE(512), + compression(0), max(0), rows(0), columns(0), + bitAllocated(0), maxPixelValue(0), minPixelValue(0), + pixelSpacingX(0.), pixelSpacingY(0.), + sliceThickness(0.), sliceLocation(0.), + rescaleIntercept(0), rescaleSlope(0), + littleEndian(true), implicitEndian(false), + pixelRepresentation(0) { + ; } -G4int DicomHandler::readHeader(FILE *dicom, char filename2[300]) +DicomHandler::~DicomHandler() { + ; +} + +G4int DicomHandler::readHeader(FILE *dicom, char * filename2) { - G4int returnvalue = 0; - char buffer[196]; - char pixelSpacing[300]; - std::fread( buffer, 1, 128, dicom ); // The first 128 bytes + G4int returnvalue = 0; + char * buffer = new char[LINEBUFFSIZE]; + + implicitEndian = false; + littleEndian = true; + + std::fread( buffer, 1, 128, dicom ); // The first 128 bytes //are not important - // Reads the "DICOM" letters - std::fread( buffer, 1, 4, dicom ); - G4int readGroupId; //identify the kind of input data - G4int readElementId;//identify a particular type information - - // the elementLength say if a particular information (associated with a - //given readGroupId+readElementId) is to be read in 2 or 4 bits - G4int elementLength; - G4int elementLength2; - G4int elementLength3; - char value[10000][300]; - // Read information up to the pixel data - // note: it should be a while instead of a for - for ( G4int i = 0; i <= 100000000; i++ ) - { - //Reading groups and elements : - std::fread(&readGroupId,1,2,dicom); - std::fread(&readElementId,1,2,dicom); - - if (readGroupId == 0x7FE0) // beginning of the pixels - { - std::fread( buffer, 1, 2,dicom); // Skip 2 reserved bytes - break; - } - - std::fread(&elementLength,1,2,dicom); - G4int tagDictionnary; - G4int bitStored = 0; - // If value representation (VR) is OB, OW, SQ, UN, - //the next length is 32 bits - if ( elementLength == 16975 || - elementLength == 22351 || - elementLength == 20819 || - elementLength == 20053) - { - //skip 2 reserved "bytes" - std::fread( buffer, 1, 2,dicom); // Skip 2 reserved bytes - std::fread(&elementLength3, 4, 1, dicom); - // Reading length of the information - std::fread(&value[i],elementLength3,1,dicom); - // Reading the information with - // (BIG) buffer : "value" - // Creating a tag to be identified afterward - tagDictionnary = readGroupId*0x10000 + readElementId; - } - else // lenght is 16 bits : - { - std::fread(&elementLength2,1,2,dicom); - std::fread(&value[i],elementLength2,1,dicom); - tagDictionnary = readGroupId*0x10000 + readElementId; - } - - if (tagDictionnary == 0x00280010 ) // Number of Rows - { - rows = *(G4int*)&value[i]; - std::printf("[0x00280010] Rows -> %i\n",rows); - } - if (tagDictionnary == 0x00280011 ) // Number of columns - { - columns = *(G4int*)&value[i]; - std::printf("[0x00280011] Columns -> %i\n",columns); - } - if (tagDictionnary == 0x00280102 ) // High bits ( not used ) - { - G4int highBits = *(G4int*)&value[i]; - std::printf("[0x00280102] High bits -> %i\n",highBits); - } - if (tagDictionnary == 0x00280100 ) // Bits allocated ( not used ) - { - bitAllocated = *(G4int*)&value[i]; - std::printf("[0x00280100] Bits allocated -> %i\n",bitAllocated); - bitAllocated = (bitAllocated)/8; - } - if (tagDictionnary == 0x00280101 ) // Bits stored ( not used ) - { - bitStored = *(G4int*)&value[i]; - std::printf("[0x00280101] Bits stord -> %i\n",bitStored); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00281053) // Rescale slope ( not used ) - { - G4int rescaleSlope = atoi( value[i] ); - std::printf("[0x00281053] Rescale Slope -> %i\n",rescaleSlope); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00281052 ) // Rescalse intercept ( not used ) - { - G4int rescaleIntercept = atoi( value[i] ); - std::printf("[0x00281052] Rescale Intercept -> %i\n", rescaleIntercept ); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00280103 ) - { - // Pixel representation ( functions not design to read signed bits ) - std::printf("[0x00280103] Pixel Representation -> %i\n", atoi( value[i] ) ); - if ( atoi(value[i]) == 1 ) - { - std::printf("### PIXEL REPRESENTATION = 1, BITS ARE SIGNED, "); - std::printf("DICOM READING SCAN FOR UNSIGNED VALUE, POSSIBLE "); - std::printf("ERROR !!!!!! -> \n"); - } - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00080008 ) // Image type ( not used ) - { - std::printf("[0x00080008] Image Types -> %s\n",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00283000 ) // Modality LUT Sequence ( not used ) - { - std::printf("[0x00283000] Modality LUT Sequence SQ 1 -> %s\n",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00283002 ) // LUT Descriptor ( not used ) - { - std::printf("[0x00283002] LUT Descriptor US or SS 3 -> %s\n",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00283003 ) // LUT Explanation ( not used ) - { - std::printf("[0x00283003] LUT Explanation LO 1 -> %s\n",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00283004 ) // Modality LUT ( not used ) - { - std::printf("[0x00283004] Modality LUT Type LO 1 -> %s\n",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00283006 ) // LUT Data ( not used ) - { - std::printf("[0x00283006] LUT Data US or SS -> %s\n",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00283010 ) // VOI LUT ( not used ) - { - std::printf("[0x00283010] VOI LUT Sequence SQ 1 -> %s\n",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00280120 ) // Pixel Padding Value ( not used ) - { - std::printf("[0x00280120] Pixel Padding Value US or SS 1 -> %s\n",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00280030 ) // Pixel Spacing - { - std::printf("[0x00280030] Pixel Spacing (mm) -> %s\n",value[i]); - std::printf(pixelSpacing,"%s",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00200037 ) // Image Orientation ( not used ) - { - std::printf("[0x00200037] Image Orientation (Patient) -> %s\n",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00200032 ) // Image Position ( not used ) - { - std::printf("[0x00200032] Image Position (Patient,mm) -> %s\n",value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00180050 ) // Slice Tickness - { - std::printf("[0x00180050] Slice Tickness (mm) -> %s\n",value[i]); - std::sprintf(sliceThickness,"%s",value[i]);//sliceThickness=value[i]; - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00201041 ) // Slice Location - { - std::printf("[0x00201041] Slice Location -> %s\n",value[i]); - sliceLocation = atof(value[i]); - bitStored = (bitStored)/8; - } - if (tagDictionnary == 0x00280004 ) - // Photometric Interpretation ( not used ) - { - std::printf("[0x00280004] Photometric Interpretation -> %s\n",value[i]); - bitStored = (bitStored)/8; - } + // Reads the "DICOM" letters + std::fread( buffer, 1, 4, dicom ); + // if there is no preamble, the FILE pointer is rewinded. + if(std::strncmp("DICM", buffer, 4) != 0) { + std::fseek(dicom, 0, SEEK_SET); + implicitEndian = true; } - // Creating files to store information - char compressionbuf[100],maxbuf[100]; - char filename[300]; - compression = 0; - max = 0; - FILE* configuration; + short readGroupId; // identify the kind of input data + short readElementId; // identify a particular type information + short elementLength2; // deal with element length in 2 bytes + G4int elementLength4; // deal with element length in 4 bytes - configuration = std::fopen("Data.dat","r"); - if ( configuration != 0 ) - { - std::fscanf(configuration,"%s",compressionbuf); - compression = atoi(compressionbuf); - std::fscanf(configuration,"%s",maxbuf); - max = atoi(maxbuf); - std::fclose(configuration); - } - else - { - std::printf("### WARNING, file Data.dat not here !!!\n"); - exit(1); - } - FILE* data; - std::sprintf(filename,"%s.dat",filename2); - data = std::fopen(filename,"w+"); - // Note: the .dat files contain basic information on the images. + char * data = new char[DATABUFFSIZE]; - char exception = '\\'; - G4bool toggle = false; - G4int z = 0; - - for ( G4int y = 0; y <= 300; y++ ) - { - if ( pixelSpacing[y] != exception ) - { - if (toggle == false) - pixelSpacingX[y] = pixelSpacing[y]; - if (toggle == true) - { - pixelSpacingY[z] = pixelSpacing[y]; - z++; - } - } - else if ( pixelSpacing[y] == exception ) - { - toggle = true; - } + // Read information up to the pixel data + while(true) { + + //Reading groups and elements : + readGroupId = 0; + readElementId = 0; + // group ID + std::fread(buffer, 2, 1, dicom); + getValue(buffer, readGroupId); + // element ID + std::fread(buffer, 2, 1, dicom); + getValue(buffer, readElementId); + + // Creating a tag to be identified afterward + G4int tagDictionary = readGroupId*0x10000 + readElementId; + + + // VR or element length + std::fread(buffer,2,1,dicom); + getValue(buffer, elementLength2); + + // If value representation (VR) is OB, OW, SQ, UN, + //the next length is 32 bits + if((elementLength2 == 0x424f || // "OB" + elementLength2 == 0x574f || // "OW" + elementLength2 == 0x5153 || // "SQ" + elementLength2 == 0x4e55) && // "UN" + !implicitEndian ) { // explicit VR + + std::fread(buffer, 2, 1, dicom); // Skip 2 reserved bytes + + // element length + std::fread(buffer, 4, 1, dicom); + getValue(buffer, elementLength4); + + // beginning of the pixels + if(tagDictionary == 0x7FE00010) break; + + // Reading the information with data + std::fread(data, elementLength4,1,dicom); + + + } else { // length is 16 bits : + + if(!implicitEndian || readGroupId == 2) { + // element length (2 bytes) + std::fread(buffer, 2, 1, dicom); + getValue(buffer, elementLength2); + elementLength4 = elementLength2; + + } else { + // element length (4 bytes) + if(std::fseek(dicom, -2, SEEK_CUR) != 0) { + G4cerr << "[DicomHandler] fseek failed" << G4endl; + exit(-10); + } + std::fread(buffer, 4, 1, dicom); + getValue(buffer, elementLength4); + } + + // beginning of the pixels + if(tagDictionary == 0x7FE00010) break; + + std::fread(data, elementLength4, 1, dicom); + } + + // NULL termination + data[elementLength4] = '\0'; + + // analyzing inforamtion + getInformation(tagDictionary, data); } - std::fprintf(data,"Rows,columns(#): %8i %8i\n",rows,columns); - std::fprintf(data,"PixelSpacing_X,Y(mm): %8s %8s\n", - pixelSpacingX,pixelSpacingY); - std::fprintf(data,"SliceTickness(mm): %8s\n",sliceThickness); - std::fprintf(data,"SliceLocation(mm): %8f\n",sliceLocation); - std::fclose(data); + // Creating files to store information + storeInformation(filename2); - return returnvalue; + // + delete [] buffer; + delete [] data; + + return returnvalue; } -G4int DicomHandler::readData(FILE *dicom,char filename2[300]) +// +void DicomHandler::getInformation(G4int & tagDictionary, char * data) { + if(tagDictionary == 0x00280010 ) { // Number of Rows + getValue(data, rows); + std::printf("[0x00280010] Rows -> %i\n",rows); + + } else if(tagDictionary == 0x00280011 ) { // Number of columns + getValue(data, columns); + std::printf("[0x00280011] Columns -> %i\n",columns); + + } else if(tagDictionary == 0x00280102 ) { // High bits ( not used ) + short highBits; + getValue(data, highBits); + std::printf("[0x00280102] High bits -> %i\n",highBits); + + } else if(tagDictionary == 0x00280100 ) { // Bits allocated + getValue(data, bitAllocated); + std::printf("[0x00280100] Bits allocated -> %i\n", bitAllocated); + + } else if(tagDictionary == 0x00280101 ) { // Bits stored ( not used ) + short bitStored; + getValue(data, bitStored); + std::printf("[0x00280101] Bits stored -> %i\n",bitStored); + + } else if(tagDictionary == 0x00280106 ) { // Min. pixel value + getValue(data, minPixelValue); + std::printf("[0x00280106] Min. pixel value -> %i\n", minPixelValue); + + } else if(tagDictionary == 0x00280107 ) { // Max. pixel value + getValue(data, maxPixelValue); + std::printf("[0x00280107] Max. pixel value -> %i\n", maxPixelValue); + + } else if(tagDictionary == 0x00281053) { // Rescale slope + rescaleSlope = atoi(data); + std::printf("[0x00281053] Rescale Slope -> %d\n", rescaleSlope); + + } else if(tagDictionary == 0x00281052 ) { // Rescalse intercept + rescaleIntercept = atoi(data); + std::printf("[0x00281052] Rescale Intercept -> %d\n", rescaleIntercept ); + + } else if(tagDictionary == 0x00280103 ) { + // Pixel representation ( functions not design to read signed bits ) + pixelRepresentation = atoi(data); // 0: unsigned 1: signed + std::printf("[0x00280103] Pixel Representation -> %i\n", pixelRepresentation); + if(pixelRepresentation == 1 ) { + std::printf("### PIXEL REPRESENTATION = 1, BITS ARE SIGNED, "); + std::printf("DICOM READING SCAN FOR UNSIGNED VALUE, POSSIBLE "); + std::printf("ERROR !!!!!! -> \n"); + } + + } else if(tagDictionary == 0x00080006 ) { // Modality + std::printf("[0x00080006] Modality -> %s\n", data); + + } else if(tagDictionary == 0x00080070 ) { // Manufacturer + std::printf("[0x00080070] Manufacturer -> %s\n", data); + + } else if(tagDictionary == 0x00080080 ) { // Institution Name + std::printf("[0x00080080] Institution Name -> %s\n", data); + + } else if(tagDictionary == 0x00080081 ) { // Institution Address + std::printf("[0x00080081] Institution Address -> %s\n", data); + + } else if(tagDictionary == 0x00081040 ) { // Institution Department Name + std::printf("[0x00081040] Institution Department Name -> %s\n", data); + + } else if(tagDictionary == 0x00081090 ) { // Manufacturer's Model Name + std::printf("[0x00081090] Manufacturer's Model Name -> %s\n", data); + + } else if(tagDictionary == 0x00181000 ) { // Device Serial Number + std::printf("[0x00181000] Device Serial Number -> %s\n", data); + + } else if(tagDictionary == 0x00080008 ) { // Image type ( not used ) + std::printf("[0x00080008] Image Types -> %s\n", data); + + } else if(tagDictionary == 0x00283000 ) { // Modality LUT Sequence ( not used ) + std::printf("[0x00283000] Modality LUT Sequence SQ 1 -> %s\n", data); + + } else if(tagDictionary == 0x00283002 ) { // LUT Descriptor ( not used ) + std::printf("[0x00283002] LUT Descriptor US or SS 3 -> %s\n", data); + + } else if(tagDictionary == 0x00283003 ) { // LUT Explanation ( not used ) + std::printf("[0x00283003] LUT Explanation LO 1 -> %s\n", data); + + } else if(tagDictionary == 0x00283004 ) { // Modality LUT ( not used ) + std::printf("[0x00283004] Modality LUT Type LO 1 -> %s\n", data); + + } else if(tagDictionary == 0x00283006 ) { // LUT Data ( not used ) + std::printf("[0x00283006] LUT Data US or SS -> %s\n", data); + + } else if(tagDictionary == 0x00283010 ) { // VOI LUT ( not used ) + std::printf("[0x00283010] VOI LUT Sequence SQ 1 -> %s\n", data); + + } else if(tagDictionary == 0x00280120 ) { // Pixel Padding Value ( not used ) + std::printf("[0x00280120] Pixel Padding Value US or SS 1 -> %s\n", data); + + } else if(tagDictionary == 0x00280030 ) { // Pixel Spacing + char * buff = new char[LINEBUFFSIZE]; + char * sepPos = index(data, '\\'); + char * termPos = rindex(data, '\0'); + std::strncpy(buff, data, sepPos - data); + pixelSpacingX = atof(buff); + std::strncpy(buff, sepPos+1, termPos - sepPos - 1); + pixelSpacingY = atof(buff); + std::printf("[0x00280030] Pixel Spacing (mm) -> %s\n", data); + delete [] buff; + + } else if(tagDictionary == 0x00200037 ) { // Image Orientation ( not used ) + std::printf("[0x00200037] Image Orientation (Patient) -> %s\n", data); + + } else if(tagDictionary == 0x00200032 ) { // Image Position ( not used ) + std::printf("[0x00200032] Image Position (Patient,mm) -> %s\n", data); + + } else if(tagDictionary == 0x00180050 ) { // Slice Thickness + sliceThickness = atof(data); + std::printf("[0x00180050] Slice Thickness (mm) -> %f\n", sliceThickness); + + } else if(tagDictionary == 0x00201041 ) { // Slice Location + sliceLocation = atof(data); + std::printf("[0x00201041] Slice Location -> %f\n", sliceLocation); + + } else if(tagDictionary == 0x00280004 ) { // Photometric Interpretation ( not used ) + std::printf("[0x00280004] Photometric Interpretation -> %s\n", data); + + } else if(tagDictionary == 0x00020010) { // Endian + if(strcmp(data, "1.2.840.10008.1.2") == 0) + implicitEndian = true; + else if(strncmp(data, "1.2.840.10008.1.2.2", 19) == 0) + littleEndian = false; + //else 1.2.840..10008.1.2.1 (explicit little endian) + + std::printf("[0x00020010] Endian -> %s\n", data); + } + + // others + else { + std::printf("[0x%x] -> %s\n", tagDictionary, data); + + } + +} + +// +void DicomHandler::storeInformation(char * _filename) { + + char * compressionbuf = new char[LINEBUFFSIZE]; + char * maxbuf = new char[LINEBUFFSIZE]; + char * filename = new char[FILENAMESIZE]; + compression = 0; + max = 0; + FILE* configuration; + + configuration = std::fopen("Data.dat","r"); + if( configuration != 0 ) { + std::fscanf(configuration,"%s",compressionbuf); + compression = atoi(compressionbuf); + std::fscanf(configuration,"%s",maxbuf); + max = atoi(maxbuf); + std::fclose(configuration); + } else { + std::printf("### WARNING, file Data.dat not here !!!\n"); + exit(1); + } + + + FILE* dat; + std::sprintf(filename,"%s.dat", _filename); + dat = std::fopen(filename,"w+"); + // Note: the .dat files contain basic information on the images. + + std::fprintf(dat,"Rows,columns(#): %8i %8i\n",rows,columns); + std::fprintf(dat,"PixelSpacing_X,Y(mm): %8f %8f\n", + pixelSpacingX,pixelSpacingY); + std::fprintf(dat,"SliceThickness(mm): %8f\n",sliceThickness); + std::fprintf(dat,"SliceLocation(mm): %8f\n",sliceLocation); + std::fclose(dat); + + delete [] compressionbuf; + delete [] maxbuf; + delete [] filename; + +} + +// +G4int DicomHandler::readData(FILE *dicom,char * filename2) { - G4int returnvalue = 0; - char compressionbuf[100],maxbuf[100]; - G4int compression = 0, max = 0; - G4int intBuffer[1000000]; - // intBuffer read a part of the header that is not - //useful for this application - - G4int tab[1000][1000]; - FILE* configuration = std::fopen("Data.dat","r"); - std::fscanf(configuration,"%s",compressionbuf); - compression = atoi(compressionbuf); - std::fscanf(configuration,"%s",maxbuf); - max = atoi(maxbuf); - std::fclose(configuration); + G4int returnvalue = 0; + char * compressionbuf = new char[LINEBUFFSIZE]; + char * maxbuf = new char[LINEBUFFSIZE]; + short compression = 0; + G4int max = 0; - // READING THE PIXELS : - G4int w = 0; - G4int len = 0; + FILE* configuration = std::fopen("Data.dat","r"); + std::fscanf(configuration,"%s",compressionbuf); + compression = atoi(compressionbuf); + std::fscanf(configuration,"%s",maxbuf); + max = atoi(maxbuf); + std::fclose(configuration); - if (bitAllocated == 2) // Case 16 bits : - { - len = rows*columns; - for ( G4int j = 1; j <= rows; j++) - { - for ( G4int i = 1; i <= columns; i++) - { - w++; - std::fread( &intBuffer[w], 1, 2, dicom); - tab[j][i] = intBuffer[w]; - } - } - } - else // not 16 bits : - { - std::printf("@@@ Error! Picture != 16 bits...\n"); - std::printf("@@@ Error! Picture != 16 bits...\n"); - std::printf("@@@ Error! Picture != 16 bits...\n"); - len = rows*columns; - for (G4int j = 1;j <= rows;j++) - { - for (G4int i = 1;i <= columns;i++) - { - w++; - std::fread(&intBuffer[w],1,2,dicom); - tab[j][i] = intBuffer[w]; - } - } - returnvalue = 1; + // READING THE PIXELS : + G4int w = 0; + G4int len = 0; + + G4int** tab = new G4int*[rows]; + for ( G4int i = 0; i < rows; i ++ ) { + tab[i] = new G4int[columns]; } - // Creation of .g4 files wich contains averaged density data + if(bitAllocated == 8) { // Case 8 bits : - char nameProcessed[500]; - FILE* processed; + std::printf("@@@ Error! Picture != 16 bits...\n"); + std::printf("@@@ Error! Picture != 16 bits...\n"); + std::printf("@@@ Error! Picture != 16 bits...\n"); - std::sprintf(nameProcessed,"%s.g4",filename2); - processed = std::fopen(nameProcessed,"w+"); - std::printf("### Writing of %s ###\n",nameProcessed); + unsigned char ch = 0; - std::fprintf(processed,"%8i %8i\n",rows,columns); - std::fprintf(processed,"%8f %8f\n",atof(pixelSpacingX),atof(pixelSpacingY) ); - std::fprintf(processed,"%8i\n",atoi(sliceThickness) ); - std::fprintf(processed,"%8f\n",sliceLocation); - std::fprintf(processed,"%8i\n",compression); + len = rows*columns; + for(G4int j = 0; j < rows; j++) { + for(G4int i = 0; i < columns; i++) { + w++; + std::fread( &ch, 1, 1, dicom); + tab[j][i] = ch*rescaleSlope + rescaleIntercept; + } + } + returnvalue = 1; - G4int compSize = 1; - compSize = compression; - G4int mean; - G4bool overflow = false; - G4int cpt=1; - - if (compSize == 1) // no compression: each pixel has a density value) - { - for ( G4int ww = 1; ww <= rows; ww++) - { - for( G4int xx = 1; xx <= columns; xx++) - { - mean = (tab[ww][xx])/1; - std::fprintf(processed,"%f ",pixel2density(mean) ); - } - std::fprintf(processed,"\n"); - } + } else { // from 12 to 16 bits : + char sbuff[2]; + short pixel; + len = rows*columns; + for( G4int j = 0; j < rows; j++) { + for( G4int i = 0; i < columns; i++) { + w++; + std::fread(sbuff, 2, 1, dicom); + getValue(sbuff, pixel); + tab[j][i] = pixel*rescaleSlope + rescaleIntercept; + } + } } - else - { - // density value is the average of a square region of - // compression*compression pixels - for (G4int ww = 1 ; ww <= rows ; ww = ww+compSize ) - { - for(G4int xx = 1 ; xx <= columns ; xx = xx+compSize ) - { - overflow = false; - G4int mean = tab[ww][xx]; - G4int sumx = compSize-1; - G4int sumy = compSize-1; - for( ; sumx>0; sumy--, sumx--) - { - if (ww+sumy > rows|| xx+sumx > columns) - { - overflow = true; - break; - } - mean = mean+tab[ww+sumy][xx+sumx]; - for (G4int m = sumx ; m>0 ; m--) - { - mean = mean+tab[ww+sumy-m][xx+sumx]; - mean = mean+tab[ww+sumy][xx+sumx-m]; - } - } - mean = mean/(compSize*compSize); - cpt = 1; - if (overflow != true) - std::fprintf(processed,"%f ",pixel2density( mean) ); + // Creation of .g4 files wich contains averaged density data + + char * nameProcessed = new char[FILENAMESIZE]; + FILE* processed; + + std::sprintf(nameProcessed,"%s.g4",filename2); + processed = std::fopen(nameProcessed,"w+b"); + std::printf("### Writing of %s ###\n",nameProcessed); + + std::fwrite(&rows, 2, 1, processed); + std::fwrite(&columns, 2, 1, processed); + std::fwrite(&pixelSpacingX, 8, 1, processed); + std::fwrite(&pixelSpacingY, 8, 1, processed); + std::fwrite(&sliceThickness, 8, 1, processed); + std::fwrite(&sliceLocation, 8, 1, processed); + std::fwrite(&compression, 2, 1, processed); + + std::printf("%8i %8i\n",rows,columns); + std::printf("%8f %8f\n",pixelSpacingX,pixelSpacingY); + std::printf("%8f\n", sliceThickness); + std::printf("%8f\n", sliceLocation); + std::printf("%8i\n", compression); + + G4int compSize = compression; + G4int mean; + G4double density; + G4bool overflow = false; + G4int cpt=1; + + if(compSize == 1) { // no compression: each pixel has a density value) + for( G4int ww = 0; ww < rows; ww++) { + for( G4int xx = 0; xx < columns; xx++) { + mean = tab[ww][xx]; + density = pixel2density(mean); + std::fwrite(&density, sizeof(G4double), 1, processed); } - std::fprintf(processed,"\n"); } - } - std::fclose(processed); - return returnvalue; + } else { + // density value is the average of a square region of + // compression*compression pixels + for(G4int ww = 0; ww < rows ;ww += compSize ) { + for(G4int xx = 0; xx < columns ;xx +=compSize ) { + overflow = false; + mean = 0; + for(int sumx = 0; sumx < compSize; sumx++) { + for(int sumy = 0; sumy < compSize; sumy++) { + if(ww+sumy >= rows || xx+sumx >= columns) overflow = true; + mean += tab[ww+sumy][xx+sumx]; + } + if(overflow) break; + } + mean /= compSize*compSize; + cpt = 1; + + if(!overflow) { + G4double density = pixel2density(mean); + std::fwrite(&density, sizeof(G4double), 1, processed); + } + } + + } + } + std::fclose(processed); + + delete [] compressionbuf; + delete [] maxbuf; + delete [] nameProcessed; + + for ( G4int i = 0; i < rows; i ++ ) { + delete [] tab[i]; + } + delete [] tab; + + return returnvalue; } /* @@ -441,144 +507,160 @@ G4int DicomHandler::readData(FILE *dicom,char filename2[300]) return (G4int )i; } */ + G4double DicomHandler::pixel2density(G4int pixel) { - G4double density = -1; - G4int nbrequali = 0; - char nbrequalibuf[100]; - G4double deltaCT = 0; - G4double deltaDensity = 0; - char valuedensitybuf[100][100]; - char valueCTbuf[100][100]; - G4double valuedensity[100]; - G4double valueCT[100]; - FILE* calibration; + G4double density = -1.; + G4int nbrequali = 0; + G4double deltaCT = 0; + G4double deltaDensity = 0; - // CT2Density.dat contains the calibration curve to convert CT (Hounsfield) number to - // physical density - calibration = std::fopen("CT2Density.dat","r"); - std::fscanf(calibration,"%s",nbrequalibuf); - nbrequali = atoi(nbrequalibuf); + // CT2Density.dat contains the calibration curve to convert CT (Hounsfield) + // number to physical density + std::ifstream calibration("CT2Density.dat"); + calibration >> nbrequali; - if (calibration == 0 ) - { - std::printf("@@@ No value to transform pixels in density!\n"); - exit(1); + G4double * valuedensity = new G4double[nbrequali]; + G4double * valueCT = new G4double[nbrequali]; + + if(!calibration) { + G4cerr << "@@@ No value to transform pixels in density!" << G4endl; + exit(1); + + } else { // calibration was successfully opened + for(G4int i = 0; i < nbrequali; i++) { // Loop to store all the pts in CT2Density.dat + calibration >> valueCT[i] >> valuedensity[i]; + } } - else // calibration != 0 - { - for (G4int i=1;i<=nbrequali;i++) // Loop to store all the pts in CT2Density.dat - { - std::fscanf(calibration,"%s %s",valueCTbuf[i-1],valuedensitybuf[i-1]); - valueCT[i-1] = atof(valueCTbuf[i-1]); - valuedensity[i-1]=atof(valuedensitybuf[i-1]); - } - } - std::fclose(calibration); + calibration.close(); - for (G4int j = 1;j= valueCT[j-1] && pixel < valueCT[j]) - { - deltaCT = valueCT[j] - valueCT[j-1]; - deltaDensity = valuedensity[j] - valuedensity[j-1]; - if ( pixel - valueCT[j-1] >= valueCT[j] - pixel ) - { - density = valuedensity[j] + ( ( valueCT[j] - pixel ) * deltaDensity/deltaCT ); - } - else if ( pixel - valueCT[j-1] < valueCT[j] - pixel ) - { - density = valuedensity[j-1] + ( ( pixel - valueCT[j-1] ) * deltaDensity/deltaCT ); - } - } + for(G4int j = 1; j < nbrequali; j++) { + if( pixel >= valueCT[j-1] && pixel < valueCT[j]) { + + deltaCT = valueCT[j] - valueCT[j-1]; + deltaDensity = valuedensity[j] - valuedensity[j-1]; + + // interpolating linearly + density = valuedensity[j] - ((valueCT[j] - pixel)*deltaDensity/deltaCT ); + break; + } } - if ( density < 0 ) - { - std::printf("@@@ Error density = %f && Pixel = %i && deltaDensity/deltaCT = %f\n",density,pixel,deltaDensity/deltaCT); + if(density < 0.) { + std::printf("@@@ Error density = %f && Pixel = %i (0x%x) && deltaDensity/deltaCT = %f\n",density,pixel,pixel, deltaDensity/deltaCT); } + + delete [] valuedensity; + delete [] valueCT; - return density; + return density; } void DicomHandler::checkFileFormat() { - std::ifstream checkData("Data.dat"); - char * oneLine = new char[101]; - G4int nbImages; + std::ifstream checkData("Data.dat"); + char * oneLine = new char[128]; + G4int nbImages; - if (!(checkData.is_open())) //Check existance of Data.dat - { - G4cout << "\nDicomG4 needs Data.dat :\n\tFirst line: number of image pixel for a " - << "voxel (G4Box)\n\tSecond line: number of images (CT slices) to " - << "read\n\tEach following line contains the name of a Dicom image except " - << "for the .dcm extension\n"; - exit(0); + if(!(checkData.is_open())) { //Check existance of Data.dat + + G4cout << "\nDicomG4 needs Data.dat :\n\tFirst line: number of image pixel for a " + << "voxel (G4Box)\n\tSecond line: number of images (CT slices) to " + << "read\n\tEach following line contains the name of a Dicom image except " + << "for the .dcm extension\n"; + exit(0); } - checkData >> nbImages; - checkData >> nbImages; - G4String oneName; - checkData.getline(oneLine,100); - std::ifstream testExistence; - G4bool existAlready = true; - for (G4int rep = 0; rep < nbImages; rep++) - { - checkData.getline(oneLine,100); - oneName = oneLine; - oneName += ".g4"; // create dicomFile.g4 - testExistence.open(oneName.data()); - if (!(testExistence.is_open())) - { - existAlready = false; - testExistence.clear(); - testExistence.close(); - break; - } - testExistence.clear(); - testExistence.close(); + checkData >> nbImages; + checkData >> nbImages; + G4String oneName; + checkData.getline(oneLine,100); + std::ifstream testExistence; + G4bool existAlready = true; + for(G4int rep = 0; rep < nbImages; rep++) { + checkData.getline(oneLine,100); + oneName = oneLine; + oneName += ".g4"; // create dicomFile.g4 + testExistence.open(oneName.data()); + if(!(testExistence.is_open())) { + existAlready = false; + testExistence.clear(); + testExistence.close(); + break; + } + testExistence.clear(); + testExistence.close(); } - checkData.close(); - delete [] oneLine; + checkData.close(); + delete [] oneLine; - if ( existAlready == false ) // The files *.g4 have to be created - { - G4cout << "\nAll the necessary images were not found in processed form, starting " - << "with .dcm images\n"; + if( existAlready == false ) { // The files *.g4 have to be created - FILE* dicom; - FILE *lecturePref; - char compressionc[300],maxc[300]; - char name[300], inputFile[300]; - lecturePref = std::fopen("Data.dat","r"); - std::fscanf(lecturePref,"%s",compressionc); - compression = atoi(compressionc); - std::fscanf(lecturePref,"%s",maxc); - max = atoi(maxc); + G4cout << "\nAll the necessary images were not found in processed form, starting " + << "with .dcm images\n"; + + FILE * dicom; + FILE * lecturePref; + char * compressionc = new char[LINEBUFFSIZE]; + char * maxc = new char[LINEBUFFSIZE]; + //char name[300], inputFile[300]; + char * name = new char[FILENAMESIZE]; + char * inputFile = new char[FILENAMESIZE]; + + lecturePref = std::fopen("Data.dat","r"); + std::fscanf(lecturePref,"%s",compressionc); + compression = atoi(compressionc); + std::fscanf(lecturePref,"%s",maxc); + max = atoi(maxc); + + for( G4int i = 1; i <= max; i++ ) { // Begin loop on filenames + + std::fscanf(lecturePref,"%s",inputFile); + std::sprintf(name,"%s.dcm",inputFile); + std::cout << "check 1: " << name << std::endl; + // Open input file and give it to gestion_dicom : + std::printf("### Opening %s and reading :\n",name); + dicom = std::fopen(name,"rb"); + // Reading the .dcm in two steps: + // 1. reading the header + // 2. reading the pixel data and store the density in Moyenne.dat + if( dicom != 0 ) { + readHeader(dicom,inputFile); + readData(dicom,inputFile); + } else { + G4cout << "\nError opening file : " << name << G4endl; + exit(0); + } + std::fclose(dicom); + } + std::fclose(lecturePref); + + delete [] compressionc; + delete [] maxc; + delete [] name; + delete [] inputFile; - for ( G4int i = 1; i <= max; i++ ) // Begin loop on filenames - { - std::fscanf(lecturePref,"%s",inputFile); - std::sprintf(name,"%s.dcm",inputFile); - // Open input file and give it to gestion_dicom : - std::printf("### Opening %s and reading :\n",name); - dicom = std::fopen(name,"rb"); - // Reading the .dcm in two steps: - // 1. reading the header - // 2. reading the pixel data and store the density in Moyenne.dat - if ( dicom != 0 ) - { - readHeader(dicom,inputFile); - readData(dicom,inputFile); - } - else - { - G4cout << "\nError opening file : " << name << G4endl; - exit(0); - } - std::fclose(dicom); - } - std::fclose(lecturePref); } + +} + + +template +void DicomHandler::getValue(char * _val, Type & _rval) { + +#if BYTE_ORDER == BIG_ENDIAN + if(littleEndian) { // little endian +#else // BYTE_ORDER == LITTLE_ENDIAN + if(!littleEndian) { // big endian +#endif + const int SIZE = sizeof(_rval); + char ctemp; + for(int i = 0; i < SIZE/2; i++) { + ctemp = _val[i]; + _val[i] = _val[SIZE - 1 - i]; + _val[SIZE - 1 - i] = ctemp; + } + } + _rval = *(Type *)_val; } diff --git a/examples/extended/medical/DICOM/src/DicomOctree.cc b/examples/extended/medical/DICOM/src/DicomOctree.cc index 296c5caa38..806502032f 100644 --- a/examples/extended/medical/DICOM/src/DicomOctree.cc +++ b/examples/extended/medical/DICOM/src/DicomOctree.cc @@ -41,8 +41,11 @@ #include "DicomOctreeMiddleNode.hh" #include "DicomOctreeTerminalNode.hh" +#include "G4ios.hh" + DicomOctree::DicomOctree( G4int noLevels, G4double size ) { + std::cout << "++++++ DicomOctree was instantiated now." << std::endl; mNoLevels = noLevels; mSize = size; mRoot = new DicomOctreeMiddleNode(0); diff --git a/examples/extended/medical/DICOM/src/DicomPatientConstructor.cc b/examples/extended/medical/DICOM/src/DicomPatientConstructor.cc index 0a0e6e5c8b..d9c3c849bc 100644 --- a/examples/extended/medical/DICOM/src/DicomPatientConstructor.cc +++ b/examples/extended/medical/DICOM/src/DicomPatientConstructor.cc @@ -45,73 +45,25 @@ // //******************************************************* +#include "DicomConfiguration.hh" #include "DicomPatientConstructor.hh" #include "globals.hh" -#include "G4String.hh" -G4int DicomPatientConstructor::FindingNbOfVoxels(G4double maxDensity , G4double minDensity) -{ - FILE* lecturePref = std::fopen("Data.dat","r"); - FILE* readData; - char maxBuffer[300]; - char compressionBuffer[300]; - char name[300]; - std::fscanf(lecturePref,"%s",compressionBuffer); - G4int compression; - compression = atoi(compressionBuffer); +G4int DicomPatientConstructor::FindingNbOfVoxels(G4double maxDensity , G4double minDensity) { - std::fscanf(lecturePref,"%s",maxBuffer); - G4int max = atoi(maxBuffer); - G4int copyCount = 0; + DicomConfiguration dicomConfiguration; + + G4double density; + G4int npass = 0; - for ( G4int i = 1;i <= max;i++ ) - { - char fullname[300]; - std::fscanf(lecturePref,"%s",name); - std::sprintf(fullname,"%s.g4",name); - readData = std::fopen(fullname,"r"); - - char rowsBuffer[300],columnsBuffer[300]; - std::fscanf(readData,"%s %s",rowsBuffer,columnsBuffer); - G4int rows = atoi(rowsBuffer); - G4int columns = atoi(columnsBuffer); - - char pixelSpacingXBuffer[300],pixelSpacingYBuffer[300]; - std::fscanf(readData,"%s %s",pixelSpacingXBuffer,pixelSpacingYBuffer); - pixelSpacingX = atof(pixelSpacingXBuffer); - pixelSpacingY = atof(pixelSpacingYBuffer); - - char sliceThicknessBuf[300]; - std::fscanf(readData,"%s",sliceThicknessBuf); - sliceThickness = atoi(sliceThicknessBuf); - - char sliceLocationBuf[300]; - std::fscanf(readData,"%s",sliceLocationBuf); - sliceLocation = atof(sliceLocationBuf); - - std::fscanf(readData,"%s",compressionBuffer); - compression = atoi(compressionBuffer); - lenr = std::abs(rows/compression); - lenc = std::abs(columns/compression); - char densityBuffer[300]; - std::vector density; - for ( G4int j = 1;j <= lenr;j++ ) - { - for ( G4int w = 1;w <= lenc;w++ ) - { - if ( std::fscanf(readData,"%s",densityBuffer) != -1 ) - { - if ( atof(densityBuffer) >= minDensity && atof(densityBuffer) <= maxDensity ) - { - density.push_back( atof(densityBuffer) ); - copyCount++; - } - } - } - } - std::fclose(readData); + G4int npixels = dicomConfiguration.GetTotalPixels(); + for(int i = 0; i < npixels; i++) { + density = dicomConfiguration.GetDensityValue(i); + if(density >= minDensity && density <= maxDensity) npass++; } - return copyCount; + + return npass; + } diff --git a/examples/extended/medical/DICOM/src/DicomPatientParameterisation.cc b/examples/extended/medical/DICOM/src/DicomPatientParameterisation.cc index f7affbad3b..76fd92e960 100644 --- a/examples/extended/medical/DICOM/src/DicomPatientParameterisation.cc +++ b/examples/extended/medical/DICOM/src/DicomPatientParameterisation.cc @@ -32,10 +32,9 @@ // tel (418) 525-4444 #6720 // fax (418) 691 5268 // -// + Université Laval, Québec (QC) Canada +// + Universit.AŽé Laval, QuŽébec (QC) Canada //******************************************************* -#include "DicomPrimaryGeneratorAction.hh" #include "DicomPatientParameterisation.hh" #include "DicomConfiguration.hh" @@ -46,7 +45,7 @@ #include "G4Material.hh" #include "G4VisAttributes.hh" -DicomPatientParameterisation::DicomPatientParameterisation(G4int, // NoVoxels, +DicomPatientParameterisation::DicomPatientParameterisation(G4int NoVoxels, G4double maxDensity, G4double minDensity , G4Material* lunginhale, @@ -57,264 +56,306 @@ DicomPatientParameterisation::DicomPatientParameterisation(G4int, // NoVoxels, G4Material* muscle, G4Material* liver, G4Material* denseBone, - G4Material* trabecularBone) -{ - lungExhale = lungexhale; - lungInhale = lunginhale; - adiposeTissue = adipose; - breastTissue = breast; - phantomTissue = phantom; - muscleTissue = muscle; - liverTissue = liver; - denseBoneTissue = denseBone; - trabecularBoneTissue = trabecularBone; + G4Material* trabecularBone) { + + lungExhale = lungexhale; + lungInhale = lunginhale; + adiposeTissue = adipose; + breastTissue = breast; + phantomTissue = phantom; + muscleTissue = muscle; + liverTissue = liver; + denseBoneTissue = denseBone; + trabecularBoneTissue = trabecularBone; - DicomConfiguration* dicomConfiguration = new DicomConfiguration; - dicomConfiguration->ReadDataFile(); - // images must have the same dimension - G4int totalNumberOfFile = dicomConfiguration -> GetTotalNumberOfFile(); + density.clear(); + + DicomConfiguration dicomConfiguration; + + // images must have the same dimension + G4int totalNumberOfFile = dicomConfiguration.GetTotalNumberOfFile(); - for ( G4int i = 0; i < totalNumberOfFile; i++) - { - dicomConfiguration->ReadG4File( dicomConfiguration->GetListOfFile()[i] ); - G4double sliceLocation = dicomConfiguration->GetSliceLocation(); - middleLocationValue = middleLocationValue + sliceLocation; + G4double maxsl = -999. , minsl = 999.; + for( G4int i = 0; i < totalNumberOfFile; i++) { + G4double sliceLocation = dicomConfiguration.GetSliceLocation()[i]; + if(sliceLocation > maxsl) maxsl = sliceLocation; + if(sliceLocation < minsl) minsl = sliceLocation; } + middleLocationValue = (maxsl + minsl)*0.5; + + // + readColorChart(); + + + G4double alpha; + + attributeLungINhale = new G4VisAttributes; + attributeLungINhale->SetColour(getChartColor(ColorChart::CRED, 0.217), + getChartColor(ColorChart::CGREEN, 0.217), + getChartColor(ColorChart::CBLUE, 0.217), + alpha=1.); + attributeLungINhale->SetForceSolid(true); + + attributeLungEXhale = new G4VisAttributes; + attributeLungEXhale->SetColour(getChartColor(ColorChart::CRED, 0.508), + getChartColor(ColorChart::CGREEN, 0.508), + getChartColor(ColorChart::CBLUE, 0.508), + alpha=1.); + attributeLungEXhale->SetForceSolid(true); + + attributeAdipose = new G4VisAttributes; + attributeAdipose->SetColour(getChartColor(ColorChart::CRED, 0.967), + getChartColor(ColorChart::CGREEN, 0.967), + getChartColor(ColorChart::CBLUE, 0.967), + alpha=1.); + attributeAdipose->SetForceSolid(true); + + attributeBreast = new G4VisAttributes; + attributeBreast->SetColour(getChartColor(ColorChart::CRED, 0.99), + getChartColor(ColorChart::CGREEN, 0.99), + getChartColor(ColorChart::CBLUE, 0.99), + alpha=1.); + attributeBreast->SetForceSolid(true); + + attributePhantom = new G4VisAttributes; + attributePhantom->SetColour(getChartColor(ColorChart::CRED, 1.018), + getChartColor(ColorChart::CGREEN, 1.018), + getChartColor(ColorChart::CBLUE, 1.018), + alpha=1.); + attributePhantom->SetForceSolid(true); + + attributeMuscle = new G4VisAttributes; + attributeMuscle->SetColour(getChartColor(ColorChart::CRED, 1.061), + getChartColor(ColorChart::CGREEN, 1.061), + getChartColor(ColorChart::CBLUE, 1.061), + alpha=1.); + attributeMuscle->SetForceSolid(true); + + + attributeLiver = new G4VisAttributes; + attributeLiver->SetColour(getChartColor(ColorChart::CRED, 1.071), + getChartColor(ColorChart::CGREEN, 1.071), + getChartColor(ColorChart::CBLUE, 1.071), + alpha=1.); + attributeLiver->SetForceSolid(true); + + attributeTrabecularBone = new G4VisAttributes; + attributeTrabecularBone->SetColour(getChartColor(ColorChart::CRED, 1.159), + getChartColor(ColorChart::CGREEN, 1.159), + getChartColor(ColorChart::CBLUE, 1.159), + alpha=1.); + attributeTrabecularBone->SetForceSolid(true); + + attributeDenseBone = new G4VisAttributes; + attributeDenseBone->SetColour(getChartColor(ColorChart::CRED, 1.575), + getChartColor(ColorChart::CGREEN, 1.575), + getChartColor(ColorChart::CBLUE, 1.575), + alpha=1.); + attributeDenseBone->SetForceSolid(true); + + attributeAir = new G4VisAttributes; + attributeAir->SetColour(getChartColor(ColorChart::CRED, 1.), + getChartColor(ColorChart::CGREEN, 1.), + getChartColor(ColorChart::CBLUE, 1.), + alpha=1.); + attributeAir->SetForceSolid(false); - delete dicomConfiguration; - middleLocationValue = middleLocationValue/totalNumberOfFile; - - G4double red; - G4double green; - G4double blue; - G4double alpha; - - attributeLungINhale = new G4VisAttributes; - attributeLungINhale->SetColour(red=0.217/2,green=0.217/2,blue=0.217/2,alpha=1.); - attributeLungINhale->SetForceSolid(true); + rows = dicomConfiguration.GetTotalRows(); + columns = dicomConfiguration.GetTotalColumns(); + compression = dicomConfiguration.GetCompressionValue(); + max = dicomConfiguration.GetTotalNumberOfFile(); + pixelSpacingX = dicomConfiguration.GetXPixelSpacing(); + pixelSpacingY = dicomConfiguration.GetYPixelSpacing(); + sliceThickness = dicomConfiguration.GetSliceThickness(); - attributeLungEXhale = new G4VisAttributes; - attributeLungEXhale->SetColour(red=0.508/2,green=0.508/2,blue=0.508/2,alpha=1.); - attributeLungEXhale->SetForceSolid(true); + GetDensity( maxDensity , minDensity ); - attributeAdipose = new G4VisAttributes; - attributeAdipose->SetColour(red=0.967/2,green=0.967/2,blue=0.967/2,alpha=1.); - attributeAdipose->SetForceSolid(true); - - attributeBreast = new G4VisAttributes; - attributeBreast->SetColour(red=0.99/2,green=0.99/2,blue=0.99/2,alpha=1.); - attributeBreast->SetForceSolid(true); - - attributePhantom = new G4VisAttributes; - attributePhantom->SetColour(red=1.018/2,green=1.018/2,blue=1.018/2,alpha=1.); - attributePhantom->SetForceSolid(true); - - attributeMuscle = new G4VisAttributes; - attributeMuscle->SetColour(red=1.061/2,green=1.061/2,blue=1.061/2,alpha=1.); - attributeMuscle->SetForceSolid(true); - - - attributeLiver = new G4VisAttributes; - attributeLiver->SetColour(red=1.071/2,green=1.071/2,blue=1.071/2,alpha=1.); - attributeLiver->SetForceSolid(true); - - attributeTrabecularBone = new G4VisAttributes; - attributeTrabecularBone->SetColour(red=1.159/2,green=1.159/2,blue=1.159/2,alpha=1.); - attributeTrabecularBone->SetForceSolid(true); - - attributeDenseBone = new G4VisAttributes; - attributeDenseBone->SetColour(red=1.575/2,green=1.575/2,blue=1.575/2,alpha=1.); - attributeDenseBone->SetForceSolid(true); - - attributeAir = new G4VisAttributes; - attributeAir->SetColour(red=0,green=0,blue=1,alpha=1.); - attributeAir->SetForceSolid(false); - - char name[300]; - char maxBuf[300]; - char rowsBuf[300]; - char columnsBuf[300]; - char pixelSpacingXBuf[300]; - char pixelSpacingYBuf[300]; - char sliceThicknessBuf[300]; - char sliceLocationBuf[300]; - char compressionBuf[300]; - char fullFileName[300]; - readData = std::fopen("Data.dat","r"); - std::fscanf(readData,"%s",compressionBuf); - compression = atoi(compressionBuf); - std::fscanf(readData,"%s",maxBuf); - max = atoi(maxBuf); - std::fscanf(readData,"%s",name); - std::fclose(readData); - - std::sprintf(fullFileName,"%s.g4",name); - readData = std::fopen(fullFileName,"r"); - - std::fscanf(readData,"%s %s",rowsBuf,columnsBuf); - rows = atoi(rowsBuf); - columns = atoi(columnsBuf); - std::fscanf(readData,"%s %s",pixelSpacingXBuf,pixelSpacingYBuf); - pixelSpacingX = atof(pixelSpacingXBuf); - pixelSpacingY = atof(pixelSpacingYBuf); - std::fscanf(readData,"%s",sliceThicknessBuf); - sliceThickness = atoi(sliceThicknessBuf); - std::fscanf(readData,"%s",sliceLocationBuf); - sliceLocation = atof(sliceLocationBuf); - std::fscanf(readData,"%s",compressionBuf); - compression = atoi(compressionBuf); - - GetDensity( maxDensity , minDensity ); + dicomConfiguration.ClearDensityData(); } -DicomPatientParameterisation::~DicomPatientParameterisation() -{ - // visualisation attributes ... - delete attributeAdipose; - delete attributeLungEXhale; - delete attributeBreast; - delete attributePhantom; - delete attributeMuscle; - delete attributeLiver; - delete attributeTrabecularBone; - delete attributeLungINhale; - delete attributeDenseBone; - delete attributeAir; +DicomPatientParameterisation::~DicomPatientParameterisation() { + + // visualisation attributes ... + delete attributeAdipose; + delete attributeLungEXhale; + delete attributeBreast; + delete attributePhantom; + delete attributeMuscle; + delete attributeLiver; + delete attributeTrabecularBone; + delete attributeLungINhale; + delete attributeDenseBone; + delete attributeAir; - // materials ... - delete trabecularBoneTissue; - delete denseBoneTissue; - delete liverTissue; - delete muscleTissue; - delete phantomTissue; - delete breastTissue; - delete adiposeTissue; - delete lungInhale; - delete lungExhale; + // materials ... + delete trabecularBoneTissue; + delete denseBoneTissue; + delete liverTissue; + delete muscleTissue; + + delete breastTissue; + delete adiposeTissue; + delete lungInhale; + delete lungExhale; + } void DicomPatientParameterisation::ComputeTransformation(const G4int copyNo, G4VPhysicalVolume* physVol) const { - G4double originZ = patientPlacementZ[copyNo]*mm-middleLocationValue*mm-sliceThickness/2; - G4ThreeVector origin( patientPlacementX[copyNo]*mm, - patientPlacementY[copyNo]*mm, - originZ*mm ); + G4double originZ = patientPlacementZ[copyNo]*mm-middleLocationValue*mm-sliceThickness/2; + G4ThreeVector origin( patientPlacementX[copyNo]*mm, + patientPlacementY[copyNo]*mm, + originZ*mm ); - physVol->SetTranslation(origin); + physVol->SetTranslation(origin); } -void DicomPatientParameterisation::ComputeDimension(G4Box& voxels, const G4int, const G4VPhysicalVolume*) const +void DicomPatientParameterisation::ComputeDimensions(G4Box& voxels, const G4int, const G4VPhysicalVolume*) const { - voxels.SetXHalfLength((pixelSpacingX * compression/2.0) * mm); - voxels.SetYHalfLength((pixelSpacingY * compression/2.0) * mm); - voxels.SetZHalfLength((sliceThickness / 2.0) * mm); + voxels.SetXHalfLength((pixelSpacingX * compression/2.0) * mm); + voxels.SetYHalfLength((pixelSpacingY * compression/2.0) * mm); + voxels.SetZHalfLength((sliceThickness / 2.0) * mm); } -G4Material* DicomPatientParameterisation::ComputeMaterial(const G4int copyNo,G4VPhysicalVolume* physVol) -{ - if ( density[copyNo] >= 0.207 && density[copyNo] <= 0.227 ) - { - physVol->SetName("PhysicalLungINhale"); - physVol->GetLogicalVolume()->SetVisAttributes( attributeLungINhale ); - return lungInhale; - } - else if ( density[copyNo] >= 0.481 && density[copyNo] <= 0.534 ) - { - physVol->SetName("PhysicalLungEXhale"); - physVol->GetLogicalVolume()->SetVisAttributes( attributeLungEXhale ); - return lungExhale; - } - else if ( density[copyNo] >= 0.919 && density[copyNo] <= 0.979 ) - { - physVol->SetName("PhysicalAdipose"); - physVol->GetLogicalVolume()->SetVisAttributes( attributeAdipose ); - return adiposeTissue; - } - else if ( density[copyNo] > 0.979 && density[copyNo] <= 1.004 ) - { - physVol->SetName("PhysicalBreast"); - physVol->GetLogicalVolume()->SetVisAttributes( attributeBreast ); - return breastTissue; - } - else if ( density[copyNo] > 1.004 && density[copyNo] <= 1.043 ) - { - physVol->SetName("PhysicalPhantom"); - physVol->GetLogicalVolume()->SetVisAttributes( attributePhantom ); - return phantomTissue; - } - else if ( density[copyNo] > 1.043 && density[copyNo] <= 1.109 ) - { - physVol->SetName("PhysicalMuscle"); - physVol->GetLogicalVolume()->SetVisAttributes( attributeMuscle ); - return muscleTissue; - } - else if ( density[copyNo] > 1.109 && density[copyNo] <= 1.113 ) - { - physVol->SetName("PhysicalLiver"); - physVol->GetLogicalVolume()->SetVisAttributes( attributeLiver ); - return liverTissue; - } - else if ( density[copyNo] > 1.113 && density[copyNo] <= 1.217 ) - { - physVol->SetName("PhysicalTrabecularBone"); - physVol->GetLogicalVolume()->SetVisAttributes( attributeTrabecularBone ); - return trabecularBoneTissue; - } - else if ( density[copyNo] > 1.496 && density[copyNo] <= 1.654 ) - { - physVol->SetName("PhysicalDenseBone"); - physVol->GetLogicalVolume()->SetVisAttributes( attributeDenseBone ); - return denseBoneTissue; +G4Material* DicomPatientParameterisation::ComputeMaterial(const G4int copyNo,G4VPhysicalVolume* physVol) { + + if( density[copyNo] >= 0.207 && density[copyNo] <= 0.227 ) { + physVol->SetName("PhysicalLungINhale"); + physVol->GetLogicalVolume()->SetVisAttributes( attributeLungINhale ); + return lungInhale; + + } else if( density[copyNo] >= 0.481 && density[copyNo] <= 0.534 ) { + physVol->SetName("PhysicalLungEXhale"); + physVol->GetLogicalVolume()->SetVisAttributes( attributeLungEXhale ); + return lungExhale; + + } else if( density[copyNo] >= 0.919 && density[copyNo] <= 0.979 ) { + physVol->SetName("PhysicalAdipose"); + physVol->GetLogicalVolume()->SetVisAttributes( attributeAdipose ); + return adiposeTissue; + + } else if( density[copyNo] > 0.979 && density[copyNo] <= 1.004 ) { + physVol->SetName("PhysicalBreast"); + physVol->GetLogicalVolume()->SetVisAttributes( attributeBreast ); + return breastTissue; + + } else if( density[copyNo] > 1.004 && density[copyNo] <= 1.043 ) { + physVol->SetName("PhysicalPhantom"); + physVol->GetLogicalVolume()->SetVisAttributes( attributePhantom ); + return phantomTissue; + + } else if( density[copyNo] > 1.043 && density[copyNo] <= 1.109 ) { + physVol->SetName("PhysicalMuscle"); + physVol->GetLogicalVolume()->SetVisAttributes( attributeMuscle ); + return muscleTissue; + + } else if( density[copyNo] > 1.109 && density[copyNo] <= 1.113 ) { + physVol->SetName("PhysicalLiver"); + physVol->GetLogicalVolume()->SetVisAttributes( attributeLiver ); + return liverTissue; + + } else if( density[copyNo] > 1.113 && density[copyNo] <= 1.217 ) { + physVol->SetName("PhysicalTrabecularBone"); + physVol->GetLogicalVolume()->SetVisAttributes( attributeTrabecularBone ); + return trabecularBoneTissue; + + } else if( density[copyNo] > 1.496 && density[copyNo] <= 1.654 ) { + physVol->SetName("PhysicalDenseBone"); + physVol->GetLogicalVolume()->SetVisAttributes( attributeDenseBone ); + return denseBoneTissue; + } - return physVol->GetLogicalVolume()->GetMaterial(); + return physVol->GetLogicalVolume()->GetMaterial(); } -void DicomPatientParameterisation::GetDensity(G4double maxdensity, G4double mindensity) -{ - DicomConfiguration* dicomConfiguration = new DicomConfiguration; - dicomConfiguration->ReadDataFile(); +void DicomPatientParameterisation::GetDensity(G4double maxdensity, G4double mindensity) { - G4int copyCounter = 0; - G4int totalNumberOfFile = dicomConfiguration->GetTotalNumberOfFile(); - for ( G4int z = 0; z < totalNumberOfFile; z++ ) - { - dicomConfiguration->ReadG4File( dicomConfiguration->GetListOfFile()[z] ); - G4int compressionValue = dicomConfiguration->GetCompressionValue(); - G4int lenRows = std::abs(rows/compressionValue); - G4int lenColumns=std::abs(columns/compressionValue); + DicomConfiguration dicomConfiguration; + + G4int copyCounter = 0; - G4int i = 0; - for ( G4int j = 1; j <= lenRows; j++ ) - { - for ( G4int w = 1; w <= lenColumns; w++ ) - { - i++; - G4double tissueDensity = dicomConfiguration->GetDensityValue(i); - if ( tissueDensity != -1 ) - { - if ( tissueDensity >= mindensity && tissueDensity <= maxdensity ) - { - density.push_back( tissueDensity ); - copyCounter++; - G4int isCompressionUsed = dicomConfiguration->IsCompressionUsed(); - G4double xPixelSpacing = dicomConfiguration->GetXPixelSpacing(); - G4double yPixelSpacing = dicomConfiguration->GetYPixelSpacing(); - G4double slicePosition = dicomConfiguration->GetSliceLocation(); - G4double sliceThick = dicomConfiguration->GetSliceThickness(); - G4double xDimension = (lenColumns*xPixelSpacing)/2; - G4double yPixel = (yPixelSpacing/2+(w-1)*yPixelSpacing); - G4double yDimension = ((lenRows*xPixelSpacing)/2)-(yPixelSpacing/2+(j-1)*yPixelSpacing); + G4int totalNumberOfFile = dicomConfiguration.GetTotalNumberOfFile(); + + G4int lenRows = rows/compression; + G4int lenColumns = columns/compression; + G4double xDimension = (lenColumns*pixelSpacingX)/2; + + G4int i = 0; + for( G4int z = 0; z < totalNumberOfFile; z++ ) { + + G4double slicePosition = dicomConfiguration.GetSliceLocation()[z]; + + for( G4int j = 1; j <= lenRows; j++ ) { + for( G4int w = 1; w <= lenColumns; w++ ) { + + G4double tissueDensity = dicomConfiguration.GetDensityValue(i++); + + if( tissueDensity != -1 ) { + if( tissueDensity >= mindensity && tissueDensity <= maxdensity ) { + + density.push_back( tissueDensity ); + copyCounter++; + G4double yPixel = (pixelSpacingY/2 + (w-1)*pixelSpacingY); + G4double yDimension = ((lenRows*pixelSpacingX)/2)-(pixelSpacingY/2+(j-1)*pixelSpacingY); - patientPlacementX.push_back( ( isCompressionUsed*(xDimension- yPixel ) ) *mm ); - patientPlacementY.push_back( ( isCompressionUsed* yDimension ) *mm ); - patientPlacementZ.push_back( ( slicePosition + sliceThick/2 ) *mm ); - } - } - } - } + patientPlacementX.push_back( ( compression*(xDimension- yPixel ) ) *mm ); + patientPlacementY.push_back( ( compression* yDimension ) *mm ); + patientPlacementZ.push_back( ( slicePosition + sliceThickness/2 ) *mm ); + } + } + } + } } - delete dicomConfiguration; + } +void DicomPatientParameterisation::readColorChart() { + std::ifstream cm("Colormap.dat"); + if(!cm) { + G4cerr << "Colormap.dat couldn't be opened!!" << G4endl; + numColorChart = 2; + ColorChart cc; + cc.density = 0.; + cc.color[ColorChart::CRED] = 0.; + cc.color[ColorChart::CGREEN] = 0.; + cc.color[ColorChart::CBLUE] = 0.; + cc.alpha = 1.; + colorChart.push_back(cc); + cc.density = 4.; + cc.color[ColorChart::CRED] = 1.; + cc.color[ColorChart::CGREEN] = 1.; + cc.color[ColorChart::CBLUE] = 1.; + cc.alpha = 1.; + colorChart.push_back(cc); + return; + } + + cm >> numColorChart; + ColorChart cc; + for(int i = 0; i < numColorChart; i++) { + cm >> cc.density + >> cc.color[ColorChart::CRED] + >> cc.color[ColorChart::CGREEN] + >> cc.color[ColorChart::CBLUE] + >> cc.alpha; + colorChart.push_back(cc); + } + +} + +G4double DicomPatientParameterisation::getChartColor(G4int CC, G4double density) { + G4double color = 0.; + + for(int i = 0; i < numColorChart; i++) { + if(density <= colorChart[i].density) { + + G4double w = (density - colorChart[i-1].density) + /(colorChart[i].density - colorChart[i-1].density); + color = w*colorChart[i-1].color[CC] + (1-w)*colorChart[i].color[CC]; + return color; + } + } + return color; +} diff --git a/examples/extended/medical/DICOM/src/DicomPhysicsList.cc b/examples/extended/medical/DICOM/src/DicomPhysicsList.cc index e8fe4f3f6c..c540c53448 100644 --- a/examples/extended/medical/DICOM/src/DicomPhysicsList.cc +++ b/examples/extended/medical/DICOM/src/DicomPhysicsList.cc @@ -180,7 +180,6 @@ void DicomPhysicsList::SetCuts() SetCutValue(cutForElectron, "e-"); SetCutValue(cutForPositron, "e+"); - SetCutValueForOthers(defaultCutValue); if (verboseLevel>0) DumpCutValuesTable(); diff --git a/examples/extended/medical/DICOM/src/DicomVisManager.cc b/examples/extended/medical/DICOM/src/DicomVisManager.cc deleted file mode 100644 index 06922bc395..0000000000 --- a/examples/extended/medical/DICOM/src/DicomVisManager.cc +++ /dev/null @@ -1,150 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// The code was written by : -// *Louis Archambault louis.archambault@phy.ulaval.ca, -// *Luc Beaulieu beaulieu@phy.ulaval.ca -// +Vincent Hubert-Tremblay at tigre.2@sympatico.ca -// -// -// *Centre Hospitalier Universitaire de Quebec (CHUQ), -// Hotel-Dieu de Quebec, departement de Radio-oncologie -// 11 cote du palais. Quebec, QC, Canada, G1R 2J6 -// tel (418) 525-4444 #6720 -// fax (418) 691 5268 -// -// + Université Laval, Québec (QC) Canada -//******************************************************* - -#ifdef G4VIS_USE - -#include "DicomVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -DicomVisManager::DicomVisManager () -{} - - -void DicomVisManager::RegisterGraphicsSystems () -{ - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) - { - G4cout << "\nYou have successfully chosen to use the following graphics systems." << G4endl; - PrintAvailableGraphicsSystems (); - } -} -#endif - - - - diff --git a/examples/extended/medical/GammaTherapy/GammaTherapy.cc b/examples/extended/medical/GammaTherapy/GammaTherapy.cc old mode 100755 new mode 100644 index af6a26bf1a..3633b8d754 --- a/examples/extended/medical/GammaTherapy/GammaTherapy.cc +++ b/examples/extended/medical/GammaTherapy/GammaTherapy.cc @@ -41,7 +41,7 @@ #include "G4UItcsh.hh" #include "Randomize.hh" -#include "VisManager.hh" +#include "G4VisExecutive.hh" #include "DetectorConstruction.hh" #include "PhysicsList.hh" @@ -77,7 +77,7 @@ int main(int argc,char** argv) { runManager->SetUserInitialization(new PhysicsList()); // visualization manager - G4VisManager* visManager = new VisManager(); + G4VisManager* visManager = new G4VisExecutive(); visManager->Initialize(); // set user action classes diff --git a/examples/extended/medical/GammaTherapy/GammaTherapy.in b/examples/extended/medical/GammaTherapy/GammaTherapy.in old mode 100755 new mode 100644 index be31c6d0b7..9615458ef1 --- a/examples/extended/medical/GammaTherapy/GammaTherapy.in +++ b/examples/extended/medical/GammaTherapy/GammaTherapy.in @@ -17,8 +17,8 @@ #/testem/phys/addPhysics penelope #/testem/phys/addPhysics lowenergy # -/testem/target1Material Be -/testem/target2Material W +/testem/target1Material G4_Be +/testem/target2Material G4_W /testem/target1Z 9 mm /testem/target2Z 6 mm # diff --git a/examples/extended/medical/GammaTherapy/GammaTherapy.out b/examples/extended/medical/GammaTherapy/GammaTherapy.out index 55ae42698a..60d05c0f18 100644 --- a/examples/extended/medical/GammaTherapy/GammaTherapy.out +++ b/examples/extended/medical/GammaTherapy/GammaTherapy.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -11,96 +11,96 @@ G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 7 ***** Table : Nb of materials = 25 ***** Material: Be density: 1.848 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 35.267 cm - ---> Element: Be Z = 4.0 N = 9.0 A = 9.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Be ( ) Z = 4.0 N = 9.0 A = 9.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: W density: 19.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.495 mm - ---> Element: W Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: W ( ) Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Cu density: 8.960 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.436 cm - ---> Element: Cu Z = 29.0 N = 63.5 A = 63.55 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Cu ( ) Z = 29.0 N = 63.5 A = 63.55 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: He density: 0.178 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.299 km - ---> Element: He Z = 2.0 N = 4.0 A = 4.00 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: He ( ) Z = 2.0 N = 4.0 A = 4.00 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Aluminum density: 2.699 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.896 cm - ---> Element: Aluminum Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Aluminum ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Carbon density: 2.265 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.851 cm - ---> Element: Carbon Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Carbon ( ) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm - ---> Element: Silicon Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: LiquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: LiquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: LiquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: LiquidXenon density: 3.020 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.808 cm - ---> Element: LiquidXenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: LiquidXenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Iron density: 7.874 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.758 cm - ---> Element: Iron Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Germanium density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm - ---> Element: Germanium Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Germanium ( ) Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Gold density: 19.320 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.344 mm - ---> Element: Gold Z = 79.0 N = 197.0 A = 196.97 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Gold ( ) Z = 79.0 N = 197.0 A = 196.97 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm - ---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Water H_2O density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.096 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole ---> Isotope: Hydrogen Z = 1 N = 1 A = 1.01 g/mole abundance: 99.90 % ---> Isotope: Deuterium Z = 1 N = 2 A = 2.01 g/mole abundance: 0.10 % fractionMass: 11.22 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.78 % Abundance 33.33 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.78 % Abundance 33.33 % Material: Methane CH_4 density: 0.667 kg/m3 temperature: 273.15 K pressure: 1.00 atm RadLength: 696.496 m - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole ---> Isotope: Hydrogen Z = 1 N = 1 A = 1.01 g/mole abundance: 99.90 % ---> Isotope: Deuterium Z = 1 N = 2 A = 2.01 g/mole abundance: 0.10 % fractionMass: 25.21 % Abundance 80.00 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 74.79 % Abundance 20.00 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 74.79 % Abundance 20.00 % Material: Graphite Graphite density: 2.265 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.834 cm - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: GaAs GaAS density: 5.318 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.293 cm - ---> Element: Gallium Ga Z = 31.0 N = 69.7 A = 69.72 g/mole fractionMass: 48.20 % Abundance 50.00 % - ---> Element: Arsenicum As Z = 33.0 N = 74.9 A = 74.92 g/mole fractionMass: 51.80 % Abundance 50.00 % + ---> Element: Gallium (Ga) Z = 31.0 N = 69.7 A = 69.72 g/mole fractionMass: 48.20 % Abundance 50.00 % + ---> Element: Arsenicum (As) Z = 33.0 N = 74.9 A = 74.92 g/mole fractionMass: 51.80 % Abundance 50.00 % Material: Ethane C_2H_6 density: 424.100 kg/m3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.077 m - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole ---> Isotope: Hydrogen Z = 1 N = 1 A = 1.01 g/mole abundance: 99.90 % ---> Isotope: Deuterium Z = 1 N = 2 A = 2.01 g/mole abundance: 0.10 % fractionMass: 20.18 % Abundance 75.00 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 79.82 % Abundance 25.00 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 79.82 % Abundance 25.00 % Material: CsI CsI density: 4.510 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.860 cm - ---> Element: Cesium Cs Z = 55.0 N = 132.9 A = 132.91 g/mole fractionMass: 51.15 % Abundance 50.00 % - ---> Element: Iodide I Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 48.85 % Abundance 50.00 % + ---> Element: Cesium (Cs) Z = 55.0 N = 132.9 A = 132.91 g/mole fractionMass: 51.15 % Abundance 50.00 % + ---> Element: Iodide (I) Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 48.85 % Abundance 50.00 % Material: N2 density: 1.251 kg/m3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.846 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: O2 density: 1.429 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 239.621 m - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Argon density: 1.784 kg/m3 temperature: 273.15 K pressure: 1.00 atm RadLength: 109.604 m - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Air density: 1.293 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 283.293 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % Material: Mylar density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.870 cm - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 55.00 % Abundance 30.30 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 55.00 % Abundance 30.30 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole ---> Isotope: Hydrogen Z = 1 N = 1 A = 1.01 g/mole abundance: 99.90 % ---> Isotope: Deuterium Z = 1 N = 2 A = 2.01 g/mole abundance: 0.10 % fractionMass: 8.34 % Abundance 54.55 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 36.66 % Abundance 15.15 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 36.66 % Abundance 15.15 % Material: Vacuum density: 0.000 kg/m3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204727576.737 pc - ---> Element: Vacuum Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Vacuum ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Visualization Manager instantiating... @@ -113,8 +113,8 @@ Current available graphics systems are: FukuiRenderer (DAWN) OpenGLImmediateX (OGLIX) OpenGLStoredX (OGLSX) - OpenGLImmediateXm (OGLIXm) - OpenGLStoredXm (OGLSXm) + VRML1 (VRML1) + VRML2 (VRML2) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) PrimaryGeneratorMessenger: Construct @@ -125,9 +125,11 @@ UI interface is started /testem/verbose 0 # /testem/phys/setCuts 0.1 mm +#/testem/stepMax 1.0 mm +/process/eLoss/StepFunction 0.2 1. mm # /testem/phys/addPhysics standard -PhysicsList::AddPhysicsList: +PhysicsList::AddPhysicsList #/testem/phys/addPhysics g4v52 #/testem/phys/addPhysics penelope #/testem/phys/addPhysics lowenergy @@ -144,34 +146,32 @@ New target2 material W /gun/particle e- /gun/energy 50.0 MeV # -/process/eLoss/StepFunction 0.2 1. mm /run/initialize =================================================== # IBREM geometry # =================================================== - World width= 729 mm - Window width= 0.05 mm position = -607.525 mm: - TargetV width= 45.001 mm position = -585 mm: + World width= 747 mm + Window width= 0.05 mm position = -622.525 mm: + TargetV width= 45.001 mm position = -600 mm: Target1 width= 9 mm position = 11.9995 mm: Target2 width= 6 mm position = 19.4995 mm: - Gas width= 675 mm position = -224.999 mm: - Mylar width= 0.02 mm position = 112.512 mm: - Check width= 0.1 mm position = 312.551 mm: + Gas width= 705 mm position = -224.999 mm: + Mylar width= 0.02 mm position = 127.512 mm: + Check width= 0.1 mm position = 327.551 mm: Air width= 210 mm - Phantom width= 300 mm position = 472.501 mm: - Absorb width= 5 mm position = -47.5 mm: - Absorb shift= 322.501 mm + Phantom width= 300 mm position = 487.501 mm: + Absorb width= 5 mm position = -77.5 mm: + Absorb shift= 337.501 mm Target1 Be Target2 W Phantom Water =================================================== Phantom R= 200 dz= 150 -Absorber R= 200 dz= 2.5 posZ= -47.5 +Absorber R= 200 dz= 2.5 posZ= -77.5 phot: Total cross sections from Sandia parametrisation. -PhysicsList::SetCuts:CutLength : 1 mm -/testem/stepMax 2.0 mm /run/beamOn 10000 +G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. @@ -182,78 +182,23 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 GeV in 90 bins. Boundary algorithm is active with facrange= 0.199 -eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - annihil: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 GeV in 90 bins. Boundary algorithm is active with facrange= 0.199 -hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 - msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 GeV in 90 bins. Boundary algorithm is active with facrange= 0.199 -MuIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -MuBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -MuPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model -### All dEdx and Range tables are built ##### - -MuIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 GeV in 90 bins. Boundary algorithm is active with facrange= 0.199 ========= Table of registered couples ============================== @@ -307,27 +252,27 @@ Index : 5 used in the geometry : Yes recalculation needed : No 80 bins R stepR= 2.5 mm 60 bins Z stepZ= 5 mm 200 bins E stepE= 0.25 MeV - 20th bin in Z is used for R distribution + 14th bin in Z is used for R distribution Start Run processing. Run terminated. Run Summary Number of events processed : 10000 - User=32.36s Real=32.55s Sys=0.02s + User=25.09s Real=25.08s Sys=0s RunAction: End of run actions are started Histo: End of run actions are started ======================================================== -Number of events 10000 -Average number of e- 33.87 -Average number of gamma 21.39 -Average number of e+ 0.7928 +Number of events 10000 +Average number of e- 35.61 +Average number of gamma 21.68 +Average number of e+ 0.7863 Average number of neutrons 0 -Average number of steps in absorber 54.2 -Average number of e- steps in target 25.09 -Average number of g produced in the target 20.63 -Average number of e- produced in the target 22.71 -Average number of g produced in the phantom 0.4743 -Average number of e- produced in the phantom 6.324 -Total gamma fluence in front of phantom 9.011 MeV +Average number of steps in absorber 55.12 +Average number of e- steps in target 21.8 +Average number of g produced in the target 20.7 +Average number of e- produced in the target 22.79 +Average number of g produced in the phantom 0.5726 +Average number of e- produced in the phantom 6.402 +Total gamma fluence in front of phantom 8.626 MeV ======================================================== diff --git a/examples/extended/medical/GammaTherapy/History b/examples/extended/medical/GammaTherapy/History index 998c85a5d2..fddbdd470f 100644 --- a/examples/extended/medical/GammaTherapy/History +++ b/examples/extended/medical/GammaTherapy/History @@ -1,4 +1,4 @@ -$Id: History,v 1.8 2004/12/15 12:07:39 vnivanch Exp $ +$Id: History,v 1.15 2005/06/07 13:55:07 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,25 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +7 June 05: V.Ivant (gtherapy-V07-00-04) +- Fix step limiter UI + +6 June 05: V.Ivant (gtherapy-V07-00-03) +- Use "ApplyCuts" option + +31 May 05: V.Ivant (gtherapy-V07-00-02) +- Migrade to NIST materials + +9 May 05: V.Ivant (gtherapy-V07-00-01) +- Remove QED Builder70 + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +14 April 05: V.Ivant (gtherapy-V07-00-00) +- Update QED Builder70 +- Return back killing electrons in the gas volume + 15 Dec 04: V.Ivant (gtherapy-V06-02-07) - Uncomment out the StepFunction in GammaTherapy.in - Uncommnet line in PhysicsList constructor,w hich is needed to diff --git a/examples/extended/medical/GammaTherapy/README b/examples/extended/medical/GammaTherapy/README old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/be.in b/examples/extended/medical/GammaTherapy/be.in old mode 100755 new mode 100644 index dc4c649aec..ee1d7ec233 --- a/examples/extended/medical/GammaTherapy/be.in +++ b/examples/extended/medical/GammaTherapy/be.in @@ -8,25 +8,30 @@ /event/verbose 0 /testem/verbose 0 # -/testem/phys/setCuts 0.1 mm -/testem/stepMax 0.5 mm -/process/eLoss/StepFunction 0.2 1. mm -# /testem/phys/addPhysics standard #/testem/phys/addPhysics g4v52 #/testem/phys/addPhysics modelP #/testem/phys/addPhysics lowenergy +/testem/phys/addPhysics elastic +/testem/phys/addPhysics binary +/testem/phys/addPhysics binary_ion +/testem/phys/addPhysics gamma_nuc # -/testem/target1Material Be -/testem/target2Material He +/testem/target1Material G4_Be +/testem/target2Material G4_He /testem/target1Z 3 mm /testem/target2Z 0.1 mm # -#/testem/histoName be_st.paw +#/testem/histoName be_st_n.paw +# +# +/testem/phys/setCuts 0.1 mm +/process/eLoss/StepFunction 0.2 1. mm # /gun/particle e- /gun/energy 50.0 MeV # /run/initialize -/run/beamOn 1000000 +/testem/stepMax 0.5 mm +/run/beamOn 100000 # diff --git a/examples/extended/medical/GammaTherapy/be_w.in b/examples/extended/medical/GammaTherapy/be_w.in old mode 100755 new mode 100644 index 2ea4c1a3ed..6e698f3e11 --- a/examples/extended/medical/GammaTherapy/be_w.in +++ b/examples/extended/medical/GammaTherapy/be_w.in @@ -9,20 +9,24 @@ /testem/verbose 0 # /testem/phys/setCuts 0.1 mm -/testem/phys/setCuts 1 mm /process/eLoss/StepFunction 0.2 1. mm +/testem/stepMax 0.5 mm # /testem/phys/addPhysics standard #/testem/phys/addPhysics g4v52 #/testem/phys/addPhysics modelP #/testem/phys/addPhysics lowenergy +/testem/phys/addPhysics elastic +/testem/phys/addPhysics binary +/testem/phys/addPhysics binary_ion +/testem/phys/addPhysics gamma_nuc # -/testem/target1Material Be -/testem/target2Material W +/testem/target1Material G4_Be +/testem/target2Material G4_W /testem/target1Z 9 mm /testem/target2Z 6 mm # -#/testem/histoName be_w_st.paw +#/testem/histoName be_w_st_n.paw # /gun/particle e- /gun/energy 50.0 MeV diff --git a/examples/extended/medical/GammaTherapy/cu_w.in b/examples/extended/medical/GammaTherapy/cu_w.in old mode 100755 new mode 100644 index c12fbd17c1..cb1e21c3b6 --- a/examples/extended/medical/GammaTherapy/cu_w.in +++ b/examples/extended/medical/GammaTherapy/cu_w.in @@ -17,8 +17,8 @@ #/testem/phys/addPhysics modelP #/testem/phys/addPhysics lowenergy # -/testem/target1Material W -/testem/target2Material Cu +/testem/target1Material G4_W +/testem/target2Material G4_Cu /testem/target1Z 5.5 mm /testem/target2Z 6.5 mm # diff --git a/examples/extended/medical/GammaTherapy/include/CheckVolumeSD.hh b/examples/extended/medical/GammaTherapy/include/CheckVolumeSD.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/DecaysBuilder.hh b/examples/extended/medical/GammaTherapy/include/DecaysBuilder.hh old mode 100755 new mode 100644 index 3a6a764e92..b179c86d5d --- a/examples/extended/medical/GammaTherapy/include/DecaysBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/DecaysBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/DetectorConstruction.hh b/examples/extended/medical/GammaTherapy/include/DetectorConstruction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/DetectorMessenger.hh b/examples/extended/medical/GammaTherapy/include/DetectorMessenger.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/EmBinaryCascadeBuilder.hh b/examples/extended/medical/GammaTherapy/include/EmBinaryCascadeBuilder.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/EmGammaNucleusBuilder.hh b/examples/extended/medical/GammaTherapy/include/EmGammaNucleusBuilder.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/EmHadronElasticBuilder.hh b/examples/extended/medical/GammaTherapy/include/EmHadronElasticBuilder.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/EmIonBinaryCascadeBuilder.hh b/examples/extended/medical/GammaTherapy/include/EmIonBinaryCascadeBuilder.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/EventAction.hh b/examples/extended/medical/GammaTherapy/include/EventAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/EventActionMessenger.hh b/examples/extended/medical/GammaTherapy/include/EventActionMessenger.hh index 380c21856e..1b8761d336 100644 --- a/examples/extended/medical/GammaTherapy/include/EventActionMessenger.hh +++ b/examples/extended/medical/GammaTherapy/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.1 2004/08/03 16:56:20 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder.hh old mode 100755 new mode 100644 index 8eae1fc2d3..67ef6b4d4f --- a/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder52.hh b/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder52.hh old mode 100755 new mode 100644 index 7c27ab3ca6..ea2fcea364 --- a/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder52.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder.hh old mode 100755 new mode 100644 index 8e6b712e65..c04b32bc25 --- a/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder52.hh b/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder52.hh old mode 100755 new mode 100644 index 36d6e7b518..0bbf23829a --- a/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder52.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder.hh old mode 100755 new mode 100644 index 33d04db0d7..823c0b6c0f --- a/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder52.hh b/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder52.hh old mode 100755 new mode 100644 index 2f5fc1516c..cdb9fcc827 --- a/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder52.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder52.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4LowEnergyQEDBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4LowEnergyQEDBuilder.hh old mode 100755 new mode 100644 index 4317090922..abfa7b4a04 --- a/examples/extended/medical/GammaTherapy/include/G4LowEnergyQEDBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4LowEnergyQEDBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyQEDBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4PenelopeQEDBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4PenelopeQEDBuilder.hh old mode 100755 new mode 100644 index 97e4bb5f23..c0ba7a7050 --- a/examples/extended/medical/GammaTherapy/include/G4PenelopeQEDBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4PenelopeQEDBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4PenelopeQEDBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4StepLimiterBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4StepLimiterBuilder.hh old mode 100755 new mode 100644 index 63ac7249b3..dcad2210a3 --- a/examples/extended/medical/GammaTherapy/include/G4StepLimiterBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4StepLimiterBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4StepLimiterMessenger.hh b/examples/extended/medical/GammaTherapy/include/G4StepLimiterMessenger.hh old mode 100755 new mode 100644 index 2a41085cd4..7d947aa4bc --- a/examples/extended/medical/GammaTherapy/include/G4StepLimiterMessenger.hh +++ b/examples/extended/medical/GammaTherapy/include/G4StepLimiterMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4StepLimiterPerRegion.hh b/examples/extended/medical/GammaTherapy/include/G4StepLimiterPerRegion.hh old mode 100755 new mode 100644 index ba4f15ca5c..99a19a02bb --- a/examples/extended/medical/GammaTherapy/include/G4StepLimiterPerRegion.hh +++ b/examples/extended/medical/GammaTherapy/include/G4StepLimiterPerRegion.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4StepLimiterPerRegion.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4StepLimiterPerRegion.hh,v 1.2 2005/04/14 08:22:46 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -35,6 +35,7 @@ #include "G4Step.hh" class G4StepLimiterMessenger; +class G4VPhysicalVolume; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -68,6 +69,8 @@ private: G4double MaxChargedStep; G4double ProposedStep; + G4VPhysicalVolume* gasVolume; + G4StepLimiterMessenger* pMess; }; diff --git a/examples/extended/medical/GammaTherapy/include/Histo.hh b/examples/extended/medical/GammaTherapy/include/Histo.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/ParticlesBuilder.hh b/examples/extended/medical/GammaTherapy/include/ParticlesBuilder.hh old mode 100755 new mode 100644 index f7d1dd26f3..d75f3435cd --- a/examples/extended/medical/GammaTherapy/include/ParticlesBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/ParticlesBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: ParticlesBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/PhantomSD.hh b/examples/extended/medical/GammaTherapy/include/PhantomSD.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/PhysicsList.hh b/examples/extended/medical/GammaTherapy/include/PhysicsList.hh old mode 100755 new mode 100644 index 97ed52613e..487cfc242a --- a/examples/extended/medical/GammaTherapy/include/PhysicsList.hh +++ b/examples/extended/medical/GammaTherapy/include/PhysicsList.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.hh,v 1.3 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: PhysicsList.hh,v 1.4 2005/06/07 13:55:07 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Modified: // @@ -35,6 +35,7 @@ #include "globals.hh" class PhysicsListMessenger; +class G4StepLimiterBuilder; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -69,6 +70,7 @@ private: G4bool gnucIsRegisted; PhysicsListMessenger* pMessenger; + G4StepLimiterBuilder* steplimiter; }; diff --git a/examples/extended/medical/GammaTherapy/include/PhysicsListMessenger.hh b/examples/extended/medical/GammaTherapy/include/PhysicsListMessenger.hh old mode 100755 new mode 100644 index b4e6f91e19..0250d37ba4 --- a/examples/extended/medical/GammaTherapy/include/PhysicsListMessenger.hh +++ b/examples/extended/medical/GammaTherapy/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.2 2004/11/30 19:51:10 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/PrimaryGeneratorAction.hh b/examples/extended/medical/GammaTherapy/include/PrimaryGeneratorAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/PrimaryGeneratorMessenger.hh b/examples/extended/medical/GammaTherapy/include/PrimaryGeneratorMessenger.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/RunAction.hh b/examples/extended/medical/GammaTherapy/include/RunAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/TargetSD.hh b/examples/extended/medical/GammaTherapy/include/TargetSD.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/TrackingAction.hh b/examples/extended/medical/GammaTherapy/include/TrackingAction.hh old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/include/VisManager.hh b/examples/extended/medical/GammaTherapy/include/VisManager.hh deleted file mode 100755 index 3b2ebc2443..0000000000 --- a/examples/extended/medical/GammaTherapy/include/VisManager.hh +++ /dev/null @@ -1,77 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -#ifndef VisManager_h -#define VisManager_h 1 - -//--------------------------------------------------------------------------- -// -//--------------------------------------------------------------------------- -// -// ClassName: VisManager -// -// Class Description: -// Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. -// So all you have to do is set environment variables and compile and -// instantiate this in your (). -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); -// The run messenger is defined -// Class Description - end -// -// Authors: 08.04.01 V.Ivanchenko take from John Allison Examples -// -// Modified: -// -//---------------------------------------------------------------------------- -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class VisManager: public G4VisManager { - -public: // Without description - - VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#endif diff --git a/examples/extended/medical/GammaTherapy/src/CheckVolumeSD.cc b/examples/extended/medical/GammaTherapy/src/CheckVolumeSD.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/DecaysBuilder.cc b/examples/extended/medical/GammaTherapy/src/DecaysBuilder.cc old mode 100755 new mode 100644 index df5c983302..6aeddb6f67 --- a/examples/extended/medical/GammaTherapy/src/DecaysBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/DecaysBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.cc,v 1.1 2004/12/02 10:34:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/DetectorConstruction.cc b/examples/extended/medical/GammaTherapy/src/DetectorConstruction.cc old mode 100755 new mode 100644 index 9b70f86ca3..1f54e24cf1 --- a/examples/extended/medical/GammaTherapy/src/DetectorConstruction.cc +++ b/examples/extended/medical/GammaTherapy/src/DetectorConstruction.cc @@ -50,13 +50,13 @@ #include "G4Material.hh" #include "G4SDManager.hh" #include "PhantomSD.hh" +#include "G4NistManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" #include "G4RunManager.hh" - #include "G4VisAttributes.hh" #include "G4Colour.hh" @@ -200,198 +200,17 @@ G4VPhysicalVolume* DetectorConstruction::Construct() void DetectorConstruction::DefineMaterials() { - G4String name, symbol; //a=mass of a mole; - G4double a, z, density; //z=mean number of protons; + G4NistManager* man = G4NistManager::Instance(); + man->SetVerbose(0); - G4int iz,n,ncomponents, natoms; - G4double fractionmass; - G4double temperature, pressure; + fTarget1Material = man->FindOrBuildMaterial("G4_Be"); + fWindowMaterial = fTarget1Material; + fTarget2Material = man->FindOrBuildMaterial("G4_W"); + fLightMaterial = man->FindOrBuildMaterial("G4_He"); + fAbsorberMaterial= man->FindOrBuildMaterial("G4_WATER"); + fWorldMaterial = man->FindOrBuildMaterial("G4_AIR"); + fMylar = man->FindOrBuildMaterial("G4_MYLAR"); - // std::vector list; - G4Material* ma = 0; - -// -// define Elements -// - - // a = 1.01*g/mole; - // G4Element* elH = new G4Element(name="Hydrogen",symbol="H", z= 1., a); - - a = 1.01*g/mole; - G4Isotope* ih1 = new G4Isotope("Hydrogen",iz=1,n=1,a); - - a = 2.01*g/mole; - G4Isotope* ih2 = new G4Isotope("Deuterium",iz=1,n=2,a); - - G4Element* elH = new G4Element(name="Hydrogen",symbol="H",2); - elH->AddIsotope(ih1,.999); - elH->AddIsotope(ih2,.001); - - - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen",symbol="N" , z= 7., a); - - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); - - a = 12.00*g/mole; - G4Element* elC = new G4Element(name="Carbon" ,symbol="C" , z= 6., a); - - a = 39.948*g/mole; - G4Element* elAr = new G4Element(name="Argon", symbol="Ar", z=18., a); - - a = 69.723*g/mole; - G4Element* elGa = new G4Element(name="Gallium" ,symbol="Ga" , z= 31., a); - - a = 74.9216*g/mole; - G4Element* elAs = new G4Element(name="Arsenicum" ,symbol="As" , z= 33., a); - - G4Element* Cs = new G4Element ("Cesium" , "Cs", 55. , 132.905*g/mole); - - G4Element* I = new G4Element ("Iodide" , "I", 53. , 126.9044*g/mole); - - -// -// define simple materials -// - density = 1.848*g/cm3; - a = 9.01*g/mole; - ma = new G4Material(name="Be", z=4., a, density); - fTarget1Material = ma; - fWindowMaterial = ma; - - density = 19.35*g/cm3; - a = 183.85*g/mole; - ma = new G4Material(name="W", z=74., a, density); - fTarget2Material = ma; - - density = 8.960*g/cm3; - a = 63.55*g/mole; - ma = new G4Material(name="Cu" , z=29., a, density); - - // Helium as light gas volume - - density = 0.178*mg/cm3 ; - a = 4.0026*g/mole ; - G4Material* He = new G4Material(name="He",z=2., a, density ); - fLightMaterial = He; - - density = 2.699*g/cm3; - a = 26.98*g/mole; - ma = new G4Material(name="Aluminum", z=13., a, density); - - density = 2.265*g/cm3; - a = 12.0107*g/mole; - ma = new G4Material(name="Carbon", z=6., a, density); - - density = 2.330*g/cm3; - a = 28.09*g/mole; - ma = new G4Material(name="Silicon", z=14., a, density); - - density = 1.390*g/cm3; - a = 39.95*g/mole; - ma = new G4Material(name="LiquidArgon", z=18., a, density); - - density = 3.02*g/cm3; - a = 131.29*g/mole; - ma = new G4Material(name="LiquidXenon", z=54., a, density); - - density = 7.874*g/cm3; - a = 55.85*g/mole; - ma = new G4Material(name="Iron" , z=26., a, density); - - density = 5.323*g/cm3; - a = 72.61*g/mole; - ma = new G4Material(name="Germanium", z=32., a, density); - - density = 19.32*g/cm3; - a =196.97*g/mole; - ma = new G4Material(name="Gold" , z=79., a, density); - - density = 11.35*g/cm3; - a = 207.19*g/mole; - ma = new G4Material(name="Lead" , z=82., a, density); - -// -// define a material from elements. case 1: chemical molecule -// - - - density = 1.000*g/cm3; - ma = new G4Material("Water", density, 2); - ma->SetChemicalFormula("H_2O"); - ma->AddElement(elH, natoms=2); - ma->AddElement(elO, natoms=1); - G4double exc = ma->GetIonisation()->FindMeanExcitationEnergy("H_2O"); - ma->GetIonisation()->SetMeanExcitationEnergy(exc); - fAbsorberMaterial = ma; - - density = 0.0006672*g/cm3; - ma = new G4Material("Methane", density, 2); - ma->SetChemicalFormula("CH_4"); - ma->AddElement(elH, natoms=4); - ma->AddElement(elC, natoms=1); - - ma = new G4Material("Graphite", 2.265*g/cm3, 1); - ma->SetChemicalFormula("Graphite"); - ma->AddElement( elC, 1 ); - - density = 5.3176*g/cm3; - ma = new G4Material("GaAs", density, ncomponents=2); - ma->SetChemicalFormula("GaAS"); - ma->AddElement(elGa, natoms=1); - ma->AddElement(elAs, natoms=1); - - ma = new G4Material ("Ethane" , 0.4241*g/cm3, 2); - ma->SetChemicalFormula("C_2H_6"); - ma->AddElement(elH,6); - ma->AddElement(elC,2); - - ma = new G4Material ("CsI" , 4.51*g/cm3, 2); - ma->SetChemicalFormula("CsI"); - ma->AddElement(Cs,1); - ma->AddElement(I,1); - -// -// define a material from elements. case 2: mixture by fractional mass -// - -// Dry air (average composition) - - density = 1.25053*mg/cm3 ; // STP - G4Material* Nitrogen = new G4Material(name="N2" , density, ncomponents=1); - Nitrogen->AddElement(elN, 2); - - density = 1.4289*mg/cm3 ; // STP - G4Material* Oxygen = new G4Material(name="O2" , density, ncomponents=1); - Oxygen->AddElement(elO, 2); - - density = 1.7836*mg/cm3 ; // STP - G4Material* Argon = new G4Material(name="Argon" , density, ncomponents=1); - Argon->AddElement(elAr, 1); - - density = 1.2928*mg/cm3 ; // STP - G4Material* Air = new G4Material(name="Air" , density, ncomponents=3); - Air->AddMaterial( Nitrogen, fractionmass = 0.7557 ) ; - Air->AddMaterial( Oxygen, fractionmass = 0.2315 ) ; - Air->AddMaterial( Argon, fractionmass = 0.0128 ) ; - - fWorldMaterial = Air; - - density = 1.39*g/cm3; - ma = new G4Material("Mylar" , density, ncomponents=3); - ma->AddElement(elC, natoms=10); - ma->AddElement(elH, natoms=18); - ma->AddElement(elO, natoms=5); - fMylar = ma; - - density = universe_mean_density; //from PhysicalConstants.h - pressure = 3.e-18*pascal; - temperature = 2.73*kelvin; - a = 1.01*g/mole; - z = 1.0; - ma = new G4Material("Vacuum", z, a, density, - kStateGas,temperature,pressure); G4cout << *(G4Material::GetMaterialTable()) << G4endl; } @@ -400,17 +219,17 @@ void DetectorConstruction::DefineMaterials() G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() { - // Cleanup old geometry - G4PhysicalVolumeStore::GetInstance()->Clean(); - G4LogicalVolumeStore::GetInstance()->Clean(); - G4SolidStore::GetInstance()->Clean(); + // Cleanup old geometry + G4PhysicalVolumeStore::GetInstance()->Clean(); + G4LogicalVolumeStore::GetInstance()->Clean(); + G4SolidStore::GetInstance()->Clean(); - // - InitialiseGeometryParameters(); + // + InitialiseGeometryParameters(); - // - // World - // + // + // World + // G4VPhysicalVolume* pv; @@ -589,34 +408,37 @@ void DetectorConstruction::UpdateGeometry() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::setTarget1Material(const G4String& materialChoice) +void DetectorConstruction::setTarget1Material(const G4String& mat) { // search the material by its name - G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + G4Material* pttoMaterial = + G4NistManager::Instance()->FindOrBuildMaterial(mat, false); if (pttoMaterial) { fTarget1Material = pttoMaterial; - G4cout << "New target1 material " << materialChoice << G4endl; + G4cout << "New target1 material " << mat << G4endl; if(logicTarget1) logicTarget1->SetMaterial(fTarget1Material); } else - G4cout << "Material " << materialChoice << " is not found out!" << G4endl; + G4cout << "Material " << mat << " is not found out!" << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void DetectorConstruction::setTarget2Material(const G4String& materialChoice) +void DetectorConstruction::setTarget2Material(const G4String& mat) { // search the material by its name - G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + G4Material* pttoMaterial = + G4NistManager::Instance()->FindOrBuildMaterial(mat, false); + if (pttoMaterial) { fTarget2Material = pttoMaterial; - G4cout << "New target2 material " << materialChoice << G4endl; + G4cout << "New target2 material " << mat << G4endl; if(logicTarget2) logicTarget2->SetMaterial(fTarget2Material); } else - G4cout << "Material " << materialChoice << " is not found out!" << G4endl; + G4cout << "Material " << mat << " is not found out!" << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/medical/GammaTherapy/src/DetectorMessenger.cc b/examples/extended/medical/GammaTherapy/src/DetectorMessenger.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/EmBinaryCascadeBuilder.cc b/examples/extended/medical/GammaTherapy/src/EmBinaryCascadeBuilder.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/EmGammaNucleusBuilder.cc b/examples/extended/medical/GammaTherapy/src/EmGammaNucleusBuilder.cc index 325b5420c9..9371b395bd 100644 --- a/examples/extended/medical/GammaTherapy/src/EmGammaNucleusBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/EmGammaNucleusBuilder.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: EmGammaNucleusBuilder.cc,v 1.3 2004/12/15 15:41:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// $Id: EmGammaNucleusBuilder.cc,v 1.5 2005/06/07 13:56:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ #include "EmGammaNucleusBuilder.hh" #include "G4ParticleDefinition.hh" @@ -32,6 +32,7 @@ #include "G4GenericIon.hh" #include "G4PhotoNuclearProcess.hh" #include "G4GammaNuclearReaction.hh" +#include "G4TheoFSGenerator.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -61,8 +62,12 @@ void EmGammaNucleusBuilder::ConstructProcess() G4ParticleDefinition* particle = G4Gamma::Gamma(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4PhotoNuclearProcess* pnp = new G4PhotoNuclearProcess("gNucler"); + G4TheoFSGenerator* tf = new G4TheoFSGenerator(); G4GammaNuclearReaction* gn = new G4GammaNuclearReaction(); - gn->SetMaxEnergy(10.0*GeV); + tf->SetMinEnergy(3.5*GeV); + tf->SetMaxEnergy(100.*TeV); + pnp->RegisterMe(tf); + gn->SetMaxEnergy(3.5*GeV); pnp->RegisterMe(gn); pmanager->AddDiscreteProcess(pnp); } diff --git a/examples/extended/medical/GammaTherapy/src/EmHadronElasticBuilder.cc b/examples/extended/medical/GammaTherapy/src/EmHadronElasticBuilder.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/EmIonBinaryCascadeBuilder.cc b/examples/extended/medical/GammaTherapy/src/EmIonBinaryCascadeBuilder.cc index 6ccb4d685a..169e129ab7 100644 --- a/examples/extended/medical/GammaTherapy/src/EmIonBinaryCascadeBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/EmIonBinaryCascadeBuilder.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmIonBinaryCascadeBuilder.cc,v 1.1 2004/12/02 10:34:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "EmIonBinaryCascadeBuilder.hh" #include "G4ParticleDefinition.hh" diff --git a/examples/extended/medical/GammaTherapy/src/EventAction.cc b/examples/extended/medical/GammaTherapy/src/EventAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/EventActionMessenger.cc b/examples/extended/medical/GammaTherapy/src/EventActionMessenger.cc index 2c7d4470de..e83c868413 100644 --- a/examples/extended/medical/GammaTherapy/src/EventActionMessenger.cc +++ b/examples/extended/medical/GammaTherapy/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.1 2004/08/03 16:56:21 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder.cc old mode 100755 new mode 100644 index 3dab16acea..66ca47f5f4 --- a/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.cc,v 1.1 2004/12/02 10:34:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder52.cc b/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder52.cc old mode 100755 new mode 100644 index 00aee54d1d..94359d4836 --- a/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder52.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder.cc old mode 100755 new mode 100644 index 80553df085..8f6943472f --- a/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder52.cc b/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder52.cc old mode 100755 new mode 100644 index a76944326e..b33525c6a7 --- a/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder52.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder.cc old mode 100755 new mode 100644 index 55246732d4..57a13dca78 --- a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder52.cc b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder52.cc old mode 100755 new mode 100644 index 878b4699b9..6f2ebd0d9b --- a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder52.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder52.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EmQEDBuilder52.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4EmQEDBuilder52.cc,v 1.2 2005/05/09 15:17:47 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // @@ -42,15 +42,15 @@ #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" #include "G4MultipleScattering52.hh" #include "G4eIonisation52.hh" #include "G4eBremsstrahlung52.hh" -#include "G4eplusAnnihilation.hh" +#include "G4eplusAnnihilation52.hh" #include "G4Gamma.hh" #include "G4Electron.hh" @@ -84,9 +84,9 @@ void G4EmQEDBuilder52::ConstructProcess() G4ParticleDefinition* particle = G4Gamma::Gamma(); G4ProcessManager* pmanager = particle->GetProcessManager(); - pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() ); - pmanager->AddDiscreteProcess( new G4ComptonScattering() ); - pmanager->AddDiscreteProcess( new G4GammaConversion() ); + pmanager->AddDiscreteProcess( new G4PhotoElectricEffect52() ); + pmanager->AddDiscreteProcess( new G4ComptonScattering52() ); + pmanager->AddDiscreteProcess( new G4GammaConversion52() ); // Add standard EM Processes for e- particle = G4Electron::Electron(); @@ -103,7 +103,7 @@ void G4EmQEDBuilder52::ConstructProcess() pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); } diff --git a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder70.cc b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder70.cc deleted file mode 100755 index 10fb18bb59..0000000000 --- a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder70.cc +++ /dev/null @@ -1,111 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4EmQEDBuilder70.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ -// -//--------------------------------------------------------------------------- -// -// ClassName: G4EmQEDBuilder70 -// -// Author: V.Ivanchenko 03.05.2004 -// -// Modified: -// -//---------------------------------------------------------------------------- -// -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "G4EmQEDBuilder70.hh" -#include "G4ParticleDefinition.hh" -#include "G4ProcessManager.hh" - -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" - -#include "G4MultipleScattering.hh" - -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" -#include "G4eplusAnnihilation70.hh" - -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4EmQEDBuilder70::G4EmQEDBuilder70(const G4String& name) - : G4VPhysicsConstructor(name) -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4EmQEDBuilder70::~G4EmQEDBuilder70() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4EmQEDBuilder70::ConstructParticle() -{ - G4Gamma::Gamma(); - G4Electron::Electron(); - G4Positron::Positron(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4EmQEDBuilder70::ConstructProcess() -{ - // Add standard EM Processes for gamma - G4ParticleDefinition* particle = G4Gamma::Gamma(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - - pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() ); - pmanager->AddDiscreteProcess( new G4ComptonScattering() ); - pmanager->AddDiscreteProcess( new G4GammaConversion() ); - - // Add standard EM Processes for e- - particle = G4Electron::Electron(); - pmanager = particle->GetProcessManager(); - - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); - - // Add standard EM Processes for e+ - particle = G4Positron::Positron(); - pmanager = particle->GetProcessManager(); - - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation70, 0,-1,4); - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/extended/medical/GammaTherapy/src/G4LowEnergyQEDBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4LowEnergyQEDBuilder.cc old mode 100755 new mode 100644 index 8b55f0f671..bea36689fe --- a/examples/extended/medical/GammaTherapy/src/G4LowEnergyQEDBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4LowEnergyQEDBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyQEDBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4PenelopeQEDBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4PenelopeQEDBuilder.cc old mode 100755 new mode 100644 index 97a2c5733e..7e31e55eb2 --- a/examples/extended/medical/GammaTherapy/src/G4PenelopeQEDBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4PenelopeQEDBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4PenelopeQEDBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4StepLimiterBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4StepLimiterBuilder.cc old mode 100755 new mode 100644 index 4e77f8969a..86c3f3b552 --- a/examples/extended/medical/GammaTherapy/src/G4StepLimiterBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4StepLimiterBuilder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StepLimiterBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4StepLimiterBuilder.cc,v 1.2 2005/04/14 08:22:46 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // @@ -43,6 +43,9 @@ #include "G4ProcessManager.hh" #include "G4StepLimiterPerRegion.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4StepLimiterBuilder::G4StepLimiterBuilder(const G4String& name) @@ -65,20 +68,13 @@ void G4StepLimiterBuilder::ConstructParticle() void G4StepLimiterBuilder::ConstructProcess() { - // Add Decay Process + G4ParticleDefinition* particle = G4Electron::Electron(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + pmanager->AddDiscreteProcess(stepMax); - - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - - if (stepMax->IsApplicable(*particle) && !particle->IsShortLived()) { - - pmanager->AddProcess(stepMax, -1,-1,6); - - } - } + particle = G4Positron::Positron(); + pmanager = particle->GetProcessManager(); + pmanager->AddDiscreteProcess(stepMax); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/src/G4StepLimiterMessenger.cc b/examples/extended/medical/GammaTherapy/src/G4StepLimiterMessenger.cc old mode 100755 new mode 100644 index 40eec3ad4b..8b84db63bc --- a/examples/extended/medical/GammaTherapy/src/G4StepLimiterMessenger.cc +++ b/examples/extended/medical/GammaTherapy/src/G4StepLimiterMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/src/G4StepLimiterPerRegion.cc b/examples/extended/medical/GammaTherapy/src/G4StepLimiterPerRegion.cc old mode 100755 new mode 100644 index b93bc79d28..b1712c60de --- a/examples/extended/medical/GammaTherapy/src/G4StepLimiterPerRegion.cc +++ b/examples/extended/medical/GammaTherapy/src/G4StepLimiterPerRegion.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4StepLimiterPerRegion.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4StepLimiterPerRegion.cc,v 1.2 2005/04/14 08:22:46 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -29,6 +29,7 @@ #include "G4StepLimiterPerRegion.hh" #include "G4StepLimiterMessenger.hh" #include "G4VPhysicalVolume.hh" +#include "Histo.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -37,6 +38,7 @@ G4StepLimiterPerRegion::G4StepLimiterPerRegion(const G4String& processName) MaxChargedStep(DBL_MAX) { pMess = new G4StepLimiterMessenger(this); + gasVolume = Histo::GetPointer()->GasVolume(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -79,6 +81,8 @@ G4double G4StepLimiterPerRegion::PostStepGetPhysicalInteractionLength( G4VParticleChange* G4StepLimiterPerRegion::PostStepDoIt(const G4Track& aTrack, const G4Step&) { aParticleChange.Initialize(aTrack); + if(aTrack.GetVolume() == gasVolume) + aParticleChange.ProposeTrackStatus(fStopAndKill); return &aParticleChange; } diff --git a/examples/extended/medical/GammaTherapy/src/Histo.cc b/examples/extended/medical/GammaTherapy/src/Histo.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/ParticlesBuilder.cc b/examples/extended/medical/GammaTherapy/src/ParticlesBuilder.cc old mode 100755 new mode 100644 index 1326583257..701b418587 --- a/examples/extended/medical/GammaTherapy/src/ParticlesBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/ParticlesBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: ParticlesBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/PhantomSD.cc b/examples/extended/medical/GammaTherapy/src/PhantomSD.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/PhysicsList.cc b/examples/extended/medical/GammaTherapy/src/PhysicsList.cc old mode 100755 new mode 100644 index 79c6815b89..33aad0920d --- a/examples/extended/medical/GammaTherapy/src/PhysicsList.cc +++ b/examples/extended/medical/GammaTherapy/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.4 2004/12/15 12:07:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// $Id: PhysicsList.cc,v 1.7 2005/06/07 13:55:07 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // @@ -44,9 +44,7 @@ #include "G4EmQEDBuilder.hh" #include "G4EmMuonBuilder.hh" #include "G4EmHadronBuilder.hh" -//#include "G4EmHighEnergyBuilder.hh" #include "G4EmQEDBuilder52.hh" -#include "G4EmQEDBuilder70.hh" #include "G4LowEnergyQEDBuilder.hh" #include "G4PenelopeQEDBuilder.hh" #include "G4EmMuonBuilder52.hh" @@ -85,6 +83,7 @@ PhysicsList::PhysicsList() // Add Physics builders RegisterPhysics(new ParticlesBuilder()); + steplimiter = new G4StepLimiterBuilder(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -117,6 +116,7 @@ void PhysicsList::ConstructProcess() emOptions.SetDEDXBinning(90); emOptions.SetLambdaBinning(90); emOptions.SetBuildPreciseRange(false); + emOptions.SetApplyCuts(true); //emOptions.SetVerbose(0); } @@ -131,6 +131,7 @@ void PhysicsList::AddPhysicsList(const G4String& name) } if ((name == "standard") && !emBuilderIsRegisted) { RegisterPhysics(new G4EmQEDBuilder()); + RegisterPhysics(steplimiter); RegisterPhysics(new G4EmMuonBuilder()); RegisterPhysics(new G4EmHadronBuilder()); emBuilderIsRegisted = true; @@ -138,20 +139,15 @@ void PhysicsList::AddPhysicsList(const G4String& name) } else if (name == "g4v52" && !emBuilderIsRegisted) { RegisterPhysics(new G4EmQEDBuilder52()); + RegisterPhysics(steplimiter); RegisterPhysics(new G4EmMuonBuilder52()); RegisterPhysics(new G4EmHadronBuilder52()); emBuilderIsRegisted = true; G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; - } else if (name == "standard70" && !emBuilderIsRegisted) { - RegisterPhysics(new G4EmQEDBuilder70()); - RegisterPhysics(new G4EmMuonBuilder()); - RegisterPhysics(new G4EmHadronBuilder()); - emBuilderIsRegisted = true; - G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; - } else if (name == "lowenergy" && !emBuilderIsRegisted) { RegisterPhysics(new G4LowEnergyQEDBuilder()); + RegisterPhysics(steplimiter); RegisterPhysics(new G4EmMuonBuilder()); RegisterPhysics(new G4EmHadronBuilder()); emBuilderIsRegisted = true; @@ -159,16 +155,12 @@ void PhysicsList::AddPhysicsList(const G4String& name) } else if (name == "penelope" && !emBuilderIsRegisted) { RegisterPhysics(new G4PenelopeQEDBuilder()); + RegisterPhysics(steplimiter); RegisterPhysics(new G4EmMuonBuilder()); RegisterPhysics(new G4EmHadronBuilder()); emBuilderIsRegisted = true; G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; - } else if (name == "step_limit" && !stepLimiterIsRegisted) { - RegisterPhysics(new G4StepLimiterBuilder()); - stepLimiterIsRegisted = true; - G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; - } else if (name == "decay" && !decayIsRegisted) { RegisterPhysics(new DecaysBuilder()); decayIsRegisted = true; diff --git a/examples/extended/medical/GammaTherapy/src/PhysicsListMessenger.cc b/examples/extended/medical/GammaTherapy/src/PhysicsListMessenger.cc old mode 100755 new mode 100644 index 6001120564..09b835d0b6 --- a/examples/extended/medical/GammaTherapy/src/PhysicsListMessenger.cc +++ b/examples/extended/medical/GammaTherapy/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.2 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/src/PrimaryGeneratorAction.cc b/examples/extended/medical/GammaTherapy/src/PrimaryGeneratorAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/PrimaryGeneratorMessenger.cc b/examples/extended/medical/GammaTherapy/src/PrimaryGeneratorMessenger.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/RunAction.cc b/examples/extended/medical/GammaTherapy/src/RunAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/TargetSD.cc b/examples/extended/medical/GammaTherapy/src/TargetSD.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/TrackingAction.cc b/examples/extended/medical/GammaTherapy/src/TrackingAction.cc old mode 100755 new mode 100644 diff --git a/examples/extended/medical/GammaTherapy/src/VisManager.cc b/examples/extended/medical/GammaTherapy/src/VisManager.cc deleted file mode 100755 index ead32b1270..0000000000 --- a/examples/extended/medical/GammaTherapy/src/VisManager.cc +++ /dev/null @@ -1,144 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// $Id: VisManager.cc,v 1.1 2004/08/03 16:56:22 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -VisManager::VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/optical/LXe/History b/examples/extended/optical/LXe/History index 71fc1582b6..ef280aea78 100644 --- a/examples/extended/optical/LXe/History +++ b/examples/extended/optical/LXe/History @@ -1,4 +1,4 @@ -$Id: History,v 1.3 2004/12/03 16:26:07 gcosmo Exp $ +$Id: History,v 1.5 2005/06/27 23:08:24 gum Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,12 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +27 June 2005 Peter Gumplinger (LXe-V07-00-00) +- Fix material dependent input for AbsFiber + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + December 3rd, 2004 Gabriele Cosmo (LXe-V06-02-01) --------------------------------- - Implemented migration to . diff --git a/examples/extended/optical/LXe/LXe.cc b/examples/extended/optical/LXe/LXe.cc index 7b6ec155d7..b3b794deff 100644 --- a/examples/extended/optical/LXe/LXe.cc +++ b/examples/extended/optical/LXe/LXe.cc @@ -39,7 +39,7 @@ #include "RecorderBase.hh" #ifdef G4VIS_USE -#include "LXeVisManager.hh" +#include "G4VisExecutive.hh" #endif //_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ @@ -53,7 +53,7 @@ int main(int argc, char** argv) runManager->SetUserInitialization(new LXePhysicsList); #ifdef G4VIS_USE - G4VisManager* visManager = new LXeVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/optical/LXe/LXe.out b/examples/extended/optical/LXe/LXe.out index abc8a8ddeb..16f032c671 100644 --- a/examples/extended/optical/LXe/LXe.out +++ b/examples/extended/optical/LXe/LXe.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ + Geant4 version $Name: geant4-07-01 $ (12-December-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/optical/LXe/src/LXeDetectorConstruction.cc b/examples/extended/optical/LXe/src/LXeDetectorConstruction.cc index a2a629a681..7fc29bd5c2 100644 --- a/examples/extended/optical/LXe/src/LXeDetectorConstruction.cc +++ b/examples/extended/optical/LXe/src/LXeDetectorConstruction.cc @@ -166,7 +166,7 @@ void LXeDetectorConstruction::DefineMaterials(){ Pstyrene->SetMaterialPropertiesTable(MPTPStyrene); G4double RefractiveIndexFiber[WLS_NUMENTRIES]={ 1.60, 1.60, 1.60, 1.60}; - G4double AbsFiber[WLS_NUMENTRIES]={0.1*mm,0.1*mm,9.00*m,9.00*m}; + G4double AbsFiber[WLS_NUMENTRIES]={9.00*m,9.00*m,0.1*mm,0.1*mm}; G4double EmissionFib[WLS_NUMENTRIES]={0.0, 0.0,1.0, 1.0}; G4MaterialPropertiesTable* MPTFiber = new G4MaterialPropertiesTable(); MPTFiber->AddProperty("RINDEX",WLS_Energy,RefractiveIndexFiber, diff --git a/examples/extended/optical/LXe/src/LXeVisManager.cc b/examples/extended/optical/LXe/src/LXeVisManager.cc deleted file mode 100755 index 9bbeefda20..0000000000 --- a/examples/extended/optical/LXe/src/LXeVisManager.cc +++ /dev/null @@ -1,137 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// - -#ifdef G4VIS_USE - -#include "LXeVisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ -LXeVisManager::LXeVisManager () {} - -//_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ -void LXeVisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - - - - - diff --git a/examples/extended/parallel/ExDiane/Brachy.cc b/examples/extended/parallel/ExDiane/Brachy.cc index 0dd83d09c0..fb6dce764a 100644 --- a/examples/extended/parallel/ExDiane/Brachy.cc +++ b/examples/extended/parallel/ExDiane/Brachy.cc @@ -22,7 +22,7 @@ // // // $Id: Brachy.cc -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------- // GEANT 4 - ExDiane example diff --git a/examples/extended/parallel/ExDiane/History b/examples/extended/parallel/ExDiane/History index dcff76d792..26caa15063 100644 --- a/examples/extended/parallel/ExDiane/History +++ b/examples/extended/parallel/ExDiane/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.2 2004/12/02 17:37:16 gcosmo Exp $ +$Id: History,v 1.3 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,9 @@ $Id: History,v 1.2 2004/12/02 17:37:16 gcosmo Exp $ Category History file --------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 2.12.2004 - Gabriele Cosmo (ExDiane-V06-02-00) Implemented migration to . diff --git a/examples/extended/parallel/ExDiane/include/BrachyAnalysisManager.hh b/examples/extended/parallel/ExDiane/include/BrachyAnalysisManager.hh index 7acbb08cbf..00a8adcb4a 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyAnalysisManager.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyAnalysisManager.hh @@ -26,7 +26,7 @@ // // // $Id: BrachyAnalysisManager.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstruction.hh b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstruction.hh index a5ade7ba2b..cae6d47a21 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstruction.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstruction.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // **************************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionI.hh b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionI.hh index 1d49f79946..3f94a95097 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionI.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionI.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionI.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // **************************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionIr.hh b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionIr.hh index 7e5600d6b7..790aac0ac2 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionIr.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionIr.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionIr.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // **************************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionLeipzig.hh b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionLeipzig.hh index fcc407e53a..36d0c522ac 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionLeipzig.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionLeipzig.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionLeipzig.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Author: Susanna Guatelli // diff --git a/examples/extended/parallel/ExDiane/include/BrachyDetectorMessenger.hh b/examples/extended/parallel/ExDiane/include/BrachyDetectorMessenger.hh index 1ce18e48ad..d38cfaad7b 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyDetectorMessenger.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyDetectorMessenger.hh @@ -30,7 +30,7 @@ // ***************************************** // // $Id: BrachyDetectorMessenger.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // #ifndef BrachyDetectorMessenger_h diff --git a/examples/extended/parallel/ExDiane/include/BrachyEventAction.hh b/examples/extended/parallel/ExDiane/include/BrachyEventAction.hh index c18881caba..1c095edaa8 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyEventAction.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyEventAction.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Code developed by: // S.Guatelli diff --git a/examples/extended/parallel/ExDiane/include/BrachyFactory.hh b/examples/extended/parallel/ExDiane/include/BrachyFactory.hh index 266c8cad92..44169f2890 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyFactory.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyFactory.hh @@ -23,7 +23,7 @@ // Code developed by: Susanna Guatelli // // $Id: BrachyFactory.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyFactoryI.hh b/examples/extended/parallel/ExDiane/include/BrachyFactoryI.hh index 439426e41b..9415c6c401 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyFactoryI.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyFactoryI.hh @@ -32,7 +32,7 @@ // // // $Id: BrachyFactoryI.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/parallel/ExDiane/include/BrachyFactoryIr.hh b/examples/extended/parallel/ExDiane/include/BrachyFactoryIr.hh index 37fad1a6a6..ac29b87db4 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyFactoryIr.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyFactoryIr.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyFactoryIr.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyFactoryLeipzig.hh b/examples/extended/parallel/ExDiane/include/BrachyFactoryLeipzig.hh index fd445c3196..905220f1c4 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyFactoryLeipzig.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyFactoryLeipzig.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyFactoryLeipzig.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyMaterial.hh b/examples/extended/parallel/ExDiane/include/BrachyMaterial.hh index 48d305669d..6f48a3adab 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyMaterial.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyMaterial.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyMaterial.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyPhantomHit.hh b/examples/extended/parallel/ExDiane/include/BrachyPhantomHit.hh index 8219f1e071..4955d493bc 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPhantomHit.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPhantomHit.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomHit.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ******************************** diff --git a/examples/extended/parallel/ExDiane/include/BrachyPhantomROGeometry.hh b/examples/extended/parallel/ExDiane/include/BrachyPhantomROGeometry.hh index 135f51ff4a..f402eac718 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPhantomROGeometry.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPhantomROGeometry.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomROGeometry.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ************************************ // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyPhantomSD.hh b/examples/extended/parallel/ExDiane/include/BrachyPhantomSD.hh index bdcb853d9c..1d590c678a 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPhantomSD.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPhantomSD.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomSD.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ******************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyPhysicsList.hh b/examples/extended/parallel/ExDiane/include/BrachyPhysicsList.hh index 48b6023a44..b49997f748 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPhysicsList.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhysicsList.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorAction.hh b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorAction.hh index 83b77fa017..0661e1faa4 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorAction.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPrimaryGeneratorAction.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ******************************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionI.hh b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionI.hh index 05c49cb21e..29d32c5e1a 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionI.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionI.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPrimaryGeneratorActionI.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionIr.hh b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionIr.hh index d37e6cece8..0639efaede 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionIr.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionIr.hh @@ -23,7 +23,7 @@ //Author: Susanna Guatelli // // $Id: BrachyPrimaryGeneratorActionIr.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ************************************************* // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyRunAction.hh b/examples/extended/parallel/ExDiane/include/BrachyRunAction.hh index 29b0cafff6..a6aa9472eb 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyRunAction.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyRunAction.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Author: Susanna Guatelli // diff --git a/examples/extended/parallel/ExDiane/include/BrachyRunMessenger.hh b/examples/extended/parallel/ExDiane/include/BrachyRunMessenger.hh index c776087f87..4e7ea0a17d 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyRunMessenger.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyRunMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyRunMessenger.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Author: Susanna Guatelli // diff --git a/examples/extended/parallel/ExDiane/include/BrachySimulation.hh b/examples/extended/parallel/ExDiane/include/BrachySimulation.hh index 11d294e924..64f5668d5a 100644 --- a/examples/extended/parallel/ExDiane/include/BrachySimulation.hh +++ b/examples/extended/parallel/ExDiane/include/BrachySimulation.hh @@ -22,7 +22,7 @@ // // // $Id: BrachySimulation.hh -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example diff --git a/examples/extended/parallel/ExDiane/include/BrachyVisManager.hh b/examples/extended/parallel/ExDiane/include/BrachyVisManager.hh deleted file mode 100644 index 27d7c2f04a..0000000000 --- a/examples/extended/parallel/ExDiane/include/BrachyVisManager.hh +++ /dev/null @@ -1,58 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: BrachyVisManager.hh,v 1.1 2004/05/25 07:32:36 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// -// ******************************************** -// * * -// * BrachyVisManager.hh * -// * * -// ******************************************** -// -//This class permits the visualisation of the experimerimental set up -// -#ifndef BrachyVisManager_h -#define BrachyVisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -class BrachyVisManager: public G4VisManager -{ -public: - - BrachyVisManager (); - -private: - - void RegisterGraphicsSystems (); -}; -#endif -#endif - - - diff --git a/examples/extended/parallel/ExDiane/src/BrachyAnalysisManager.cc b/examples/extended/parallel/ExDiane/src/BrachyAnalysisManager.cc index 75eff6cd27..65f8c9f095 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyAnalysisManager.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyAnalysisManager.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyAnalysisManager.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifdef G4ANALYSIS_USE #include diff --git a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstruction.cc b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstruction.cc index edac6f0653..c7d40d29c8 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstruction.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstruction.cc @@ -34,7 +34,7 @@ // **************************************** // // $Id: BrachyDetectorConstruction.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPhantomROGeometry.hh" #include "BrachyPhantomSD.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionI.cc b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionI.cc index a989cb8452..f918f5a8f7 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionI.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionI.cc @@ -34,7 +34,7 @@ // **************************************** // // $Id: BrachyDetectorConstructionI.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" #include "BrachyDetectorConstructionI.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionIr.cc b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionIr.cc index fe1d5e3d11..a56a2886cd 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionIr.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionIr.cc @@ -34,7 +34,7 @@ // **************************************** // // $Id: BrachyDetectorConstructionIr.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" #include "BrachyDetectorConstructionIr.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionLeipzig.cc b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionLeipzig.cc index 076fca6645..65a685de4b 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionLeipzig.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionLeipzig.cc @@ -35,7 +35,7 @@ // // // $Id: BrachyDetectorConstructionLeipzig.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyDetectorMessenger.cc b/examples/extended/parallel/ExDiane/src/BrachyDetectorMessenger.cc index ded8d5a792..879dc6d98f 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyDetectorMessenger.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyDetectorMessenger.cc @@ -32,7 +32,7 @@ // // // $Id: BrachyDetectorMessenger.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/parallel/ExDiane/src/BrachyEventAction.cc b/examples/extended/parallel/ExDiane/src/BrachyEventAction.cc index 0b4aab9250..fa73f7e844 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyEventAction.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyEventAction.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyEventAction.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyEventAction.hh" #include "G4Event.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyFactory.cc b/examples/extended/parallel/ExDiane/src/BrachyFactory.cc index 850f9da36c..1a7055f5cf 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyFactory.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyFactory.cc @@ -32,7 +32,7 @@ // ******************************* // // $Id: BrachyFactory.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include"BrachyFactory.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyFactoryI.cc b/examples/extended/parallel/ExDiane/src/BrachyFactoryI.cc index 0e39452ab9..a48511f737 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyFactoryI.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyFactoryI.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryI.cc,v 1.1 2004/05/25 07:32:36 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyFactoryI.hh" #include "BrachyPrimaryGeneratorActionI.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyFactoryIr.cc b/examples/extended/parallel/ExDiane/src/BrachyFactoryIr.cc index 38d0ec150c..f6fc77bc30 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyFactoryIr.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyFactoryIr.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryIr.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" #include "BrachyFactoryIr.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyFactoryLeipzig.cc b/examples/extended/parallel/ExDiane/src/BrachyFactoryLeipzig.cc index fc7f0443fe..d410348dd4 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyFactoryLeipzig.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyFactoryLeipzig.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryLeipzig.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyMaterial.cc b/examples/extended/parallel/ExDiane/src/BrachyMaterial.cc index ba3b96f1ab..d34557d88e 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyMaterial.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyMaterial.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyMaterial.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4MaterialPropertiesTable.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPhantomHit.cc b/examples/extended/parallel/ExDiane/src/BrachyPhantomHit.cc index 9ba553486e..53f1e51a58 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPhantomHit.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPhantomHit.cc @@ -30,7 +30,7 @@ // ******************************** // // $Id: BrachyPhantomHit.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPhantomHit.hh" #include "G4ios.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPhantomROGeometry.cc b/examples/extended/parallel/ExDiane/src/BrachyPhantomROGeometry.cc index 207b29de90..61f3ed21e0 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPhantomROGeometry.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPhantomROGeometry.cc @@ -30,7 +30,7 @@ // ************************************ // // $Id: BrachyPhantomROGeometry.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPhantomROGeometry.hh" #include "BrachyDummySD.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPhantomSD.cc b/examples/extended/parallel/ExDiane/src/BrachyPhantomSD.cc index dc1df34021..4fafe8a792 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPhantomSD.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPhantomSD.cc @@ -30,7 +30,7 @@ // ******************************** // // $Id: BrachyPhantomSD.cc,v 1.3 2004/05/25 12:39:09 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPhantomSD.hh" #include "BrachyPhantomHit.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPhysicsList.cc b/examples/extended/parallel/ExDiane/src/BrachyPhysicsList.cc index b8763be2e0..f12ad35f99 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPhysicsList.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPhysicsList.cc @@ -30,7 +30,7 @@ // ********************************** // // $Id: BrachyPhysicsList.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPhysicsList.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorAction.cc b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorAction.cc index 1dd263bd98..0253d4ca50 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorAction.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorAction.cc @@ -35,7 +35,7 @@ // ******************************************** // // $Id: BrachyPrimaryGeneratorAction.cc,v 1.1 2004/05/25 07:32:37 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" #include "BrachyPrimaryGeneratorAction.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionI.cc b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionI.cc index 74df67e72e..0bc76a41e3 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionI.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionI.cc @@ -34,7 +34,7 @@ // ******************************************** // // $Id: BrachyPrimaryGeneratorActionI.cc,v 1.3 2004/12/02 17:37:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPrimaryGeneratorActionI.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionIr.cc b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionIr.cc index a29316bf5e..49257876c2 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionIr.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionIr.cc @@ -34,7 +34,7 @@ // ******************************************** // // $Id: BrachyPrimaryGeneratorActionIr.cc,v 1.3 2004/12/02 17:37:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyPrimaryGeneratorActionIr.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyRunAction.cc b/examples/extended/parallel/ExDiane/src/BrachyRunAction.cc index 0211691916..8536944246 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyRunAction.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyRunAction.cc @@ -36,7 +36,7 @@ // ******************************* // // $Id: BrachyRunAction.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "BrachyRunAction.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyRunMessenger.cc b/examples/extended/parallel/ExDiane/src/BrachyRunMessenger.cc index b862990cfe..33f5a9bea7 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyRunMessenger.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyRunMessenger.cc @@ -24,7 +24,7 @@ // S.Guatelli // // $Id: BrachyRunMessenger.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/examples/extended/parallel/ExDiane/src/BrachySimulation.cc b/examples/extended/parallel/ExDiane/src/BrachySimulation.cc index e2eae59e34..744ed13eee 100644 --- a/examples/extended/parallel/ExDiane/src/BrachySimulation.cc +++ b/examples/extended/parallel/ExDiane/src/BrachySimulation.cc @@ -22,7 +22,7 @@ // // // $Id: BrachySimulation.cc -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -47,7 +47,7 @@ #endif #ifdef G4VIS_USE -#include "BrachyVisManager.hh" +#include "G4VisExecutive.hh" #endif #include "BrachyEventAction.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyVisManager.cc b/examples/extended/parallel/ExDiane/src/BrachyVisManager.cc deleted file mode 100644 index be04f08d9b..0000000000 --- a/examples/extended/parallel/ExDiane/src/BrachyVisManager.cc +++ /dev/null @@ -1,151 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// -// ******************************* -// * * -// * BrachyVisManager.cc * -// * * -// ******************************* -// -// $Id: BrachyVisManager.cc,v 1.1 2004/05/25 07:32:37 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// - -#ifdef G4VIS_USE - -#include "BrachyVisManager.hh" - -// Supported drivers... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_DAWNFILE -#include "G4DAWNFILE.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - -#ifdef G4VIS_USE_RAYTRACER -#include "G4RayTracer.hh" -#endif - -BrachyVisManager::BrachyVisManager () -{} - -void BrachyVisManager::RegisterGraphicsSystems () -{ -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_DAWNFILE - RegisterGraphicsSystem (new G4DAWNFILE); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); -#endif - -#ifdef G4VIS_USE_RAYTRACER - RegisterGraphicsSystem (new G4RayTracer); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } - -} -#endif - - - - - - - diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.hh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.hh new file mode 100644 index 0000000000..68dee3be2b --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.hh @@ -0,0 +1,120 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4HCofThisEvent.hh,v 1.1 2004/11/22 17:39:47 cooperma Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// + +#ifndef G4HCofThisEvent_h +#define G4HCofThisEvent_h 1 + +#include "globals.hh" +#include "G4Allocator.hh" +#include "G4VHitsCollection.hh" +#include "g4std/vector" + +// class description: +// +// This is a class which stores hits collections generated at one event. +// This class is exclusively constructed by G4SDManager when the first +// hits collection of an event is passed to the manager, and this class +// object is deleted by G4RunManager when a G4Event class object is deleted. +// Almost all public methods must be used by Geant4 kernel classes and +// the user should not invoke them. The user can use two const methods, +// GetHC() and GetNumberOfCollections() for accessing to the stored hits +// collection(s). + + +//vietha 2003/04/26 , include files needed to copy to the beginning of MarshaledG4HCofThisEvent.h +// in order to compile +//MSH_include_begin +#include "G4SDManager.hh" +#include "G4THitsCollection.hh" +#include "ExN02TrackerHit.hh" +#include "MarshaledExN02TrackerHit.h" +#include "MarshaledG4THitsCollection.h" +#include "MarshaledG4VHitsCollection.h" +//MSH_include_end +//MSH_BEGIN +class G4HCofThisEvent +{ + public: + G4HCofThisEvent(); + G4HCofThisEvent(G4int cap); + ~G4HCofThisEvent(); + inline void *operator new(size_t); + inline void operator delete(void* anHCoTE); + + void AddHitsCollection(G4int HCID,G4VHitsCollection * aHC); + + private: + G4std::vector * HC; /*MSH: ptr_as_array + [elementType: G4VHitsCollection*] + [elementCount: { $ELE_COUNT = $THIS->GetNumberOfCollections(); }] + [elementGet: { $ELEMENT = $THIS->GetHC($ELE_INDEX); }] + [elementSet: { $THIS->AddHitsCollection($ELE_INDEX, $ELEMENT); }] */ + + public: // with description + inline G4VHitsCollection* GetHC(G4int i) + { return (*HC)[i]; } + // Returns a pointer to a hits collection. Null will be returned + // if the particular collection is not stored at the current event. + // The integer argument is ID number which is assigned by G4SDManager + // and the number can be obtained by G4SDManager::GetHitsCollectionID() + // method. + inline G4int GetNumberOfCollections() + { + G4int n = 0; + for(size_t i=0;isize();i++) + { + if((*HC)[i]) n++; + } + return n; + } + // Returns the number of hits collections which are stored in this class + // object. + public: + inline G4int GetCapacity() + { + return HC->size(); + } +}; +//MSH_END + +extern G4Allocator anHCoTHAllocator; + +inline void* G4HCofThisEvent::operator new(size_t) +{ + void* anHCoTH; + anHCoTH = (void*)anHCoTHAllocator.MallocSingle(); + return anHCoTH; +} + +inline void G4HCofThisEvent::operator delete(void* anHCoTH) +{ + anHCoTHAllocator.FreeSingle((G4HCofThisEvent*)anHCoTH); +} + + +#endif + diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.msh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.msh new file mode 100644 index 0000000000..8d1aabae20 --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.msh @@ -0,0 +1,56 @@ +%{ +#include +//MSH_include_begin +#include "G4SDManager.hh" +#include "G4THitsCollection.hh" +#include "ExN02TrackerHit.hh" +#include "MarshaledExN02TrackerHit.h" +#include "MarshaledG4THitsCollection.h" +#include "MarshaledG4VHitsCollection.h" +//MSH_include_end +%} + + marshaling class MarshaledG4HCofThisEvent (G4HCofThisEvent* param) { + + G4std::vector * HC; + //FIELDMARSHAL: + { + int copy_off = 0; + int $ELE_COUNT; + $ELE_COUNT = $THIS->GetNumberOfCollections(); + memcpy( $$+copy_off, &$ELE_COUNT,sizeof(int)); + copy_off += sizeof(int); + for(int $ELE_INDEX=0;$ELE_INDEX<$ELE_COUNT;$ELE_INDEX++){ + G4VHitsCollection* $ELEMENT; + $ELEMENT = $THIS->GetHC($ELE_INDEX); + MarshaledG4VHitsCollection marEle($ELEMENT); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy($$+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + $SIZE = copy_off; + + } + //FIELDUNMARSHAL: + { + int copy_off = 0; + int $ELE_COUNT; + memcpy(&$ELE_COUNT, $$+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int $ELE_INDEX=0;$ELE_INDEX<$ELE_COUNT;$ELE_INDEX++){ + MarshaledG4VHitsCollection marEle($$+copy_off); + G4VHitsCollection* $ELEMENT = (G4VHitsCollection*)marEle.unmarshal(); + copy_off += marEle.getBufferSize(); + $THIS->AddHitsCollection($ELE_INDEX, $ELEMENT); + } + + } + //FIELDSIZE: + { + + } + unmarshaling constructor { + $THIS = new G4HCofThisEvent(); + } +} + diff --git a/examples/advanced/brachytherapy/include/BrachyVisManager.hh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.hh similarity index 64% rename from examples/advanced/brachytherapy/include/BrachyVisManager.hh rename to examples/extended/parallel/ParN02/AnnotatedFiles/G4String.hh index bb489b32e6..482c204b36 100644 --- a/examples/advanced/brachytherapy/include/BrachyVisManager.hh +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.hh @@ -20,39 +20,33 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: BrachyVisManager.hh,v 1.5 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// -// ******************************************** -// * * -// * BrachyVisManager.hh * -// * * -// ******************************************** -// -//This class permits the visualisation of the experimerimental set up -// -#ifndef BrachyVisManager_h -#define BrachyVisManager_h 1 +/* + This file only serves as a place-holder for the annotations of G4String class, + which is a type alias in Geant4. + + Only the marshaling code (MarshaledG4String.hh) generated from this file + should be used in your code. Please make sure that this G4String.hh + itself is NOT included in your code. Otherwise, it will override Geant4's + valid G4String class and bad things would happen. -#ifdef G4VIS_USE + vietha 2003.05.08 +*/ -#include "G4VisManager.hh" +#ifndef G4String_h +#define G4String_h -class BrachyVisManager: public G4VisManager -{ -public: - - BrachyVisManager (); - -private: - - void RegisterGraphicsSystems (); +//MSH_BEGIN +class G4String{ + int dummy; /*MSH: manual + { memcpy($$, param->c_str(), param->size()); + *($$+param->size()) = '\0'; + } + { G4String* s = new G4String($$); + memcpy(param, s, sizeof(G4String)); + } + { int size = param->size()+1; + while(size%8) size++; + $SIZE = size; } */ }; +//MSH_END #endif -#endif - - - diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.msh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.msh new file mode 100644 index 0000000000..31ec92e59d --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.msh @@ -0,0 +1,31 @@ +%{ +#include + +%} + + marshaling class MarshaledG4String (G4String* param) { + + int dummy; + //FIELDMARSHAL: + { + memcpy($$, param->c_str(), param->size()); + *($$+param->size()) = '\0'; + + } + //FIELDUNMARSHAL: + { + G4String* s = new G4String($$); + memcpy(param, s, sizeof(G4String)); + + } + //FIELDSIZE: + { + int size = param->size()+1; + while(size%8) size++; + $SIZE = size; + } + unmarshaling constructor { + $THIS = new G4String(); + } +} + diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.hh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.hh new file mode 100644 index 0000000000..eadf92d95e --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.hh @@ -0,0 +1,184 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4THitsCollection.hh,v 1.1 2004/11/22 17:39:47 cooperma Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// + +#ifndef G4THitsCollection_h +#define G4THitsCollection_h 1 + +#include "G4VHitsCollection.hh" +#include "G4Allocator.hh" +#include "globals.hh" +//#include "g4rw/tpordvec.h" +#include "g4std/vector" + +// class description: +// +// This is a template class of hits collection and parametrized by +// The concrete class of G4VHit. This is a uniform collection for +// a particular concrete hit class objects. +// An intermediate layer class G4HitsCollection appeared in this +// header file is used just for G4Allocator, because G4Allocator +// cannot be instansiated with a template class. Thus G4HitsCollection +// class MUST NOT be directly used by the user. + +//MSH_BEGIN +class G4HitsCollection : public G4VHitsCollection +{ + public: + G4HitsCollection(); + G4HitsCollection(G4String detName,G4String colNam); + virtual ~G4HitsCollection(); + G4int operator==(const G4HitsCollection &right) const; + + protected: + void* theCollection; /*MSH: ptr_as_array + [elementType: ExN02TrackerHit* ] + [elementCount: { $ELE_COUNT = ((G4THitsCollection*)$THIS)->entries(); }] + [elementGet: { $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; }] + [elementSet: { ((G4THitsCollection*)$THIS)->insert((ExN02TrackerHit*)$ELEMENT); }] + */ + +}; +//MSH_END + +extern G4Allocator anHCAllocator; + +//MSH_BEGIN +template class G4THitsCollection : public G4HitsCollection +{ + public: + G4THitsCollection(); + public: // with description + G4THitsCollection(G4String detName,G4String colNam); + // constructor. + public: + virtual ~G4THitsCollection(); + G4int operator==(const G4THitsCollection &right) const; + + inline void *operator new(size_t); + inline void operator delete(void* anHC); + public: // with description + virtual void DrawAllHits(); + virtual void PrintAllHits(); + // These two methods invokes Draw() and Print() methods of all of + // hit objects stored in this collection, respectively. + + public: // with description + inline T* operator[](size_t i) const + { return (*((G4std::vector*)theCollection))[i]; } + // Returns a pointer to a concrete hit object. + inline G4std::vector* GetVector() const + { return (G4std::vector*)theCollection; } + // Returns a collection vector. + inline G4int insert(T* aHit) + { + G4std::vector*theHitsCollection + = (G4std::vector*)theCollection; + theHitsCollection->push_back(aHit); + return theHitsCollection->size(); + } + // Insert a hit object. Total number of hit objects stored in this + // collection is returned. + inline G4int entries() const + { + G4std::vector*theHitsCollection + = (G4std::vector*)theCollection; + return theHitsCollection->size(); + } + // Returns the number of hit objects stored in this collection + + public: + virtual G4VHit* GetHit(size_t i) const + { return (*((G4std::vector*)theCollection))[i]; } + virtual size_t GetSize() const + { return ((G4std::vector*)theCollection)->size(); } + + // MSH_superclass : G4HitsCollection + +}; +//MSH_END + +template inline void* G4THitsCollection::operator new(size_t) +{ + void* anHC; + anHC = (void*)anHCAllocator.MallocSingle(); + return anHC; +} + +template inline void G4THitsCollection::operator delete(void* anHC) +{ + anHCAllocator.FreeSingle((G4HitsCollection*)anHC); +} + +template G4THitsCollection::G4THitsCollection() +{ + G4std::vector * theHitsCollection + = new G4std::vector; + theCollection = (void*)theHitsCollection; +} + +template G4THitsCollection::G4THitsCollection(G4String detName,G4String colNam) +: G4HitsCollection(detName,colNam) +{ + G4std::vector * theHitsCollection + = new G4std::vector; + theCollection = (void*)theHitsCollection; +} + +template G4THitsCollection::~G4THitsCollection() +{ + G4std::vector * theHitsCollection + = (G4std::vector*)theCollection; + //theHitsCollection->clearAndDestroy(); + for(size_t i=0;isize();i++) + { delete (*theHitsCollection)[i]; } + theHitsCollection->clear(); + delete theHitsCollection; +} + +template G4int G4THitsCollection::operator==(const G4THitsCollection &right) const +{ return (collectionName==right.collectionName); } + +template void G4THitsCollection::DrawAllHits() +{ + G4std::vector * theHitsCollection + = (G4std::vector*)theCollection; + size_t n = theHitsCollection->size(); + for(size_t i=0;iDraw(); } +} + +template void G4THitsCollection::PrintAllHits() +{ + G4std::vector * theHitsCollection + = (G4std::vector*)theCollection; + size_t n = theHitsCollection->size(); + for(size_t i=0;iPrint(); } +} + +#endif + diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.msh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.msh new file mode 100644 index 0000000000..84f6cb4023 --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.msh @@ -0,0 +1,75 @@ +%{ +#include + +%} + + marshaling class MarshaledG4HitsCollection (G4HitsCollection* param) { + + void* theCollection; + //FIELDMARSHAL: + { + int copy_off = 0; + int $ELE_COUNT; + $ELE_COUNT = ((G4THitsCollection*)$THIS)->entries(); + memcpy( $$+copy_off, &$ELE_COUNT,sizeof(int)); + copy_off += sizeof(int); + for(int $ELE_INDEX=0;$ELE_INDEX<$ELE_COUNT;$ELE_INDEX++){ + ExN02TrackerHit* $ELEMENT; + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + MarshaledExN02TrackerHit marEle($ELEMENT); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy($$+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + $SIZE = copy_off; + + } + //FIELDUNMARSHAL: + { + int copy_off = 0; + int $ELE_COUNT; + memcpy(&$ELE_COUNT, $$+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int $ELE_INDEX=0;$ELE_INDEX<$ELE_COUNT;$ELE_INDEX++){ + MarshaledExN02TrackerHit marEle($$+copy_off); + ExN02TrackerHit* $ELEMENT = (ExN02TrackerHit* )marEle.unmarshal(); + copy_off += marEle.getBufferSize(); + ((G4THitsCollection*)$THIS)->insert((ExN02TrackerHit*)$ELEMENT); + } + + } + //FIELDSIZE: + { + + } + unmarshaling constructor { + $THIS = new G4HitsCollection(); + } +} + +template marshaling class MarshaledG4THitsCollection (G4THitsCollection* param) : public G4HitsCollection { + int __dummy848; // marshaling code for MSH_superclass + //FIELDMARSHAL: + { + MarshaledG4HitsCollection marParent($THIS); + EXTEND_BUFFER(marParent.getBufferSize()); + memcpy($$,marParent.getBuffer(), marParent.getBufferSize()); + $SIZE = marParent.getBufferSize(); + + } + //FIELD UNMARSHAL: + { + MarshaledG4HitsCollection marObj($$); + marObj.unmarshalTo($THIS); + + } + //FIELD SIZE : + { + //code for size, just dummy code because the size will be set correctly at the end of marshaling code + + } + unmarshaling constructor { + $THIS = new G4THitsCollection(); + } +} + diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.hh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.hh new file mode 100644 index 0000000000..80054a0b45 --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.hh @@ -0,0 +1,86 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VHitsCollection.hh,v 1.1 2004/11/22 17:39:48 cooperma Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// + +#ifndef G4VHitsCollection_h +#define G4VHitsCollection_h 1 + +class G4VHit; +#include "globals.hh" + +// class description: +// +// This is the base class of hits collection. The user is advised to +// use G4THitsCollection template class in case his/her collection is +// transient. While, in case the collection is persistent with ODBMS, +// the concrete collection class can be directly derived from this +// class. +// Geant4 kernel will use this class methods. + +//MSH_BEGIN +class G4VHitsCollection +{ + public: + G4VHitsCollection(); + G4VHitsCollection(G4String detName,G4String colNam); + virtual ~G4VHitsCollection(); + G4int operator==(const G4VHitsCollection &right) const; + + virtual void DrawAllHits(); + virtual void PrintAllHits(); + + protected: + + // Collection name + G4String collectionName; /*MSH: predefined + [elementGet: { $ELEMENT = $THIS->GetName(); }] + [elementSet: { Shadowed_param->collectionName=$ELEMENT; }] + */ + + G4String SDname; /* MSH: predefined + [elementGet: { $ELEMENT = $THIS->GetSDname(); }] + [elementSet: { Shadowed_param->SDname=$ELEMENT; }] + */ + + /* MSH_derivedclass: G4THitsCollection("","") */ + + public: + inline G4String GetName() + { return collectionName; } + inline G4String GetSDname() + { return SDname; } + + public: + // GetHit and GetSize are given a default implementation here so + // that the template G4THitsCollection can be used, but they + // are re-implemented G4THitsCollection. + virtual G4VHit* GetHit(size_t i) const { return 0; } + virtual size_t GetSize() const { return 0; }; + +}; +//MSH_END +#endif + diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.msh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.msh new file mode 100644 index 0000000000..5170ec4e34 --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.msh @@ -0,0 +1,81 @@ +%{ +#include + +%} + + marshaling class MarshaledG4VHitsCollection (G4VHitsCollection* param) { + + G4String collectionName; + //FIELDMARSHAL: + { + G4String $ELEMENT; + $ELEMENT = $THIS->GetName(); + MarshaledG4String var(&$ELEMENT); + EXTEND_BUFFER(var.getBufferSize()); + $SIZE = var.getBufferSize(); + memcpy($$, var.getBuffer(), var.getBufferSize()); + } + //FIELDUNMARSHAL: + { + MarshaledG4String var($$, 'u'); + G4String $ELEMENT; + var.unmarshalTo(&$ELEMENT); + Shadowed_param->collectionName=$ELEMENT; + + } + //FIELDSIZE: + { + // no need to declare size since $SIZE is already assigned in the MARSHAL field + + } + + G4String SDname; + //FIELDMARSHAL: + { + G4String $ELEMENT; + $ELEMENT = $THIS->GetSDname(); + MarshaledG4String var(&$ELEMENT); + EXTEND_BUFFER(var.getBufferSize()); + $SIZE = var.getBufferSize(); + memcpy($$, var.getBuffer(), var.getBufferSize()); + } + //FIELDUNMARSHAL: + { + MarshaledG4String var($$, 'u'); + G4String $ELEMENT; + var.unmarshalTo(&$ELEMENT); + Shadowed_param->SDname=$ELEMENT; + + } + //FIELDSIZE: + { + // no need to declare size since $SIZE is already assigned in the MARSHAL field + + } + int __dummy100; // marshaling code for MSH_derivedclass + //FIELDMARSHAL: + { + G4THitsCollection *aObj100 = (G4THitsCollection*)$THIS; + MarshaledG4THitsCollection marChild(aObj100); + EXTEND_BUFFER(marChild.getBufferSize()); + memcpy($$,marChild.getBuffer(), marChild.getBufferSize()); + $SIZE = marChild.getBufferSize(); + $TYPE_CHOICE = 0; + + } + //FIELD UNMARSHAL: + { + MarshaledG4THitsCollection marObj($$); + marObj.unmarshalTo((G4THitsCollection*)$THIS); + + } + //FIELD SIZE : + { + //code for size, just dummy code because the size will be set correctly at the end of marshaling code + + } + unmarshaling constructor { + $THIS = new G4THitsCollection("",""); + } +} + diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4HCofThisEvent.h b/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4HCofThisEvent.h new file mode 100644 index 0000000000..8ba9a19017 --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4HCofThisEvent.h @@ -0,0 +1,162 @@ +// This file was generated automatically by marshalgen. + +#ifndef MarshaledG4HCofThisEvent_H +#define MarshaledG4HCofThisEvent_H + + +#include +//MSH_include_begin +#include "G4SDManager.hh" +#include "G4THitsCollection.hh" +#include "ExN02TrackerHit.hh" +#include "MarshaledExN02TrackerHit.h" +#include "MarshaledG4THitsCollection.h" +#include "MarshaledG4VHitsCollection.h" +//MSH_include_end + +#include +#include +#include "MarshaledObj.h" + + class MarshaledG4HCofThisEvent; + + class ShadowedMarshaledG4HCofThisEvent : public G4HCofThisEvent{ + friend class MarshaledG4HCofThisEvent; +}; + + class MarshaledG4HCofThisEvent : public MarshaledObj { +public: + G4HCofThisEvent* param; + ShadowedMarshaledG4HCofThisEvent* Shadowed_param; +public: + + +// Function implementations + +MarshaledG4HCofThisEvent(G4HCofThisEvent* objptr) : MarshaledObj() { + msh_isUnmarshalDone = false; + this->param = objptr; + this->Shadowed_param = (ShadowedMarshaledG4HCofThisEvent*)this->param; + if (objptr == NULL) + return; + + marshal1(); +} + +MarshaledG4HCofThisEvent(void *buf, char isUnmarshaling = 'u') +: MarshaledObj(buf, isUnmarshaling) { + msh_isUnmarshalDone = false; +} + +~MarshaledG4HCofThisEvent() { + //if(msh_isUnmarshalDone && this->param != NULL) { + //delete this->param; + //} +} + +G4HCofThisEvent* unmarshal() { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return NULL; + } else { + { + param = new G4HCofThisEvent(); + } + this->Shadowed_param = (ShadowedMarshaledG4HCofThisEvent*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + return this->param; + } +} + +void unmarshalTo(G4HCofThisEvent* obj) { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return; + } else { + this->param = obj; + this->Shadowed_param = (ShadowedMarshaledG4HCofThisEvent*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + } +} + +void marshal1() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + int copy_off = 0; + int elementNum; + elementNum = param->GetNumberOfCollections(); + memcpy( msh_cursor+copy_off, &elementNum,sizeof(int)); + copy_off += sizeof(int); + for(int index=0;indexGetHC(index); + MarshaledG4VHitsCollection marEle(anElement); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy(msh_cursor+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + msh_currentSize = copy_off; + + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal1() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + int copy_off = 0; + int elementNum; + memcpy(&elementNum, msh_cursor+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int index=0;indexAddHitsCollection(index, anElement); + } + + } + msh_cursor += msh_currentSize; +} + +}; +#endif + diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4String.h b/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4String.h new file mode 100644 index 0000000000..fd6e438f71 --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4String.h @@ -0,0 +1,137 @@ +// This file was generated automatically by marshalgen. + +#ifndef MarshaledG4String_H +#define MarshaledG4String_H + + +#include + + +#include +#include +#include "MarshaledObj.h" + + class MarshaledG4String; + + class ShadowedMarshaledG4String : public G4String{ + friend class MarshaledG4String; +}; + + class MarshaledG4String : public MarshaledObj { +public: + G4String* param; + ShadowedMarshaledG4String* Shadowed_param; +public: + + +// Function implementations + +MarshaledG4String(G4String* objptr) : MarshaledObj() { + msh_isUnmarshalDone = false; + this->param = objptr; + this->Shadowed_param = (ShadowedMarshaledG4String*)this->param; + if (objptr == NULL) + return; + + marshal1(); +} + +MarshaledG4String(void *buf, char isUnmarshaling = 'u') +: MarshaledObj(buf, isUnmarshaling) { + msh_isUnmarshalDone = false; +} + +~MarshaledG4String() { + //if(msh_isUnmarshalDone && this->param != NULL) { + //delete this->param; + //} +} + +G4String* unmarshal() { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return NULL; + } else { + { + param = new G4String(); + } + this->Shadowed_param = (ShadowedMarshaledG4String*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + return this->param; + } +} + +void unmarshalTo(G4String* obj) { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return; + } else { + this->param = obj; + this->Shadowed_param = (ShadowedMarshaledG4String*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + } +} + +void marshal1() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + int size = param->size()+1; + while(size%8) size++; + msh_currentSize = size; + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + memcpy(msh_cursor, param->c_str(), param->size()); + *(msh_cursor+param->size()) = '\0'; + + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal1() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + G4String* s = new G4String(msh_cursor); + memcpy(param, s, sizeof(G4String)); + + } + msh_cursor += msh_currentSize; +} + +}; +#endif + diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4THitsCollection.h b/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4THitsCollection.h new file mode 100644 index 0000000000..1cd04c6a5a --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4THitsCollection.h @@ -0,0 +1,279 @@ +// This file was generated automatically by marshalgen. + +#ifndef MarshaledG4HitsCollection_H +#define MarshaledG4HitsCollection_H + + +#include + + +#include +#include +#include "MarshaledObj.h" + + class MarshaledG4HitsCollection; + + class ShadowedMarshaledG4HitsCollection : public G4HitsCollection{ + friend class MarshaledG4HitsCollection; +}; + + +template class MarshaledG4THitsCollection; + +template class ShadowedMarshaledG4THitsCollection : public G4THitsCollection{ + friend class MarshaledG4THitsCollection; +}; + + class MarshaledG4HitsCollection : public MarshaledObj { +public: + G4HitsCollection* param; + ShadowedMarshaledG4HitsCollection* Shadowed_param; +public: + + +// Function implementations + +MarshaledG4HitsCollection(G4HitsCollection* objptr) : MarshaledObj() { + msh_isUnmarshalDone = false; + this->param = objptr; + this->Shadowed_param = (ShadowedMarshaledG4HitsCollection*)this->param; + if (objptr == NULL) + return; + + marshal1(); +} + +MarshaledG4HitsCollection(void *buf, char isUnmarshaling = 'u') +: MarshaledObj(buf, isUnmarshaling) { + msh_isUnmarshalDone = false; +} + +~MarshaledG4HitsCollection() { + //if(msh_isUnmarshalDone && this->param != NULL) { + //delete this->param; + //} +} + +G4HitsCollection* unmarshal() { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return NULL; + } else { + { + param = new G4HitsCollection(); + } + this->Shadowed_param = (ShadowedMarshaledG4HitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + return this->param; + } +} + +void unmarshalTo(G4HitsCollection* obj) { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return; + } else { + this->param = obj; + this->Shadowed_param = (ShadowedMarshaledG4HitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + } +} + +void marshal1() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + int copy_off = 0; + int elementNum; + elementNum = ((G4THitsCollection*)param)->entries(); + memcpy( msh_cursor+copy_off, &elementNum,sizeof(int)); + copy_off += sizeof(int); + for(int index=0;index*)param))[index]; + MarshaledExN02TrackerHit marEle(anElement); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy(msh_cursor+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + msh_currentSize = copy_off; + + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal1() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + int copy_off = 0; + int elementNum; + memcpy(&elementNum, msh_cursor+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int index=0;index*)param)->insert((ExN02TrackerHit*)anElement); + } + + } + msh_cursor += msh_currentSize; +} + +}; +template class MarshaledG4THitsCollection : public MarshaledObj { +public: + G4THitsCollection* param; + ShadowedMarshaledG4THitsCollection* Shadowed_param; +public: + + +// Function implementations + +MarshaledG4THitsCollection(G4THitsCollection* objptr) : MarshaledObj() { + msh_isUnmarshalDone = false; + this->param = objptr; + this->Shadowed_param = (ShadowedMarshaledG4THitsCollection*)this->param; + if (objptr == NULL) + return; + + marshal1(); +} + +MarshaledG4THitsCollection(void *buf, char isUnmarshaling = 'u') +: MarshaledObj(buf, isUnmarshaling) { + msh_isUnmarshalDone = false; +} + +~MarshaledG4THitsCollection() { + //if(msh_isUnmarshalDone && this->param != NULL) { + //delete this->param; + //} +} + +G4THitsCollection* unmarshal() { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return NULL; + } else { + { + param = new G4THitsCollection(); + } + this->Shadowed_param = (ShadowedMarshaledG4THitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + return this->param; + } +} + +void unmarshalTo(G4THitsCollection* obj) { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return; + } else { + this->param = obj; + this->Shadowed_param = (ShadowedMarshaledG4THitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + } +} + +void marshal1() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + //code for size, just dummy code because the size will be set correctly at the end of marshaling code + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + MarshaledG4HitsCollection marParent(param); + EXTEND_BUFFER(marParent.getBufferSize()); + memcpy(msh_cursor,marParent.getBuffer(), marParent.getBufferSize()); + msh_currentSize = marParent.getBufferSize(); + + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal1() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + MarshaledG4HitsCollection marObj(msh_cursor); + marObj.unmarshalTo(param); + + } + msh_cursor += msh_currentSize; +} + +}; +#endif + diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4VHitsCollection.h b/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4VHitsCollection.h new file mode 100644 index 0000000000..9f672e80a8 --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4VHitsCollection.h @@ -0,0 +1,262 @@ +// This file was generated automatically by marshalgen. + +#ifndef MarshaledG4VHitsCollection_H +#define MarshaledG4VHitsCollection_H + + +#include + + +#include +#include +#include "MarshaledObj.h" + + class MarshaledG4VHitsCollection; + + class ShadowedMarshaledG4VHitsCollection : public G4VHitsCollection{ + friend class MarshaledG4VHitsCollection; +}; + + class MarshaledG4VHitsCollection : public MarshaledObj { +public: + G4VHitsCollection* param; + ShadowedMarshaledG4VHitsCollection* Shadowed_param; +public: + + +// Function implementations + +MarshaledG4VHitsCollection(G4VHitsCollection* objptr) : MarshaledObj() { + msh_isUnmarshalDone = false; + this->param = objptr; + this->Shadowed_param = (ShadowedMarshaledG4VHitsCollection*)this->param; + if (objptr == NULL) + return; + + marshal1(); + marshal2(); + marshal3(); +} + +MarshaledG4VHitsCollection(void *buf, char isUnmarshaling = 'u') +: MarshaledObj(buf, isUnmarshaling) { + msh_isUnmarshalDone = false; +} + +~MarshaledG4VHitsCollection() { + //if(msh_isUnmarshalDone && this->param != NULL) { + //delete this->param; + //} +} + +G4VHitsCollection* unmarshal() { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return NULL; + } else { + { + param = new G4THitsCollection("",""); + } + this->Shadowed_param = (ShadowedMarshaledG4VHitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + unmarshal2(); + unmarshal3(); + return this->param; + } +} + +void unmarshalTo(G4VHitsCollection* obj) { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return; + } else { + this->param = obj; + this->Shadowed_param = (ShadowedMarshaledG4VHitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + unmarshal2(); + unmarshal3(); + } +} + +void marshal1() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + // no need to declare size since msh_currentSize is already assigned in the MARSHAL field + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + G4String anElement; + anElement = param->GetName(); + MarshaledG4String var(&anElement); + EXTEND_BUFFER(var.getBufferSize()); + msh_currentSize = var.getBufferSize(); + memcpy(msh_cursor, var.getBuffer(), var.getBufferSize()); + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal1() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + MarshaledG4String var(msh_cursor, 'u'); + G4String anElement; + var.unmarshalTo(&anElement); + Shadowed_param->collectionName=anElement; + + } + msh_cursor += msh_currentSize; +} + +void marshal2() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + // no need to declare size since msh_currentSize is already assigned in the MARSHAL field + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + G4String anElement; + anElement = param->GetSDname(); + MarshaledG4String var(&anElement); + EXTEND_BUFFER(var.getBufferSize()); + msh_currentSize = var.getBufferSize(); + memcpy(msh_cursor, var.getBuffer(), var.getBufferSize()); + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal2() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + MarshaledG4String var(msh_cursor, 'u'); + G4String anElement; + var.unmarshalTo(&anElement); + Shadowed_param->SDname=anElement; + + } + msh_cursor += msh_currentSize; +} + +void marshal3() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + //code for size, just dummy code because the size will be set correctly at the end of marshaling code + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + G4THitsCollection *aObj100 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj100); + EXTEND_BUFFER(marChild.getBufferSize()); + memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); + msh_currentSize = marChild.getBufferSize(); + msh_typechoice = 0; + + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal3() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + MarshaledG4THitsCollection marObj(msh_cursor); + marObj.unmarshalTo((G4THitsCollection*)param); + + } + msh_cursor += msh_currentSize; +} + +}; +#endif + diff --git a/examples/extended/parallel/ParN02/History b/examples/extended/parallel/ParN02/History index c40435a541..b11bbb56aa 100644 --- a/examples/extended/parallel/ParN02/History +++ b/examples/extended/parallel/ParN02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.7 2004/11/26 16:49:52 gcosmo Exp $ +$Id: History,v 1.9 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +Nov 22nd, 2004 G.Cooperman - ParN02-V07-00-00 +--------------------------- +- Added annotated files. + Nov 22nd, 2004 G.Cooperman and V.H.Nguyen - ParN02-V06-02-00 ------------------------------------------ - New version of marshaling/unmarshaling code, generated from diff --git a/examples/extended/parallel/ParN02/ParN02.cc b/examples/extended/parallel/ParN02/ParN02.cc index d22d13a726..cf5cb7e670 100644 --- a/examples/extended/parallel/ParN02/ParN02.cc +++ b/examples/extended/parallel/ParN02/ParN02.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ParN02.cc,v 1.2 2002/03/09 06:21:18 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ParN02.cc,v 1.3 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,7 +42,7 @@ #include "G4UItcsh.hh" #ifdef G4VIS_USE -#include "ExN02VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "ParTopC.icc" @@ -64,7 +64,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // Visualization, if you choose to have it! - G4VisManager* visManager = new ExN02VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/parallel/ParN02/ParTopC.icc b/examples/extended/parallel/ParN02/ParTopC.icc index 9a0e8d8743..2739ea57c2 100644 --- a/examples/extended/parallel/ParN02/ParTopC.icc +++ b/examples/extended/parallel/ParN02/ParTopC.icc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParTopC.icc,v 1.1 2002/03/09 06:25:03 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh b/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh index 529a65c5cc..f5d7a80e4c 100644 --- a/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh +++ b/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02ChamberParameterisation.hh,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // A parameterisation that describes a series of boxes along Z diff --git a/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh b/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh index 5e8709a82a..9c3b6853c9 100644 --- a/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh +++ b/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorConstruction.hh,v 1.1 2002/03/05 15:21:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh b/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh index 52ed305edf..06e37a6f84 100644 --- a/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh +++ b/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorMessenger.hh,v 1.2 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02EventAction.hh b/examples/extended/parallel/ParN02/include/ExN02EventAction.hh index bc63690750..d62777bc0e 100644 --- a/examples/extended/parallel/ParN02/include/ExN02EventAction.hh +++ b/examples/extended/parallel/ParN02/include/ExN02EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02EventAction.hh,v 1.1 2002/03/05 15:21:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02MagneticField.hh b/examples/extended/parallel/ParN02/include/ExN02MagneticField.hh index 6a481127de..c406e3c43d 100644 --- a/examples/extended/parallel/ParN02/include/ExN02MagneticField.hh +++ b/examples/extended/parallel/ParN02/include/ExN02MagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02MagneticField.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // A class for control of the Magnetic Field of the detector. diff --git a/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh b/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh index 3b56323400..fc04f75034 100644 --- a/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh +++ b/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02PhysicsList.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh b/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh index e74b94fa43..1eb8987b33 100644 --- a/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh +++ b/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02PrimaryGeneratorAction.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02RunAction.hh b/examples/extended/parallel/ParN02/include/ExN02RunAction.hh index 674d7dae82..9af1f06121 100644 --- a/examples/extended/parallel/ParN02/include/ExN02RunAction.hh +++ b/examples/extended/parallel/ParN02/include/ExN02RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02RunAction.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh b/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh index d110b4b7b1..e48e0f46e2 100644 --- a/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh +++ b/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingAction.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh b/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh index 2a84fb3a52..2bb4004fd2 100644 --- a/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh +++ b/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingVerbose.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh b/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh index a9d3e62edf..c76582d1b4 100644 --- a/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh +++ b/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerHit.hh,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh b/examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh index 8815e5318d..9adf684584 100644 --- a/examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh +++ b/examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerSD.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02VisManager.hh b/examples/extended/parallel/ParN02/include/ExN02VisManager.hh deleted file mode 100644 index ba4d58cfab..0000000000 --- a/examples/extended/parallel/ParN02/include/ExN02VisManager.hh +++ /dev/null @@ -1,72 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN02VisManager.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef ExN02VisManager_h -#define ExN02VisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class ExN02VisManager: public G4VisManager { - -public: - - ExN02VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - -#endif diff --git a/examples/extended/parallel/ParN02/include/ParRunManager.hh b/examples/extended/parallel/ParN02/include/ParRunManager.hh index e2d60ee8ed..9056d7e58d 100644 --- a/examples/extended/parallel/ParN02/include/ParRunManager.hh +++ b/examples/extended/parallel/ParN02/include/ParRunManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParRunManager.hh,v 1.2 2002/06/06 17:05:02 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc b/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc index 0d3272bb1f..cfa368c483 100644 --- a/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc +++ b/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02ChamberParameterisation.cc,v 1.2 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc b/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc index 0b4db78571..066c0a2cfb 100644 --- a/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorConstruction.cc,v 1.2 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc b/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc index bc40050c81..7dc935d20c 100644 --- a/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc +++ b/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorMessenger.cc,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02EventAction.cc b/examples/extended/parallel/ParN02/src/ExN02EventAction.cc index a26a6ea2b5..b9bf4c795e 100644 --- a/examples/extended/parallel/ParN02/src/ExN02EventAction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02EventAction.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02MagneticField.cc b/examples/extended/parallel/ParN02/src/ExN02MagneticField.cc index 1c59b8bf8d..c9b318def1 100644 --- a/examples/extended/parallel/ParN02/src/ExN02MagneticField.cc +++ b/examples/extended/parallel/ParN02/src/ExN02MagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02MagneticField.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // User Field class implementation. // diff --git a/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc b/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc index 9589bff7f6..ce6bcc7016 100644 --- a/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc +++ b/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02PhysicsList.cc,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc b/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc index d627d4e8dd..fb7ade2d23 100644 --- a/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02PrimaryGeneratorAction.cc,v 1.1 2002/03/05 15:22:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02RunAction.cc b/examples/extended/parallel/ParN02/src/ExN02RunAction.cc index ab200a46e8..9f618525ad 100644 --- a/examples/extended/parallel/ParN02/src/ExN02RunAction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02RunAction.cc,v 1.1 2002/03/05 15:22:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc b/examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc index 1a12f22dd5..1d30ca927d 100644 --- a/examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingAction.cc,v 1.1 2002/03/05 15:22:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc b/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc index cef9a6f930..d90c193a5d 100644 --- a/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc +++ b/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingVerbose.cc,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc b/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc index 65c5e59c8b..3adb4c2c6b 100644 --- a/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc +++ b/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerHit.cc,v 1.2 2003/07/04 15:36:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc b/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc index d4328eb647..d517ce3600 100644 --- a/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc +++ b/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerSD.cc,v 1.2 2003/07/04 15:36:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02VisManager.cc b/examples/extended/parallel/ParN02/src/ExN02VisManager.cc deleted file mode 100644 index 8ea3e96d14..0000000000 --- a/examples/extended/parallel/ParN02/src/ExN02VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN02VisManager.cc,v 1.3 2003/11/13 15:11:38 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "ExN02VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN02VisManager::ExN02VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN02VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.hh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.hh new file mode 100644 index 0000000000..2ccfa66f10 --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.hh @@ -0,0 +1,120 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4HCofThisEvent.hh,v 1.1 2004/11/22 17:51:00 cooperma Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// + +#ifndef G4HCofThisEvent_h +#define G4HCofThisEvent_h 1 + +#include "globals.hh" +#include "G4Allocator.hh" +#include "G4VHitsCollection.hh" +#include "g4std/vector" + +// class description: +// +// This is a class which stores hits collections generated at one event. +// This class is exclusively constructed by G4SDManager when the first +// hits collection of an event is passed to the manager, and this class +// object is deleted by G4RunManager when a G4Event class object is deleted. +// Almost all public methods must be used by Geant4 kernel classes and +// the user should not invoke them. The user can use two const methods, +// GetHC() and GetNumberOfCollections() for accessing to the stored hits +// collection(s). + + +//vietha 2003/04/26 , include files needed to copy to the beginning of MarshaledG4HCofThisEvent.h +// in order to compile +//MSH_include_begin +#include "G4SDManager.hh" +#include "G4THitsCollection.hh" +#include "ExN04TrackerHit.hh" +#include "MarshaledExN04TrackerHit.h" +#include "MarshaledG4THitsCollection.h" +#include "MarshaledG4VHitsCollection.h" +//MSH_include_end +//MSH_BEGIN +class G4HCofThisEvent +{ + public: + G4HCofThisEvent(); + G4HCofThisEvent(G4int cap); + ~G4HCofThisEvent(); + inline void *operator new(size_t); + inline void operator delete(void* anHCoTE); + + void AddHitsCollection(G4int HCID,G4VHitsCollection * aHC); + + private: + G4std::vector * HC; /*MSH: ptr_as_array + [elementType: G4VHitsCollection*] + [elementCount: { $ELE_COUNT = $THIS->GetNumberOfCollections(); }] + [elementGet: { $ELEMENT = $THIS->GetHC($ELE_INDEX); }] + [elementSet: { $THIS->AddHitsCollection($ELE_INDEX, $ELEMENT); }] */ + + public: // with description + inline G4VHitsCollection* GetHC(G4int i) + { return (*HC)[i]; } + // Returns a pointer to a hits collection. Null will be returned + // if the particular collection is not stored at the current event. + // The integer argument is ID number which is assigned by G4SDManager + // and the number can be obtained by G4SDManager::GetHitsCollectionID() + // method. + inline G4int GetNumberOfCollections() + { + G4int n = 0; + for(size_t i=0;isize();i++) + { + if((*HC)[i]) n++; + } + return n; + } + // Returns the number of hits collections which are stored in this class + // object. + public: + inline G4int GetCapacity() + { + return HC->size(); + } +}; +//MSH_END + +extern G4Allocator anHCoTHAllocator; + +inline void* G4HCofThisEvent::operator new(size_t) +{ + void* anHCoTH; + anHCoTH = (void*)anHCoTHAllocator.MallocSingle(); + return anHCoTH; +} + +inline void G4HCofThisEvent::operator delete(void* anHCoTH) +{ + anHCoTHAllocator.FreeSingle((G4HCofThisEvent*)anHCoTH); +} + + +#endif + diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.msh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.msh new file mode 100644 index 0000000000..b1b27633e8 --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.msh @@ -0,0 +1,56 @@ +%{ +#include +//MSH_include_begin +#include "G4SDManager.hh" +#include "G4THitsCollection.hh" +#include "ExN04TrackerHit.hh" +#include "MarshaledExN04TrackerHit.h" +#include "MarshaledG4THitsCollection.h" +#include "MarshaledG4VHitsCollection.h" +//MSH_include_end +%} + + marshaling class MarshaledG4HCofThisEvent (G4HCofThisEvent* param) { + + G4std::vector * HC; + //FIELDMARSHAL: + { + int copy_off = 0; + int $ELE_COUNT; + $ELE_COUNT = $THIS->GetNumberOfCollections(); + memcpy( $$+copy_off, &$ELE_COUNT,sizeof(int)); + copy_off += sizeof(int); + for(int $ELE_INDEX=0;$ELE_INDEX<$ELE_COUNT;$ELE_INDEX++){ + G4VHitsCollection* $ELEMENT; + $ELEMENT = $THIS->GetHC($ELE_INDEX); + MarshaledG4VHitsCollection marEle($ELEMENT); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy($$+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + $SIZE = copy_off; + + } + //FIELDUNMARSHAL: + { + int copy_off = 0; + int $ELE_COUNT; + memcpy(&$ELE_COUNT, $$+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int $ELE_INDEX=0;$ELE_INDEX<$ELE_COUNT;$ELE_INDEX++){ + MarshaledG4VHitsCollection marEle($$+copy_off); + G4VHitsCollection* $ELEMENT = (G4VHitsCollection*)marEle.unmarshal(); + copy_off += marEle.getBufferSize(); + $THIS->AddHitsCollection($ELE_INDEX, $ELEMENT); + } + + } + //FIELDSIZE: + { + + } + unmarshaling constructor { + $THIS = new G4HCofThisEvent(); + } +} + diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.hh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.hh new file mode 100644 index 0000000000..482c204b36 --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +/* + This file only serves as a place-holder for the annotations of G4String class, + which is a type alias in Geant4. + + Only the marshaling code (MarshaledG4String.hh) generated from this file + should be used in your code. Please make sure that this G4String.hh + itself is NOT included in your code. Otherwise, it will override Geant4's + valid G4String class and bad things would happen. + + vietha 2003.05.08 +*/ + +#ifndef G4String_h +#define G4String_h + +//MSH_BEGIN +class G4String{ + int dummy; /*MSH: manual + { memcpy($$, param->c_str(), param->size()); + *($$+param->size()) = '\0'; + } + { G4String* s = new G4String($$); + memcpy(param, s, sizeof(G4String)); + } + { int size = param->size()+1; + while(size%8) size++; + $SIZE = size; } */ +}; +//MSH_END +#endif diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.msh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.msh new file mode 100644 index 0000000000..31ec92e59d --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.msh @@ -0,0 +1,31 @@ +%{ +#include + +%} + + marshaling class MarshaledG4String (G4String* param) { + + int dummy; + //FIELDMARSHAL: + { + memcpy($$, param->c_str(), param->size()); + *($$+param->size()) = '\0'; + + } + //FIELDUNMARSHAL: + { + G4String* s = new G4String($$); + memcpy(param, s, sizeof(G4String)); + + } + //FIELDSIZE: + { + int size = param->size()+1; + while(size%8) size++; + $SIZE = size; + } + unmarshaling constructor { + $THIS = new G4String(); + } +} + diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.hh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.hh new file mode 100644 index 0000000000..91c6c25ce6 --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.hh @@ -0,0 +1,216 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4THitsCollection.hh,v 1.1 2004/11/22 17:51:01 cooperma Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// + +#ifndef G4THitsCollection_h +#define G4THitsCollection_h 1 + +#include "G4VHitsCollection.hh" +#include "G4Allocator.hh" +#include "globals.hh" +//#include "g4rw/tpordvec.h" +#include + +//MSH_include_begin +#include "ExN04CalorimeterHit.hh" +#include "ExN04MuonHit.hh" +#include "ExN04TrackerHit.hh" +#include "MarshaledExN04CalorimeterHit.h" +#include "MarshaledExN04MuonHit.h" +#include "MarshaledExN04TrackerHit.h" +//MSH_include_end + + +// class description: +// +// This is a template class of hits collection and parametrized by +// The concrete class of G4VHit. This is a uniform collection for +// a particular concrete hit class objects. +// An intermediate layer class G4HitsCollection appeared in this +// header file is used just for G4Allocator, because G4Allocator +// cannot be instansiated with a template class. Thus G4HitsCollection +// class MUST NOT be directly used by the user. + +//MSH_BEGIN +class G4HitsCollection : public G4VHitsCollection +{ + public: + G4HitsCollection(); + G4HitsCollection(G4String detName,G4String colNam); + virtual ~G4HitsCollection(); + G4int operator==(const G4HitsCollection &right) const; + + protected: + void* theCollection; /*MSH: ptr_as_array + [elementType: (dynamic_cast*>($THIS)!=NULL) => ExN04CalorimeterHit* + | (dynamic_cast*>($THIS)!=NULL) => ExN04MuonHit* + | true => ExN04TrackerHit*] + [elementCount: { + if(dynamic_cast*>($THIS)!=NULL) + $ELE_COUNT = ((G4THitsCollection*)$THIS)->entries(); + else if(dynamic_cast*>($THIS)!=NULL) + $ELE_COUNT = ((G4THitsCollection*)$THIS)->entries(); + else + $ELE_COUNT = ((G4THitsCollection*)$THIS)->entries(); + }] + [elementGet: { + if(dynamic_cast*>($THIS)!=NULL) + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + else if(dynamic_cast*>($THIS)!=NULL) + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + else + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + }] + [elementSet: { + if(dynamic_cast*>($THIS)!=NULL) + ((G4THitsCollection*)$THIS)->insert((ExN04CalorimeterHit*)$ELEMENT); + else if(dynamic_cast*>($THIS)!=NULL) + ((G4THitsCollection*)$THIS)->insert((ExN04MuonHit*)$ELEMENT); + else + ((G4THitsCollection*)$THIS)->insert((ExN04TrackerHit*)$ELEMENT); + }] */ + +}; +//MSH_END + +extern G4Allocator anHCAllocator; + +//MSH_BEGIN +template class G4THitsCollection : public G4HitsCollection +{ + public: + G4THitsCollection(); + public: // with description + G4THitsCollection(G4String detName,G4String colNam); + // constructor. + public: + virtual ~G4THitsCollection(); + G4int operator==(const G4THitsCollection &right) const; + + inline void *operator new(size_t); + inline void operator delete(void* anHC); + public: // with description + virtual void DrawAllHits(); + virtual void PrintAllHits(); + // These two methods invokes Draw() and Print() methods of all of + // hit objects stored in this collection, respectively. + + public: // with description + inline T* operator[](size_t i) const + { return (*((G4std::vector*)theCollection))[i]; } + // Returns a pointer to a concrete hit object. + inline G4std::vector* GetVector() const + { return (G4std::vector*)theCollection; } + // Returns a collection vector. + inline G4int insert(T* aHit) + { + G4std::vector*theHitsCollection + = (G4std::vector*)theCollection; + theHitsCollection->push_back(aHit); + return theHitsCollection->size(); + } + // Insert a hit object. Total number of hit objects stored in this + // collection is returned. + inline G4int entries() const + { + G4std::vector*theHitsCollection + = (G4std::vector*)theCollection; + return theHitsCollection->size(); + } + // Returns the number of hit objects stored in this collection + + public: + virtual G4VHit* GetHit(size_t i) const + { return (*((G4std::vector*)theCollection))[i]; } + virtual size_t GetSize() const + { return ((G4std::vector*)theCollection)->size(); } + + // MSH_superclass : G4HitsCollection + +}; +//MSH_END + +template inline void* G4THitsCollection::operator new(size_t) +{ + void* anHC; + anHC = (void*)anHCAllocator.MallocSingle(); + return anHC; +} + +template inline void G4THitsCollection::operator delete(void* anHC) +{ + anHCAllocator.FreeSingle((G4HitsCollection*)anHC); +} + +template G4THitsCollection::G4THitsCollection() +{ + G4std::vector * theHitsCollection + = new G4std::vector; + theCollection = (void*)theHitsCollection; +} + +template G4THitsCollection::G4THitsCollection(G4String detName,G4String colNam) +: G4HitsCollection(detName,colNam) +{ + G4std::vector * theHitsCollection + = new G4std::vector; + theCollection = (void*)theHitsCollection; +} + +template G4THitsCollection::~G4THitsCollection() +{ + G4std::vector * theHitsCollection + = (G4std::vector*)theCollection; + //theHitsCollection->clearAndDestroy(); + for(size_t i=0;isize();i++) + { delete (*theHitsCollection)[i]; } + theHitsCollection->clear(); + delete theHitsCollection; +} + +template G4int G4THitsCollection::operator==(const G4THitsCollection &right) const +{ return (collectionName==right.collectionName); } + +template void G4THitsCollection::DrawAllHits() +{ + G4std::vector * theHitsCollection + = (G4std::vector*)theCollection; + size_t n = theHitsCollection->size(); + for(size_t i=0;iDraw(); } +} + +template void G4THitsCollection::PrintAllHits() +{ + G4std::vector * theHitsCollection + = (G4std::vector*)theCollection; + size_t n = theHitsCollection->size(); + for(size_t i=0;iPrint(); } +} + +#endif + diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.msh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.msh new file mode 100644 index 0000000000..b28ef682ea --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.msh @@ -0,0 +1,177 @@ +%{ +#include +//MSH_include_begin +#include "ExN04CalorimeterHit.hh" +#include "ExN04MuonHit.hh" +#include "ExN04TrackerHit.hh" +#include "MarshaledExN04CalorimeterHit.h" +#include "MarshaledExN04MuonHit.h" +#include "MarshaledExN04TrackerHit.h" +//MSH_include_end +%} + + marshaling class MarshaledG4HitsCollection (G4HitsCollection* param) { + + void* theCollection; + //FIELDMARSHAL: + { + int copy_off = 0; + int $ELE_COUNT; + + if(dynamic_cast*>($THIS)!=NULL) + $ELE_COUNT = ((G4THitsCollection*)$THIS)->entries(); + else if(dynamic_cast*>($THIS)!=NULL) + $ELE_COUNT = ((G4THitsCollection*)$THIS)->entries(); + else + $ELE_COUNT = ((G4THitsCollection*)$THIS)->entries(); + + memcpy( $$+copy_off, &$ELE_COUNT,sizeof(int)); + copy_off += sizeof(int); + for(int $ELE_INDEX=0;$ELE_INDEX<$ELE_COUNT;$ELE_INDEX++){ + if(0){} + else if((dynamic_cast*>($THIS)!=NULL) ){ + void* $ELEMENT; + + if(dynamic_cast*>($THIS)!=NULL) + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + else if(dynamic_cast*>($THIS)!=NULL) + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + else + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + + MarshaledExN04CalorimeterHit marEle((ExN04CalorimeterHit* )$ELEMENT); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy($$+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + else if( (dynamic_cast*>($THIS)!=NULL) ){ + void* $ELEMENT; + + if(dynamic_cast*>($THIS)!=NULL) + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + else if(dynamic_cast*>($THIS)!=NULL) + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + else + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + + MarshaledExN04MuonHit marEle((ExN04MuonHit* )$ELEMENT); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy($$+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + else if( true ){ + void* $ELEMENT; + + if(dynamic_cast*>($THIS)!=NULL) + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + else if(dynamic_cast*>($THIS)!=NULL) + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + else + $ELEMENT = (*((G4THitsCollection*)$THIS))[$ELE_INDEX]; + + MarshaledExN04TrackerHit marEle((ExN04TrackerHit*)$ELEMENT); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy($$+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + } + $SIZE = copy_off; + + } + //FIELDUNMARSHAL: + { + if(0){} + else if((dynamic_cast*>($THIS)!=NULL) ){ + int copy_off = 0; + int $ELE_COUNT; + memcpy(&$ELE_COUNT, $$+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int $ELE_INDEX=0;$ELE_INDEX<$ELE_COUNT;$ELE_INDEX++){ + MarshaledExN04CalorimeterHit marEle($$+copy_off); + ExN04CalorimeterHit* $ELEMENT = (ExN04CalorimeterHit* )marEle.unmarshal(); + copy_off += marEle.getBufferSize(); + + if(dynamic_cast*>($THIS)!=NULL) + ((G4THitsCollection*)$THIS)->insert((ExN04CalorimeterHit*)$ELEMENT); + else if(dynamic_cast*>($THIS)!=NULL) + ((G4THitsCollection*)$THIS)->insert((ExN04MuonHit*)$ELEMENT); + else + ((G4THitsCollection*)$THIS)->insert((ExN04TrackerHit*)$ELEMENT); + + } + } + else if( (dynamic_cast*>($THIS)!=NULL) ){ + int copy_off = 0; + int $ELE_COUNT; + memcpy(&$ELE_COUNT, $$+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int $ELE_INDEX=0;$ELE_INDEX<$ELE_COUNT;$ELE_INDEX++){ + MarshaledExN04MuonHit marEle($$+copy_off); + ExN04MuonHit* $ELEMENT = (ExN04MuonHit* )marEle.unmarshal(); + copy_off += marEle.getBufferSize(); + + if(dynamic_cast*>($THIS)!=NULL) + ((G4THitsCollection*)$THIS)->insert((ExN04CalorimeterHit*)$ELEMENT); + else if(dynamic_cast*>($THIS)!=NULL) + ((G4THitsCollection*)$THIS)->insert((ExN04MuonHit*)$ELEMENT); + else + ((G4THitsCollection*)$THIS)->insert((ExN04TrackerHit*)$ELEMENT); + + } + } + else if( true ){ + int copy_off = 0; + int $ELE_COUNT; + memcpy(&$ELE_COUNT, $$+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int $ELE_INDEX=0;$ELE_INDEX<$ELE_COUNT;$ELE_INDEX++){ + MarshaledExN04TrackerHit marEle($$+copy_off); + ExN04TrackerHit* $ELEMENT = (ExN04TrackerHit*)marEle.unmarshal(); + copy_off += marEle.getBufferSize(); + + if(dynamic_cast*>($THIS)!=NULL) + ((G4THitsCollection*)$THIS)->insert((ExN04CalorimeterHit*)$ELEMENT); + else if(dynamic_cast*>($THIS)!=NULL) + ((G4THitsCollection*)$THIS)->insert((ExN04MuonHit*)$ELEMENT); + else + ((G4THitsCollection*)$THIS)->insert((ExN04TrackerHit*)$ELEMENT); + + } + } + + } + //FIELDSIZE: + { + + } + unmarshaling constructor { + $THIS = new G4HitsCollection(); + } +} + +template marshaling class MarshaledG4THitsCollection (G4THitsCollection* param) : public G4HitsCollection { + int __dummy208; // marshaling code for MSH_superclass + //FIELDMARSHAL: + { + MarshaledG4HitsCollection marParent($THIS); + EXTEND_BUFFER(marParent.getBufferSize()); + memcpy($$,marParent.getBuffer(), marParent.getBufferSize()); + $SIZE = marParent.getBufferSize(); + + } + //FIELD UNMARSHAL: + { + MarshaledG4HitsCollection marObj($$); + marObj.unmarshalTo($THIS); + + } + //FIELD SIZE : + { + //code for size, just dummy code because the size will be set correctly at the end of marshaling code + + } + unmarshaling constructor { + $THIS = new G4THitsCollection(); + } +} + diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.hh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.hh new file mode 100644 index 0000000000..0dff599001 --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.hh @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VHitsCollection.hh,v 1.1 2004/11/22 17:51:01 cooperma Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// + +#ifndef G4VHitsCollection_h +#define G4VHitsCollection_h 1 + +class G4VHit; +#include "globals.hh" + +// class description: +// +// This is the base class of hits collection. The user is advised to +// use G4THitsCollection template class in case his/her collection is +// transient. While, in case the collection is persistent with ODBMS, +// the concrete collection class can be directly derived from this +// class. +// Geant4 kernel will use this class methods. + +//MSH_BEGIN +class G4VHitsCollection +{ + public: + G4VHitsCollection(); + G4VHitsCollection(G4String detName,G4String colNam); + virtual ~G4VHitsCollection(); + G4int operator==(const G4VHitsCollection &right) const; + + virtual void DrawAllHits(); + virtual void PrintAllHits(); + + protected: + + // Collection name + G4String collectionName; /*MSH: predefined + [elementGet: { $ELEMENT = $THIS->GetName(); }] + [elementSet: { Shadowed_param->collectionName=$ELEMENT; }] + */ + + G4String SDname; /* MSH: predefined + [elementGet: { $ELEMENT = $THIS->GetSDname(); }] + [elementSet: { Shadowed_param->SDname=$ELEMENT; }] + */ + + /* MSH_derivedclass: ($THIS->GetName() == "calCollection") => G4THitsCollection("","") + | ($THIS->GetName() == "muonCollection") => G4THitsCollection("","") + | true => G4THitsCollection("","") */ + + public: + inline G4String GetName() + { return collectionName; } + inline G4String GetSDname() + { return SDname; } + + public: + // GetHit and GetSize are given a default implementation here so + // that the template G4THitsCollection can be used, but they + // are re-implemented G4THitsCollection. + virtual G4VHit* GetHit(size_t i) const { return 0; } + virtual size_t GetSize() const { return 0; }; + +}; +//MSH_END +#endif + diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.msh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.msh new file mode 100644 index 0000000000..a7ea712d01 --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.msh @@ -0,0 +1,120 @@ +%{ +#include + +%} + + marshaling class MarshaledG4VHitsCollection (G4VHitsCollection* param) { + + G4String collectionName; + //FIELDMARSHAL: + { + G4String $ELEMENT; + $ELEMENT = $THIS->GetName(); + MarshaledG4String var(&$ELEMENT); + EXTEND_BUFFER(var.getBufferSize()); + $SIZE = var.getBufferSize(); + memcpy($$, var.getBuffer(), var.getBufferSize()); + } + //FIELDUNMARSHAL: + { + MarshaledG4String var($$, 'u'); + G4String $ELEMENT; + var.unmarshalTo(&$ELEMENT); + Shadowed_param->collectionName=$ELEMENT; + + } + //FIELDSIZE: + { + // no need to declare size since $SIZE is already assigned in the MARSHAL field + + } + + G4String SDname; + //FIELDMARSHAL: + { + G4String $ELEMENT; + $ELEMENT = $THIS->GetSDname(); + MarshaledG4String var(&$ELEMENT); + EXTEND_BUFFER(var.getBufferSize()); + $SIZE = var.getBufferSize(); + memcpy($$, var.getBuffer(), var.getBufferSize()); + } + //FIELDUNMARSHAL: + { + MarshaledG4String var($$, 'u'); + G4String $ELEMENT; + var.unmarshalTo(&$ELEMENT); + Shadowed_param->SDname=$ELEMENT; + + } + //FIELDSIZE: + { + // no need to declare size since $SIZE is already assigned in the MARSHAL field + + } + int __dummy949; // marshaling code for MSH_derivedclass + //FIELDMARSHAL: + { + if(0){} + else if(($THIS->GetName() == "calCollection") ){ + G4THitsCollection *aObj949 = (G4THitsCollection*)$THIS; + MarshaledG4THitsCollection marChild(aObj949); + EXTEND_BUFFER(marChild.getBufferSize()); + memcpy($$,marChild.getBuffer(), marChild.getBufferSize()); + $SIZE = marChild.getBufferSize(); + $TYPE_CHOICE = 0; + } + else if( ($THIS->GetName() == "muonCollection") ){ + G4THitsCollection *aObj949 = (G4THitsCollection*)$THIS; + MarshaledG4THitsCollection marChild(aObj949); + EXTEND_BUFFER(marChild.getBufferSize()); + memcpy($$,marChild.getBuffer(), marChild.getBufferSize()); + $SIZE = marChild.getBufferSize(); + $TYPE_CHOICE = 1; + } + else if( true ){ + G4THitsCollection *aObj949 = (G4THitsCollection*)$THIS; + MarshaledG4THitsCollection marChild(aObj949); + EXTEND_BUFFER(marChild.getBufferSize()); + memcpy($$,marChild.getBuffer(), marChild.getBufferSize()); + $SIZE = marChild.getBufferSize(); + $TYPE_CHOICE = 2; + } + + } + //FIELD UNMARSHAL: + { + if(0){} + else if($TYPE_CHOICE == 0){ + MarshaledG4THitsCollection marObj($$); + marObj.unmarshalTo((G4THitsCollection*)$THIS); + } + else if($TYPE_CHOICE == 1){ + MarshaledG4THitsCollection marObj($$); + marObj.unmarshalTo((G4THitsCollection*)$THIS); + } + else if($TYPE_CHOICE == 2){ + MarshaledG4THitsCollection marObj($$); + marObj.unmarshalTo((G4THitsCollection*)$THIS); + } + + } + //FIELD SIZE : + { + //code for size, just dummy code because the size will be set correctly at the end of marshaling code + + } + unmarshaling constructor { + if(0){} + else if($TYPE_CHOICE == 0){ + $THIS = new G4THitsCollection("",""); + } + else if($TYPE_CHOICE == 1){ + $THIS = new G4THitsCollection("",""); + } + else if($TYPE_CHOICE == 2){ + $THIS = new G4THitsCollection("",""); + } + } +} + diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4HCofThisEvent.h b/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4HCofThisEvent.h new file mode 100644 index 0000000000..41c1cf0775 --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4HCofThisEvent.h @@ -0,0 +1,162 @@ +// This file was generated automatically by marshalgen. + +#ifndef MarshaledG4HCofThisEvent_H +#define MarshaledG4HCofThisEvent_H + + +#include +//MSH_include_begin +#include "G4SDManager.hh" +#include "G4THitsCollection.hh" +#include "ExN04TrackerHit.hh" +#include "MarshaledExN04TrackerHit.h" +#include "MarshaledG4THitsCollection.h" +#include "MarshaledG4VHitsCollection.h" +//MSH_include_end + +#include +#include +#include "MarshaledObj.h" + + class MarshaledG4HCofThisEvent; + + class ShadowedMarshaledG4HCofThisEvent : public G4HCofThisEvent{ + friend class MarshaledG4HCofThisEvent; +}; + + class MarshaledG4HCofThisEvent : public MarshaledObj { +public: + G4HCofThisEvent* param; + ShadowedMarshaledG4HCofThisEvent* Shadowed_param; +public: + + +// Function implementations + +MarshaledG4HCofThisEvent(G4HCofThisEvent* objptr) : MarshaledObj() { + msh_isUnmarshalDone = false; + this->param = objptr; + this->Shadowed_param = (ShadowedMarshaledG4HCofThisEvent*)this->param; + if (objptr == NULL) + return; + + marshal1(); +} + +MarshaledG4HCofThisEvent(void *buf, char isUnmarshaling = 'u') +: MarshaledObj(buf, isUnmarshaling) { + msh_isUnmarshalDone = false; +} + +~MarshaledG4HCofThisEvent() { + //if(msh_isUnmarshalDone && this->param != NULL) { + //delete this->param; + //} +} + +G4HCofThisEvent* unmarshal() { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return NULL; + } else { + { + param = new G4HCofThisEvent(); + } + this->Shadowed_param = (ShadowedMarshaledG4HCofThisEvent*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + return this->param; + } +} + +void unmarshalTo(G4HCofThisEvent* obj) { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return; + } else { + this->param = obj; + this->Shadowed_param = (ShadowedMarshaledG4HCofThisEvent*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + } +} + +void marshal1() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + int copy_off = 0; + int elementNum; + elementNum = param->GetNumberOfCollections(); + memcpy( msh_cursor+copy_off, &elementNum,sizeof(int)); + copy_off += sizeof(int); + for(int index=0;indexGetHC(index); + MarshaledG4VHitsCollection marEle(anElement); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy(msh_cursor+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + msh_currentSize = copy_off; + + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal1() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + int copy_off = 0; + int elementNum; + memcpy(&elementNum, msh_cursor+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int index=0;indexAddHitsCollection(index, anElement); + } + + } + msh_cursor += msh_currentSize; +} + +}; +#endif + diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4String.h b/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4String.h new file mode 100644 index 0000000000..fd6e438f71 --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4String.h @@ -0,0 +1,137 @@ +// This file was generated automatically by marshalgen. + +#ifndef MarshaledG4String_H +#define MarshaledG4String_H + + +#include + + +#include +#include +#include "MarshaledObj.h" + + class MarshaledG4String; + + class ShadowedMarshaledG4String : public G4String{ + friend class MarshaledG4String; +}; + + class MarshaledG4String : public MarshaledObj { +public: + G4String* param; + ShadowedMarshaledG4String* Shadowed_param; +public: + + +// Function implementations + +MarshaledG4String(G4String* objptr) : MarshaledObj() { + msh_isUnmarshalDone = false; + this->param = objptr; + this->Shadowed_param = (ShadowedMarshaledG4String*)this->param; + if (objptr == NULL) + return; + + marshal1(); +} + +MarshaledG4String(void *buf, char isUnmarshaling = 'u') +: MarshaledObj(buf, isUnmarshaling) { + msh_isUnmarshalDone = false; +} + +~MarshaledG4String() { + //if(msh_isUnmarshalDone && this->param != NULL) { + //delete this->param; + //} +} + +G4String* unmarshal() { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return NULL; + } else { + { + param = new G4String(); + } + this->Shadowed_param = (ShadowedMarshaledG4String*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + return this->param; + } +} + +void unmarshalTo(G4String* obj) { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return; + } else { + this->param = obj; + this->Shadowed_param = (ShadowedMarshaledG4String*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + } +} + +void marshal1() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + int size = param->size()+1; + while(size%8) size++; + msh_currentSize = size; + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + memcpy(msh_cursor, param->c_str(), param->size()); + *(msh_cursor+param->size()) = '\0'; + + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal1() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + G4String* s = new G4String(msh_cursor); + memcpy(param, s, sizeof(G4String)); + + } + msh_cursor += msh_currentSize; +} + +}; +#endif + diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4THitsCollection.h b/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4THitsCollection.h new file mode 100644 index 0000000000..a89179a06d --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4THitsCollection.h @@ -0,0 +1,381 @@ +// This file was generated automatically by marshalgen. + +#ifndef MarshaledG4HitsCollection_H +#define MarshaledG4HitsCollection_H + + +#include +//MSH_include_begin +#include "ExN04CalorimeterHit.hh" +#include "ExN04MuonHit.hh" +#include "ExN04TrackerHit.hh" +#include "MarshaledExN04CalorimeterHit.h" +#include "MarshaledExN04MuonHit.h" +#include "MarshaledExN04TrackerHit.h" +//MSH_include_end + +#include +#include +#include "MarshaledObj.h" + + class MarshaledG4HitsCollection; + + class ShadowedMarshaledG4HitsCollection : public G4HitsCollection{ + friend class MarshaledG4HitsCollection; +}; + + +template class MarshaledG4THitsCollection; + +template class ShadowedMarshaledG4THitsCollection : public G4THitsCollection{ + friend class MarshaledG4THitsCollection; +}; + + class MarshaledG4HitsCollection : public MarshaledObj { +public: + G4HitsCollection* param; + ShadowedMarshaledG4HitsCollection* Shadowed_param; +public: + + +// Function implementations + +MarshaledG4HitsCollection(G4HitsCollection* objptr) : MarshaledObj() { + msh_isUnmarshalDone = false; + this->param = objptr; + this->Shadowed_param = (ShadowedMarshaledG4HitsCollection*)this->param; + if (objptr == NULL) + return; + + marshal1(); +} + +MarshaledG4HitsCollection(void *buf, char isUnmarshaling = 'u') +: MarshaledObj(buf, isUnmarshaling) { + msh_isUnmarshalDone = false; +} + +~MarshaledG4HitsCollection() { + //if(msh_isUnmarshalDone && this->param != NULL) { + //delete this->param; + //} +} + +G4HitsCollection* unmarshal() { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return NULL; + } else { + { + param = new G4HitsCollection(); + } + this->Shadowed_param = (ShadowedMarshaledG4HitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + return this->param; + } +} + +void unmarshalTo(G4HitsCollection* obj) { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return; + } else { + this->param = obj; + this->Shadowed_param = (ShadowedMarshaledG4HitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + } +} + +void marshal1() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + int copy_off = 0; + int elementNum; + + if(dynamic_cast*>(param)!=NULL) + elementNum = ((G4THitsCollection*)param)->entries(); + else if(dynamic_cast*>(param)!=NULL) + elementNum = ((G4THitsCollection*)param)->entries(); + else + elementNum = ((G4THitsCollection*)param)->entries(); + + memcpy( msh_cursor+copy_off, &elementNum,sizeof(int)); + copy_off += sizeof(int); + for(int index=0;index*>(param)!=NULL) ){ + void* anElement; + + if(dynamic_cast*>(param)!=NULL) + anElement = (*((G4THitsCollection*)param))[index]; + else if(dynamic_cast*>(param)!=NULL) + anElement = (*((G4THitsCollection*)param))[index]; + else + anElement = (*((G4THitsCollection*)param))[index]; + + MarshaledExN04CalorimeterHit marEle((ExN04CalorimeterHit* )anElement); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy(msh_cursor+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + else if( (dynamic_cast*>(param)!=NULL) ){ + void* anElement; + + if(dynamic_cast*>(param)!=NULL) + anElement = (*((G4THitsCollection*)param))[index]; + else if(dynamic_cast*>(param)!=NULL) + anElement = (*((G4THitsCollection*)param))[index]; + else + anElement = (*((G4THitsCollection*)param))[index]; + + MarshaledExN04MuonHit marEle((ExN04MuonHit* )anElement); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy(msh_cursor+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + else if( true ){ + void* anElement; + + if(dynamic_cast*>(param)!=NULL) + anElement = (*((G4THitsCollection*)param))[index]; + else if(dynamic_cast*>(param)!=NULL) + anElement = (*((G4THitsCollection*)param))[index]; + else + anElement = (*((G4THitsCollection*)param))[index]; + + MarshaledExN04TrackerHit marEle((ExN04TrackerHit*)anElement); + EXTEND_BUFFER(marEle.getBufferSize()); + memcpy(msh_cursor+copy_off, marEle.getBuffer(), marEle.getBufferSize()); + copy_off += marEle.getBufferSize(); + } + } + msh_currentSize = copy_off; + + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal1() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + if(0){} + else if((dynamic_cast*>(param)!=NULL) ){ + int copy_off = 0; + int elementNum; + memcpy(&elementNum, msh_cursor+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int index=0;index*>(param)!=NULL) + ((G4THitsCollection*)param)->insert((ExN04CalorimeterHit*)anElement); + else if(dynamic_cast*>(param)!=NULL) + ((G4THitsCollection*)param)->insert((ExN04MuonHit*)anElement); + else + ((G4THitsCollection*)param)->insert((ExN04TrackerHit*)anElement); + + } + } + else if( (dynamic_cast*>(param)!=NULL) ){ + int copy_off = 0; + int elementNum; + memcpy(&elementNum, msh_cursor+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int index=0;index*>(param)!=NULL) + ((G4THitsCollection*)param)->insert((ExN04CalorimeterHit*)anElement); + else if(dynamic_cast*>(param)!=NULL) + ((G4THitsCollection*)param)->insert((ExN04MuonHit*)anElement); + else + ((G4THitsCollection*)param)->insert((ExN04TrackerHit*)anElement); + + } + } + else if( true ){ + int copy_off = 0; + int elementNum; + memcpy(&elementNum, msh_cursor+copy_off, sizeof(int)); + copy_off += sizeof(int); + for(int index=0;index*>(param)!=NULL) + ((G4THitsCollection*)param)->insert((ExN04CalorimeterHit*)anElement); + else if(dynamic_cast*>(param)!=NULL) + ((G4THitsCollection*)param)->insert((ExN04MuonHit*)anElement); + else + ((G4THitsCollection*)param)->insert((ExN04TrackerHit*)anElement); + + } + } + + } + msh_cursor += msh_currentSize; +} + +}; +template class MarshaledG4THitsCollection : public MarshaledObj { +public: + G4THitsCollection* param; + ShadowedMarshaledG4THitsCollection* Shadowed_param; +public: + + +// Function implementations + +MarshaledG4THitsCollection(G4THitsCollection* objptr) : MarshaledObj() { + msh_isUnmarshalDone = false; + this->param = objptr; + this->Shadowed_param = (ShadowedMarshaledG4THitsCollection*)this->param; + if (objptr == NULL) + return; + + marshal1(); +} + +MarshaledG4THitsCollection(void *buf, char isUnmarshaling = 'u') +: MarshaledObj(buf, isUnmarshaling) { + msh_isUnmarshalDone = false; +} + +~MarshaledG4THitsCollection() { + //if(msh_isUnmarshalDone && this->param != NULL) { + //delete this->param; + //} +} + +G4THitsCollection* unmarshal() { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return NULL; + } else { + { + param = new G4THitsCollection(); + } + this->Shadowed_param = (ShadowedMarshaledG4THitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + return this->param; + } +} + +void unmarshalTo(G4THitsCollection* obj) { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return; + } else { + this->param = obj; + this->Shadowed_param = (ShadowedMarshaledG4THitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + } +} + +void marshal1() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + //code for size, just dummy code because the size will be set correctly at the end of marshaling code + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + MarshaledG4HitsCollection marParent(param); + EXTEND_BUFFER(marParent.getBufferSize()); + memcpy(msh_cursor,marParent.getBuffer(), marParent.getBufferSize()); + msh_currentSize = marParent.getBufferSize(); + + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal1() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + MarshaledG4HitsCollection marObj(msh_cursor); + marObj.unmarshalTo(param); + + } + msh_cursor += msh_currentSize; +} + +}; +#endif + diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4VHitsCollection.h b/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4VHitsCollection.h new file mode 100644 index 0000000000..3f13cdfd77 --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4VHitsCollection.h @@ -0,0 +1,301 @@ +// This file was generated automatically by marshalgen. + +#ifndef MarshaledG4VHitsCollection_H +#define MarshaledG4VHitsCollection_H + + +#include + + +#include +#include +#include "MarshaledObj.h" + + class MarshaledG4VHitsCollection; + + class ShadowedMarshaledG4VHitsCollection : public G4VHitsCollection{ + friend class MarshaledG4VHitsCollection; +}; + + class MarshaledG4VHitsCollection : public MarshaledObj { +public: + G4VHitsCollection* param; + ShadowedMarshaledG4VHitsCollection* Shadowed_param; +public: + + +// Function implementations + +MarshaledG4VHitsCollection(G4VHitsCollection* objptr) : MarshaledObj() { + msh_isUnmarshalDone = false; + this->param = objptr; + this->Shadowed_param = (ShadowedMarshaledG4VHitsCollection*)this->param; + if (objptr == NULL) + return; + + marshal1(); + marshal2(); + marshal3(); +} + +MarshaledG4VHitsCollection(void *buf, char isUnmarshaling = 'u') +: MarshaledObj(buf, isUnmarshaling) { + msh_isUnmarshalDone = false; +} + +~MarshaledG4VHitsCollection() { + //if(msh_isUnmarshalDone && this->param != NULL) { + //delete this->param; + //} +} + +G4VHitsCollection* unmarshal() { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return NULL; + } else { + { + if(0){} + else if(msh_typechoice == 0){ + param = new G4THitsCollection("",""); + } + else if(msh_typechoice == 1){ + param = new G4THitsCollection("",""); + } + else if(msh_typechoice == 2){ + param = new G4THitsCollection("",""); + } + } + this->Shadowed_param = (ShadowedMarshaledG4VHitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + unmarshal2(); + unmarshal3(); + return this->param; + } +} + +void unmarshalTo(G4VHitsCollection* obj) { + //We don't want to unmarshal the buffer is empty. + if(msh_size <= MSH_HEADER_SIZE) { + //This is buggy, we can't always assume that + //obj == NULL <==> List is empty. + return; + } else { + this->param = obj; + this->Shadowed_param = (ShadowedMarshaledG4VHitsCollection*)this->param; + this->msh_isUnmarshalDone = true; + unmarshal1(); + unmarshal2(); + unmarshal3(); + } +} + +void marshal1() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + // no need to declare size since msh_currentSize is already assigned in the MARSHAL field + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + G4String anElement; + anElement = param->GetName(); + MarshaledG4String var(&anElement); + EXTEND_BUFFER(var.getBufferSize()); + msh_currentSize = var.getBufferSize(); + memcpy(msh_cursor, var.getBuffer(), var.getBufferSize()); + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal1() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + MarshaledG4String var(msh_cursor, 'u'); + G4String anElement; + var.unmarshalTo(&anElement); + Shadowed_param->collectionName=anElement; + + } + msh_cursor += msh_currentSize; +} + +void marshal2() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + // no need to declare size since msh_currentSize is already assigned in the MARSHAL field + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + G4String anElement; + anElement = param->GetSDname(); + MarshaledG4String var(&anElement); + EXTEND_BUFFER(var.getBufferSize()); + msh_currentSize = var.getBufferSize(); + memcpy(msh_cursor, var.getBuffer(), var.getBufferSize()); + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal2() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + MarshaledG4String var(msh_cursor, 'u'); + G4String anElement; + var.unmarshalTo(&anElement); + Shadowed_param->SDname=anElement; + + } + msh_cursor += msh_currentSize; +} + +void marshal3() { + //declare field_size to be the size of this field + int msh_currentSize = 0; + if (isUnmarshaling()) + throw "Tried to marshal in obj marked isUnmarshaling == true"; + + //Copy the sizespec into msh_currentSize here: + { + //code for size, just dummy code because the size will be set correctly at the end of marshaling code + + } + + //Increase the size of buffer if needed + EXTEND_BUFFER(msh_currentSize + sizeof(int) + sizeof(int)); // 4 bytes for the total size of field, 4 bytes for the number of elements in the array (in the case of array marshaling) + //Mark the beginning position for this field, will write the total size of this field here later + msh_field_begin = msh_cursor; + + //Advance cursor of distance = sizeof(int) + msh_cursor += sizeof(int); + + //Now just copy "get" functions here + { + if(0){} + else if((param->GetName() == "calCollection") ){ + G4THitsCollection *aObj949 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj949); + EXTEND_BUFFER(marChild.getBufferSize()); + memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); + msh_currentSize = marChild.getBufferSize(); + msh_typechoice = 0; + } + else if( (param->GetName() == "muonCollection") ){ + G4THitsCollection *aObj949 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj949); + EXTEND_BUFFER(marChild.getBufferSize()); + memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); + msh_currentSize = marChild.getBufferSize(); + msh_typechoice = 1; + } + else if( true ){ + G4THitsCollection *aObj949 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj949); + EXTEND_BUFFER(marChild.getBufferSize()); + memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); + msh_currentSize = marChild.getBufferSize(); + msh_typechoice = 2; + } + + } + //Now advance the cursor + msh_cursor += msh_currentSize; + //Now set the size of this field + int tmp; //use memcpy instead of *(int*)... =... to prevent bus error + tmp = (msh_cursor-msh_field_begin) - sizeof(int); + memcpy(msh_field_begin, &tmp, sizeof(int)); + + //Now set msh_size + msh_size = msh_cursor - msh_buffer; + MSH_SET_TOTALSIZE(msh_size); MSH_SET_TYPECHOICE(msh_typechoice); +} + +void unmarshal3() { + //declare currentSize to be the size of this field + int msh_currentSize = 0; + //copy the size of the current field into currentSize + memcpy(&msh_currentSize, msh_cursor, sizeof(int)); + msh_cursor += sizeof(int); + //Now copy the setspec here + { + if(0){} + else if(msh_typechoice == 0){ + MarshaledG4THitsCollection marObj(msh_cursor); + marObj.unmarshalTo((G4THitsCollection*)param); + } + else if(msh_typechoice == 1){ + MarshaledG4THitsCollection marObj(msh_cursor); + marObj.unmarshalTo((G4THitsCollection*)param); + } + else if(msh_typechoice == 2){ + MarshaledG4THitsCollection marObj(msh_cursor); + marObj.unmarshalTo((G4THitsCollection*)param); + } + + } + msh_cursor += msh_currentSize; +} + +}; +#endif + diff --git a/examples/extended/parallel/ParN04/History b/examples/extended/parallel/ParN04/History index 340815d09e..d82c955ae6 100644 --- a/examples/extended/parallel/ParN04/History +++ b/examples/extended/parallel/ParN04/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2004/11/26 16:51:34 gcosmo Exp $ +$Id: History,v 1.8 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +Nov 22nd, 2004 G.Cooperman - ParN04-V07-00-00 +--------------------------- +- Added annotated files. + Nov 22nd, 2004 G.Cooperman and V.H.Nguyen - ParN04-V06-02-00 ------------------------------------------ - New version of marshaling/unmarshaling code, generated from diff --git a/examples/extended/parallel/ParN04/ParN04.cc b/examples/extended/parallel/ParN04/ParN04.cc index 1d6a5db27a..6b986e1e71 100644 --- a/examples/extended/parallel/ParN04/ParN04.cc +++ b/examples/extended/parallel/ParN04/ParN04.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ParN04.cc,v 1.3 2003/12/03 14:28:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ParN04.cc,v 1.4 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -51,7 +51,7 @@ #include "ExN04SteppingVerbose.hh" #ifdef G4VIS_USE -#include "ExN04VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "ParTopC.icc" @@ -67,7 +67,7 @@ int main(int argc,char** argv) #ifdef G4VIS_USE // Visualization, if you choose to have it! - G4VisManager* visManager = new ExN04VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/parallel/ParN04/ParTopC.icc b/examples/extended/parallel/ParN04/ParTopC.icc index ac868710e1..e2574fb447 100644 --- a/examples/extended/parallel/ParN04/ParTopC.icc +++ b/examples/extended/parallel/ParN04/ParTopC.icc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParTopC.icc,v 1.1 2002/03/09 06:25:10 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh index 59862ac0a2..d2031928fe 100644 --- a/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.hh,v 1.1 2002/03/05 15:22:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh index 94c4270eee..495b36af52 100644 --- a/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.hh,v 1.1 2002/03/05 15:22:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh index 051f6aedd0..53e21fefde 100644 --- a/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN04HadronPhysics.hh,v 1.3 2003/12/03 14:28:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh index 5f681cc733..0c8a24eed2 100644 --- a/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.hh,v 1.2 2003/12/03 14:28:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh index e98e63c675..c28b9dc410 100644 --- a/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.hh,v 1.2 2003/12/03 14:28:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04RunAction.hh b/examples/extended/parallel/ParN04/include/ExN04RunAction.hh index afad4fa76b..930b55f80b 100644 --- a/examples/extended/parallel/ParN04/include/ExN04RunAction.hh +++ b/examples/extended/parallel/ParN04/include/ExN04RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.hh,v 1.1 2003/12/03 14:32:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.hh b/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.hh index 5c23200117..5219cbfd99 100644 --- a/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.hh +++ b/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.hh,v 1.1 2003/12/03 14:32:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/parallel/ParN04/include/ExN04VisManager.hh b/examples/extended/parallel/ParN04/include/ExN04VisManager.hh deleted file mode 100644 index 2eac673510..0000000000 --- a/examples/extended/parallel/ParN04/include/ExN04VisManager.hh +++ /dev/null @@ -1,72 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN04VisManager.hh,v 1.1 2003/12/03 14:28:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef ExN04VisManager_h -#define ExN04VisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class ExN04VisManager: public G4VisManager { - -public: - - ExN04VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - -#endif diff --git a/examples/extended/parallel/ParN04/include/ParRunManager.hh b/examples/extended/parallel/ParN04/include/ParRunManager.hh index 8b01e82d11..25a2a66d7e 100644 --- a/examples/extended/parallel/ParN04/include/ParRunManager.hh +++ b/examples/extended/parallel/ParN04/include/ParRunManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParRunManager.hh,v 1.3 2004/11/22 17:51:13 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc index 7e7f505e3f..349fc5903d 100644 --- a/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc index 8f89403568..77160a6ae3 100644 --- a/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.cc,v 1.2 2003/06/16 16:49:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc index 213569fb5c..92f5d0bc60 100644 --- a/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04HadronPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN04HadronPhysics.hh" diff --git a/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc index 0477d15ab7..5941180599 100644 --- a/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc index bb86482505..57171105ea 100644 --- a/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc b/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc index 3042982d68..276a470567 100644 --- a/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc +++ b/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04PhysicsList.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04RunAction.cc b/examples/extended/parallel/ParN04/src/ExN04RunAction.cc index e2b471d6c4..fc77d40785 100644 --- a/examples/extended/parallel/ParN04/src/ExN04RunAction.cc +++ b/examples/extended/parallel/ParN04/src/ExN04RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.cc,v 1.1 2003/12/03 14:32:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.cc b/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.cc index c75c1ab08f..a4e760a545 100644 --- a/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.cc +++ b/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.cc,v 1.1 2003/12/03 14:32:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN04/src/ExN04VisManager.cc b/examples/extended/parallel/ParN04/src/ExN04VisManager.cc deleted file mode 100755 index 8e5ee598ca..0000000000 --- a/examples/extended/parallel/ParN04/src/ExN04VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN04VisManager.cc,v 1.1 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "ExN04VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN04VisManager::ExN04VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN04VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/info/ParGeant4.txt b/examples/extended/parallel/info/ParGeant4.txt new file mode 100644 index 0000000000..42a3d87cda --- /dev/null +++ b/examples/extended/parallel/info/ParGeant4.txt @@ -0,0 +1,140 @@ + +Parallel Geant4 (ParGeant4) + +Maintained by Gene Cooperman (gene@ccs.neu.edu), +and Viet Ha Nguyen (vietha@ccs.neu.edu) + +What is ParGeant4 ? + +ParGeant4 [1] is a parallel version of Geant4 that implements event-level +parallelism to simulate separate events on remote processors. Typical +simulations demonstrate a nearly linear speedup in running time as the +number of remote processors increases. The needed enhancements of Geant4 +are included in the examples/extended/parallel directory of the Geant4 +distribution. + +Why is ParGeant4 useful? + +When doing a large Geant4 simulation, one often wishes to run on many +processors to reduce the overall time. Traditionally, this has been done +by splitting the events into multiple groups, and running Geant4 +independently on each processor for its own group of events. This requires +restarting a run if a processor goes down. It also requires saving the +histogram files from each run, and merging the files prior to using the +analysis tool. The human effort in this is considerable. + +ParGeant4 provides a much simpler mechanism. After setting up ParGeant4 one +links and runs the sequential Geant4 application exactly as before, but +additionally linking with some parallel libraries. Upon execution, ParGeant4 +on the console sends out events to slave processes, collects all hits, and +calls any analysis tool -- exactly as one would do in the sequential case. + +There is no need to split events into separate groups, track whether one of +the processors crashed, merge histogram files, etc. If a slave processor +crashes, ParGeant automatically re-sends the events of that slave processor +to a new slave processor for re-execution. + +What is the performance of ParGeant4? + +As a rule of thumb, speedup will be nearly linear when each event simulation +lasts for at least several milliseconds. ParGeant4 has been tested +extensively on parallelizations of examples/novice/N02 and of +examples/advanced/underground_physics. On N02, we see a speedup of 27 for +50 nodes and a speedup of 33 for 100 nodes. When using +the --aggregated-tasks=50 option (see below) the speedup improves to 35 for +50 nodes and 60 for 100 nodes. + +In tests of underground_physics, events are longer and we see nearly linear +speedup (94 times speedup with 100 nodes). + +Getting started + +Detailed information is under extended/parallel/ParN02/docs/000README. There +are four steps: + + 1. Install TOP-C [2]. + 2. Compile ParN02 by running gmake. + 3. Make sure the "procgroup" file is correct and copy it to directory of + the executable binary file (for example, $G4BIN/Linux-g++). + 4. Run the parallel binary program. + +What is involved in setting up ParGeant4? + +To set up ParGeant4, one needs TOP-C [2] and Marshalgen [4] (free, open +source software). If one is parallelizing a new Geant4 application, one +must then add/modify approximately 20 lines of annotations (C++ comments +to indicate shallow vs. deep copying of pointers, etc.) in the .h files +for each hit type being defined by the application. For details of the +annotations, refer to the manual of the Marshalgen package. Finally, in +the main routine of the application, one replaces the call to the G4RunManager +constructor by a call to the ParRunManager constructor. (ParRunManger is +a derived class of G4RunManager.) + +After this, one invokes the already provided GNUMakefile (a slightly modified +version of the Geant4 example GNUMakefile) to create the parallel application. +Finally, one writes a "procgroup" file, which declares the names of the remote +hosts to use in the parallel computation. Optionally, one may also specify +filenames (e.g. slave1.out, slave2.out, ...) to store the printout from each +slave process. One then calls the ParGeant4 binary exactly as one would call +the Geant4 binary, and the results appear as normal, only faster. + +Are there examples of using ParGeant4? + +Yes. ParGeant4 includes parallelizations of other examples from the Geant4 +distribution. Specifically, ParGeant4 includes example parallelizations of +novice/N02, novice/N04, and advanced/underground_physics . + +What are some of the features of ParGeant4? + +ParGeant4 includes all of the features of TOP-C. In particular, after +building a binary, "parMySimulation", one might call: + +./parMySimulation --TOPC-help + Display command options, and then exit. + +./parMySimulation --TOPC-trace=0 + By default, ParGeant4 traces each time a new event is sent to a task. +This turns it off. + +./parMySimulation --TOPC-verbose=0 + By default, ParGeant4 provides statistics indicating what process was run, +when it was run, what machine, the running times and elapsed times of master +and the average slave, and other information. This turns off the statistics. + +./parMySimulation --TOPC-aggregated-tasks=10 + By default, ParGeant4 sends one event to one remote process before turning +to the next process. This option sends 10 events to a single remote process in +one message. This is useful when events are relatively short, and the network +latency of sending a message is starting to dominate the running time. + +./parMySimulation --TOPC-slave-timeout=3600 + By default, if a remote process has not communicated with the master after +1800 seconds (a half hour), the slave process will kill itself. This prevents +runaway processes that may be in an infinite loop for some event, or may have +lost their socket to communicate with the master process. In this example, we +allow 7200 seconds (two hours) because we expect simulation of some events to +last up to (but not more than) 7200 seconds. + +By default, ParGeant4 uses its own subset implementation of MPI (MPINU). +ParGeant4 adds approximately 50 KB to the "footprint" of the binary +executable. By default, ParGeant4 uses "ssh" to set up remote processes. +Those who wish to use their own MPI (perhaps if a batch cluster requires a +specific MPI) may do so. +(See "Configuring a Different `MPI')" in the TOP-C manual [3].) + + +References: + +[1] ParGeant4: http://www.ccs.neu.edu/home/gene/pargeant4.html + +[2] TOP-C: http://www.ccs.neu.edu/home/gene/topc.html + +[3] TOP-C manual: http://www.ccs.neu.edu/home/gene/topc/topc_toc.html + +[4] Marshalgen : http://www.ccs.neu.edu/home/gene/marshalgen.html + + + + + + diff --git a/examples/extended/persistency/History b/examples/extended/persistency/History index a0d625de3d..2a4870c889 100644 --- a/examples/extended/persistency/History +++ b/examples/extended/persistency/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2003/11/13 15:26:01 johna Exp $ +$Id: History,v 1.8 2005/05/03 10:05:49 allison Exp $ -------------------------------------------------- ========================================================= @@ -16,6 +16,15 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +May 27th, 2005 Gabriele Cosmo (persistencyEx-V07-00-01) +- Fixed trivial compilation errors for utility HitsAnalyzer. + +Mar 3rd, 2005 Gabriele Cosmo (persistencyEx-V07-00-00) +- Brought up-to-date ... + Nov 13th, 2003 John Allison - Removed OPACS from Vis Manager. diff --git a/examples/extended/persistency/PersEx01/G4PersEx01.cc b/examples/extended/persistency/PersEx01/G4PersEx01.cc index b3b62e7cc7..7842324e23 100644 --- a/examples/extended/persistency/PersEx01/G4PersEx01.cc +++ b/examples/extended/persistency/PersEx01/G4PersEx01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PersEx01.cc,v 1.1 2002/12/04 02:44:24 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PersEx01.cc,v 1.2 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -45,7 +45,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "Pers01VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "Pers01DetectorConstruction.hh" @@ -90,7 +90,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new Pers01VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/persistency/PersEx01/GNUmakefile b/examples/extended/persistency/PersEx01/GNUmakefile index af2b19305a..1a606713c1 100644 --- a/examples/extended/persistency/PersEx01/GNUmakefile +++ b/examples/extended/persistency/PersEx01/GNUmakefile @@ -1,8 +1,7 @@ -# $Id: GNUmakefile,v 1.1 2002/12/04 02:44:24 morita Exp $ +# $Id: GNUmakefile,v 1.2 2005/04/22 16:26:46 gcosmo Exp $ # -# GNUmakefile: makefile for example ROOT I/O impelmentatoin. +# GNUmakefile: makefile for example ROOT I/O implementation. # -# This makefile creates a granular library in $(FADS_LIB). # $(name) is the name of granular library. # # Author: Youhei Morita diff --git a/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc b/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc index 218c51306c..478351e8d6 100644 --- a/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc +++ b/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc @@ -108,20 +108,21 @@ int main(int argc, char **argv) } if (verbose) { - if (read) cout << "*** Input File: " << filename << endl; - if (write) cout << "*** Output File: " << filename << endl; - cout << "*** Histogram File: " << histofile << endl; + if (read) std::cout << "*** Input File: " << filename << std::endl; + if (write) std::cout << "*** Output File: " << filename << std::endl; + std::cout << "*** Histogram File: " << histofile << std::endl; } Int_t ev; Int_t printev = 10000; - cout << endl << " *** Testing Pers01CalorHitRootIO *** " << endl << endl; + std::cout << std::endl << " *** Testing Pers01CalorHitRootIO *** " + << std::endl << std::endl; - string detName = "CalorSD"; - string colName = "CalCollection"; - string obj = "Hits"; - string pmName = "ROOT"; + std::string detName = "CalorSD"; + std::string colName = "CalCollection"; + std::string obj = "Hits"; + std::string pmName = "ROOT"; G4PersistencyCenter* pc = G4PersistencyCenter::GetPersistencyCenter(); G4PersistencyManager* pm = pc->GetPersistencyManager(pmName); @@ -154,7 +155,7 @@ int main(int argc, char **argv) G4VHitsCollection* ahc; - string file = pc->CurrentReadFile(obj); + std::string file = pc->CurrentReadFile(obj); if ( pm->TransactionManager()->SelectReadFile(obj, file) ) { ev = 0; @@ -200,12 +201,12 @@ int main(int argc, char **argv) hit->AddAbs(edep,2*edep); hit->AddGap(edep,2*edep); - if (verbose) cout << " EdepAbs = " << hit->GetEdepAbs() << endl; + if (verbose) std::cout << " EdepAbs = " << hit->GetEdepAbs() << std::endl; hc = new Pers01CalorHitsCollection(detName,colName); hc->insert(hit); - string file = pc->CurrentWriteFile(obj); + std::string file = pc->CurrentWriteFile(obj); if ( pm->TransactionManager()->SelectWriteFile(obj, file) ) { ioman->Store(hc); } @@ -215,7 +216,7 @@ int main(int argc, char **argv) pm->TransactionManager()->Commit(); } - cout << "Done." << endl; + std::cout << "Done." << std::endl; // delete hits collection, IO manager // delete pc; diff --git a/examples/extended/persistency/PersEx01/README b/examples/extended/persistency/PersEx01/README index 5933cce6ec..ddc4ca035c 100644 --- a/examples/extended/persistency/PersEx01/README +++ b/examples/extended/persistency/PersEx01/README @@ -6,13 +6,20 @@ This example demonstrates how to store calorimeter hits using ROOT I/O. Example sensitive detector and hits (Pers01CalorimeterSD and Pers01CalorHit) are taken from the novice example N03. +NOTE: to build the example "PersEx01" you need to have the following BEFORE: + + o Geant4 shared libraries (built using G4LIB_BUILD_SHARED set) + o Geant4 header files installed in $G4INCLUDE (through the Configure + script or manually with "gmake includes" from $G4INSTALL/source) + o The example has been tested on Linux-SLC3/gcc-3.2.3 only. + *** Making libraries *** First you need to make Geant4 ROOT I/O libraries. You may need to set up ROOT environment variables. - setenv ROOTSYS /usr/local/root/v3.03.06/root + setenv ROOTSYS /usr/local/root/v4.03.04/root setenv PATH $ROOTSYS/bin:$PATH In Addition, you may also need to set up LD_LIBRARY_PATH, depending on @@ -24,21 +31,21 @@ Note: ROOT 3.03.08 is known to cause problems with Geant4 ROOT I/O. Then you make libG4ROOTIO.so by typing - cd G4INSTALL/examples/extented/persistency/rootio - make + cd $G4INSTALL/examples/extented/persistency/rootio + gmake G4LIB_BUILD_SHARED=1 The library module will be built into $G4PEX_LIB. - (G4INSTALL/examples/extented/persistency/rootio/lib/$G4SYSTEM) + ($G4INSTALL/examples/extented/persistency/rootio/lib/$G4SYSTEM) *** Making executable module G4PersEx01 *** - cd G4INSTALL/examples/extented/persistency/PersEx01 - make + cd $G4INSTALL/examples/extented/persistency/PersEx01 + gmake G4LIB_BUILD_SHARED=1 By doing this, you create libG4PersEx01.so in $G4PEX_LIB, and the executable module G4PersEx01 in $G4PEX_BIN. - (G4INSTALL/examples/extented/persistency/rootio/bin/$G4SYSTEM) + ($G4INSTALL/examples/extented/persistency/rootio/bin/$G4SYSTEM) By running "run" script provided in this directory, hits information will be stored into a file G4run0001.root. @@ -51,7 +58,7 @@ will be stored into a file G4run0001.root. You can read the hit ROOT file G4run0001.root with HitsAnalyzer. cd HitsAnalyzer - make + gmake G4LIB_BUILD_SHARED=1 ./run @@ -81,7 +88,7 @@ Pers01DetectorConstruction.cc. On line#4, file name for the hits output is specified. -*** Root I/O Adopter classes *** +*** Root I/O Adapter classes *** In the subdirectory rootio, there is a file called Pers01CalorHit.rootio which is used to generate a set of ROOT I/O adopter classes. @@ -151,7 +158,7 @@ In Geant4, various types of hits information from each subdetector must be recorded into the file. For the developer of each subdetector, the type of information for each hit is important and the I/O mechanism can be similar to each other. g4rootio.pl -enables an automatic generation of ROOT I/O adopter classes from +enables an automatic generation of ROOT I/O adapter classes from a simple definition file *.rootio. @@ -167,7 +174,7 @@ only those simple types. g4rootio.pl is not capable of storing data members with pointers or variable length array such as char* or std::string. For the -charaters, you may need to use fixed length array such as char[20]. +characters, you may need to use fixed length array such as char[20]. *** How to write Pers01CalorHit.rootio *** @@ -309,9 +316,9 @@ Then the retrieved MDTHitsCollection has 0 as the 3rd argument. It is users responsibility to fill this variable properly. -*** Generation of the ROOT I/O Adopter classes *** +*** Generation of the ROOT I/O Adapter classes *** -ROOT I/O adopter classes can be generated automatically with the +ROOT I/O adapter classes can be generated automatically with the GNUmakefiles provided in the $G4PEX_DIR/config directory. "make clean" will cleans up your directory. diff --git a/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh b/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh index 19ce543fe9..6f0bb28767 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01CalorHit.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh b/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh index 95b0bd9f0b..944019f8a9 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01CalorimeterSD.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh b/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh index f99da4f151..a49fe07f0d 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01DetectorConstruction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh index c5ec9298b4..e366532772 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01DetectorMessenger.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh b/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh index c44aeb596c..194564ab5e 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01EventAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh index ab61f4a303..ecd55ac5cf 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01EventActionMessenger.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh b/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh index 0233316c7d..18d30843ed 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01PhysicsList.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh index 44549b43c0..bc927b9c72 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01PrimaryGeneratorAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh index d30cbe1e79..43d5217ffc 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01PrimaryGeneratorMessenger.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh b/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh index 02a321d48b..a856f21a55 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01RunAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh b/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh index b752eb6140..886da81d0f 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01SteppingAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh b/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh index 43e9052834..0b6a095c99 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01SteppingVerbose.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/include/Pers01VisManager.hh b/examples/extended/persistency/PersEx01/include/Pers01VisManager.hh deleted file mode 100644 index a41f0b2846..0000000000 --- a/examples/extended/persistency/PersEx01/include/Pers01VisManager.hh +++ /dev/null @@ -1,72 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: Pers01VisManager.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef Pers01VisManager_h -#define Pers01VisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Pers01VisManager: public G4VisManager { - -public: - - Pers01VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - -#endif diff --git a/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc b/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc index b6ba40bb01..48aab215fb 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Pers01CalorHit.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: Pers01CalorHit.cc,v 1.2 2005/04/22 16:26:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // @@ -49,6 +49,7 @@ Pers01CalorHit::~Pers01CalorHit() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... Pers01CalorHit::Pers01CalorHit(const Pers01CalorHit& right) + : G4VHit(right) { EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; @@ -67,7 +68,7 @@ const Pers01CalorHit& Pers01CalorHit::operator=(const Pers01CalorHit& right) int Pers01CalorHit::operator==(const Pers01CalorHit& right) const { - return 0; + return (this==&right) ? 1 : 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc b/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc index eea8c8defa..0b37017097 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Pers01CalorimeterSD.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: Pers01CalorimeterSD.cc,v 1.2 2005/04/22 16:26:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // @@ -61,7 +61,7 @@ Pers01CalorimeterSD::~Pers01CalorimeterSD() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Pers01CalorimeterSD::Initialize(G4HCofThisEvent*HCE) +void Pers01CalorimeterSD::Initialize(G4HCofThisEvent*) { CalCollection = new Pers01CalorHitsCollection (SensitiveDetectorName,collectionName[0]); @@ -70,7 +70,7 @@ void Pers01CalorimeterSD::Initialize(G4HCofThisEvent*HCE) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4bool Pers01CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +G4bool Pers01CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); diff --git a/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc b/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc index 1d03a0c829..4222da89b4 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01DetectorConstruction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc index acf9cc9ab2..8fa5225685 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01DetectorMessenger.cc,v 1.2 2002/12/06 16:59:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc b/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc index d9b6c1c3d9..5e9c23e969 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01EventAction.cc,v 1.2 2003/06/16 16:49:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc index 77b4cdcaf8..c77e432b34 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01EventActionMessenger.cc,v 1.2 2002/12/06 16:59:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc b/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc index 8f0fd40c6e..f811a62cfe 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01PhysicsList.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc index 4d6ffb3540..a4e0e869ee 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01PrimaryGeneratorAction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc index 76932fee70..843161dee0 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01PrimaryGeneratorMessenger.cc,v 1.2 2002/12/06 16:59:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc b/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc index 9083a7c9a6..3d5ea53e11 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01RunAction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc b/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc index cea2e987b2..93e57fb037 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01SteppingAction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc b/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc index cf5e80c6f7..007adf648f 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01SteppingVerbose.cc,v 1.2 2003/06/16 16:49:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/src/Pers01VisManager.cc b/examples/extended/persistency/PersEx01/src/Pers01VisManager.cc deleted file mode 100644 index 8c3fa15b04..0000000000 --- a/examples/extended/persistency/PersEx01/src/Pers01VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: Pers01VisManager.cc,v 1.3 2003/11/13 15:10:50 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "Pers01VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Pers01VisManager::Pers01VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Pers01VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/rootio/GNUmakefile b/examples/extended/persistency/rootio/GNUmakefile index 9edd9a0672..9d712ac99f 100644 --- a/examples/extended/persistency/rootio/GNUmakefile +++ b/examples/extended/persistency/rootio/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 2002/12/04 02:44:27 morita Exp $ +# $Id: GNUmakefile,v 1.2 2005/04/22 16:26:46 gcosmo Exp $ # # GNUmakefile: makefile for example ROOT I/O impelmentatoin. # @@ -19,8 +19,8 @@ include $(G4PEX_DIR)/config/G4PEXsetup.gmk CPPFLAGS += -I$(G4INSTALL)/source/global/management/include \ -I$(G4INSTALL)/source/global/HEPGeometry/include \ - -I$(G4INSTALL)/source/digits+hits/hits/include \ - -I$(G4INSTALL)/source/digits+hits/digits/include \ + -I$(G4INSTALL)/source/digits_hits/hits/include \ + -I$(G4INSTALL)/source/digits_hits/digits/include \ -I$(G4INSTALL)/source/particles/management/include \ -I$(G4INSTALL)/source/run/include \ -I$(G4INSTALL)/source/event/include \ diff --git a/examples/extended/persistency/rootio/config/binmake.gmk b/examples/extended/persistency/rootio/config/binmake.gmk index 74e428fb3a..a14d96693d 100644 --- a/examples/extended/persistency/rootio/config/binmake.gmk +++ b/examples/extended/persistency/rootio/config/binmake.gmk @@ -1,4 +1,4 @@ -# $Id: binmake.gmk,v 1.4 2002/12/04 17:54:25 morita Exp $ +# $Id: binmake.gmk,v 1.7 2005/04/27 09:29:16 gcosmo Exp $ # ===================================================================== # binmake.gmk: GNUmakefile variables for creating the binary executable # @@ -140,7 +140,7 @@ endif ifneq ($(root_hh),) include/%Root.hh include/%sRoot.hh include/%RootIO.hh src/%Root.cc src/%sRoot.cc src/%RootIO.cc: rootio/%.rootio - $(G4ROOTIO) $< + @$(G4ROOTIO) $< $(root_dict): $(root_hh) $(root_def) ifdef CPPVERBOSE @@ -149,7 +149,7 @@ ifdef CPPVERBOSE $(PROG_ROOTCINT) -f $@ -c $(CINT_INCLUDES) -p $(root_tmp) ) ( cd $(G4PEX_TMP); rm -f $(root_tmp) ) else - @echo "Generating dictionary $(root_dict) ..." + @echo "Generating dictionary ..." @cp -f $^ $(G4PEX_TMP)/ @( cd $(G4PEX_TMP); \ $(PROG_ROOTCINT) -f $@ -c $(CINT_INCLUDES) -p $(root_tmp) ) @@ -157,12 +157,12 @@ else endif $(root_def): $(root_hh) - $(G4PEX_DIR)/config/rootdict.sh "$(root_name)" $(root_def) + @$(G4PEX_DIR)/config/rootdict.sh "$(root_name)" $(root_def) endif $(root_dict_o): $(root_dict) - @echo "Compiling $< with $(CXX) ..." + @echo "Compiling dictionary with $(CXX) ..." @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ # --------------------------------------------------------------------- @@ -182,7 +182,7 @@ $(G4PEX_TMP)/$(TARGET).o: $(TARGET).cc $(G4PEX_TMP)/$(TARGET).d ifdef CPPVERBOSE $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ else - @echo "Compiling $< with $(CXX) ..." + @echo "Compiling $(TARGET).cc with $(CXX) ..." @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ endif @@ -196,7 +196,7 @@ endif $(libraries_to_build): $(objects) ifneq ($(G4LIB_BUILD_SHARED),) - @echo Creating shared library $@ + @echo Creating shared library lib$(TARGET).so ... @rm -f $(G4PEX_LIB)/lib$(TARGET).so @cd $(G4PEX_TMP); \ $(CXX) -Wl,-soname,lib$(TARGET).so \ @@ -204,9 +204,9 @@ ifneq ($(G4LIB_BUILD_SHARED),) $(EXTLDFLAGS) $(EXTLIBS) endif ifneq ($(G4LIB_BUILD_STATIC),) - @echo Creating static library $@ + @echo Creating static library lib$(TARGET).a ... @rm -f $(G4PEX_LIB)/lib$(TARGET).a - $(AR) $(G4PEX_LIB)/lib$(TARGET).a $(G4PEX_TMP)/*.o + @$(AR) $(G4PEX_LIB)/lib$(TARGET).a $(G4PEX_TMP)/*.o @if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then \ ranlib $(G4PEX_LIB)/lib$(TARGET).a ;fi endif @@ -231,5 +231,5 @@ endif @rm -f -r $(G4PEX_DIR)/tmp/$(G4SYSTEM)/$(TARGET) distclean: clean - @rm -f G4defaultOutput G4run0001.root G4History.macro core* .DAWN*.history g4_*.prim + @rm -f G4defaultOutput G4run0001.root Histo.root G4History.macro core* .DAWN*.history g4_*.prim diff --git a/examples/extended/persistency/rootio/config/common.gmk b/examples/extended/persistency/rootio/config/common.gmk index 557d68e233..4adf3b66bb 100644 --- a/examples/extended/persistency/rootio/config/common.gmk +++ b/examples/extended/persistency/rootio/config/common.gmk @@ -1,4 +1,4 @@ -# $Id: common.gmk,v 1.2 2002/12/04 09:39:24 morita Exp $ +# $Id: common.gmk,v 1.5 2005/04/23 15:44:02 gcosmo Exp $ # ===================================================================== # common.gmk: GNUmakefile variables for building the library files. # @@ -90,7 +90,7 @@ endif ifneq ($(root_hh),) include/%Root.hh include/%sRoot.hh include/%RootIO.hh src/%Root.cc src/%sRoot.cc src/%RootIO.cc: rootio/%.rootio - $(G4ROOTIO) $< + @$(G4ROOTIO) $< $(root_dict): $(root_hh) $(root_def) ifdef CPPVERBOSE @@ -99,7 +99,7 @@ ifdef CPPVERBOSE $(PROG_ROOTCINT) -f $@ -c $(CINT_INCLUDES) -p $(root_tmp) ) ( cd $(G4PEX_TMP); rm -f $(root_tmp) ) else - @echo "Generating dictionary $(root_dict) ..." + @echo "Generating dictionary ..." @cp -f $^ $(G4PEX_TMP)/ @( cd $(G4PEX_TMP); \ $(PROG_ROOTCINT) -f $@ -c $(CINT_INCLUDES) -p $(root_tmp) ) @@ -107,19 +107,19 @@ else endif $(root_def): $(root_hh) - $(G4PEX_DIR)/config/rootdict.sh "$(root_name)" $(root_def) + @$(G4PEX_DIR)/config/rootdict.sh "$(root_name)" $(root_def) endif $(root_dict_o): $(root_dict) - @echo "Compiling $< with $(CXX) ..." + @echo "Compiling dictionary with $(CXX) ..." @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ # --------------------------------------------------------------------- $(libraries_to_build): $(objects) ifneq ($(G4LIB_BUILD_SHARED),) - @echo Creating shared library $@ + @echo Creating shared library lib$(TARGET).so ... @rm -f $(G4PEX_LIB)/lib$(TARGET).so @cd $(G4PEX_TMP); \ $(CXX) -Wl,-soname,lib$(TARGET).so \ @@ -127,9 +127,9 @@ ifneq ($(G4LIB_BUILD_SHARED),) $(EXTLDFLAGS) $(EXTLIBS) endif ifneq ($(G4LIB_BUILD_STATIC),) - @echo Creating static library $@ + @echo Creating static library lib$(TARGET).a ... @rm -f $(G4PEX_LIB)/lib$(TARGET).a - $(AR) $(G4PEX_LIB)/lib$(TARGET).a $(G4PEX_TMP)/*.o + @$(AR) $(G4PEX_LIB)/lib$(TARGET).a $(G4PEX_TMP)/*.o @if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then \ ranlib $(G4PEX_LIB)/lib$(TARGET).a ;fi endif @@ -152,6 +152,13 @@ ifneq ($(cleanup_target),) endif @rm -f -r $(G4PEX_DIR)/lib/$(G4SYSTEM)/$(libraries_to_build) @rm -f -r $(G4PEX_DIR)/tmp/$(G4SYSTEM)/$(TARGET) + @rm -f -r $(G4PEX_DIR)/include/G4ROOTIOLinkDef.h + +distclean: + @rm -f -r $(G4PEX_DIR)/lib + @rm -f -r $(G4PEX_DIR)/tmp + @rm -f -r $(G4PEX_DIR)/bin + @rm -f -r $(G4PEX_DIR)/include/G4ROOTIOLinkDef.h test: @echo "objects = $(objects)" diff --git a/examples/extended/persistency/rootio/config/g4rootio.pl b/examples/extended/persistency/rootio/config/g4rootio.pl index 1a56affa46..3ff49890e0 100755 --- a/examples/extended/persistency/rootio/config/g4rootio.pl +++ b/examples/extended/persistency/rootio/config/g4rootio.pl @@ -2108,7 +2108,7 @@ sub fads_create_io_source_file{ print(OUT " branch->SetAutoDelete(kFALSE);\n"); print(OUT "\n"); print(OUT " if ( m_verbose > 2 ) {\n"); - print(OUT " G4cout << \"${class_io}: Storing ${class_name} collectoin \"\n"); + print(OUT " G4cout << \"${class_io}: Storing ${class_name} collection \"\n"); print(OUT " << \"for \\\"\" << ahc->GetSDname() << \"\\\", \"\n"); print(OUT " << \"collection \\\"\" << ahc->GetName() << \"\\\".\" << G4endl\n"); print(OUT " << \" # of entries: \" << ahc->$collection_class_method_entries << \".\" << G4endl;\n"); @@ -2154,7 +2154,7 @@ sub fads_create_io_source_file{ print(OUT " branch->SetAddress(&f_hc);\n"); print(OUT "\n"); print(OUT " if ( m_verbose > 2 ) {\n"); - print(OUT " G4cout << \"${class_io}: Retrieving ${class_name} collectoin \"\n"); + print(OUT " G4cout << \"${class_io}: Retrieving ${class_name} collection \"\n"); print(OUT " << \"for \\\"\" << f_detName << \"\\\", \"\n"); print(OUT " << \"collection \\\"\" << f_colName << \"\\\".\" << G4endl;\n"); print(OUT " }\n"); diff --git a/examples/extended/persistency/rootio/include/G4DigitRootIO.hh b/examples/extended/persistency/rootio/include/G4DigitRootIO.hh index df80c02bf2..58cb74d3d0 100644 --- a/examples/extended/persistency/rootio/include/G4DigitRootIO.hh +++ b/examples/extended/persistency/rootio/include/G4DigitRootIO.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4DigitRootIO.hh,v 1.4 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4DigitRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4EventRootIO.hh b/examples/extended/persistency/rootio/include/G4EventRootIO.hh index 69889e3902..fa61f5f48d 100644 --- a/examples/extended/persistency/rootio/include/G4EventRootIO.hh +++ b/examples/extended/persistency/rootio/include/G4EventRootIO.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4EventRootIO.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4EventRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh b/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh index 350b8460e0..38e3d98892 100644 --- a/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh +++ b/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepMCRootIO.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4HepMCRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4HitRootIO.hh b/examples/extended/persistency/rootio/include/G4HitRootIO.hh index 57d19823fb..8d861ceb35 100644 --- a/examples/extended/persistency/rootio/include/G4HitRootIO.hh +++ b/examples/extended/persistency/rootio/include/G4HitRootIO.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HitRootIO.hh,v 1.4 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4HitRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh b/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh index 313091adb6..4812ca53b6 100644 --- a/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh +++ b/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MCTruthRootIO.hh,v 1.4 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4MCTruthRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4RootEvent.hh b/examples/extended/persistency/rootio/include/G4RootEvent.hh index f8ec58f570..6882747a7d 100644 --- a/examples/extended/persistency/rootio/include/G4RootEvent.hh +++ b/examples/extended/persistency/rootio/include/G4RootEvent.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4RootEvent.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4RootEvent.hh // diff --git a/examples/extended/persistency/rootio/include/G4RootIOManager.hh b/examples/extended/persistency/rootio/include/G4RootIOManager.hh index 36cb58f9d3..41b8e154c9 100644 --- a/examples/extended/persistency/rootio/include/G4RootIOManager.hh +++ b/examples/extended/persistency/rootio/include/G4RootIOManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4RootIOManager.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4RootIOManager.hh // diff --git a/examples/extended/persistency/rootio/include/G4RootTransManager.hh b/examples/extended/persistency/rootio/include/G4RootTransManager.hh index f8cfcda991..8d02f59d3c 100644 --- a/examples/extended/persistency/rootio/include/G4RootTransManager.hh +++ b/examples/extended/persistency/rootio/include/G4RootTransManager.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4RootTransManager.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4RootTransManager.hh,v 1.4 2005/04/22 16:57:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4RootTransManager.hh // @@ -109,7 +109,7 @@ class G4RootTransManager // Sets the ROOT I/O compression level. private: - TFile* LookUp(string file, string mode); + TFile* LookUp(std::string file, std::string mode); // Returns the Root file pointer to the object type and file name. // Opens a new file if the access is for the first time. diff --git a/examples/extended/persistency/rootio/src/G4DigitRootIO.cc b/examples/extended/persistency/rootio/src/G4DigitRootIO.cc index 37b6e050cf..4196cdd4e9 100644 --- a/examples/extended/persistency/rootio/src/G4DigitRootIO.cc +++ b/examples/extended/persistency/rootio/src/G4DigitRootIO.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4DigitRootIO.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4DigitRootIO.cc,v 1.5 2005/04/22 16:26:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4DigitRootIO.cc // @@ -51,13 +51,13 @@ G4DigitRootIO* G4DigitRootIO::GetDigitRootIO() } // Implementation of Store -bool G4DigitRootIO::Store(const G4DCofThisEvent* dcevt) +bool G4DigitRootIO::Store(const G4DCofThisEvent*) { return true; } // Implementation of Retrieve -bool G4DigitRootIO::Retrieve(G4DCofThisEvent*& dcevt) +bool G4DigitRootIO::Retrieve(G4DCofThisEvent*&) { return true; } diff --git a/examples/extended/persistency/rootio/src/G4EventRootIO.cc b/examples/extended/persistency/rootio/src/G4EventRootIO.cc index 5580f99528..d80fc404ad 100644 --- a/examples/extended/persistency/rootio/src/G4EventRootIO.cc +++ b/examples/extended/persistency/rootio/src/G4EventRootIO.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4EventRootIO.cc,v 1.3 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4EventRootIO.cc,v 1.4 2005/04/22 16:26:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4EventRootIO.cc // @@ -41,8 +41,8 @@ G4EventRootIO::G4EventRootIO( G4PersistencyManager* pc ) } // Implementation of Store -// G4bool G4EventRootIO::Store( HepMC::GenEvent* hepevt, G4MCTEvent* mctevt, const G4Event* g4evt) -G4bool G4EventRootIO::Store( HepMC::GenEvent* hepevt, const G4Event* g4evt) +// G4bool G4EventRootIO::Store( HepMC::GenEvent* hepevt, const G4Event* g4evt) +G4bool G4EventRootIO::Store( HepMC::GenEvent*, const G4Event*) { // if (hepevt == 0) return false; // no event generated... @@ -52,19 +52,19 @@ G4bool G4EventRootIO::Store( HepMC::GenEvent* hepevt, const G4Event* g4evt) } // Implementation of Store -G4bool G4EventRootIO::Store( const G4Event* anEvent ) +G4bool G4EventRootIO::Store( const G4Event* ) { return true; } // Implementation of Retrieve -G4bool G4EventRootIO::Retrieve( G4Pevent*& anEvent ) +G4bool G4EventRootIO::Retrieve( G4Pevent*& ) { return true; } // Implementation of Retrieve -G4bool G4EventRootIO::Retrieve( G4Event*& anEvent ) +G4bool G4EventRootIO::Retrieve( G4Event*& ) { return true; } diff --git a/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc b/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc index 56de5580c3..f6e35eb2eb 100644 --- a/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc +++ b/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HepMCRootIO.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4HepMCRootIO.cc,v 1.5 2005/04/22 16:26:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4HepMCRootIO.cc // @@ -31,7 +31,7 @@ #include "G4HepMCRootIO.hh" // Implementation of Store -bool G4HepMCRootIO::Store(HepMC::GenEvent* evt) +bool G4HepMCRootIO::Store(HepMC::GenEvent*) { // G4RootIOManager* pm = // (G4RootIOManager*) G4PersistencyCenter::GetPersistencyCenter() @@ -43,7 +43,7 @@ bool G4HepMCRootIO::Store(HepMC::GenEvent* evt) } // Implementation of Retrieve -bool G4HepMCRootIO::Retrieve(HepMC::GenEvent*& evt, int id) +bool G4HepMCRootIO::Retrieve(HepMC::GenEvent*& evt, int) { // bool st = false; evt = 0; diff --git a/examples/extended/persistency/rootio/src/G4HitRootIO.cc b/examples/extended/persistency/rootio/src/G4HitRootIO.cc index 6178636efd..bb5b3ac2fb 100644 --- a/examples/extended/persistency/rootio/src/G4HitRootIO.cc +++ b/examples/extended/persistency/rootio/src/G4HitRootIO.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HitRootIO.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4HitRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc b/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc index 5d3a1af17f..d5262f713a 100644 --- a/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc +++ b/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MCTruthRootIO.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4MCTruthRootIO.cc,v 1.5 2005/04/22 16:26:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4MCTruthRootIO.cc // @@ -33,13 +33,13 @@ G4MCTruthRootIO* G4MCTruthRootIO::thePointer=G4MCTruthRootIO::GetMCTruthRootIO(); // Implementation of Store -bool G4MCTruthRootIO::Store(G4MCTEvent* mctevent) +bool G4MCTruthRootIO::Store(G4MCTEvent*) { return true; } // Implementation of Retrieve -bool G4MCTruthRootIO::Retrieve(G4MCTEvent* & mctevent) +bool G4MCTruthRootIO::Retrieve(G4MCTEvent* &) { return true; } diff --git a/examples/extended/persistency/rootio/src/G4RootEvent.cc b/examples/extended/persistency/rootio/src/G4RootEvent.cc index 1862682cf6..cef673e4c4 100644 --- a/examples/extended/persistency/rootio/src/G4RootEvent.cc +++ b/examples/extended/persistency/rootio/src/G4RootEvent.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4RootEvent.cc,v 1.3 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4RootEvent.cc,v 1.4 2005/04/22 16:26:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4RootEvent.cc // @@ -46,7 +46,7 @@ G4RootEvent::~G4RootEvent() G4Pevent* G4RootEvent::MakeTransientObject() { HepMC::GenEvent* hepevt = 0; - G4MCTEvent* mctevt = 0; + // G4MCTEvent* mctevt = 0; G4Event* g4evt = 0; // G4Pevent* anEvt = new G4Pevent(hepevt, mctevt, g4evt); G4Pevent* anEvt = new G4Pevent(hepevt, g4evt); diff --git a/examples/extended/persistency/rootio/src/G4RootIOManager.cc b/examples/extended/persistency/rootio/src/G4RootIOManager.cc index dceb07f5c9..3d605389cf 100644 --- a/examples/extended/persistency/rootio/src/G4RootIOManager.cc +++ b/examples/extended/persistency/rootio/src/G4RootIOManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4RootIOManager.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4RootIOManager.cc // diff --git a/examples/extended/persistency/rootio/src/G4RootTransManager.cc b/examples/extended/persistency/rootio/src/G4RootTransManager.cc index 457f688455..7d70e49327 100644 --- a/examples/extended/persistency/rootio/src/G4RootTransManager.cc +++ b/examples/extended/persistency/rootio/src/G4RootTransManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4RootTransManager.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4RootTransManager.cc,v 1.5 2005/04/22 16:26:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // File: G4RootTransManager.cc // @@ -44,7 +44,7 @@ G4RootTransManager::G4RootTransManager() } // Implementation of SelectReadFile -bool G4RootTransManager::SelectReadFile(std::string obj, std::string file) +bool G4RootTransManager::SelectReadFile(std::string, std::string file) { // obtain TFile pointer for "file" for reading TFile* tfile = LookUp(file, "READ"); @@ -65,7 +65,7 @@ bool G4RootTransManager::SelectReadFile(std::string obj, std::string file) } // Implementation of SelectWriteFile -bool G4RootTransManager::SelectWriteFile(std::string obj, std::string file) +bool G4RootTransManager::SelectWriteFile(std::string, std::string file) { // obtain TFile pointer for "obj" and "file" for writing TFile* tfile = LookUp(file, "WRITE"); @@ -120,7 +120,7 @@ int G4RootTransManager::BufferSize() } // Implementation of LookUp -TFile* G4RootTransManager::LookUp(string file, string mode) +TFile* G4RootTransManager::LookUp(std::string file, std::string mode) { if ( (*(f_catalog.find(file))).second != 0 ) { return f_catalog[file]; @@ -128,16 +128,16 @@ TFile* G4RootTransManager::LookUp(string file, string mode) if ( mode == "WRITE" ) { f_catalog[file] = new TFile(file.c_str(), "UPDATE"); - cout << "LookUp: File: " << file << " for write" << endl; + G4cout << "LookUp: File: " << file << " for write" << G4endl; f_catalog[file]->SetCompressionLevel(f_comp); return f_catalog[file]; } else if ( mode == "READ" ) { f_catalog[file] = new TFile(file.c_str(), "READ"); - cout << "LookUp: File: " << file << " for read" << endl; + G4cout << "LookUp: File: " << file << " for read" << G4endl; return f_catalog[file]; } else { - cout << "LookUp: File: " << file << ", f_catalog=0" << endl; + G4cout << "LookUp: File: " << file << ", f_catalog=0" << G4endl; return 0; } } diff --git a/examples/extended/radioactivedecay/exrdm/History b/examples/extended/radioactivedecay/exrdm/History index 5dd338ac3c..d2a2ac9774 100644 --- a/examples/extended/radioactivedecay/exrdm/History +++ b/examples/extended/radioactivedecay/exrdm/History @@ -1,4 +1,4 @@ -$Id: History,v 1.3 2004/12/13 16:06:13 gcosmo Exp $ +$Id: History,v 1.6 2005/06/03 16:49:36 flei Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,15 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +03 June 2005 Fan Lei (exrdm-V07-00-01) +- updates to physics list +- added macros/test.mac for testing the physics list + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +07-03-2005, Fan Lei (exrdm-V07-00-00) +- Update to exrdmPhysicsList.cc December 3rd, 2004 Gabriele Cosmo (exrdm-V06-02-02) --------------------------------- @@ -25,4 +34,4 @@ December 3rd, 2004 Gabriele Cosmo (exrdm-V06-02-01) November 11th, 2004 Fan lei (exrdm-V06-02-00) --------------------------- -- First release of LXe setup for optical processes. +- First release diff --git a/examples/extended/radioactivedecay/exrdm/README b/examples/extended/radioactivedecay/exrdm/README index 1d3dcd642a..b74133bf3b 100644 --- a/examples/extended/radioactivedecay/exrdm/README +++ b/examples/extended/radioactivedecay/exrdm/README @@ -239,5 +239,5 @@ as74.mac: The decays of As74 which has a rather complicated decay scheme. i) in analogue MC mode; ii) in variance reduction MC mode. - + test.mac: macro used to check if the right physics processes are assigned to different particles. diff --git a/examples/extended/radioactivedecay/exrdm/exRDM.cc b/examples/extended/radioactivedecay/exrdm/exRDM.cc index f09c56a4f4..c47acb41d7 100644 --- a/examples/extended/radioactivedecay/exrdm/exRDM.cc +++ b/examples/extended/radioactivedecay/exrdm/exRDM.cc @@ -42,7 +42,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "exrdmVisManager.hh" +#include "G4VisExecutive.hh" #endif int main(int argc,char** argv) @@ -86,7 +86,7 @@ int main(int argc,char** argv) #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new exrdmVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/extended/radioactivedecay/exrdm/exrdm.out b/examples/extended/radioactivedecay/exrdm/exrdm.out index 49493f5ccb..01e6449aff 100644 --- a/examples/extended/radioactivedecay/exrdm/exrdm.out +++ b/examples/extended/radioactivedecay/exrdm/exrdm.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (27-July-2004) + Geant4 version $Name: geant4-07-01 $ (27-July-2004) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 diff --git a/examples/extended/radioactivedecay/exrdm/include/exrdmPhysListEmStandard.hh b/examples/extended/radioactivedecay/exrdm/include/exrdmPhysListEmStandard.hh index 2cd248e0fa..441c8a3018 100644 --- a/examples/extended/radioactivedecay/exrdm/include/exrdmPhysListEmStandard.hh +++ b/examples/extended/radioactivedecay/exrdm/include/exrdmPhysListEmStandard.hh @@ -45,6 +45,11 @@ public: // each physics process will be instantiated and // registered to the process manager of each particle type virtual void ConstructProcess(); + +private: + // name of used to differetiate usage with std-hadron phys + G4String name; + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/exrdm/include/exrdmVisManager.hh b/examples/extended/radioactivedecay/exrdm/include/exrdmVisManager.hh deleted file mode 100644 index 1f60ed632f..0000000000 --- a/examples/extended/radioactivedecay/exrdm/include/exrdmVisManager.hh +++ /dev/null @@ -1,72 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// This code implementation is the intellectual property of -// the RD44 GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: exrdmVisManager.hh,v 1.2 2004/12/15 15:41:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new exrdmVisManager; -// myVisManager -> RegisterGraphicsSystem (new exrdmGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef exrdmVisManager_h -#define exrdmVisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class exrdmVisManager: public G4VisManager { - -public: - - exrdmVisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -#endif diff --git a/examples/extended/radioactivedecay/exrdm/macros/currentEvent.rndm b/examples/extended/radioactivedecay/exrdm/macros/currentEvent.rndm index ac11563e90..93072ed5c7 100644 --- a/examples/extended/radioactivedecay/exrdm/macros/currentEvent.rndm +++ b/examples/extended/radioactivedecay/exrdm/macros/currentEvent.rndm @@ -1,2 +1,2 @@ 0 -1998787265 1087225689 +984530236 1294781082 diff --git a/examples/extended/radioactivedecay/exrdm/macros/runall.log b/examples/extended/radioactivedecay/exrdm/macros/runall.log index 0fbbb71d38..d4aecec3a0 100644 --- a/examples/extended/radioactivedecay/exrdm/macros/runall.log +++ b/examples/extended/radioactivedecay/exrdm/macros/runall.log @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -34,165 +34,17 @@ Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) ***** COMMAND NOT FOUND ***** ***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** - -phot: Total cross sections from Sandia parametrisation. -world cuts are set -Target cuts are set -Detector cuts are set -G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma -The cut in range [500 (mm)] is too big for material idx=5 -The cut in energy is set1.79769e+305GeV - -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. - -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. - -msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. - -msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 - -msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model -### All dEdx and Range tables are built ##### - -muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : Yes recalculation needed : No - Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 1 used in the geometry : Yes recalculation needed : No - Material : CsI - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm - Energy thresholds : gamma 550.166 keV e- 90.585 MeV e+ 84.1353 MeV - Region(s) which use this couple : - Target - -Index : 2 used in the geometry : Yes recalculation needed : No - Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV - Region(s) which use this couple : - Detector - -==================================================================== - -### Run : 0 -G4AugerData for Element no. 7 are loaded -G4AugerData for Element no. 8 are loaded -G4AugerData for Element no. 13 are loaded -G4AugerData for Element no. 14 are loaded -G4AugerData for Element no. 32 are loaded -G4AugerData for Element no. 53 are loaded -G4AugerData for Element no. 55 are loaded -G4AugerData for Element no. 82 are loaded -AugerTransitionTable complete Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -226,165 +78,17 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) ***** COMMAND NOT FOUND ***** ***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** - -phot: Total cross sections from Sandia parametrisation. -world cuts are set -Target cuts are set -Detector cuts are set -G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma -The cut in range [500 (mm)] is too big for material idx=5 -The cut in energy is set1.79769e+305GeV - -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. - -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. - -msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. - -msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 - -msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model -### All dEdx and Range tables are built ##### - -muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : Yes recalculation needed : No - Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 1 used in the geometry : Yes recalculation needed : No - Material : CsI - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm - Energy thresholds : gamma 550.166 keV e- 90.585 MeV e+ 84.1353 MeV - Region(s) which use this couple : - Target - -Index : 2 used in the geometry : Yes recalculation needed : No - Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV - Region(s) which use this couple : - Detector - -==================================================================== - -### Run : 0 -G4AugerData for Element no. 7 are loaded -G4AugerData for Element no. 8 are loaded -G4AugerData for Element no. 13 are loaded -G4AugerData for Element no. 14 are loaded -G4AugerData for Element no. 32 are loaded -G4AugerData for Element no. 53 are loaded -G4AugerData for Element no. 55 are loaded -G4AugerData for Element no. 82 are loaded -AugerTransitionTable complete Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -418,193 +122,22 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) - -phot: Total cross sections from Sandia parametrisation. +G4VUserPhysicsList::Construct() +Construct processes world cuts are set Target cuts are set Detector cuts are set ***** COMMAND NOT FOUND ***** ***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma -The cut in range [500 (mm)] is too big for material idx=5 -The cut in energy is set1.79769e+305GeV - -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. - -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. - -msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. - -msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 - -msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model -### All dEdx and Range tables are built ##### - -muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : Yes recalculation needed : No - Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 1 used in the geometry : Yes recalculation needed : No - Material : CsI - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm - Energy thresholds : gamma 550.166 keV e- 90.585 MeV e+ 84.1353 MeV - Region(s) which use this couple : - Target - -Index : 2 used in the geometry : Yes recalculation needed : No - Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV - Region(s) which use this couple : - Detector - -==================================================================== - -### Run : 0 -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -G4AugerData for Element no. 7 are loaded -G4AugerData for Element no. 8 are loaded -G4AugerData for Element no. 13 are loaded -G4AugerData for Element no. 14 are loaded -G4AugerData for Element no. 32 are loaded -G4AugerData for Element no. 53 are loaded -G4AugerData for Element no. 55 are loaded -G4AugerData for Element no. 82 are loaded -AugerTransitionTable complete Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -638,24 +171,17 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) - -phot: Total cross sections from Sandia parametrisation. +G4VUserPhysicsList::Construct() +Construct processes world cuts are set Target cuts are set Detector cuts are set +G4VUserPhysicsList::SetDefaultCutValue:default cut value is changed to :10000[mm] +G4VUserPhysicsList::SetCutsWithDefault:CutLength : 10000 (mm) The number of particle source is 3 source 0 intensity is 2 source 1 intensity is 1 @@ -664,114 +190,141 @@ G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma The cut in range [500 (mm)] is too big for material idx=5 The cut in energy is set1.79769e+305GeV -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for Cf240[0.0] msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model -### All dEdx and Range tables are built ##### muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes recalculation needed : No Material : Air - Range cuts : gamma 10 m e- 10 m e+ 10 m + Range cuts : gamma 10 m e- 10 m e+ 10 m Energy thresholds : gamma 7.99559 keV e- 2.39817 MeV e+ 2.25501 MeV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes recalculation needed : No Material : CsI - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm Energy thresholds : gamma 550.166 keV e- 90.585 MeV e+ 84.1353 MeV Region(s) which use this couple : Target Index : 2 used in the geometry : Yes recalculation needed : No Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV + Range cuts : gamma 50 cm e- 50 cm e+ 50 cm + Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV Region(s) which use this couple : Detector ==================================================================== +### exrdmHisto books 7 histograms +Loaded linked in JVM. +Looking for already loaded JVMs... +None found. +Using CLASSPATH. +classpathOption: -Djava.class.path=/fred/flei/AIDAJNI-3.2.3/lib/freehep-aidajni.jar:/fred/flei/JAIDA-3.2.3/lib/optimizers.jar:/fred/flei/JAIDA-3.2.3/lib/openide-lookup.jar:/fred/flei/JAIDA-3.2.3/lib/jel.jar:/fred/flei/JAIDA-3.2.3/lib/jas-plotter.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-hep.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-base.jar:/fred/flei/JAIDA-3.2.3/lib/bcel.jar:/fred/flei/JAIDA-3.2.3/lib/aida-dev.jar:/fred/flei/JAIDA-3.2.3/lib/aida.jar: +Starting JVM...JVM Created. +Tree store : multiple-source.aida +Creating Ntuple: Emitted Particles +Creating Ntuple: RadioIsotopes +Creating Ntuple: Energy Depositions ### Run : 0 G4AugerData for Element no. 7 are loaded G4AugerData for Element no. 8 are loaded @@ -782,11 +335,13 @@ G4AugerData for Element no. 53 are loaded G4AugerData for Element no. 55 are loaded G4AugerData for Element no. 82 are loaded AugerTransitionTable complete +Closing the tree... +exrdmHistograms and Ntuples are saved Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -820,156 +375,17 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) ***** COMMAND NOT FOUND ***** ***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** - -phot: Total cross sections from Sandia parametrisation. -world cuts are set -Target cuts are set -Detector cuts are set -G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma -The cut in range [500 (mm)] is too big for material idx=5 -The cut in energy is set1.79769e+305GeV - -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. - -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. - -msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. - -msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 - -msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model -### All dEdx and Range tables are built ##### - -muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : Yes recalculation needed : No - Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 1 used in the geometry : Yes recalculation needed : No - Material : CsI - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm - Energy thresholds : gamma 550.166 keV e- 90.585 MeV e+ 84.1353 MeV - Region(s) which use this couple : - Target - -Index : 2 used in the geometry : Yes recalculation needed : No - Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV - Region(s) which use this couple : - Detector - -==================================================================== - -### Run : 0 Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -1003,29 +419,21 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) +exrdmPhysicsList::SelectPhysicsList: Material:NaI with formula: Na-I added! Nb of Material = 8 Nb of Isotope = 0 Nb of Element = 10 ----> The target has been changed to 1 cm of NaI - -phot: Total cross sections from Sandia parametrisation. +G4VUserPhysicsList::Construct() +Construct processes Thank you for using G4BinaryCascade. -/molly/geant4/g4/geant4/data/G4NDL +/fred/geant4/g4/data/G4NDL Thank you for using G4BinaryCascade. Thank you for using G4BinaryCascade. world cuts are set @@ -1035,120 +443,149 @@ G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma The cut in range [500 (mm)] is too big for material idx=5 The cut in energy is set1.79769e+305GeV -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model -### All dEdx and Range tables are built ##### muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes recalculation needed : No Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes recalculation needed : No Material : NaI - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV Region(s) which use this couple : Target Index : 2 used in the geometry : Yes recalculation needed : No Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV + Range cuts : gamma 50 cm e- 50 cm e+ 50 cm + Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV Region(s) which use this couple : Detector ==================================================================== +### exrdmHisto books 7 histograms +Loaded linked in JVM. +Looking for already loaded JVMs... +None found. +Using CLASSPATH. +classpathOption: -Djava.class.path=/fred/flei/AIDAJNI-3.2.3/lib/freehep-aidajni.jar:/fred/flei/JAIDA-3.2.3/lib/optimizers.jar:/fred/flei/JAIDA-3.2.3/lib/openide-lookup.jar:/fred/flei/JAIDA-3.2.3/lib/jel.jar:/fred/flei/JAIDA-3.2.3/lib/jas-plotter.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-hep.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-base.jar:/fred/flei/JAIDA-3.2.3/lib/bcel.jar:/fred/flei/JAIDA-3.2.3/lib/aida-dev.jar:/fred/flei/JAIDA-3.2.3/lib/aida.jar: +Starting JVM...JVM Created. +Tree store : neutron-10ev.aida +Creating Ntuple: Emitted Particles +Creating Ntuple: RadioIsotopes +Creating Ntuple: Energy Depositions ### Run : 0 +Closing the tree... +exrdmHistograms and Ntuples are saved Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -1182,134 +619,152 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) - -phot: Total cross sections from Sandia parametrisation. +G4VUserPhysicsList::Construct() +Construct processes world cuts are set Target cuts are set Detector cuts are set -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 G4Decay::BuildPhysicsTable() +msc: Model variant of multiple scattering for GenericIon + msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model -### All dEdx and Range tables are built ##### muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes recalculation needed : No Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes recalculation needed : No Material : CsI - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm Energy thresholds : gamma 550.166 keV e- 90.585 MeV e+ 84.1353 MeV Region(s) which use this couple : Target Index : 2 used in the geometry : Yes recalculation needed : No Material : Germanium - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm Energy thresholds : gamma 396.666 keV e- 115.873 MeV e+ 110.306 MeV Region(s) which use this couple : Detector ==================================================================== +### exrdmHisto books 7 histograms +Loaded linked in JVM. +Looking for already loaded JVMs... +None found. +Using CLASSPATH. +classpathOption: -Djava.class.path=/fred/flei/AIDAJNI-3.2.3/lib/freehep-aidajni.jar:/fred/flei/JAIDA-3.2.3/lib/optimizers.jar:/fred/flei/JAIDA-3.2.3/lib/openide-lookup.jar:/fred/flei/JAIDA-3.2.3/lib/jel.jar:/fred/flei/JAIDA-3.2.3/lib/jas-plotter.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-hep.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-base.jar:/fred/flei/JAIDA-3.2.3/lib/bcel.jar:/fred/flei/JAIDA-3.2.3/lib/aida-dev.jar:/fred/flei/JAIDA-3.2.3/lib/aida.jar: +Starting JVM...JVM Created. +Tree store : one-iso.aida +Creating Ntuple: Emitted Particles +Creating Ntuple: RadioIsotopes +Creating Ntuple: Energy Depositions ### Run : 0 ********************************************************************************************************* @@ -1317,13 +772,15 @@ Index : 2 used in the geometry : Yes recalculation needed : No ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 0 2e-06 0 0 0 Target initStep - 1 0 0 2.15e-06 0 2e-06 5.72e-06 5.72e-06 Target hIoni + 0 0 0 0 2e-06 0 0 0 Target initStep + 1 0 0 2.15e-06 0 2e-06 5.72e-06 5.72e-06 Target hIoni +Closing the tree... +exrdmHistograms and Ntuples are saved Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -1357,25 +814,17 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) +exrdmPhysicsList::SelectPhysicsList: ----> The target has been changed to 1 cm of Lead - -phot: Total cross sections from Sandia parametrisation. +G4VUserPhysicsList::Construct() +Construct processes Thank you for using G4BinaryCascade. -/molly/geant4/g4/geant4/data/G4NDL +/fred/geant4/g4/data/G4NDL Thank you for using G4BinaryCascade. Thank you for using G4BinaryCascade. world cuts are set @@ -1385,114 +834,141 @@ G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma The cut in range [500 (mm)] is too big for material idx=5 The cut in energy is set1.79769e+305GeV -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model -### All dEdx and Range tables are built ##### muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes recalculation needed : No Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes recalculation needed : No Material : Lead - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm Energy thresholds : gamma 2.24888 MeV e- 437.915 MeV e+ 396.844 MeV Region(s) which use this couple : Target Index : 2 used in the geometry : Yes recalculation needed : No Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV + Range cuts : gamma 50 cm e- 50 cm e+ 50 cm + Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV Region(s) which use this couple : Detector ==================================================================== +### exrdmHisto books 7 histograms +Loaded linked in JVM. +Looking for already loaded JVMs... +None found. +Using CLASSPATH. +classpathOption: -Djava.class.path=/fred/flei/AIDAJNI-3.2.3/lib/freehep-aidajni.jar:/fred/flei/JAIDA-3.2.3/lib/optimizers.jar:/fred/flei/JAIDA-3.2.3/lib/openide-lookup.jar:/fred/flei/JAIDA-3.2.3/lib/jel.jar:/fred/flei/JAIDA-3.2.3/lib/jas-plotter.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-hep.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-base.jar:/fred/flei/JAIDA-3.2.3/lib/bcel.jar:/fred/flei/JAIDA-3.2.3/lib/aida-dev.jar:/fred/flei/JAIDA-3.2.3/lib/aida.jar: +Starting JVM...JVM Created. +Tree store : proton-1gev.aida +Creating Ntuple: Emitted Particles +Creating Ntuple: RadioIsotopes +Creating Ntuple: Energy Depositions ### Run : 0 G4AugerData for Element no. 7 are loaded G4AugerData for Element no. 8 are loaded @@ -1503,11 +979,13 @@ G4AugerData for Element no. 53 are loaded G4AugerData for Element no. 55 are loaded G4AugerData for Element no. 82 are loaded AugerTransitionTable complete +Closing the tree... +exrdmHistograms and Ntuples are saved Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -1541,25 +1019,17 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) +exrdmPhysicsList::SelectPhysicsList: ----> The target has been changed to 1 cm of Lead - -phot: Total cross sections from Sandia parametrisation. +G4VUserPhysicsList::Construct() +Construct processes Thank you for using G4BinaryCascade. -/molly/geant4/g4/geant4/data/G4NDL +/fred/geant4/g4/data/G4NDL Thank you for using G4BinaryCascade. Thank you for using G4BinaryCascade. world cuts are set @@ -1574,114 +1044,141 @@ G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma The cut in range [500 (mm)] is too big for material idx=5 The cut in energy is set1.79769e+305GeV -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model -### All dEdx and Range tables are built ##### muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes recalculation needed : No Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes recalculation needed : No Material : Lead - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm Energy thresholds : gamma 2.24888 MeV e- 437.915 MeV e+ 396.844 MeV Region(s) which use this couple : Target Index : 2 used in the geometry : Yes recalculation needed : No Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV + Range cuts : gamma 50 cm e- 50 cm e+ 50 cm + Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV Region(s) which use this couple : Detector ==================================================================== +### exrdmHisto books 7 histograms +Loaded linked in JVM. +Looking for already loaded JVMs... +None found. +Using CLASSPATH. +classpathOption: -Djava.class.path=/fred/flei/AIDAJNI-3.2.3/lib/freehep-aidajni.jar:/fred/flei/JAIDA-3.2.3/lib/optimizers.jar:/fred/flei/JAIDA-3.2.3/lib/openide-lookup.jar:/fred/flei/JAIDA-3.2.3/lib/jel.jar:/fred/flei/JAIDA-3.2.3/lib/jas-plotter.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-hep.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-base.jar:/fred/flei/JAIDA-3.2.3/lib/bcel.jar:/fred/flei/JAIDA-3.2.3/lib/aida-dev.jar:/fred/flei/JAIDA-3.2.3/lib/aida.jar: +Starting JVM...JVM Created. +Tree store : proton-b.aida +Creating Ntuple: Emitted Particles +Creating Ntuple: RadioIsotopes +Creating Ntuple: Energy Depositions ### Run : 0 G4AugerData for Element no. 7 are loaded G4AugerData for Element no. 8 are loaded @@ -1692,11 +1189,13 @@ G4AugerData for Element no. 53 are loaded G4AugerData for Element no. 55 are loaded G4AugerData for Element no. 82 are loaded AugerTransitionTable complete +Closing the tree... +exrdmHistograms and Ntuples are saved Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -1730,165 +1229,290 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... +exrdmPhysicsList::SelectPhysicsList: -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) +----> The target has been changed to 3 cm of Lead +G4VUserPhysicsList::Construct() +Construct processes +Thank you for using G4BinaryCascade. +/fred/geant4/g4/data/G4NDL +Thank you for using G4BinaryCascade. +Thank you for using G4BinaryCascade. +world cuts are set +Target cuts are set +Detector cuts are set +G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma +The cut in range [500 (mm)] is too big for material idx=5 +The cut in energy is set1.79769e+305GeV + +phot: Total cross sections from Sandia parametrisation. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +hIoni: tables are built for proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for Co57[0.0] + +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +muIoni: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muIoni: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +msc: Model variant of multiple scattering for pi- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Air + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Lead + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm + Energy thresholds : gamma 2.24888 MeV e- 437.915 MeV e+ 396.844 MeV + Region(s) which use this couple : + Target + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : Germanium + Range cuts : gamma 50 cm e- 50 cm e+ 50 cm + Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV + Region(s) which use this couple : + Detector + +==================================================================== + +### exrdmHisto books 7 histograms +Loaded linked in JVM. +Looking for already loaded JVMs... +None found. +Using CLASSPATH. +classpathOption: -Djava.class.path=/fred/flei/AIDAJNI-3.2.3/lib/freehep-aidajni.jar:/fred/flei/JAIDA-3.2.3/lib/optimizers.jar:/fred/flei/JAIDA-3.2.3/lib/openide-lookup.jar:/fred/flei/JAIDA-3.2.3/lib/jel.jar:/fred/flei/JAIDA-3.2.3/lib/jas-plotter.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-hep.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-base.jar:/fred/flei/JAIDA-3.2.3/lib/bcel.jar:/fred/flei/JAIDA-3.2.3/lib/aida-dev.jar:/fred/flei/JAIDA-3.2.3/lib/aida.jar: +Starting JVM...JVM Created. +Tree store : test.aida +Creating Ntuple: Emitted Particles +Creating Ntuple: RadioIsotopes +Creating Ntuple: Energy Depositions +### Run : 0 +G4AugerData for Element no. 7 are loaded +G4AugerData for Element no. 8 are loaded +G4AugerData for Element no. 13 are loaded +G4AugerData for Element no. 14 are loaded +G4AugerData for Element no. 32 are loaded +G4AugerData for Element no. 53 are loaded +G4AugerData for Element no. 55 are loaded +G4AugerData for Element no. 82 are loaded +AugerTransitionTable complete +Closing the tree... +exrdmHistograms and Ntuples are saved +G4ProcessManager:particle[proton] +[0]=== process[Transportation :Transportation] Active + Ordering:: AtRest AlongStep PostStep + GetPIL/ DoIt GetPIL/ DoIt GetPIL/ DoIt + Ordering:: + index -1: -1: 2: 0: 4: 0: + parameter -1: -1: 0: 0: 0: 0: +[1]=== process[msc :Electromagnetic] Active + Ordering:: AtRest AlongStep PostStep + GetPIL/ DoIt GetPIL/ DoIt GetPIL/ DoIt + Ordering:: + index -1: -1: 1: 1: 3: 1: + parameter -1: -1: 1: 1: 1: 1: +[2]=== process[hIoni :Electromagnetic] Active + Ordering:: AtRest AlongStep PostStep + GetPIL/ DoIt GetPIL/ DoIt GetPIL/ DoIt + Ordering:: + index -1: -1: 0: 2: 2: 2: + parameter -1: -1: 2: 2: 2: 2: +[3]=== process[LElastic :NotDefined] Active + Ordering:: AtRest AlongStep PostStep + GetPIL/ DoIt GetPIL/ DoIt GetPIL/ DoIt + Ordering:: + index -1: -1: -1: -1: 1: 3: + parameter -1: -1: -1: -1: 1000: 1000: +[4]=== process[ProtonInelastic :NotDefined] Active + Ordering:: AtRest AlongStep PostStep + GetPIL/ DoIt GetPIL/ DoIt GetPIL/ DoIt + Ordering:: + index -1: -1: -1: -1: 0: 4: + parameter -1: -1: -1: -1: 1000: 1000: +G4ProcessManager:particle[GenericIon] +[0]=== process[Transportation :Transportation] Active +[1]=== process[RadioactiveDecay :Decay] Active +[2]=== process[msc :Electromagnetic] Active +[3]=== process[hIoni :Electromagnetic] Active +[4]=== process[IonInelastic :NotDefined] Active +G4ProcessManager:particle[pi+] +[0]=== process[Transportation :Transportation] Active + Ordering:: AtRest AlongStep PostStep + GetPIL/ DoIt GetPIL/ DoIt GetPIL/ DoIt + Ordering:: + index -1: -1: 2: 0: 4: 0: + parameter -1: -1: 0: 0: 0: 0: +[1]=== process[Decay :Decay] Active + Ordering:: AtRest AlongStep PostStep + GetPIL/ DoIt GetPIL/ DoIt GetPIL/ DoIt + Ordering:: + index 0: 0: -1: -1: 1: 3: + parameter 1000: 1000: -1: -1: 1000: 1000: +[2]=== process[msc :Electromagnetic] Active + Ordering:: AtRest AlongStep PostStep + GetPIL/ DoIt GetPIL/ DoIt GetPIL/ DoIt + Ordering:: + index -1: -1: 1: 1: 3: 1: + parameter -1: -1: 1: 1: 1: 1: +[3]=== process[hIoni :Electromagnetic] Active + Ordering:: AtRest AlongStep PostStep + GetPIL/ DoIt GetPIL/ DoIt GetPIL/ DoIt + Ordering:: + index -1: -1: 0: 2: 2: 2: + parameter -1: -1: 2: 2: 2: 2: +[4]=== process[LElastic :NotDefined] Active + Ordering:: AtRest AlongStep PostStep + GetPIL/ DoIt GetPIL/ DoIt GetPIL/ DoIt + Ordering:: + index -1: -1: -1: -1: 0: 4: + parameter -1: -1: -1: -1: 1000: 1000: +Graphics systems deleted. +Visualization Manager deleting... + +************************************************************* + Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + + Material:Vacuum with formula: H added! + Nb of Material = 1 + Nb of Isotope = 0 + Nb of Element = 1 + Material:Air with formula: N0.78-O0.22 added! + Nb of Material = 2 + Nb of Isotope = 0 + Nb of Element = 3 + Material:Aluminium with formula: Al added! + Nb of Material = 3 + Nb of Isotope = 0 + Nb of Element = 4 + Material:Silicon with formula: Si added! + Nb of Material = 4 + Nb of Isotope = 0 + Nb of Element = 5 + Material:Lead with formula: Pb added! + Nb of Material = 5 + Nb of Isotope = 0 + Nb of Element = 6 + Material:Germanium with formula: Ge added! + Nb of Material = 6 + Nb of Isotope = 0 + Nb of Element = 7 + Material:CsI with formula: Cs-I added! + Nb of Material = 7 + Nb of Isotope = 0 + Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... ***** COMMAND NOT FOUND ***** ***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** - -phot: Total cross sections from Sandia parametrisation. -world cuts are set -Target cuts are set -Detector cuts are set -G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma -The cut in range [500 (mm)] is too big for material idx=5 -The cut in energy is set1.79769e+305GeV - -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. - -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. - -msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. - -msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 - -msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model -### All dEdx and Range tables are built ##### - -muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : Yes recalculation needed : No - Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 1 used in the geometry : Yes recalculation needed : No - Material : CsI - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm - Energy thresholds : gamma 550.166 keV e- 90.585 MeV e+ 84.1353 MeV - Region(s) which use this couple : - Target - -Index : 2 used in the geometry : Yes recalculation needed : No - Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV - Region(s) which use this couple : - Detector - -==================================================================== - -### Run : 0 -G4AugerData for Element no. 7 are loaded -G4AugerData for Element no. 8 are loaded -G4AugerData for Element no. 13 are loaded -G4AugerData for Element no. 14 are loaded -G4AugerData for Element no. 32 are loaded -G4AugerData for Element no. 53 are loaded -G4AugerData for Element no. 55 are loaded -G4AugerData for Element no. 82 are loaded -AugerTransitionTable complete Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -1922,165 +1546,17 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) ***** COMMAND NOT FOUND ***** ***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** -***** COMMAND NOT FOUND ***** -***** Command ignored ***** - -phot: Total cross sections from Sandia parametrisation. -world cuts are set -Target cuts are set -Detector cuts are set -G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma -The cut in range [500 (mm)] is too big for material idx=5 -The cut in energy is set1.79769e+305GeV - -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. - -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. - -msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. - -msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 - -msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model -### All dEdx and Range tables are built ##### - -muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : Yes recalculation needed : No - Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 1 used in the geometry : Yes recalculation needed : No - Material : CsI - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm - Energy thresholds : gamma 550.166 keV e- 90.585 MeV e+ 84.1353 MeV - Region(s) which use this couple : - Target - -Index : 2 used in the geometry : Yes recalculation needed : No - Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV - Region(s) which use this couple : - Detector - -==================================================================== - -### Run : 0 -G4AugerData for Element no. 7 are loaded -G4AugerData for Element no. 8 are loaded -G4AugerData for Element no. 13 are loaded -G4AugerData for Element no. 14 are loaded -G4AugerData for Element no. 32 are loaded -G4AugerData for Element no. 53 are loaded -G4AugerData for Element no. 55 are loaded -G4AugerData for Element no. 82 are loaded -AugerTransitionTable complete Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -2114,24 +1590,17 @@ Visualization Manager deleting... Nb of Material = 7 Nb of Isotope = 0 Nb of Element = 9 +G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - FukuiRenderer (DAWN) - DAWNFILE (DAWNFILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - RayTracer (RayTracer) - -phot: Total cross sections from Sandia parametrisation. +G4VUserPhysicsList::Construct() +Construct processes world cuts are set Target cuts are set Detector cuts are set +G4VUserPhysicsList::SetDefaultCutValue:default cut value is changed to :10000[mm] +G4VUserPhysicsList::SetCutsWithDefault:CutLength : 10000 (mm) 1 VRML2FILE scene handlers extanct. WARNING: objects with visibility flag set to "false" will not be drawn! "/vis/viewer/set/culling global false" to Draw such objects. @@ -2142,114 +1611,141 @@ G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for gamma The cut in range [500 (mm)] is too big for material idx=5 The cut in energy is set1.79769e+305GeV -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 eIoni: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 hIoni: tables are built for proton - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model -### All dEdx and Range tables are built ##### muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model msc: Model variant of multiple scattering for pi- - Lambda tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes recalculation needed : No Material : Air - Range cuts : gamma 10 m e- 10 m e+ 10 m + Range cuts : gamma 10 m e- 10 m e+ 10 m Energy thresholds : gamma 7.99559 keV e- 2.39817 MeV e+ 2.25501 MeV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes recalculation needed : No Material : CsI - Range cuts : gamma 10 cm e- 10 cm e+ 10 cm + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm Energy thresholds : gamma 550.166 keV e- 90.585 MeV e+ 84.1353 MeV Region(s) which use this couple : Target Index : 2 used in the geometry : Yes recalculation needed : No Material : Germanium - Range cuts : gamma 50 cm e- 50 cm e+ 50 cm - Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV + Range cuts : gamma 50 cm e- 50 cm e+ 50 cm + Energy thresholds : gamma 2.88022e+295 J e- 1.91846 GeV e+ 1.73853 GeV Region(s) which use this couple : Detector ==================================================================== +### exrdmHisto books 7 histograms +Loaded linked in JVM. +Looking for already loaded JVMs... +None found. +Using CLASSPATH. +classpathOption: -Djava.class.path=/fred/flei/AIDAJNI-3.2.3/lib/freehep-aidajni.jar:/fred/flei/JAIDA-3.2.3/lib/optimizers.jar:/fred/flei/JAIDA-3.2.3/lib/openide-lookup.jar:/fred/flei/JAIDA-3.2.3/lib/jel.jar:/fred/flei/JAIDA-3.2.3/lib/jas-plotter.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-hep.jar:/fred/flei/JAIDA-3.2.3/lib/freehep-base.jar:/fred/flei/JAIDA-3.2.3/lib/bcel.jar:/fred/flei/JAIDA-3.2.3/lib/aida-dev.jar:/fred/flei/JAIDA-3.2.3/lib/aida.jar: +Starting JVM...JVM Created. +Tree store : histo.aida +Creating Ntuple: Emitted Particles +Creating Ntuple: RadioIsotopes +Creating Ntuple: Energy Depositions ### Run : 0 ********************************************************************************************************* @@ -2257,13 +1753,13 @@ Index : 2 used in the geometry : Yes recalculation needed : No ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -25 100 0 0 0 World initStep - 1 0 0 -5 100 0.0112 20 20 Target Transportation - 2 -0.351 -0.176 2.83 84.6 15.3 7.84 27.8 Target hIoni - 3 -0.335 -0.122 5 80.4 4.26 2.18 30 World Transportation - 4 0.0592 -0.205 25 80.4 0.0188 20 50 OutOfWorld Transportation + 0 0 0 -25 100 0 0 0 World initStep + 1 0 0 -5 100 0.0112 20 20 Target Transportation + 2 -0.353 -0.177 2.86 84.7 15.3 7.87 27.9 Target hIoni + 3 -0.338 -0.124 5 80.5 4.14 2.14 30 World Transportation + 4 0.0549 -0.2 25 80.5 0.0188 20 50 OutOfWorld Transportation =========================================== -Output VRML 2.0 file: g4_00.wrl +Output VRML 2.0 file: g4_01.wrl Maximum number of files in the destination directory: 100 (Customizable with the environment variable: G4VRMLFILE_MAX_FILE_NUM) =========================================== @@ -2273,104 +1769,105 @@ Maximum number of files in the destination directory: 100 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -25 100 0 0 0 World initStep - 1 0 0 -5 100 0.0112 20 20 Target Transportation - 2 0.206 0.336 2.83 85.4 14.5 7.84 27.8 Target hIoni - 3 0.258 0.31 5 81.2 4.25 2.18 30 World Transportation - 4 0.858 0.0741 25 81.2 0.0196 20 50 OutOfWorld Transportation + 0 0 0 -25 100 0 0 0 World initStep + 1 0 0 -5 100 0.0112 20 20 Target Transportation + 2 0.208 0.338 2.86 85.5 14.5 7.87 27.9 Target hIoni + 3 0.259 0.312 5 81.4 4.13 2.14 30 World Transportation + 4 0.858 0.0759 25 81.3 0.0196 20 50 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -25 100 0 0 0 World initStep - 1 0 0 -5 100 0.0139 20 20 Target Transportation - 2 0.376 -0.131 2.83 84.8 15.2 7.84 27.8 Target hIoni - 3 0.281 -0.137 5 79.6 5.13 2.18 30 World Transportation - 4 -0.904 -0.354 25 79.6 0.0688 20 50.1 OutOfWorld Transportation + 0 0 0 -25 100 0 0 0 World initStep + 1 0 0 -5 100 0.0139 20 20 Target Transportation + 2 0.378 -0.132 2.86 84.8 15.2 7.87 27.9 Target hIoni + 3 0.284 -0.137 5 79.8 5 2.15 30 World Transportation + 4 -0.9 -0.353 25 79.7 0.0688 20 50.1 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -25 100 0 0 0 World initStep - 1 0 0 -5 100 0.0151 20 20 Target Transportation - 2 0.151 -0.365 2.83 83.8 16.2 7.84 27.8 Target hIoni - 3 0.0692 -0.463 5 78.9 4.92 2.18 30 World Transportation - 4 -0.222 -1.53 25 78.9 0.0142 20 50 OutOfWorld Transportation + 0 0 0 -25 100 0 0 0 World initStep + 1 0 0 -5 100 0.0151 20 20 Target Transportation + 2 0.152 -0.367 2.86 83.8 16.1 7.87 27.9 Target hIoni + 3 0.0711 -0.464 5 79 4.8 2.15 30 World Transportation + 4 -0.226 -1.53 25 79 0.0142 20 50 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -25 100 0 0 0 World initStep - 1 0 0 -5 100 0.025 20 20 Target Transportation - 2 0.384 -0.0863 2.82 84.2 15.8 7.84 27.8 Target hIoni - 3 0.439 -0.114 5 79.4 4.71 2.18 30 World Transportation - 4 1.01 -0.301 25 79.4 0.0172 20 50 OutOfWorld Transportation + 0 0 0 -25 100 0 0 0 World initStep + 1 0 0 -5 100 0.025 20 20 Target Transportation + 2 0.387 -0.0868 2.86 84.2 15.8 7.87 27.9 Target hIoni + 3 0.44 -0.114 5 79.6 4.59 2.15 30 World Transportation + 4 1.01 -0.302 25 79.6 0.0172 20 50 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -25 100 0 0 0 World initStep - 1 0 0 -5 100 0.0128 20 20 Target Transportation - 2 -0.392 0.0103 2.83 84.7 15.3 7.84 27.8 Target hIoni - 3 -0.318 0.105 5 80.2 4.57 2.18 30 World Transportation - 4 0.621 1.32 25 80.1 0.015 20.1 50.1 OutOfWorld Transportation + 0 0 0 -25 100 0 0 0 World initStep + 1 0 0 -5 100 0.0129 20 20 Target Transportation + 2 -0.394 0.0103 2.86 84.8 15.2 7.87 27.9 Target hIoni + 3 -0.322 0.104 5 80.3 4.45 2.15 30 World Transportation + 4 0.616 1.32 25 80.3 0.015 20.1 50.1 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -25 100 0 0 0 World initStep - 1 0 0 -5 100 0.0127 20 20 Target Transportation - 2 0.387 0.083 2.83 84.1 15.8 7.84 27.8 Target hIoni - 3 0.752 0.24 5 79.1 5.07 2.21 30.1 World Transportation - 4 4.27 1.79 25 79.1 0.0152 20.4 50.4 OutOfWorld Transportation + 0 0 0 -25 100 0 0 0 World initStep + 1 0 0 -5 100 0.0127 20 20 Target Transportation + 2 0.389 0.0834 2.86 84.2 15.8 7.87 27.9 Target hIoni + 3 0.798 0.259 5 79.2 4.97 2.19 30.1 World Transportation + 4 4.61 1.93 24.2 79.2 0.0148 19.6 49.7 Detector Transportation + 5 4.78 2 25 76.5 2.71 0.866 50.5 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -25 100 0 0 0 World initStep - 1 0 0 -5 100 0.0131 20 20 Target Transportation - 2 0.0357 0.389 2.83 84.5 15.4 7.84 27.8 Target hIoni - 3 0.029 0.369 5 79.9 4.61 2.18 30 World Transportation - 4 -1.15 0.31 25 79.9 0.024 20 50 OutOfWorld Transportation + 0 0 0 -25 100 0 0 0 World initStep + 1 0 0 -5 100 0.0102 20 20 Target Transportation + 2 0.0385 -0.395 2.86 84.8 15.2 7.87 27.9 Target hIoni + 3 0.16 -0.369 5 80.4 4.41 2.15 30 World Transportation + 4 1.31 -0.768 25 80.4 0.0155 20 50.1 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -25 100 0 0 0 World initStep - 1 0 0 -5 100 0.0137 20 20 Target Transportation - 2 -0.207 0.339 2.83 84.9 15.1 7.84 27.8 Target hIoni - 3 -0.293 0.443 5 80.1 4.73 2.18 30 World Transportation - 4 -0.731 1.52 25 80.1 0.0217 20 50.1 OutOfWorld Transportation + 0 0 0 -25 100 0 0 0 World initStep + 1 0 0 -5 100 0.0105 20 20 Target Transportation + 2 0.257 -0.295 2.86 84.7 15.3 7.87 27.9 Target hIoni + 3 0.505 -0.316 5 79.9 4.78 2.16 30 World Transportation + 4 3.12 -0.196 25 79.9 0.0221 20.2 50.2 OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = proton, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName - 0 0 0 -25 100 0 0 0 World initStep - 1 0 0 -5 100 0.0114 20 20 Target Transportation - 2 0.317 -0.217 2.83 84.4 15.6 7.84 27.8 Target hIoni - 3 0.283 -0.178 5 79.7 4.69 2.18 30 World Transportation - 4 -0.437 0.545 25 79.7 0.0121 20 50 OutOfWorld Transportation -*** VRML 2.0 File g4_00.wrl is generated. -MESSAGE from VRML2FILE driver: - Set an environmental variable G4VRMLFILE_VIEWER - if you want to visualize the generated VRML file - automatically. For example, - setenv G4VRMLFILE_VIEWER vrwave + 0 0 0 -25 100 0 0 0 World initStep + 1 0 0 -5 100 0.0159 20 20 Target Transportation + 2 -0.0631 -0.39 2.86 85.8 14.2 7.87 27.9 Target hIoni + 3 -0.22 -0.316 5 81.4 4.36 2.15 30 World Transportation + 4 -1.85 0.882 25 81.4 0.011 20.1 50.1 OutOfWorld Transportation +Closing the tree... +exrdmHistograms and Ntuples are saved +*** VRML 2.0 File g4_01.wrl is generated. +Xlib: connection to ":0.0" refused by server +Xlib: No protocol specified + Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/radioactivedecay/exrdm/macros/test.aida b/examples/extended/radioactivedecay/exrdm/macros/test.aida new file mode 100644 index 0000000000000000000000000000000000000000..5c1593b73cc60a3a54790289a363caff999a0d58 GIT binary patch literal 1376 zcmV-m1)usKiwFP!000000PS2|Pvb@uecxX(^;7#mGGCsLDzIuHRri4fEvVJ1swxu? ziA8Kj_GBUde#cI5(%?9TcxqEcNRZ4-?mc(T@tyekiowUHa0ve7uh&E11-=JvzTVspFM%`BdiHa_pN;kI6Qw3< z){B#IKOId}=%szq!#%W|_OHgOpQGjH_Zjn%31 zn{o2{@Y?C;pP2-yj>m}?A|FIvXyy^j7VF8W(|61Y0Cb?IW_%c_WV`^rn#F0L!H<{f zkDovg0X9HnP&Df zZ>eEZCxOa8=M=#d^B`2-(voCC2tp|*R6>s2Ez3o?NtovAAr@Q;fe68jL03Y$j%e+E zHR5~PLw@1@E{F_So5;XK1>=d%UYno_XOH=)^1tkMTCBO;8A)MIB}trQf7bDrjRb z481CB2xG{gXaSl!slo*zClJamZW)A(Fw9X4*bY}3>T$#|bm@?HPit+0gNRauD+Ff| zTobe+Nz569x=Cw$;A+rn4O|nnx&$%QQC4kXJMd(%2kdY{MGv|}iZ(8Uy{A@t*!F78 z8ngqYW)0WjO2a+wA_OV!BA*t)9muFfWKD1i88fFf)_ANt2J$((cvU*-!mM)c4BHU z=ewEC44`BluC_D2-*{>PyvT2YxHmdHJ~LUlfB(-+O2kRZ#d#hF(J1g$G*a7Axl{U4 zsmOvr4{&6dOn>ul01yBWv-gEZ?5+1k)IJY%o6R}k7NF$7mJgPFMog*10@NFZo#TK41#ETyD`Q$`p^{LLu> z<8_L_xGF`soJuZ)`HdK%9G7JX1{vXua$$ZD$MQvnpyqZFQsi=13QQ;|$qzNs*b8hg zQ9na^zB`2iQci`*B{gytt(U7dyGL+Y_sAE|58_X0tmE1H=p1Rc8{|B8`Co?3zbkK> zo4!jwdOdnQdOdnAub6G-cv9LSxGaTSEGtm5*wix?=&GVi^(pvA>eu>$1-CE0BErHpLykmL9VkcX>eRQ>m zwi|uNQi;XpwmLeq=Da4;HiPfjMQyR=t=)#ZnqLoWM&B{2?e)U7+K5;8nzk2v_jtC| ix@WsRuc7R1FZzb5E-9`K^8Y1p_Tf9e5$S)tKmY(HAEZ$L literal 0 HcmV?d00001 diff --git a/examples/extended/radioactivedecay/exrdm/macros/test.mac b/examples/extended/radioactivedecay/exrdm/macros/test.mac new file mode 100644 index 0000000000..d66003d5b3 --- /dev/null +++ b/examples/extended/radioactivedecay/exrdm/macros/test.mac @@ -0,0 +1,40 @@ +#/exrdm/phys/SelectPhysics QGSP_BERT +/exrdm/phys/SelectPhysics Hadron +#/geometry/material/add NaI Na-I 3.67 +/exrdm/det/setDetectorThickness 30 mm +/exrdm/det/setTargetLength 3 cm +/exrdm/det/setTargetMate Lead +# material definitions has to be done before /run/initilalize +/run/initialize +/run/setCutForRegion Target 10 cm +/run/setCutForRegion Detector 50 cm +/grdm/analogueMC 1 +/grdm/verbose 0 +/grdm/noVolumes +/grdm/selectVolume Target +# +# first simulate 1GeV proton beam on the NaI target +#/histo/fileName exrdm-proton.aida +#/gps/particle proton +#/gps/energy 1 GeV +/tracking/verbose 0 +#/run/beamOn 1000 +# +# now try to decay 10 F-24 isotopes, floowing the chain down to Mg-24 +/gps/particle ion +#/gps/ion 39 86 +/gps/ion 27 57 0 0 +/gps/position 0 0 0 +/gps/energy 0 keV +#/histo/fileType +/histo/fileName test.aida +/run/beamOn 10 +/particle/select proton +/particle/process/dump +/particle/select GenericIon +/particle/process/dump +/particle/select pi+ +/particle/process/dump + + + diff --git a/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListEmStandard.cc b/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListEmStandard.cc index 4758740ffd..edaf998cf1 100644 --- a/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListEmStandard.cc +++ b/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListEmStandard.cc @@ -45,9 +45,9 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -exrdmPhysListEmStandard::exrdmPhysListEmStandard(const G4String& name) - : G4VPhysicsConstructor(name) -{} +exrdmPhysListEmStandard::exrdmPhysListEmStandard(const G4String& na) + : G4VPhysicsConstructor(na) +{name = na;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -94,16 +94,16 @@ void exrdmPhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); } else if (particleName == "GenericIon") { - - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4hIonisation, -1, 2,2); - + pmanager->AddProcess(new G4MultipleScattering,-1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); } else if ((!particle->IsShortLived()) && (particle->GetPDGCharge() != 0.0) && (particle->GetParticleName() != "chargedgeantino")) { - - pmanager->AddProcess(new G4MultipleScattering,-1,1,1); - pmanager->AddProcess(new G4hIonisation, -1,2,2); + // don't need these if standard hadron is used: std-h-em) + if (name != "std-h-em") { + pmanager->AddProcess(new G4MultipleScattering,-1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); + } } } } diff --git a/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListParticles.cc b/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListParticles.cc index cbfbbbafc9..dc0e125808 100644 --- a/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListParticles.cc +++ b/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListParticles.cc @@ -56,6 +56,9 @@ #include "G4KaonZeroLong.hh" #include "G4KaonZeroShort.hh" +//ShortLived +#include "G4ShortLivedConstructor.hh" + // Baryons #include "G4Proton.hh" #include "G4AntiProton.hh" @@ -131,6 +134,11 @@ void exrdmPhysListParticles::ConstructParticle() G4He3::He3Definition(); G4Alpha::AlphaDefinition(); G4GenericIon::GenericIonDefinition(); + +// Construct resonaces and quarks + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/exrdm/src/exrdmPhysicsList.cc b/examples/extended/radioactivedecay/exrdm/src/exrdmPhysicsList.cc index 48267c2529..3b1df5d8f1 100644 --- a/examples/extended/radioactivedecay/exrdm/src/exrdmPhysicsList.cc +++ b/examples/extended/radioactivedecay/exrdm/src/exrdmPhysicsList.cc @@ -67,7 +67,7 @@ exrdmPhysicsList::exrdmPhysicsList() : G4VModularPhysicsList() pMessenger = new exrdmPhysicsListMessenger(this); - SetVerboseLevel(1); + SetVerboseLevel(2); //default physics // Particles particleList = new exrdmPhysListParticles("particles"); @@ -121,35 +121,57 @@ void exrdmPhysicsList::SelectPhysicsList(const G4String& name) } // default Had physics if (name == "Hadron") { - if (!hadPhysicsList) delete hadPhysicsList; + if (hadPhysicsList) delete hadPhysicsList; hadPhysicsList = new exrdmPhysListHadron("hadron"); } else if (name == "QGSP_BERT") { - if (!hadPhysicsList) delete hadPhysicsList; - hadPhysicsList = new HadronPhysicsQGSP_BERT("hadron"); + if (emPhysicsList) delete emPhysicsList; + emPhysicsList = new exrdmPhysListEmStandard("std-h-em"); + if (hadPhysicsList) delete hadPhysicsList; + hadPhysicsList = new HadronPhysicsQGSP_BERT("std-hadron"); } else if (name == "QGSP_BIC") { - if (!hadPhysicsList) delete hadPhysicsList; - hadPhysicsList = new HadronPhysicsQGSP_BIC("hadron"); + if (emPhysicsList) delete emPhysicsList; + emPhysicsList = new exrdmPhysListEmStandard("std-h-em"); + if (hadPhysicsList) delete hadPhysicsList; + hadPhysicsList = new HadronPhysicsQGSP_BIC("std-hadron"); } else if (name == "QGSP_HP") { - if (!hadPhysicsList) delete hadPhysicsList; - hadPhysicsList = new HadronPhysicsQGSP_HP("hadron"); + if (emPhysicsList) delete emPhysicsList; + emPhysicsList = new exrdmPhysListEmStandard("std-h-em"); + if (hadPhysicsList) delete hadPhysicsList; + hadPhysicsList = new HadronPhysicsQGSP_HP("std-hadron"); } else if (name == "LHEP_BERT") { - if (!hadPhysicsList) delete hadPhysicsList; - hadPhysicsList = new HadronPhysicsLHEP_BERT("hadron"); + if (emPhysicsList) delete emPhysicsList; + emPhysicsList = new exrdmPhysListEmStandard("std-h-em"); + if (hadPhysicsList) delete hadPhysicsList; + hadPhysicsList = new HadronPhysicsLHEP_BERT("std-hadron"); } else if (name == "LHEP_BERT_HP") { - if (!hadPhysicsList) delete hadPhysicsList; - hadPhysicsList = new HadronPhysicsLHEP_BERT_HP("hadron"); + if (emPhysicsList) delete emPhysicsList; + emPhysicsList = new exrdmPhysListEmStandard("std-h-em"); + if (hadPhysicsList) delete hadPhysicsList; + hadPhysicsList = new HadronPhysicsLHEP_BERT_HP("std-hadron"); } else if (name == "LHEP_BIC") { - if (!hadPhysicsList) delete hadPhysicsList; - hadPhysicsList = new HadronPhysicsLHEP_BIC("hadron"); + if (emPhysicsList) delete emPhysicsList; + emPhysicsList = new exrdmPhysListEmStandard("std-h-em"); + if (hadPhysicsList) delete hadPhysicsList; + hadPhysicsList = new HadronPhysicsLHEP_BIC("std-hadron"); } else if (name == "LHEP_BIC_HP") { - if (!hadPhysicsList) delete hadPhysicsList; - hadPhysicsList = new HadronPhysicsLHEP_BIC_HP("hadron"); + if (emPhysicsList) delete emPhysicsList; + emPhysicsList = new exrdmPhysListEmStandard("std-h-em"); + if (hadPhysicsList) delete hadPhysicsList; + hadPhysicsList = new HadronPhysicsLHEP_BIC_HP("std-hadron"); } else if (name == "LowEnergy_EM") { - if (!hadPhysicsList) delete emPhysicsList; - emPhysicsList = new exrdmPhysListEmLowEnergy("lowe-em"); + if (!hadPhysicsList ||(hadPhysicsList->GetPhysicsName()=="hadron") ) { + if (emPhysicsList) delete emPhysicsList; + emPhysicsList = new exrdmPhysListEmLowEnergy("lowe-em"); + } else { + G4cout << "exrdmPhysicsList: using EM comes with Std-hadron" <GetPhysicsName()=="hadron") ) { + if (emPhysicsList) delete emPhysicsList; + emPhysicsList = new exrdmPhysListEmStandard("standard-em"); + } else { + G4cout << "exrdmPhysicsList: using EM comes with Std-hadron" <SetGuidance("physics control."); - - gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/exrdm/phys/setGCut",this); - gammaCutCmd->SetGuidance("Set gamma cut."); - gammaCutCmd->SetParameterName("Gcut",false); - gammaCutCmd->SetUnitCategory("Length"); - gammaCutCmd->SetRange("Gcut>0.0"); - gammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - electCutCmd = new G4UIcmdWithADoubleAndUnit("/exrdm/phys/setECut",this); - electCutCmd->SetGuidance("Set electron cut."); - electCutCmd->SetParameterName("Ecut",false); - electCutCmd->SetUnitCategory("Length"); - electCutCmd->SetRange("Ecut>0.0"); - electCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - protoCutCmd = new G4UIcmdWithADoubleAndUnit("/exrdm/phys/setPCut",this); - protoCutCmd->SetGuidance("Set positron cut."); - protoCutCmd->SetParameterName("Pcut",false); - protoCutCmd->SetUnitCategory("Length"); - protoCutCmd->SetRange("Pcut>0.0"); - protoCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - allCutCmd = new G4UIcmdWithADoubleAndUnit("/exrdm/phys/setCuts",this); - allCutCmd->SetGuidance("Set cut for all."); - allCutCmd->SetParameterName("cut",false); - allCutCmd->SetUnitCategory("Length"); - allCutCmd->SetRange("cut>0.0"); - allCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - eCutCmd = new G4UIcmdWithADoubleAndUnit("/exrdm/phys/TargetCuts",this); - eCutCmd->SetGuidance("Set cuts for the target"); - eCutCmd->SetParameterName("Ecut",false); - eCutCmd->SetUnitCategory("Length"); - eCutCmd->SetRange("Ecut>0.0"); - eCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - mCutCmd = new G4UIcmdWithADoubleAndUnit("/exrdm/phys/DetectorCuts",this); - mCutCmd->SetGuidance("Set cuts for the Detector"); - mCutCmd->SetParameterName("Ecut",false); - mCutCmd->SetUnitCategory("Length"); - mCutCmd->SetRange("Ecut>0.0"); - mCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - pListCmd = new G4UIcmdWithAString("/exrdm/phys/SelectexrdmPhysics",this); - pListCmd->SetGuidance("Select modula physics list."); - pListCmd->SetParameterName("PList",false); - pListCmd->AvailableForStates(G4State_PreInit); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -exrdmPhysicsListMessenger::~exrdmPhysicsListMessenger() -{ - delete physDir; - delete gammaCutCmd; - delete electCutCmd; - delete protoCutCmd; - delete allCutCmd; - delete pListCmd; - delete eCutCmd; - delete mCutCmd; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void exrdmPhysicsListMessenger::SetNewValue(G4UIcommand* command, - G4String newValue) -{ - if( command == gammaCutCmd ) - { pPhysicsList->SetCutForGamma(gammaCutCmd->GetNewDoubleValue(newValue));} - - if( command == electCutCmd ) - { pPhysicsList->SetCutForElectron(electCutCmd->GetNewDoubleValue(newValue));} - - if( command == protoCutCmd ) - { pPhysicsList->SetCutForPositron(protoCutCmd->GetNewDoubleValue(newValue));} - - if( command == allCutCmd ) - { - G4double cut = allCutCmd->GetNewDoubleValue(newValue); - pPhysicsList->SetCutForGamma(cut); - pPhysicsList->SetCutForElectron(cut); - pPhysicsList->SetCutForPositron(cut); - } - - if( command == eCutCmd ) - { pPhysicsList->SetTargetCut(eCutCmd->GetNewDoubleValue(newValue));} - - if( command == mCutCmd ) - { pPhysicsList->SetDetectorCut(mCutCmd->GetNewDoubleValue(newValue));} - - if( command == pListCmd ) - { pPhysicsList->SelectPhysicsList(newValue);} -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/radioactivedecay/exrdm/src/exrdmVisManager.cc b/examples/extended/radioactivedecay/exrdm/src/exrdmVisManager.cc deleted file mode 100644 index ea726c34c1..0000000000 --- a/examples/extended/radioactivedecay/exrdm/src/exrdmVisManager.cc +++ /dev/null @@ -1,203 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// - -//////////////////////////////////////////////////////////////////////////////// -// -#ifdef G4VIS_USE - -#include "exrdmVisManager.hh" -// -// -// Supported drivers... -// - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_DAWNFILE -#include "G4DAWNFILE.hh" -#endif - -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" - -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - -#ifdef G4VIS_USE_RAYTRACER -#include "G4RayTracer.hh" -#endif - -/////////////////////////////////////////////////////////////////////////////// -// -exrdmVisManager::exrdmVisManager () -{} -/////////////////////////////////////////////////////////////////////////////// -// -void exrdmVisManager::RegisterGraphicsSystems () -{ -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_DAWNFILE - RegisterGraphicsSystem (new G4DAWNFILE); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); -#endif - -#ifdef G4VIS_USE_RAYTRACER - RegisterGraphicsSystem (new G4RayTracer); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} -/////////////////////////////////////////////////////////////////////////////// -// -#endif -/////////////////////////////////////////////////////////////////////////////// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/extended/runAndEvent/RE01/RE01.cc b/examples/extended/runAndEvent/RE01/RE01.cc index a047ea246c..cd7c9e122e 100644 --- a/examples/extended/runAndEvent/RE01/RE01.cc +++ b/examples/extended/runAndEvent/RE01/RE01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RE01.cc,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RE01.cc,v 1.2 2005/06/01 18:27:29 perl Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -49,10 +49,20 @@ #include "RE01TrackingAction.hh" #include "RE01SteppingAction.hh" +#ifdef G4VIS_USE +#include "G4VisExecutive.hh" +#endif + int main(int argc,char** argv) { G4RunManager* runManager = new G4RunManager; +#ifdef G4VIS_USE + // Visualization manager construction + G4VisManager* visManager = new G4VisExecutive; + visManager->Initialize(); +#endif + runManager->SetUserInitialization(new RE01DetectorConstruction); runManager->SetUserInitialization(new RE01PhysicsList); @@ -83,6 +93,10 @@ int main(int argc,char** argv) UImanager->ApplyCommand(command+fileName); } +#ifdef G4VIS_USE + delete visManager; +#endif + delete runManager; return 0; diff --git a/examples/extended/runAndEvent/RE01/include/RE01BosonPhysics.hh b/examples/extended/runAndEvent/RE01/include/RE01BosonPhysics.hh index 8087c35b92..47e8f0a3c4 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01BosonPhysics.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01BosonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: RE01BosonPhysics.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef RE01BosonPhysics_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterHit.hh b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterHit.hh index c3d22de465..472acfcfba 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterHit.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterHit.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RE01CalorimeterHit.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RE01CalorimeterHit.hh,v 1.2 2005/06/02 21:30:50 perl Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // @@ -38,6 +38,9 @@ #include "G4RotationMatrix.hh" #include "RE01TrackInformation.hh" +class G4AttDef; +class G4AttValue; + class RE01CalorimeterHit : public G4VHit { public: @@ -53,6 +56,8 @@ class RE01CalorimeterHit : public G4VHit inline void operator delete(void *aHit); void Draw(); + virtual const std::map* GetAttDefs() const; + virtual std::vector* CreateAttValues() const; void Print(); private: diff --git a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterParametrisation.hh b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterParametrisation.hh index 7446d87739..4bf43a2321 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterParametrisation.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterParametrisation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterParametrisation.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh index c15fa2ce54..9a89f38363 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterROGeometry.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterSD.hh b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterSD.hh index dd6dc41943..4cb7f442f6 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterSD.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterSD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterSD.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01DecayPhysics.hh b/examples/extended/runAndEvent/RE01/include/RE01DecayPhysics.hh index fcef5b98f1..31832cc166 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01DecayPhysics.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01DecayPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: RE01DecayPhysics.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh b/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh index 6e94918582..daa626425b 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DetectorConstruction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01DetectorParameterDef.hh b/examples/extended/runAndEvent/RE01/include/RE01DetectorParameterDef.hh index 260de24111..b4332e0916 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01DetectorParameterDef.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01DetectorParameterDef.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DetectorParameterDef.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // G4double expHall_x; diff --git a/examples/extended/runAndEvent/RE01/include/RE01DummySD.hh b/examples/extended/runAndEvent/RE01/include/RE01DummySD.hh index 1d7f6d7bbb..793b4abd5f 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01DummySD.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01DummySD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DummySD.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/runAndEvent/RE01/include/RE01EventAction.hh b/examples/extended/runAndEvent/RE01/include/RE01EventAction.hh index 7db9756ec0..5f74013f3c 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01EventAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01EventAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01Field.hh b/examples/extended/runAndEvent/RE01/include/RE01Field.hh index 74a803fe1c..b0955cb857 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01Field.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01Field.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01Field.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01HadronPhysics.hh b/examples/extended/runAndEvent/RE01/include/RE01HadronPhysics.hh index c7a0c480bb..2bec0c6f22 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01HadronPhysics.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01HadronPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: RE01HadronPhysics.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef RE01HadronPhysics_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01IonPhysics.hh b/examples/extended/runAndEvent/RE01/include/RE01IonPhysics.hh index 4678e39eeb..2c3182c46c 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01IonPhysics.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: RE01IonPhysics.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef RE01IonPhysics_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01LeptonPhysics.hh b/examples/extended/runAndEvent/RE01/include/RE01LeptonPhysics.hh index 6ce500dfd1..e47d269779 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01LeptonPhysics.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01LeptonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: RE01LeptonPhysics.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh b/examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh index 9b84dcab4c..5cc60047ca 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: RE01PhysicsList.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorAction.hh b/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorAction.hh index a97587ea99..ca82e3525d 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01PrimaryGeneratorAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorMessenger.hh b/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorMessenger.hh index d915f7b6a9..414733d49d 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorMessenger.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01PrimaryGeneratorMessenger.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01RegionInformation.hh b/examples/extended/runAndEvent/RE01/include/RE01RegionInformation.hh index 67448fb944..871f6bc701 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01RegionInformation.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01RegionInformation.hh @@ -22,7 +22,7 @@ // // // $Id: RE01RegionInformation.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef RE01RegionInformation_H diff --git a/examples/extended/runAndEvent/RE01/include/RE01RunAction.hh b/examples/extended/runAndEvent/RE01/include/RE01RunAction.hh index 840849ce63..4a7dfbe54c 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01RunAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: RE01RunAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef RE01RunAction_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01StackingAction.hh b/examples/extended/runAndEvent/RE01/include/RE01StackingAction.hh index 6685a153d5..8005bee292 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01StackingAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01StackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01StackingAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01SteppingAction.hh b/examples/extended/runAndEvent/RE01/include/RE01SteppingAction.hh index 7b6399c584..699edb355e 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01SteppingAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01SteppingAction.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh index f006f78c5a..dbd61c841a 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh @@ -22,7 +22,7 @@ // // // $Id: RE01TrackInformation.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef RE01TrackInformation_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackerHit.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackerHit.hh index fd891d07ba..0a27909b0d 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackerHit.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackerHit.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RE01TrackerHit.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RE01TrackerHit.hh,v 1.2 2005/06/02 21:30:50 perl Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // @@ -33,6 +33,9 @@ #include "G4Allocator.hh" #include "G4ThreeVector.hh" +class G4AttDef; +class G4AttValue; + class RE01TrackerHit : public G4VHit { public: @@ -47,6 +50,8 @@ class RE01TrackerHit : public G4VHit inline void operator delete(void *aHit); void Draw(); + virtual const std::map* GetAttDefs() const; + virtual std::vector* CreateAttValues() const; void Print(); private: diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackerParametrisation.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackerParametrisation.hh index d6a6d8a25a..ec67c64cf7 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackerParametrisation.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackerParametrisation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackerParametrisation.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackerSD.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackerSD.hh index a7e56cb5aa..1b88f69c63 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackerSD.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackerSD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackerSD.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackingAction.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackingAction.hh index fde4600bf6..8ac001944a 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackingAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackingAction.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef RE01TrackingAction_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01Trajectory.hh b/examples/extended/runAndEvent/RE01/include/RE01Trajectory.hh index c548eb1674..69f8f32933 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01Trajectory.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01Trajectory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RE01Trajectory.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RE01Trajectory.hh,v 1.2 2005/06/01 18:27:29 perl Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef RE01Trajectory_h @@ -41,6 +41,8 @@ #include class G4Polyline; +class G4AttDef; +class G4AttValue; typedef std::vector RE01TrajectoryPointContainer; @@ -76,6 +78,8 @@ class RE01Trajectory : public G4VTrajectory virtual void ShowTrajectory(std::ostream& os=G4cout) const; virtual void DrawTrajectory(G4int i_mode=0) const; + virtual const std::map* GetAttDefs() const; + virtual std::vector* CreateAttValues() const; virtual void AppendStep(const G4Step* aStep); virtual void MergeTrajectory(G4VTrajectory* secondTrajectory); diff --git a/examples/extended/runAndEvent/RE01/sample.out b/examples/extended/runAndEvent/RE01/sample.out index a2010cc64f..60770fbef7 100644 --- a/examples/extended/runAndEvent/RE01/sample.out +++ b/examples/extended/runAndEvent/RE01/sample.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-cand-01 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (25-June-2004) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 diff --git a/examples/extended/runAndEvent/RE01/src/RE01BosonPhysics.cc b/examples/extended/runAndEvent/RE01/src/RE01BosonPhysics.cc index 051a6cda78..5cfa55eece 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01BosonPhysics.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01BosonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: RE01BosonPhysics.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterHit.cc b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterHit.cc index 888b06d44e..72464418a5 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterHit.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RE01CalorimeterHit.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RE01CalorimeterHit.cc,v 1.3 2005/06/07 10:53:17 perl Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // @@ -30,6 +30,11 @@ #include "G4ios.hh" #include "G4VVisManager.hh" #include "G4Colour.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UIcommand.hh" +#include "G4UnitsTable.hh" #include "G4VisAttributes.hh" #include "G4LogicalVolume.hh" @@ -93,6 +98,74 @@ void RE01CalorimeterHit::Draw() } } +const std::map* RE01CalorimeterHit::GetAttDefs() const +{ + G4bool isNew; + std::map* store + = G4AttDefStore::GetInstance("RE01CalorimeterHit",isNew); + if (isNew) { + G4String HitType("HitType"); + (*store)[HitType] = G4AttDef(HitType,"Hit Type","Bookkeeping","","G4String"); + + G4String TrackID("TrackID"); + (*store)[TrackID] = G4AttDef(TrackID,"Track ID","Bookkeeping","","G4int"); + + G4String ZCellID("ZCellID"); + (*store)[ZCellID] = G4AttDef(ZCellID,"Z Cell ID","Bookkeeping","","G4int"); + + G4String PhiCellID("PhiCellID"); + (*store)[PhiCellID] = G4AttDef(PhiCellID,"Phi Cell ID","Bookkeeping","","G4int"); + + G4String Energy("Energy"); + (*store)[Energy] = G4AttDef(Energy,"Energy Deposited","Physics","G4BestUnit","G4double"); + + G4String ETrack("ETrack"); + (*store)[ETrack] = G4AttDef(ETrack,"Energy Deposited By Track","Physics","G4BestUnit","G4double"); + + G4String Pos("Pos"); + (*store)[Pos] = G4AttDef(Pos, "Position", + "Physics","G4BestUnit","G4ThreeVector"); + + G4String LVol("LVol"); + (*store)[LVol] = G4AttDef(LVol,"Logical Volume","Bookkeeping","","G4String"); + } + return store; +} + +std::vector* RE01CalorimeterHit::CreateAttValues() const +{ + std::vector* values = new std::vector; + + values->push_back(G4AttValue("HitType","RE01CalorimeterHit","")); + + values->push_back + (G4AttValue("TrackID"," ","")); + + values->push_back + (G4AttValue("ZCellID",G4UIcommand::ConvertToString(ZCellID),"")); + + values->push_back + (G4AttValue("PhiCellID",G4UIcommand::ConvertToString(PhiCellID),"")); + + values->push_back + (G4AttValue("Energy",G4BestUnit(edep,"Energy"),"")); + + values->push_back + (G4AttValue("ETrack",G4BestUnit(edepByATrack,"Energy"),"")); + + values->push_back + (G4AttValue("Pos",G4BestUnit(pos,"Length"),"")); + + if (pLogV) + values->push_back + (G4AttValue("LVol",pLogV->GetName(),"")); + else + values->push_back + (G4AttValue("LVol"," ","")); + + return values; +} + void RE01CalorimeterHit::Print() { G4cout << "Cell[" << ZCellID << "," << PhiCellID << "] " << edep/GeV << " [GeV]" << G4endl; diff --git a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterParametrisation.cc b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterParametrisation.cc index 5420f60437..f838118e9a 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterParametrisation.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterParametrisation.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterParametrisation.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc index c8fb0b6fdc..2fa262c3e2 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterROGeometry.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RE01CalorimeterROGeometry.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc index bf66350e27..2e7789c86e 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterSD.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01DecayPhysics.cc b/examples/extended/runAndEvent/RE01/src/RE01DecayPhysics.cc index b973235653..78fc81845a 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01DecayPhysics.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01DecayPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: RE01DecayPhysics.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RE01DecayPhysics.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc b/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc index 6308acb429..4588f46993 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DetectorConstruction.cc,v 1.2 2004/11/26 17:20:27 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01DetectorParameterDef.icc b/examples/extended/runAndEvent/RE01/src/RE01DetectorParameterDef.icc index 81c82e38a6..4ff3c05345 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01DetectorParameterDef.icc +++ b/examples/extended/runAndEvent/RE01/src/RE01DetectorParameterDef.icc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DetectorParameterDef.icc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01DummySD.cc b/examples/extended/runAndEvent/RE01/src/RE01DummySD.cc index 25f1c58bf0..3e0a8909e0 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01DummySD.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01DummySD.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DummySD.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Dummy sensitive used only to flag sensitivity diff --git a/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc b/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc index 1b6978d05a..f66b8a3ac4 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01EventAction.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01Field.cc b/examples/extended/runAndEvent/RE01/src/RE01Field.cc index 7ba9867fb7..23e0c98674 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01Field.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01Field.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01Field.cc,v 1.2 2004/12/02 07:34:56 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01HadronPhysics.cc b/examples/extended/runAndEvent/RE01/src/RE01HadronPhysics.cc index ca6f1e2feb..18aee1e0b5 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01HadronPhysics.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01HadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: RE01HadronPhysics.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RE01HadronPhysics.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01IonPhysics.cc b/examples/extended/runAndEvent/RE01/src/RE01IonPhysics.cc index 84547c8a05..a809adb9c9 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01IonPhysics.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: RE01IonPhysics.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RE01IonPhysics.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01LeptonPhysics.cc b/examples/extended/runAndEvent/RE01/src/RE01LeptonPhysics.cc index 9c139e03d2..4ca42629ab 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01LeptonPhysics.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01LeptonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: RE01LeptonPhysics.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RE01LeptonPhysics.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc b/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc index e844c84a6d..4246b90f79 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: RE01PhysicsList.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RE01PhysicsList.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorAction.cc b/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorAction.cc index 670731e558..bb96673fdb 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01PrimaryGeneratorAction.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorMessenger.cc b/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorMessenger.cc index 4e49441afc..f07dd3977b 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorMessenger.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01PrimaryGeneratorMessenger.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01RegionInformation.cc b/examples/extended/runAndEvent/RE01/src/RE01RegionInformation.cc index 7fa8a59387..bf6057bea6 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01RegionInformation.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01RegionInformation.cc @@ -22,7 +22,7 @@ // // // $Id: RE01RegionInformation.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RE01RegionInformation.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01RunAction.cc b/examples/extended/runAndEvent/RE01/src/RE01RunAction.cc index 0ef09de7da..0c3f6c0a18 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01RunAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: RE01RunAction.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RE01RunAction.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01StackingAction.cc b/examples/extended/runAndEvent/RE01/src/RE01StackingAction.cc index 270ca0a735..3373a191ed 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01StackingAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01StackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01StackingAction.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc b/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc index 202be1ccd5..a4bfd3fb90 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01SteppingAction.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc index 71abb45d5f..a9f8d11705 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc @@ -22,7 +22,7 @@ // // // $Id: RE01TrackInformation.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "RE01TrackInformation.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackerHit.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackerHit.cc index eaccf7d8eb..922c3b6558 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackerHit.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackerHit.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RE01TrackerHit.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RE01TrackerHit.cc,v 1.3 2005/06/07 10:53:17 perl Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // @@ -29,6 +29,11 @@ #include "G4VVisManager.hh" #include "G4Circle.hh" #include "G4Colour.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UIcommand.hh" +#include "G4UnitsTable.hh" #include "G4VisAttributes.hh" @@ -76,6 +81,71 @@ void RE01TrackerHit::Draw() } } +const std::map* RE01TrackerHit::GetAttDefs() const +{ + G4bool isNew; + std::map* store + = G4AttDefStore::GetInstance("RE01TrackerHit",isNew); + if (isNew) { + G4String HitType("HitType"); + (*store)[HitType] = G4AttDef(HitType,"Hit Type","Bookkeeping","","G4String"); + + G4String TrackID("TrackID"); + (*store)[TrackID] = G4AttDef(TrackID,"Track ID","Bookkeeping","","G4int"); + + G4String ZCellID("ZCellID"); + (*store)[ZCellID] = G4AttDef(ZCellID,"Z Cell ID","Bookkeeping","","G4int"); + + G4String PhiCellID("PhiCellID"); + (*store)[PhiCellID] = G4AttDef(PhiCellID,"Phi Cell ID","Bookkeeping","","G4int"); + + G4String Energy("Energy"); + (*store)[Energy] = G4AttDef(Energy,"Energy Deposited","Physics","G4BestUnit","G4double"); + + G4String ETrack("ETrack"); + (*store)[ETrack] = G4AttDef(ETrack,"Energy Deposited By Track","Physics","G4BestUnit","G4double"); + + G4String Pos("Pos"); + (*store)[Pos] = G4AttDef(Pos, "Position", + "Physics","G4BestUnit","G4ThreeVector"); + + G4String LVol("LVol"); + (*store)[LVol] = G4AttDef(LVol,"Logical Volume","Bookkeeping","","G4String"); + } + return store; +} + +std::vector* RE01TrackerHit::CreateAttValues() const +{ + std::vector* values = new std::vector; + + values->push_back(G4AttValue("HitType","RE01TrackerHit","")); + + values->push_back + (G4AttValue("TrackID",G4UIcommand::ConvertToString(trackID),"")); + + values->push_back + (G4AttValue("ZCellID"," ","")); + + values->push_back + (G4AttValue("PhiCellID"," ","")); + + values->push_back + (G4AttValue("Energy",G4BestUnit(edep,"Energy"),"")); + + G4double noEnergy = 0.*MeV; + values->push_back + (G4AttValue("ETrack",G4BestUnit(noEnergy,"Energy"),"")); + + values->push_back + (G4AttValue("Pos",G4BestUnit(pos,"Length"),"")); + + values->push_back + (G4AttValue("LVol"," ","")); + + return values; +} + void RE01TrackerHit::Print() { G4cout << "TrackID " << trackID << " Position " << pos << " : " << edep/keV << " [keV]" << G4endl; diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackerParametrisation.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackerParametrisation.cc index db6924a5c7..4e86ba5420 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackerParametrisation.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackerParametrisation.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackerParametrisation.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackerSD.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackerSD.cc index d97f1f25d8..16ef4f8fed 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackerSD.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackerSD.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackerSD.cc,v 1.1 2004/11/26 07:37:43 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackingAction.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackingAction.cc index 9450f6e38d..ef6e1ed4e4 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackingAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackingAction.cc,v 1.1 2004/11/26 07:37:43 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01Trajectory.cc b/examples/extended/runAndEvent/RE01/src/RE01Trajectory.cc index b897c8d84a..914e7420a8 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01Trajectory.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01Trajectory.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RE01Trajectory.cc,v 1.1 2004/11/26 07:37:43 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: RE01Trajectory.cc,v 1.2 2005/06/01 18:27:29 perl Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // @@ -32,6 +32,10 @@ #include "G4Polyline.hh" #include "G4Circle.hh" #include "G4Colour.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UIcommand.hh" #include "G4VisAttributes.hh" #include "G4VVisManager.hh" #include "G4UnitsTable.hh" @@ -189,6 +193,87 @@ void RE01Trajectory::DrawTrajectory(G4int) const if(pVVisManager) pVVisManager->Draw(pPolyline); } +const std::map* RE01Trajectory::GetAttDefs() const +{ + G4bool isNew; + std::map* store + = G4AttDefStore::GetInstance("RE01Trajectory",isNew); + if (isNew) { + + G4String ID("ID"); + (*store)[ID] = G4AttDef(ID,"Track ID","Bookkeeping","","G4int"); + + G4String PID("PID"); + (*store)[PID] = G4AttDef(PID,"Parent ID","Bookkeeping","","G4int"); + + G4String Status("Status"); + (*store)[Status] = G4AttDef(Status,"Track Status","Bookkeeping","","G4int"); + + G4String PN("PN"); + (*store)[PN] = G4AttDef(PN,"Particle Name","Bookkeeping","","G4String"); + + G4String Ch("Ch"); + (*store)[Ch] = G4AttDef(Ch,"Charge","Physics","e+","G4double"); + + G4String PDG("PDG"); + (*store)[PDG] = G4AttDef(PDG,"PDG Encoding","Bookkeeping","","G4int"); + + G4String IMom("IMom"); + (*store)[IMom] = G4AttDef(IMom, "Momentum of track at start of trajectory", + "Physics","G4BestUnit","G4ThreeVector"); + + G4String IMag("IMag"); + (*store)[IMag] = + G4AttDef(IMag, "Magnitude of momentum of track at start of trajectory", + "Physics","G4BestUnit","G4double"); + + G4String VtxPos("VtxPos"); + (*store)[VtxPos] = G4AttDef(VtxPos, "Vertex position", + "Physics","G4BestUnit","G4ThreeVector"); + + G4String NTP("NTP"); + (*store)[NTP] = G4AttDef(NTP,"No. of points","Bookkeeping","","G4int"); + + } + return store; +} + +std::vector* RE01Trajectory::CreateAttValues() const +{ + std::vector* values = new std::vector; + + values->push_back + (G4AttValue("ID",G4UIcommand::ConvertToString(fTrackID),"")); + + values->push_back + (G4AttValue("PID",G4UIcommand::ConvertToString(fParentID),"")); + + values->push_back + (G4AttValue("Status",G4UIcommand::ConvertToString(fTrackStatus),"")); + + values->push_back(G4AttValue("PN",ParticleName,"")); + + values->push_back + (G4AttValue("Ch",G4UIcommand::ConvertToString(PDGCharge),"")); + + values->push_back + (G4AttValue("PDG",G4UIcommand::ConvertToString(PDGEncoding),"")); + + values->push_back + (G4AttValue("IMom",G4BestUnit(momentum,"Energy"),"")); + + values->push_back + (G4AttValue("IMag",G4BestUnit(momentum.mag(),"Energy"),"")); + + values->push_back + (G4AttValue("VtxPos",G4BestUnit(vertexPosition,"Length"),"")); + + values->push_back + (G4AttValue("NTP",G4UIcommand::ConvertToString(GetPointEntries()),"")); + + return values; +} + void RE01Trajectory::AppendStep(const G4Step* aStep) { positionRecord->push_back( new G4TrajectoryPoint(aStep->GetPostStepPoint()-> diff --git a/examples/novice/N01/History b/examples/novice/N01/History index 4f9ce75d7b..9472950f79 100644 --- a/examples/novice/N01/History +++ b/examples/novice/N01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.8 2003/10/06 08:58:59 maire Exp $ +$Id: History,v 1.9 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + October 06, 2003 mma (exampleN01-V05-02-00) - cosmetic cleanup in material definitions diff --git a/examples/novice/N01/exampleN01.cc b/examples/novice/N01/exampleN01.cc index d102df376f..caa7c75ef1 100644 --- a/examples/novice/N01/exampleN01.cc +++ b/examples/novice/N01/exampleN01.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN01.cc,v 1.4 2002/01/09 17:23:47 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N01/exampleN01.out b/examples/novice/N01/exampleN01.out index 2c93508e07..b3ca8b0b0b 100644 --- a/examples/novice/N01/exampleN01.out +++ b/examples/novice/N01/exampleN01.out @@ -1,12 +1,11 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate ========= Table of registered couples ============================== @@ -223,5 +222,5 @@ Terminate current event processing. Run terminated. Run Summary Number of events processed : 3 - User=0.03s Real=0.06s Sys=0.03s + User=0.05s Real=0.12s Sys=0s G4 kernel has come to Quit state. diff --git a/examples/novice/N01/include/ExN01DetectorConstruction.hh b/examples/novice/N01/include/ExN01DetectorConstruction.hh index e516439203..80848d06d5 100644 --- a/examples/novice/N01/include/ExN01DetectorConstruction.hh +++ b/examples/novice/N01/include/ExN01DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN01DetectorConstruction.hh,v 1.5 2002/01/09 17:23:48 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN01DetectorConstruction_H diff --git a/examples/novice/N01/include/ExN01PhysicsList.hh b/examples/novice/N01/include/ExN01PhysicsList.hh index 1b0ca61149..14ebac1b3e 100644 --- a/examples/novice/N01/include/ExN01PhysicsList.hh +++ b/examples/novice/N01/include/ExN01PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN01PhysicsList.hh,v 1.5 2002/01/09 17:23:48 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh b/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh index 57fd80a4b3..13706cb316 100644 --- a/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh +++ b/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN01PrimaryGeneratorAction.hh,v 1.4 2002/01/09 17:23:48 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN01PrimaryGeneratorAction_h diff --git a/examples/novice/N01/src/ExN01DetectorConstruction.cc b/examples/novice/N01/src/ExN01DetectorConstruction.cc index 0ac2735fae..7e5364cc14 100644 --- a/examples/novice/N01/src/ExN01DetectorConstruction.cc +++ b/examples/novice/N01/src/ExN01DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN01DetectorConstruction.cc,v 1.8 2003/10/06 08:59:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN01DetectorConstruction.hh" diff --git a/examples/novice/N01/src/ExN01PhysicsList.cc b/examples/novice/N01/src/ExN01PhysicsList.cc index 016ecb92c5..ba272362bb 100644 --- a/examples/novice/N01/src/ExN01PhysicsList.cc +++ b/examples/novice/N01/src/ExN01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN01PhysicsList.cc,v 1.5 2002/01/09 17:23:48 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc b/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc index ec59e5f61f..54d1d89d64 100644 --- a/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc +++ b/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN01PrimaryGeneratorAction.cc,v 1.5 2002/05/14 01:50:31 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN01PrimaryGeneratorAction.hh" diff --git a/examples/novice/N02/History b/examples/novice/N02/History index 19b7622ace..9141ac3a10 100644 --- a/examples/novice/N02/History +++ b/examples/novice/N02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.38 2004/09/16 13:55:48 maire Exp $ +$Id: History,v 1.43 2005/06/01 17:41:45 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,21 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +01-06-05 John Allison (exampleN02-V07-00-03) +- ExN02TrackerHit.cc: Changed screen size to 2 pixels. + +31-05-05 mma (exampleN02-V07-00-02) +- G4UserLimits + G4StepLimiter become uncommented + +30th May 2005 John Allison (exampleN02-V07-00-01) +- Completed replacement of vis manager with G4VisExecutive. + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +28-01-05 mma (exampleN02-V07-00-00) +- PhysicsList: add G4StepLimiter (in a commented line) + 16-09-04 mma (exampleN02-V06-02-01) - DetectorConstruction: modify a comment in PVPlacement. // copy number diff --git a/examples/novice/N02/exampleN02.cc b/examples/novice/N02/exampleN02.cc index f41dd6c556..fbc92b6488 100644 --- a/examples/novice/N02/exampleN02.cc +++ b/examples/novice/N02/exampleN02.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN02.cc,v 1.8 2002/01/09 17:23:49 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: exampleN02.cc,v 1.9 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,7 +42,7 @@ #include "G4UItcsh.hh" #ifdef G4VIS_USE -#include "ExN02VisManager.hh" +#include "G4VisExecutive.hh" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -62,7 +62,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // Visualization, if you choose to have it! - G4VisManager* visManager = new ExN02VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/novice/N02/exampleN02.out b/examples/novice/N02/exampleN02.out index 1309d3cc05..0303105f11 100644 --- a/examples/novice/N02/exampleN02.out +++ b/examples/novice/N02/exampleN02.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -15,8 +15,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -27,14 +27,14 @@ The materials defined are : ***** Table : Nb of materials = 3 ***** Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm - ---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: XenonGas density: 5.458 mg/cm3 temperature: 293.15 K pressure: 1.00 atm RadLength: 15.539 m - ---> Element: XenonGas Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: XenonGas ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % Target is 5 cm of Lead @@ -42,15 +42,16 @@ There are 5 chambers in the tracker region. The chambers are 200 mm of XenonGas The distance between chamber is 80 cm phot: Total cross sections from Sandia parametrisation. -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -59,8 +60,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -71,8 +72,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -80,9 +81,9 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -91,8 +92,11 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -101,9 +105,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -118,9 +122,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -170,2320 +174,1908 @@ Index : 2 used in the geometry : Yes recalculation needed : No Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm -2.91 m 200 MeV 0 eV 0 fm 0 fm World initStep 1 0 fm 0 fm -2.86 m 200 MeV 7.67 keV 4.79 cm 4.79 cm World eIoni - 2 -326 mum 197 mum -2.45 m 200 MeV 93 keV 41.2 cm 46 cm World Transportation - 3 -326 mum 194 mum -2.45 m 180 MeV 341 keV 260 mum 46 cm Target eBrem - 4 -326 mum 194 mum -2.45 m 179 MeV 3.44 keV 2.64 mum 46 cm Target eBrem - 5 -335 mum 194 mum -2.45 m 171 MeV 322 keV 319 mum 46.1 cm Target eBrem - 6 -336 mum 191 mum -2.45 m 170 MeV 161 keV 153 mum 46.1 cm Target eBrem - 7 -365 mum 180 mum -2.45 m 159 MeV 854 keV 550 mum 46.1 cm Target eBrem - 8 -367 mum 177 mum -2.45 m 40.9 MeV 82.5 keV 73.7 mum 46.1 cm Target eBrem - 9 -422 mum 160 mum -2.45 m 39.5 MeV 590 keV 515 mum 46.2 cm Target eBrem - 10 -450 mum 124 mum -2.45 m 32.9 MeV 1.7 MeV 1.5 mm 46.3 cm Target eBrem - 11 -922 mum 434 mum -2.45 m 29.7 MeV 2.05 MeV 1.36 mm 46.5 cm Target eBrem - 12 -1.98 mm 430 mum -2.44 m 22.7 MeV 6.44 MeV 2.51 mm 46.7 cm Target eBrem - 13 -2.54 mm 715 mum -2.44 m 20.9 MeV 1.12 MeV 1.01 mm 46.8 cm Target eBrem - 14 -3.32 mm 857 mum -2.44 m 17.5 MeV 1.15 MeV 936 mum 46.9 cm Target eBrem - 15 -4.21 mm 889 mum -2.44 m 16.2 MeV 1.25 MeV 964 mum 47 cm Target eIoni - 16 -5.41 mm 746 mum -2.44 m 1.25 MeV 4.15 MeV 1.52 mm 47.2 cm Target eBrem - 17 -5.5 mm 704 mum -2.44 m 0 eV 1.25 MeV 947 mum 47.3 cm Target eIoni - 18 -5.5 mm 704 mum -2.44 m 0 eV 0 eV 0 fm 47.3 cm Target annihil + 2 -326 mum 197 mum -2.45 m 200 MeV 110 keV 41.2 cm 46 cm World Transportation + 3 -325 mum 197 mum -2.45 m 198 MeV 132 keV 113 mum 46 cm Target eBrem + 4 -323 mum 209 mum -2.45 m 195 MeV 601 keV 487 mum 46.1 cm Target eBrem + 5 -317 mum 190 mum -2.45 m 192 MeV 1.88 MeV 1.22 mm 46.2 cm Target eBrem + 6 -302 mum 189 mum -2.45 m 161 MeV 540 keV 466 mum 46.2 cm Target eBrem + 7 -9.77 mum 447 mum -2.45 m 156 MeV 2.53 MeV 2.21 mm 46.4 cm Target eBrem + 8 -5.93 mum 454 mum -2.45 m 150 MeV 109 keV 80.2 mum 46.5 cm Target eBrem + 9 10.7 mum 473 mum -2.45 m 147 MeV 403 keV 291 mum 46.5 cm Target eBrem + 10 17.1 mum 560 mum -2.44 m 89.5 MeV 1.85 MeV 1.32 mm 46.6 cm Target eBrem + 11 30.2 mum 605 mum -2.44 m 87.1 MeV 1.25 MeV 324 mum 46.7 cm Target eBrem + 12 38.3 mum 692 mum -2.44 m 68.1 MeV 1.01 MeV 929 mum 46.7 cm Target eBrem + 13 17.9 mum 761 mum -2.44 m 65.7 MeV 361 keV 354 mum 46.8 cm Target eBrem + 14 1.52 mum 798 mum -2.44 m 65.1 MeV 197 keV 203 mum 46.8 cm Target eBrem + 15 -5.87 mum 809 mum -2.44 m 54.5 MeV 91.5 keV 61.2 mum 46.8 cm Target eBrem + 16 -47.4 mum 861 mum -2.44 m 53 MeV 288 keV 228 mum 46.8 cm Target eBrem + 17 -89.4 mum 922 mum -2.44 m 51 MeV 212 keV 210 mum 46.8 cm Target eBrem + 18 -288 mum 1.28 mm -2.44 m 46.6 MeV 3.12 MeV 2.6 mm 47.1 cm Target eBrem + 19 -383 mum 1.31 mm -2.44 m 41.2 MeV 295 keV 194 mum 47.1 cm Target eBrem + 20 -727 mum 1.43 mm -2.44 m 39.2 MeV 1.34 MeV 786 mum 47.2 cm Target eBrem + 21 -1.38 mm 1.61 mm -2.44 m 12.7 MeV 3.05 MeV 1.03 mm 47.3 cm Target eBrem + 22 -1.49 mm 1.63 mm -2.44 m 12.2 MeV 193 keV 182 mum 47.3 cm Target eBrem + 23 -2.54 mm 2.11 mm -2.44 m 2.75 MeV 3.26 MeV 1.28 mm 47.5 cm Target eBrem + 24 -2.86 mm 1.99 mm -2.44 m 0 eV 2.75 MeV 2.2 mm 47.7 cm Target eIoni + 25 -2.86 mm 1.99 mm -2.44 m 0 eV 0 eV 0 fm 47.7 cm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.5 mm 704 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.63 mm 1.37 cm -2.43 m 0 eV 88 keV 1.56 cm 1.56 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 17 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.63 mm 1.37 cm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.62 mm 1.37 cm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.5 mm 704 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.8 mm -4.62 mm -2.44 m 420 keV 0 eV 6.43 mm 6.43 mm Target compt - 2 -4.18 mm -5.44 mm -2.44 m 226 keV 0 eV 988 mum 7.42 mm Target compt - 3 -6.64 mm -3.26 mm -2.45 m 204 keV 0 eV 3.71 mm 1.11 cm Target compt - 4 -6.67 mm -3.25 mm -2.45 m 0 eV 88 keV 81.8 mum 1.12 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 16 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.67 mm -3.25 mm -2.45 m 116 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.67 mm -3.25 mm -2.45 m 0 eV 116 keV 35.2 mum 35.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 16 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.64 mm -3.26 mm -2.45 m 21.3 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.64 mm -3.26 mm -2.45 m 0 eV 21.3 keV 2.27 mum 2.27 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 16 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.18 mm -5.44 mm -2.44 m 195 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.18 mm -5.45 mm -2.44 m 0 eV 195 keV 78.4 mum 78.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 16 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.8 mm -4.62 mm -2.44 m 90.8 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.8 mm -4.62 mm -2.44 m 0 eV 90.8 keV 23.7 mum 23.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.41 mm 746 mum -2.44 m 10.8 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.22 cm -2.09 mm -2.44 m 0 eV 0 eV 8.91 mm 8.91 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 24, Parent ID = 15 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 cm -2.09 mm -2.44 m 1.99 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.23 cm -2.18 mm -2.44 m 0 eV 1.99 MeV 1.58 mm 1.58 mm Target eIoni - 2 -1.23 cm -2.18 mm -2.44 m 0 eV 0 eV 0 fm 1.58 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 24 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.23 cm -2.18 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.08 cm 334 mum -2.44 m 0 eV 88 keV 1.15 cm 1.15 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 26 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.08 cm 334 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.08 cm 329 mum -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 24 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.23 cm -2.18 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.17 cm -2.37 mm -2.43 m 0 eV 88 keV 893 mum 893 mum Target phot + 0 -2.86 mm 1.99 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.05 mm 2.84 mm -2.44 m 470 keV 0 eV 1.14 mm 1.14 mm Target compt + 2 -6.49 mm 6.52 mm -2.43 m 438 keV 0 eV 8.01 mm 9.15 mm Target compt + 3 -1.1 cm 7.57 mm -2.42 m 438 keV 88 keV 1.18 cm 2.09 cm Target phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 28, Parent ID = 25 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.17 cm -2.37 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.16 cm -2.39 mm -2.43 m 17.5 keV 32.4 keV 30.6 mum 30.6 mum Target eBrem - 2 -1.16 cm -2.39 mm -2.43 m 0 eV 17.5 keV 1.66 mum 32.3 mum Target eIoni + 0 -1.1 cm 7.57 mm -2.42 m 350 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 cm 7.58 mm -2.42 m 0 eV 350 keV 185 mum 185 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 28 +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 25 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.16 cm -2.39 mm -2.43 m 373 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.43 cm -3.96 mm -2.43 m 0 eV 88 keV 3.87 mm 3.87 mm Target phot + 0 -6.49 mm 6.52 mm -2.43 m 32 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.49 mm 6.52 mm -2.43 m 0 eV 32 keV 4.34 mum 4.34 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 29 +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 25 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.43 cm -3.96 mm -2.43 m 285 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.43 cm -3.97 mm -2.43 m 0 eV 285 keV 138 mum 138 mum Target eIoni + 0 -3.05 mm 2.84 mm -2.44 m 41.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.05 mm 2.85 mm -2.44 m 0 eV 41.4 keV 6.6 mum 6.6 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 15 +* G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 cm -2.09 mm -2.44 m 7.81 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.24 cm -2.13 mm -2.44 m 6.84 MeV 304 keV 265 mum 265 mum Target eBrem - 2 -1.18 cm -150 mum -2.43 m 2.66 MeV 4.18 MeV 3.37 mm 3.63 mm Target eBrem - 3 -1.18 cm -75.4 mum -2.43 m 1.87 MeV 195 keV 180 mum 3.81 mm Target eBrem - 4 -1.18 cm -68.3 mum -2.43 m 267 keV 8.66 keV 7.89 mum 3.82 mm Target eBrem - 5 -1.18 cm -60.3 mum -2.43 m 0 eV 267 keV 126 mum 3.95 mm Target eIoni + 0 -2.86 mm 1.99 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.35 mm -4.81 mm -2.44 m 372 keV 0 eV 9.01 mm 9.01 mm Target compt + 2 -1.13 mm -4.78 mm -2.44 m 372 keV 88 keV 661 mum 9.67 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 33, Parent ID = 23 +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 24 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.18 cm -68.3 mum -2.43 m 1.59 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm 1.23 cm -2.44 m 1.59 MeV 0 eV 1.88 cm 1.88 cm Target Transportation - 2 -1.22 m 1.13 m -2.91 m 1.59 MeV 0 eV 1.71 m 1.73 m OutOfWorld Transportation + 0 -1.13 mm -4.78 mm -2.44 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.13 mm -4.79 mm -2.44 m 0 eV 284 keV 137 mum 137 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 32, Parent ID = 23 +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 24 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.18 cm -75.4 mum -2.43 m 595 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.3 cm 3.69 mm -2.43 m 186 keV 0 eV 3.95 mm 3.95 mm Target compt - 2 -1.3 cm 3.57 mm -2.43 m 0 eV 88 keV 116 mum 4.06 mm Target phot + 0 -1.35 mm -4.81 mm -2.44 m 139 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.35 mm -4.81 mm -2.44 m 0 eV 139 keV 46.9 mum 46.9 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 32 +* G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.3 cm 3.57 mm -2.43 m 97.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.3 cm 3.57 mm -2.43 m 0 eV 97.6 keV 26.6 mum 26.6 mum Target eIoni + 0 -2.54 mm 2.11 mm -2.44 m 6.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.86 cm -4.11 mm -2.43 m 4.53 MeV 0 eV 1.9 cm 1.9 cm Target compt + 2 -2.5 cm -4.89 mm -2.43 m 4.53 MeV 0 eV 6.79 mm 2.58 cm Target Transportation + 3 -9.98 cm -1.4 cm -2.4 m 4.53 MeV 0 eV 7.99 cm 10.6 cm World Transportation + 4 -2.4 m -29.4 cm -1.58 m 4.53 MeV 0 eV 2.46 m 2.56 m Tracker Transportation + 5 -2.91 m -35.6 cm -1.4 m 4.53 MeV 0 eV 54.5 cm 3.11 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 32 +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 23 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.3 cm 3.69 mm -2.43 m 409 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.29 cm 3.72 mm -2.43 m 162 keV 246 keV 209 mum 209 mum Target eBrem - 2 -1.29 cm 3.72 mm -2.43 m 0 eV 162 keV 59.4 mum 269 mum Target eIoni + 0 -1.86 cm -4.11 mm -2.43 m 1.64 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.87 cm -4.2 mm -2.43 m 0 eV 1.64 MeV 1.26 mm 1.26 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 23 +* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.24 cm -2.13 mm -2.44 m 672 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.36 cm -2.39 mm -2.43 m 0 eV 88 keV 2 mm 2 mm Target phot + 0 -1.49 mm 1.63 mm -2.44 m 292 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.13 mm 1.76 mm -2.44 m 246 keV 0 eV 884 mum 884 mum Target compt + 2 -2.15 mm 1.76 mm -2.44 m 246 keV 88 keV 19.9 mum 904 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 31 +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 22 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.36 cm -2.39 mm -2.43 m 584 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.36 cm -2.4 mm -2.43 m 0 eV 584 keV 371 mum 371 mum Target eIoni + 0 -2.15 mm 1.76 mm -2.44 m 158 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.15 mm 1.76 mm -2.44 m 0 eV 158 keV 57 mum 57 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 22 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.13 mm 1.76 mm -2.44 m 45.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.13 mm 1.76 mm -2.44 m 0 eV 45.7 keV 7.76 mum 7.76 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.38 mm 1.61 mm -2.44 m 23.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.43 cm 3.57 mm -2.41 m 23.5 MeV 0 eV 3.42 cm 3.42 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 35, Parent ID = 21 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.43 cm 3.57 mm -2.41 m 3.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.45 cm 3.4 mm -2.41 m 2.86 MeV 473 keV 438 mum 438 mum Target eBrem + 2 -2.46 cm 3.77 mm -2.41 m 0 eV 2.86 MeV 2.29 mm 2.72 mm Target eIoni + 3 -2.46 cm 3.77 mm -2.41 m 0 eV 0 eV 0 fm 2.72 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 38, Parent ID = 35 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.46 cm 3.77 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 3.14 mm -2.41 m 511 keV 0 eV 790 mum 790 mum Target Transportation + 2 -58.4 cm -95.2 cm -2.91 m 511 keV 0 eV 1.21 m 1.21 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 35 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.46 cm 3.77 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.15 cm 9.17 mm -2.41 m 200 keV 0 eV 6.87 mm 6.87 mm Target compt + 2 -2.18 cm 8.81 mm -2.41 m 200 keV 88 keV 606 mum 7.48 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 37 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.18 cm 8.81 mm -2.41 m 112 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.18 cm 8.81 mm -2.41 m 0 eV 112 keV 33.4 mum 33.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 37 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.15 cm 9.17 mm -2.41 m 311 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.15 cm 9.18 mm -2.41 m 0 eV 311 keV 156 mum 156 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 36, Parent ID = 35 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.45 cm 3.4 mm -2.41 m 561 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 4.18 mm -2.41 m 561 keV 0 eV 927 mum 927 mum Target Transportation + 2 -21.8 cm 29.5 cm -2.4 m 561 keV 0 eV 34.9 cm 35 cm World Transportation + 3 -1.61 m 2.4 m -2.31 m 561 keV 0 eV 2.53 m 2.88 m Tracker Transportation + 4 -1.95 m 2.91 m -2.29 m 561 keV 0 eV 61.2 cm 3.49 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 21 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.43 cm 3.57 mm -2.41 m 18.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.44 cm 3.57 mm -2.41 m 5.16 MeV 47.3 keV 34.1 mum 34.1 mum Target eBrem + 2 -2.49 cm 3.44 mm -2.41 m 823 keV 3.74 MeV 2.56 mm 2.59 mm Target eBrem + 3 -2.49 cm 3.44 mm -2.41 m 246 keV 577 keV 474 mum 3.07 mm Target eBrem + 4 -2.49 cm 3.44 mm -2.41 m 0 eV 246 keV 111 mum 3.18 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 34 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.49 cm 3.44 mm -2.41 m 596 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 3.46 mm -2.41 m 596 keV 0 eV 153 mum 153 mum Target Transportation + 2 -3.32 cm 5.31 mm -2.4 m 596 keV 0 eV 1.44 cm 1.46 cm World Transportation + 3 -2.4 m 53.9 cm 96.6 cm 596 keV 0 eV 4.15 m 4.16 m Tracker Transportation + 4 -2.91 m 65.4 cm 1.69 m 596 keV 0 eV 89.4 cm 5.06 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 34 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.44 cm 3.57 mm -2.41 m 13.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 3.5 mm -2.41 m 13.3 MeV 0 eV 975 mum 975 mum Target Transportation + 2 -3.52 cm 2.31 mm -2.4 m 13.3 MeV 0 eV 1.54 cm 1.64 cm World Transportation + 3 -2.4 m -27.4 cm 26.6 cm 13.3 MeV 0 eV 3.57 m 3.59 m Tracker Transportation + 4 -2.91 m -33.4 cm 84.2 cm 13.3 MeV 0 eV 77.1 cm 4.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -727 mum 1.43 mm -2.44 m 686 keV 0 eV 0 fm 0 fm Target initStep + 1 -933 mum 1.51 mm -2.44 m 686 keV 88 keV 370 mum 370 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 20 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -933 mum 1.51 mm -2.44 m 598 keV 0 eV 0 fm 0 fm Target initStep + 1 -940 mum 1.53 mm -2.44 m 0 eV 598 keV 382 mum 382 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -383 mum 1.31 mm -2.44 m 5.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 9.65 mm -2.4 m 5.13 MeV 0 eV 4.68 cm 4.68 cm Target Transportation + 2 -2.4 m 81.6 cm 1.36 m 5.13 MeV 0 eV 4.52 m 4.57 m Tracker Transportation + 3 -2.91 m 98.9 cm 2.17 m 5.13 MeV 0 eV 97.1 cm 5.54 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -288 mum 1.28 mm -2.44 m 1.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.93 mm 1.83 mm -2.44 m 713 keV 0 eV 3.33 mm 3.33 mm Target compt + 2 -5.28 mm -692 mum -2.43 m 713 keV 88 keV 4.99 mm 8.32 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 18 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.28 mm -692 mum -2.43 m 625 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.27 mm -697 mum -2.43 m 0 eV 625 keV 404 mum 404 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 18 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.93 mm 1.83 mm -2.44 m 482 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.93 mm 1.85 mm -2.44 m 0 eV 482 keV 288 mum 288 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -89.4 mum 922 mum -2.44 m 1.86 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.82 mm 9.75 mm -2.41 m 1.69 MeV 0 eV 3.16 cm 3.16 cm Target compt + 2 -5.4 mm 1.06 cm -2.4 m 1.69 MeV 0 eV 1.17 cm 4.33 cm Target Transportation + 3 -4.54 cm 6.6 cm -1.6 m 1.69 MeV 0 eV 80.3 cm 84.6 cm Tracker Transportation + 4 -5.55 cm 7.99 cm -1.4 m 1.69 MeV 0 eV 20.1 cm 1.05 m Chamber Transportation + 5 -8.55 cm 12.1 cm -80 cm 1.69 MeV 0 eV 60.2 cm 1.65 m Tracker Transportation + 6 -9.55 cm 13.5 cm -60 cm 1.69 MeV 0 eV 20.1 cm 1.85 m Chamber Transportation + 7 -12.6 cm 17.7 cm 0.114 fm 1.69 MeV 0 eV 60.2 cm 2.45 m Tracker Transportation + 8 -13.6 cm 19.1 cm 20 cm 1.69 MeV 0 eV 20.1 cm 2.65 m Chamber Transportation + 9 -16.6 cm 23.2 cm 80 cm 1.69 MeV 0 eV 60.2 cm 3.25 m Tracker Transportation + 10 -17.6 cm 24.6 cm 1 m 1.69 MeV 0 eV 20.1 cm 3.46 m Chamber Transportation + 11 -20.6 cm 28.8 cm 1.6 m 1.69 MeV 0 eV 60.2 cm 4.06 m Tracker Transportation + 12 -21.6 cm 30.2 cm 1.8 m 1.69 MeV 0 eV 20.1 cm 4.26 m Chamber Transportation + 13 -24.6 cm 34.3 cm 2.4 m 1.69 MeV 0 eV 60.2 cm 4.86 m Tracker Transportation + 14 -27.1 cm 37.9 cm 2.91 m 1.69 MeV 0 eV 51.2 cm 5.37 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 17 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.82 mm 9.75 mm -2.41 m 174 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.82 mm 9.75 mm -2.41 m 0 eV 174 keV 66.5 mum 66.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -47.4 mum 861 mum -2.44 m 1.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.59 mm 4.01 mm -2.43 m 247 keV 0 eV 1.27 cm 1.27 cm Target compt + 2 -2.09 mm 4.69 mm -2.43 m 247 keV 88 keV 1.24 mm 1.4 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 16 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.09 mm 4.69 mm -2.43 m 159 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.09 mm 4.69 mm -2.43 m 0 eV 159 keV 57.2 mum 57.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 16 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.59 mm 4.01 mm -2.43 m 943 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.6 mm 4.02 mm -2.43 m 0 eV 943 keV 672 mum 672 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.87 mum 809 mum -2.44 m 10.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.8 mm 4.53 mm -2.42 m 10.5 MeV 0 eV 1.84 cm 1.84 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 50, Parent ID = 15 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.8 mm 4.53 mm -2.42 m 5.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.01 mm 4.68 mm -2.42 m 0 eV 5.28 MeV 4.15 mm 4.15 mm Target eIoni + 2 -3.01 mm 4.68 mm -2.42 m 0 eV 0 eV 0 fm 4.15 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 52, Parent ID = 50 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.01 mm 4.68 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.48 mm -2.54 mm -2.42 m 511 keV 88 keV 7.44 mm 7.44 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 52 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.48 mm -2.54 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.48 mm -2.55 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 51, Parent ID = 50 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.01 mm 4.68 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.9 mm 5.23 mm -2.42 m 225 keV 0 eV 559 mum 559 mum Target compt + 2 -2.52 mm 5.01 mm -2.42 m 225 keV 88 keV 920 mum 1.48 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 51 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.52 mm 5.01 mm -2.42 m 137 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.52 mm 5.01 mm -2.42 m 0 eV 137 keV 45.8 mum 45.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 51 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.9 mm 5.23 mm -2.42 m 286 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.9 mm 5.23 mm -2.42 m 0 eV 286 keV 139 mum 139 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 15 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.8 mm 4.53 mm -2.42 m 4.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.49 mm 4.93 mm -2.42 m 1.33 MeV 2.44 MeV 1.04 mm 1.04 mm Target eBrem + 2 -3.51 mm 4.86 mm -2.42 m 0 eV 1.33 MeV 996 mum 2.04 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 56, Parent ID = 49 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.49 mm 4.93 mm -2.42 m 442 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.92 mm 2.86 mm -2.42 m 442 keV 88 keV 3.79 mm 3.79 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.92 mm 2.86 mm -2.42 m 354 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.93 mm 2.86 mm -2.42 m 0 eV 354 keV 188 mum 188 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.32 mm 857 mum -2.44 m 2.31 MeV 0 eV 0 fm 0 fm Target initStep - 1 -4.13 mm 937 mum -2.44 m 0 eV 0 eV 1.05 mm 1.05 mm Target conv + 0 1.52 mum 798 mum -2.44 m 396 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.06 mm 2.25 mm -2.43 m 396 keV 88 keV 7.39 mm 7.39 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 38, Parent ID = 14 +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 14 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.13 mm 937 mum -2.44 m 889 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.15 mm 987 mum -2.44 m 0 eV 889 keV 634 mum 634 mum Target eIoni - 2 -4.15 mm 987 mum -2.44 m 0 eV 0 eV 0 fm 634 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 40, Parent ID = 38 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.15 mm 987 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.38 mm -113 mum -2.44 m 405 keV 0 eV 1.34 mm 1.34 mm Target compt - 2 -3.47 mm -1.95 mm -2.44 m 0 eV 88 keV 1.93 mm 3.27 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 40 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.47 mm -1.95 mm -2.44 m 317 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.48 mm -1.96 mm -2.44 m 0 eV 317 keV 161 mum 161 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 40 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.38 mm -113 mum -2.44 m 106 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.38 mm -113 mum -2.44 m 0 eV 106 keV 30.4 mum 30.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 39, Parent ID = 38 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.15 mm 987 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.71 mm 6.09 mm -2.44 m 0 eV 88 keV 6.23 mm 6.23 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 39 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.71 mm 6.09 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.72 mm 6.09 mm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 14 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.13 mm 937 mum -2.44 m 396 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.14 mm 926 mum -2.44 m 0 eV 396 keV 220 mum 220 mum Target eIoni + 0 -1.06 mm 2.25 mm -2.43 m 308 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.06 mm 2.25 mm -2.43 m 0 eV 308 keV 154 mum 154 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.54 mm 715 mum -2.44 m 606 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.86 mm 1.23 mm -2.44 m 0 eV 88 keV 4.5 mm 4.5 mm Target phot + 0 17.9 mum 761 mum -2.44 m 2.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 -942 mum 2.37 mm -2.43 m 242 keV 0 eV 8.64 mm 8.64 mm Target compt + 2 -718 mum 2.32 mm -2.43 m 242 keV 88 keV 370 mum 9.01 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 13 +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 13 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.86 mm 1.23 mm -2.44 m 518 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.88 mm 1.24 mm -2.44 m 0 eV 518 keV 316 mum 316 mum Target eIoni + 0 -718 mum 2.32 mm -2.43 m 154 keV 0 eV 0 fm 0 fm Target initStep + 1 -721 mum 2.32 mm -2.43 m 0 eV 154 keV 54.7 mum 54.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 13 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -942 mum 2.37 mm -2.43 m 1.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.12 mm 2.83 mm -2.43 m 876 keV 890 keV 788 mum 788 mum Target eBrem + 2 -1.14 mm 2.83 mm -2.43 m 390 keV 175 keV 95.9 mum 884 mum Target eBrem + 3 -1.12 mm 2.84 mm -2.43 m 0 eV 390 keV 215 mum 1.1 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 61, Parent ID = 59 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.14 mm 2.83 mm -2.43 m 311 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.07 mm 2.86 mm -2.43 m 311 keV 88 keV 70 mum 70 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 61 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.07 mm 2.86 mm -2.43 m 223 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.07 mm 2.86 mm -2.43 m 0 eV 223 keV 96.5 mum 96.5 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.98 mm 430 mum -2.44 m 616 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.78 cm 5.09 mm -2.43 m 259 keV 0 eV 2.04 cm 2.04 cm Target compt - 2 -1.8 cm 4.86 mm -2.43 m 0 eV 88 keV 318 mum 2.08 cm Target phot + 0 38.3 mum 692 mum -2.44 m 18 MeV 0 eV 0 fm 0 fm Target initStep + 1 -610 mum 2.07 mm -2.43 m 18 MeV 0 eV 8.97 mm 8.97 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 12 +* G4Track Information: Particle = e+, Track ID = 64, Parent ID = 12 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.8 cm 4.86 mm -2.43 m 171 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.8 cm 4.85 mm -2.43 m 0 eV 171 keV 64.7 mum 64.7 mum Target eIoni + 0 -610 mum 2.07 mm -2.43 m 12.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -704 mum 2.23 mm -2.43 m 11.7 MeV 547 keV 546 mum 546 mum Target eBrem + 2 -636 mum 2.68 mm -2.43 m 10.6 MeV 711 keV 673 mum 1.22 mm Target eBrem + 3 -495 mum 3.15 mm -2.43 m 9.91 MeV 721 keV 636 mum 1.86 mm Target eBrem + 4 350 mum 2.92 mm -2.43 m 7.78 MeV 1.73 MeV 1.21 mm 3.06 mm Target eBrem + 5 358 mum 2.61 mm -2.43 m 4.45 MeV 440 keV 356 mum 3.42 mm Target eBrem + 6 789 mum 2.65 mm -2.43 m 1.58 MeV 1.51 MeV 1.58 mm 5.01 mm Target eBrem + 7 610 mum 2.91 mm -2.43 m 479 keV 421 keV 435 mum 5.44 mm Target eBrem + 8 589 mum 2.88 mm -2.43 m 0 eV 479 keV 285 mum 5.73 mm Target eIoni + 9 589 mum 2.88 mm -2.43 m 0 eV 0 eV 0 fm 5.73 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 12 +* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 64 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.78 cm 5.09 mm -2.43 m 357 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.78 cm 5.09 mm -2.43 m 0 eV 357 keV 191 mum 191 mum Target eIoni + 0 589 mum 2.88 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.48 mm 4.32 mm -2.43 m 232 keV 0 eV 3.73 mm 3.73 mm Target compt + 2 -3.4 mm 3.6 mm -2.43 m 232 keV 88 keV 2.76 mm 6.49 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 72 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.4 mm 3.6 mm -2.43 m 143 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.4 mm 3.6 mm -2.43 m 0 eV 143 keV 49.1 mum 49.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 72 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.48 mm 4.32 mm -2.43 m 279 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.48 mm 4.32 mm -2.43 m 0 eV 279 keV 134 mum 134 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 589 mum 2.88 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 9.53 mm -1.29 mm -2.43 m 511 keV 88 keV 1.09 cm 1.09 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 71 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.53 mm -1.29 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 9.54 mm -1.31 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 70, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 610 mum 2.91 mm -2.43 m 678 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.11 cm -9.74 mm -2.43 m 678 keV 88 keV 1.75 cm 1.75 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 70 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.11 cm -9.74 mm -2.43 m 590 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.11 cm -9.76 mm -2.43 m 0 eV 590 keV 375 mum 375 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 789 mum 2.65 mm -2.43 m 1.36 MeV 0 eV 0 fm 0 fm Target initStep + 1 680 mum 2.85 mm -2.43 m 1.08 MeV 0 eV 231 mum 231 mum Target compt + 2 -2.43 mm 5.58 mm -2.43 m 410 keV 0 eV 4.15 mm 4.38 mm Target compt + 3 -2.85 mm 6.33 mm -2.42 m 410 keV 88 keV 5.8 mm 1.02 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 69 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.85 mm 6.33 mm -2.42 m 322 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.84 mm 6.33 mm -2.42 m 0 eV 322 keV 164 mum 164 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 69 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.43 mm 5.58 mm -2.43 m 665 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.45 mm 5.6 mm -2.43 m 0 eV 665 keV 438 mum 438 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 69 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 680 mum 2.85 mm -2.43 m 288 keV 0 eV 0 fm 0 fm Target initStep + 1 682 mum 2.85 mm -2.43 m 0 eV 288 keV 140 mum 140 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 358 mum 2.61 mm -2.43 m 2.89 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.53 mm -4.75 mm -2.43 m 2.72 MeV 0 eV 8.35 mm 8.35 mm Target compt + 2 5 mm -1.03 cm -2.42 m 2.72 MeV 0 eV 6.83 mm 1.52 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 82, Parent ID = 68 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5 mm -1.03 cm -2.42 m 295 keV 0 eV 0 fm 0 fm Target initStep + 1 5.01 mm -1.03 cm -2.42 m 0 eV 295 keV 142 mum 142 mum Target eIoni + 2 5.01 mm -1.03 cm -2.42 m 0 eV 0 eV 0 fm 142 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 84, Parent ID = 82 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.01 mm -1.03 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.34 mm -1.06 cm -2.42 m 511 keV 88 keV 444 mum 444 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 84 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.34 mm -1.06 cm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.35 mm -1.06 cm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 83, Parent ID = 82 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.01 mm -1.03 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.07 mm -6.63 mm -2.42 m 511 keV 88 keV 5.36 mm 5.36 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 83 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.07 mm -6.63 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.06 mm -6.62 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 68 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5 mm -1.03 cm -2.42 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.91 mm -1.03 cm -2.42 m 245 keV 567 keV 372 mum 372 mum Target eBrem + 2 4.91 mm -1.03 cm -2.42 m 0 eV 245 keV 110 mum 482 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 87, Parent ID = 81 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.91 mm -1.03 cm -2.42 m 590 keV 0 eV 0 fm 0 fm Target initStep + 1 4.62 mm -8.42 mm -2.43 m 215 keV 0 eV 2.85 mm 2.85 mm Target compt + 2 6.99 mm -7.47 mm -2.42 m 215 keV 88 keV 4.39 mm 7.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 87 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.99 mm -7.47 mm -2.42 m 127 keV 0 eV 0 fm 0 fm Target initStep + 1 6.99 mm -7.47 mm -2.42 m 0 eV 127 keV 40.5 mum 40.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 87 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.62 mm -8.42 mm -2.43 m 374 keV 0 eV 0 fm 0 fm Target initStep + 1 4.62 mm -8.41 mm -2.43 m 0 eV 374 keV 204 mum 204 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 68 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.53 mm -4.75 mm -2.43 m 168 keV 0 eV 0 fm 0 fm Target initStep + 1 2.53 mm -4.76 mm -2.43 m 0 eV 168 keV 62.8 mum 62.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 350 mum 2.92 mm -2.43 m 403 keV 0 eV 0 fm 0 fm Target initStep + 1 298 mum 2.31 mm -2.43 m 372 keV 0 eV 818 mum 818 mum Target compt + 2 -3.42 mm -2.06 mm -2.42 m 372 keV 88 keV 9.17 mm 9.98 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 67 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.42 mm -2.06 mm -2.42 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.42 mm -2.07 mm -2.42 m 0 eV 284 keV 138 mum 138 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 67 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 298 mum 2.31 mm -2.43 m 30.4 keV 0 eV 0 fm 0 fm Target initStep + 1 298 mum 2.31 mm -2.43 m 0 eV 30.4 keV 4 mum 4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 66, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -636 mum 2.68 mm -2.43 m 388 keV 0 eV 0 fm 0 fm Target initStep + 1 -537 mum 3.84 mm -2.43 m 325 keV 0 eV 2.18 mm 2.18 mm Target compt + 2 322 mum 4.3 mm -2.43 m 325 keV 88 keV 1.23 mm 3.4 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 66 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 322 mum 4.3 mm -2.43 m 237 keV 0 eV 0 fm 0 fm Target initStep + 1 323 mum 4.3 mm -2.43 m 0 eV 237 keV 106 mum 106 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 66 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -537 mum 3.84 mm -2.43 m 63 keV 0 eV 0 fm 0 fm Target initStep + 1 -537 mum 3.84 mm -2.43 m 0 eV 63 keV 13 mum 13 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 65, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -704 mum 2.23 mm -2.43 m 663 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.3 mm 7.24 mm -2.43 m 371 keV 0 eV 8.51 mm 8.51 mm Target compt + 2 -2.63 mm 7.23 mm -2.43 m 172 keV 0 eV 1.47 mm 9.98 mm Target compt + 3 -2.35 mm 7.59 mm -2.43 m 108 keV 0 eV 1.29 mm 1.13 cm Target compt + 4 -2.27 mm 7.77 mm -2.43 m 108 keV 88 keV 578 mum 1.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.27 mm 7.77 mm -2.43 m 20.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.27 mm 7.77 mm -2.43 m 0 eV 20.1 keV 2.06 mum 2.06 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.35 mm 7.59 mm -2.43 m 64 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.35 mm 7.59 mm -2.43 m 0 eV 64 keV 13.4 mum 13.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.63 mm 7.23 mm -2.43 m 198 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.63 mm 7.23 mm -2.43 m 0 eV 198 keV 80.7 mum 80.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.3 mm 7.24 mm -2.43 m 292 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.29 mm 7.25 mm -2.43 m 0 eV 292 keV 144 mum 144 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 12 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -610 mum 2.07 mm -2.43 m 4.05 MeV 0 eV 0 fm 0 fm Target initStep + 1 -612 mum 1.97 mm -2.43 m 1.29 MeV 1.21 MeV 381 mum 381 mum Target eBrem + 2 -632 mum 2.02 mm -2.43 m 0 eV 1.29 MeV 962 mum 1.34 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 98, Parent ID = 63 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -612 mum 1.97 mm -2.43 m 1.55 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.92 mm 1.9 cm -2.41 m 1.44 MeV 0 eV 3.08 cm 3.08 cm Target compt + 2 -5.89 mm 2.32 cm -2.4 m 1.44 MeV 0 eV 9.31 mm 4.01 cm Target Transportation + 3 9.78 mm 2.04 m 1.69 m 257 keV 0 eV 4.56 m 4.6 m Tracker compt + 4 9.07 cm 1.97 m 1.64 m 257 keV 0 eV 11.9 cm 4.72 m Tracker Transportation + 5 16.1 cm 1.9 m 1.6 m 257 keV 0 eV 10.4 cm 4.83 m Chamber Transportation + 6 1.15 m 1.01 m 1 m 257 keV 0 eV 1.47 m 6.29 m Tracker Transportation + 7 1.49 m 70.8 cm 80 cm 257 keV 0 eV 48.9 cm 6.78 m Chamber Transportation + 8 2.4 m -11.8 cm 24.7 cm 257 keV 0 eV 1.35 m 8.13 m Tracker Transportation + 9 2.91 m -57.9 cm -6.09 cm 257 keV 0 eV 75.3 cm 8.89 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 98 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.78 mm 2.04 m 1.69 m 1.19 MeV 0 eV 0 fm 0 fm Tracker initStep + 1 -7.57 cm 2.32 m 2.26 m 1.07 MeV 114 keV 68.3 cm 68.3 cm Tracker eIoni + 2 -5.05 cm 2.31 m 2.4 m 1.05 MeV 23.1 keV 14.4 cm 82.7 cm Tracker Transportation + 3 -4.51 cm 2.3 m 2.48 m 1.02 MeV 16.1 keV 7.81 cm 90.5 cm World eIoni + 4 -1.65 cm 2.35 m 2.91 m 955 keV 67.2 keV 45.7 cm 1.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 100 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.51 cm 2.3 m 2.48 m 10.8 keV 0 eV 0 fm 0 fm World initStep + 1 -4.45 cm 2.3 m 2.48 m 0 eV 10.8 keV 2.58 mm 2.58 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 98 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.92 mm 1.9 cm -2.41 m 110 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.92 mm 1.91 cm -2.41 m 0 eV 110 keV 32.3 mum 32.3 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -922 mum 434 mum -2.45 m 1.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.3 cm 3.15 mm -2.43 m 216 keV 0 eV 1.93 cm 1.93 cm Target compt - 2 -1.24 cm 3.07 mm -2.43 m 0 eV 88 keV 612 mum 1.99 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 11 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.24 cm 3.07 mm -2.43 m 128 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.24 cm 3.07 mm -2.43 m 0 eV 128 keV 41 mum 41 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 11 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.3 cm 3.15 mm -2.43 m 881 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.3 cm 3.16 mm -2.43 m 0 eV 881 keV 619 mum 619 mum Target eIoni + 0 30.2 mum 605 mum -2.44 m 1.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 -367 mum 5.65 mm -2.4 m 1.17 MeV 0 eV 4.38 cm 4.38 cm Target Transportation + 2 -7.66 mm 9.84 cm -1.6 m 1.17 MeV 0 eV 80.5 cm 84.9 cm Tracker Transportation + 3 -9.48 mm 12.2 cm -1.4 m 1.17 MeV 0 eV 20.1 cm 1.05 m Chamber Transportation + 4 -1.5 cm 19.1 cm -80 cm 1.17 MeV 0 eV 60.4 cm 1.65 m Tracker Transportation + 5 -1.68 cm 21.4 cm -60 cm 1.17 MeV 0 eV 20.1 cm 1.86 m Chamber Transportation + 6 -2.22 cm 28.4 cm 0 fm 1.17 MeV 0 eV 60.4 cm 2.46 m Tracker Transportation + 7 -2.41 cm 30.7 cm 20 cm 1.17 MeV 0 eV 20.1 cm 2.66 m Chamber Transportation + 8 -2.95 cm 37.7 cm 80 cm 1.17 MeV 0 eV 60.4 cm 3.27 m Tracker Transportation + 9 -3.14 cm 40 cm 1 m 1.17 MeV 0 eV 20.1 cm 3.47 m Chamber Transportation + 10 -3.68 cm 46.9 cm 1.6 m 1.17 MeV 0 eV 60.4 cm 4.07 m Tracker Transportation + 11 -3.86 cm 49.2 cm 1.8 m 1.17 MeV 0 eV 20.1 cm 4.27 m Chamber Transportation + 12 -4.41 cm 56.2 cm 2.4 m 1.17 MeV 0 eV 60.4 cm 4.88 m Tracker Transportation + 13 -4.88 cm 62.1 cm 2.91 m 1.17 MeV 0 eV 51.3 cm 5.39 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -450 mum 124 mum -2.45 m 4.91 MeV 0 eV 0 fm 0 fm Target initStep - 1 -6.58 mm 4 mm -2.42 m 327 keV 0 eV 2.69 cm 2.69 cm Target compt - 2 -7.89 mm 3.34 mm -2.42 m 0 eV 88 keV 1.82 mm 2.87 cm Target phot + 0 17.1 mum 560 mum -2.44 m 55.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 25.3 mum 591 mum -2.44 m 55.5 MeV 0 eV 261 mum 261 mum Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 10 +* G4Track Information: Particle = e+, Track ID = 103, Parent ID = 10 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.89 mm 3.34 mm -2.42 m 239 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.89 mm 3.34 mm -2.42 m 0 eV 239 keV 107 mum 107 mum Target eIoni + 0 25.3 mum 591 mum -2.44 m 3.78 MeV 0 eV 0 fm 0 fm Target initStep + 1 -57.9 mum 944 mum -2.44 m 0 eV 3.78 MeV 3.01 mm 3.01 mm Target eIoni + 2 -57.9 mum 944 mum -2.44 m 0 eV 0 eV 0 fm 3.01 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 10 +* G4Track Information: Particle = gamma, Track ID = 105, Parent ID = 103 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.58 mm 4 mm -2.42 m 4.59 MeV 0 eV 0 fm 0 fm Target initStep - 1 -7.56 mm 5.46 mm -2.42 m 1.77 MeV 2.81 MeV 2.11 mm 2.11 mm Target eBrem - 2 -8.07 mm 4.95 mm -2.42 m 592 keV 1.18 MeV 1.14 mm 3.25 mm Target eBrem - 3 -8.07 mm 4.97 mm -2.42 m 0 eV 592 keV 377 mum 3.63 mm Target eIoni + 0 -57.9 mum 944 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.27 mm 248 mum -2.45 m 511 keV 88 keV 3.21 mm 3.21 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 105 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -422 mum 160 mum -2.45 m 876 keV 0 eV 0 fm 0 fm Target initStep - 1 -843 mum 35.2 mum -2.45 m 417 keV 0 eV 2.55 mm 2.55 mm Target compt - 2 -2.09 mm 868 mum -2.45 m 297 keV 0 eV 1.55 mm 4.1 mm Target compt - 3 -1.91 mm 2.45 mm -2.44 m 288 keV 0 eV 1.75 mm 5.85 mm Target compt - 4 -1.91 mm 2.48 mm -2.44 m 172 keV 0 eV 25.5 mum 5.88 mm Target compt - 5 -2.41 mm 2.36 mm -2.44 m 0 eV 88 keV 510 mum 6.39 mm Target phot + 0 1.27 mm 248 mum -2.45 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.28 mm 244 mum -2.45 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 9 +* G4Track Information: Particle = gamma, Track ID = 104, Parent ID = 103 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.41 mm 2.36 mm -2.44 m 84.3 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.41 mm 2.36 mm -2.44 m 0 eV 84.3 keV 21 mum 21 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.91 mm 2.48 mm -2.44 m 116 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.91 mm 2.48 mm -2.44 m 0 eV 116 keV 35.1 mum 35.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.91 mm 2.45 mm -2.44 m 9.28 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.91 mm 2.45 mm -2.44 m 0 eV 9.28 keV 629 nm 629 nm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.09 mm 868 mum -2.45 m 119 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.09 mm 868 mum -2.45 m 0 eV 119 keV 36.6 mum 36.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -843 mum 35.2 mum -2.45 m 459 keV 0 eV 0 fm 0 fm Target initStep - 1 -839 mum 29.2 mum -2.45 m 0 eV 459 keV 269 mum 269 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -367 mum 177 mum -2.45 m 118 MeV 0 eV 0 fm 0 fm Target initStep - 1 -746 mum -190 mum -2.44 m 0 eV 0 eV 1.26 cm 1.26 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 57, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -746 mum -190 mum -2.44 m 108 MeV 0 eV 0 fm 0 fm Target initStep - 1 -785 mum -216 mum -2.44 m 106 MeV 882 keV 690 mum 690 mum Target eBrem - 2 -798 mum -220 mum -2.44 m 106 MeV 156 keV 128 mum 818 mum Target eBrem - 3 -816 mum -228 mum -2.44 m 105 MeV 193 keV 171 mum 989 mum Target eBrem - 4 -817 mum -228 mum -2.44 m 101 MeV 5.94 keV 8.72 mum 998 mum Target eBrem - 5 -860 mum -228 mum -2.43 m 79.1 MeV 456 keV 383 mum 1.38 mm Target eBrem - 6 -1.08 mm -264 mum -2.43 m 75.1 MeV 3.55 MeV 1.96 mm 3.34 mm Target eBrem - 7 -1.15 mm -259 mum -2.43 m 74 MeV 653 keV 264 mum 3.61 mm Target eBrem - 8 -1.2 mm -259 mum -2.43 m 71.9 MeV 351 keV 226 mum 3.83 mm Target eBrem - 9 -1.24 mm -271 mum -2.43 m 37 MeV 168 keV 123 mum 3.96 mm Target eBrem - 10 -2.04 mm -1.14 mm -2.43 m 33.4 MeV 3.22 MeV 2.72 mm 6.68 mm Target eBrem - 11 -2.18 mm -1.12 mm -2.43 m 32.7 MeV 413 keV 371 mum 7.05 mm Target eBrem - 12 -2.31 mm -1.22 mm -2.43 m 19.7 MeV 263 keV 217 mum 7.27 mm Target eBrem - 13 -2.81 mm -1.71 mm -2.43 m 6.2 MeV 1.27 MeV 1.13 mm 8.4 mm Target eBrem - 14 -3.31 mm -1.51 mm -2.43 m 5.09 MeV 739 keV 673 mum 9.07 mm Target eBrem - 15 -3.4 mm -1.68 mm -2.43 m 4.37 MeV 258 keV 246 mum 9.31 mm Target eBrem - 16 -2.79 mm -2.86 mm -2.43 m 1.39 MeV 2.65 MeV 1.47 mm 1.08 cm Target eBrem - 17 -2.82 mm -2.93 mm -2.43 m 0 eV 1.39 MeV 1.07 mm 1.19 cm Target eIoni - 18 -2.82 mm -2.93 mm -2.43 m 0 eV 0 eV 0 fm 1.19 cm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 75, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.82 mm -2.93 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.82 mm -4.7 mm -2.43 m 0 eV 88 keV 2.05 mm 2.05 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 75 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.82 mm -4.7 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.84 mm -4.71 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.82 mm -2.93 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 2.96 mm 7.31 mm -2.43 m 0 eV 88 keV 1.18 cm 1.18 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 74 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.96 mm 7.31 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 2.97 mm 7.32 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 73, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.79 mm -2.86 mm -2.43 m 330 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.94 mm -5.3 mm -2.42 m 280 keV 0 eV 4.63 mm 4.63 mm Target compt - 2 -3.68 mm -5.43 mm -2.42 m 0 eV 88 keV 619 mum 5.24 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.68 mm -5.43 mm -2.42 m 192 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.68 mm -5.43 mm -2.42 m 0 eV 192 keV 77.1 mum 77.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.94 mm -5.3 mm -2.42 m 49.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.94 mm -5.3 mm -2.42 m 0 eV 49.6 keV 8.83 mum 8.83 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.4 mm -1.68 mm -2.43 m 457 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.71 mm -6.59 mm -2.43 m 283 keV 0 eV 7.37 mm 7.37 mm Target compt - 2 -6.96 mm -6.38 mm -2.43 m 0 eV 88 keV 438 mum 7.81 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.96 mm -6.38 mm -2.43 m 195 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.97 mm -6.37 mm -2.43 m 0 eV 195 keV 78.8 mum 78.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.71 mm -6.59 mm -2.43 m 174 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.71 mm -6.6 mm -2.43 m 0 eV 174 keV 66.2 mum 66.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.31 mm -1.51 mm -2.43 m 373 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.88 mm -3.53 mm -2.43 m 0 eV 88 keV 2.95 mm 2.95 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 71 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.88 mm -3.53 mm -2.43 m 285 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.88 mm -3.53 mm -2.43 m 0 eV 285 keV 138 mum 138 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 70, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.81 mm -1.71 mm -2.43 m 12.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.4 cm -4.37 mm -2.42 m 0 eV 0 eV 1.58 cm 1.58 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 84, Parent ID = 70 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.4 cm -4.37 mm -2.42 m 3.75 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.46 cm -4.43 mm -2.42 m 0 eV 3.75 MeV 2.99 mm 2.99 mm Target eIoni - 2 -1.46 cm -4.43 mm -2.42 m 0 eV 0 eV 0 fm 2.99 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 86, Parent ID = 84 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.46 cm -4.43 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.4 cm -9.92 mm -2.41 m 468 keV 0 eV 7.26 mm 7.26 mm Target compt - 2 -1.4 cm -1.36 cm -2.41 m 0 eV 88 keV 3.79 mm 1.11 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 86 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.4 cm -1.36 cm -2.41 m 380 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.4 cm -1.36 cm -2.41 m 0 eV 380 keV 208 mum 208 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 86 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.4 cm -9.92 mm -2.41 m 43.2 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.4 cm -9.92 mm -2.41 m 0 eV 43.2 keV 7.08 mum 7.08 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 85, Parent ID = 84 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.46 cm -4.43 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.75 cm 2.32 cm -2.44 m 0 eV 88 keV 3.65 cm 3.65 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 85 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.75 cm 2.32 cm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.75 cm 2.32 cm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 70 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.4 cm -4.37 mm -2.42 m 7.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.56 cm -3.64 mm -2.42 m 4.27 MeV 2.8 MeV 1.99 mm 1.99 mm Target eBrem - 2 -1.56 cm -4 mm -2.42 m 1.17 MeV 581 keV 528 mum 2.52 mm Target eBrem - 3 -1.57 cm -3.97 mm -2.42 m 0 eV 1.17 MeV 861 mum 3.38 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 91, Parent ID = 83 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.56 cm -4 mm -2.42 m 2.53 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.7 cm -3.18 mm -2.42 m 474 keV 0 eV 1.97 mm 1.97 mm Target compt - 2 -2.46 cm -2.37 cm -2.41 m 0 eV 88 keV 2.44 cm 2.64 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 91 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.46 cm -2.37 cm -2.41 m 386 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.46 cm -2.37 cm -2.41 m 0 eV 386 keV 212 mum 212 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 91 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.7 cm -3.18 mm -2.42 m 2.05 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.71 cm -3.16 mm -2.42 m 979 keV 111 keV 128 mum 128 mum Target eBrem - 2 -1.71 cm -3.13 mm -2.42 m 0 eV 979 keV 703 mum 831 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 94, Parent ID = 92 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.71 cm -3.16 mm -2.42 m 961 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.15 cm -113 mum -2.41 m 889 keV 0 eV 7.91 mm 7.91 mm Target compt - 2 -4.53 mm 6.47 mm -2.41 m 392 keV 0 eV 1.06 cm 1.85 cm Target compt - 3 -4.66 mm 5.76 mm -2.4 m 0 eV 88 keV 3.65 mm 2.21 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 94 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.66 mm 5.76 mm -2.4 m 304 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.66 mm 5.76 mm -2.4 m 0 eV 304 keV 151 mum 151 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 94 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.53 mm 6.47 mm -2.41 m 497 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.52 mm 6.49 mm -2.41 m 0 eV 497 keV 299 mum 299 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 94 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.15 cm -113 mum -2.41 m 72.9 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.15 cm -114 mum -2.41 m 0 eV 72.9 keV 16.6 mum 16.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 90, Parent ID = 83 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.56 cm -3.64 mm -2.42 m 330 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.59 cm -3.76 mm -2.42 m 0 eV 88 keV 551 mum 551 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 90 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.59 cm -3.76 mm -2.42 m 242 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.59 cm -3.75 mm -2.42 m 0 eV 242 keV 109 mum 109 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.31 mm -1.22 mm -2.43 m 12.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.61 mm -2.19 mm -2.43 m 349 keV 0 eV 2.1 mm 2.1 mm Target compt - 2 -1.9 mm -5.9 mm -2.43 m 0 eV 88 keV 7.01 mm 9.11 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.9 mm -5.9 mm -2.43 m 261 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.9 mm -5.9 mm -2.43 m 0 eV 261 keV 122 mum 122 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.61 mm -2.19 mm -2.43 m 12.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -4.19 mm -3.4 mm -2.43 m 9.42 MeV 1.91 MeV 1.52 mm 1.52 mm Target eBrem - 2 -5.06 mm -3.49 mm -2.43 m 7.5 MeV 979 keV 882 mum 2.4 mm Target eBrem - 3 -5.71 mm -4.75 mm -2.43 m 1.8 MeV 4.06 MeV 2.52 mm 4.92 mm Target eBrem - 4 -5.88 mm -4.8 mm -2.43 m 870 keV 339 keV 177 mum 5.1 mm Target eBrem - 5 -5.87 mm -4.76 mm -2.43 m 0 eV 870 keV 610 mum 5.71 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 104, Parent ID = 99 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.88 mm -4.8 mm -2.43 m 594 keV 0 eV 0 fm 0 fm Target initStep - 1 1.08 cm 1.45 mm -2.44 m 480 keV 0 eV 2.11 cm 2.11 cm Target compt - 2 1.16 cm 2.07 mm -2.44 m 209 keV 0 eV 1.02 mm 2.21 cm Target compt - 3 9.86 mm 2.95 mm -2.44 m 0 eV 88 keV 2.2 mm 2.43 cm Target phot + 0 -57.9 mum 944 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.45 mm 3.25 mm -2.43 m 511 keV 88 keV 1.07 cm 1.07 cm Target phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 107, Parent ID = 104 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.86 mm 2.95 mm -2.44 m 121 keV 0 eV 0 fm 0 fm Target initStep - 1 9.86 mm 2.96 mm -2.44 m 0 eV 121 keV 37.5 mum 37.5 mum Target eIoni + 0 -4.45 mm 3.25 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.44 mm 3.26 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 104 +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 10 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.16 cm 2.07 mm -2.44 m 271 keV 0 eV 0 fm 0 fm Target initStep - 1 1.16 cm 2.07 mm -2.44 m 0 eV 271 keV 128 mum 128 mum Target eIoni + 0 25.3 mum 591 mum -2.44 m 50.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 30.7 mum 611 mum -2.44 m 43.7 MeV 254 keV 193 mum 193 mum Target eBrem + 2 150 mum 786 mum -2.44 m 41.5 MeV 1.44 MeV 1.16 mm 1.35 mm Target eBrem + 3 488 mum 779 mum -2.44 m 34.7 MeV 1.27 MeV 965 mum 2.31 mm Target eBrem + 4 651 mum 746 mum -2.44 m 33.6 MeV 431 keV 419 mum 2.73 mm Target eBrem + 5 727 mum 742 mum -2.44 m 33.2 MeV 184 keV 185 mum 2.92 mm Target eBrem + 6 1.15 mm 733 mum -2.44 m 30.7 MeV 958 keV 731 mum 3.65 mm Target eBrem + 7 1.67 mm 585 mum -2.44 m 27.2 MeV 1e+03 keV 826 mum 4.48 mm Target eBrem + 8 2.64 mm 617 mum -2.44 m 23.2 MeV 2.6 MeV 1.34 mm 5.81 mm Target eBrem + 9 3.28 mm 326 mum -2.44 m 21.4 MeV 1.16 MeV 970 mum 6.78 mm Target eBrem + 10 3.58 mm 38.4 mum -2.44 m 16.5 MeV 553 keV 441 mum 7.22 mm Target eBrem + 11 4.63 mm -314 mum -2.44 m 13.5 MeV 1.77 MeV 1.51 mm 8.73 mm Target eBrem + 12 4.87 mm -940 mum -2.44 m 10.6 MeV 2.32 MeV 730 mum 9.46 mm Target eBrem + 13 5.14 mm -1.08 mm -2.44 m 9.23 MeV 390 keV 310 mum 9.77 mm Target eBrem + 14 5.45 mm -1.59 mm -2.44 m 6.91 MeV 845 keV 632 mum 1.04 cm Target eBrem + 15 5.88 mm -1.66 mm -2.44 m 4.25 MeV 2.22 MeV 446 mum 1.08 cm Target eBrem + 16 6.94 mm 160 mum -2.44 m 592 keV 3.26 MeV 2.9 mm 1.37 cm Target eBrem + 17 6.94 mm 185 mum -2.44 m 0 eV 592 keV 377 mum 1.41 cm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 104 +* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.08 cm 1.45 mm -2.44 m 114 keV 0 eV 0 fm 0 fm Target initStep - 1 1.08 cm 1.45 mm -2.44 m 0 eV 114 keV 34.4 mum 34.4 mum Target eIoni + 0 6.94 mm 160 mum -2.44 m 398 keV 0 eV 0 fm 0 fm Target initStep + 1 8.44 mm 2.23 mm -2.43 m 398 keV 88 keV 3.41 mm 3.41 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 103, Parent ID = 99 +* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 123 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.71 mm -4.75 mm -2.43 m 1.64 MeV 0 eV 0 fm 0 fm Target initStep - 1 -7.12 mm -4.24 mm -2.43 m 333 keV 0 eV 1.75 mm 1.75 mm Target compt - 2 -6.6 mm 369 mum -2.42 m 225 keV 0 eV 6.54 mm 8.29 mm Target compt - 3 -6.51 mm 333 mum -2.42 m 0 eV 88 keV 124 mum 8.41 mm Target phot + 0 8.44 mm 2.23 mm -2.43 m 310 keV 0 eV 0 fm 0 fm Target initStep + 1 8.44 mm 2.24 mm -2.43 m 0 eV 310 keV 156 mum 156 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 103 +* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.51 mm 333 mum -2.42 m 137 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.51 mm 333 mum -2.42 m 0 eV 137 keV 45.4 mum 45.4 mum Target eIoni + 0 5.88 mm -1.66 mm -2.44 m 434 keV 0 eV 0 fm 0 fm Target initStep + 1 5.94 mm -1.5 mm -2.44 m 419 keV 0 eV 220 mum 220 mum Target compt + 2 1.18 cm 6.11 mm -2.44 m 419 keV 88 keV 1.07 cm 1.1 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 103 +* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 122 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.6 mm 369 mum -2.42 m 108 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.6 mm 371 mum -2.42 m 0 eV 108 keV 31.6 mum 31.6 mum Target eIoni + 0 1.18 cm 6.11 mm -2.44 m 331 keV 0 eV 0 fm 0 fm Target initStep + 1 1.19 cm 6.11 mm -2.44 m 0 eV 331 keV 171 mum 171 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 103 +* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 122 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.12 mm -4.24 mm -2.43 m 1.3 MeV 0 eV 0 fm 0 fm Target initStep - 1 -7.22 mm -4.34 mm -2.43 m 530 keV 246 keV 207 mum 207 mum Target eBrem - 2 -7.22 mm -4.32 mm -2.43 m 0 eV 530 keV 326 mum 533 mum Target eIoni + 0 5.94 mm -1.5 mm -2.44 m 15.8 keV 0 eV 0 fm 0 fm Target initStep + 1 5.94 mm -1.5 mm -2.44 m 0 eV 15.8 keV 1.4 mum 1.4 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 108 +* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.22 mm -4.34 mm -2.43 m 528 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.04 mm 2.86 mm -2.42 m 0 eV 88 keV 8.13 mm 8.13 mm Target phot + 0 5.45 mm -1.59 mm -2.44 m 1.48 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.09 cm -1.05 cm -2.43 m 800 keV 0 eV 1.85 cm 1.85 cm Target compt + 2 2.5 cm -1.9 cm -2.43 m 800 keV 0 eV 9.77 mm 2.82 cm Target Transportation + 3 82.6 cm -1.68 m -2.91 m 800 keV 0 eV 1.91 m 1.93 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 111 +* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 121 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.04 mm 2.86 mm -2.42 m 440 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.04 mm 2.86 mm -2.42 m 0 eV 440 keV 255 mum 255 mum Target eIoni + 0 2.09 cm -1.05 cm -2.43 m 680 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 cm -1.05 cm -2.43 m 0 eV 680 keV 450 mum 450 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 102, Parent ID = 99 +* G4Track Information: Particle = gamma, Track ID = 120, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.06 mm -3.49 mm -2.43 m 938 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.76 cm 1.57 mm -2.42 m 240 keV 0 eV 1.6 cm 1.6 cm Target compt - 2 -1.75 cm 1.48 mm -2.42 m 0 eV 88 keV 95.5 mum 1.61 cm Target phot + 0 5.14 mm -1.08 mm -2.44 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.31 mm -5.8 mm -2.44 m 262 keV 0 eV 6.32 mm 6.32 mm Target compt + 2 9.16 mm -5.31 mm -2.44 m 262 keV 88 keV 906 mum 7.22 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 120 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.75 cm 1.48 mm -2.42 m 152 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.75 cm 1.48 mm -2.42 m 0 eV 152 keV 53.5 mum 53.5 mum Target eIoni + 0 9.16 mm -5.31 mm -2.44 m 174 keV 0 eV 0 fm 0 fm Target initStep + 1 9.17 mm -5.31 mm -2.44 m 0 eV 174 keV 66.2 mum 66.2 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 120 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.76 cm 1.57 mm -2.42 m 699 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.76 cm 1.58 mm -2.42 m 0 eV 699 keV 466 mum 466 mum Target eIoni + 0 9.31 mm -5.8 mm -2.44 m 745 keV 0 eV 0 fm 0 fm Target initStep + 1 9.33 mm -5.83 mm -2.44 m 0 eV 745 keV 505 mum 505 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 101, Parent ID = 99 +* G4Track Information: Particle = gamma, Track ID = 119, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.19 mm -3.4 mm -2.43 m 1.06 MeV 0 eV 0 fm 0 fm Target initStep - 1 -9.27 mm -6.86 mm -2.43 m 0 eV 88 keV 6.15 mm 6.15 mm Target phot + 0 4.87 mm -940 mum -2.44 m 557 keV 0 eV 0 fm 0 fm Target initStep + 1 1.13 cm -3.63 mm -2.44 m 557 keV 88 keV 7.04 mm 7.04 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 101 +* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 119 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.27 mm -6.86 mm -2.43 m 977 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.3 mm -6.9 mm -2.43 m 0 eV 977 keV 701 mum 701 mum Target eIoni + 0 1.13 cm -3.63 mm -2.44 m 469 keV 0 eV 0 fm 0 fm Target initStep + 1 1.13 cm -3.63 mm -2.44 m 0 eV 469 keV 277 mum 277 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 57 +* G4Track Information: Particle = gamma, Track ID = 118, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.18 mm -1.12 mm -2.43 m 318 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.57 mm -2.84 mm -2.43 m 0 eV 88 keV 4.06 mm 4.06 mm Target phot + 0 4.63 mm -314 mum -2.44 m 1.24 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.64 cm -1.38 cm -2.44 m 810 keV 0 eV 1.79 cm 1.79 cm Target compt + 2 2.32 cm -1.78 cm -2.44 m 374 keV 0 eV 9.67 mm 2.76 cm Target compt + 3 2.32 cm -1.73 cm -2.44 m 230 keV 0 eV 944 mum 2.85 cm Target compt + 4 1.77 cm -1.97 cm -2.45 m 230 keV 88 keV 6.39 mm 3.49 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 68 +* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 118 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.57 mm -2.84 mm -2.43 m 230 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.58 mm -2.84 mm -2.43 m 0 eV 230 keV 101 mum 101 mum Target eIoni + 0 1.77 cm -1.97 cm -2.45 m 142 keV 0 eV 0 fm 0 fm Target initStep + 1 1.77 cm -1.97 cm -2.45 m 0 eV 142 keV 48.5 mum 48.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 57 +* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 118 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.04 mm -1.14 mm -2.43 m 343 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.35 mm -1.13 mm -2.43 m 148 keV 0 eV 715 mum 715 mum Target compt - 2 -2.28 mm -1.17 mm -2.43 m 0 eV 88 keV 169 mum 884 mum Target phot + 0 2.32 cm -1.73 cm -2.44 m 144 keV 0 eV 0 fm 0 fm Target initStep + 1 2.32 cm -1.73 cm -2.44 m 0 eV 144 keV 49.2 mum 49.2 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 67 +* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 118 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.28 mm -1.17 mm -2.43 m 59.7 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.28 mm -1.17 mm -2.43 m 0 eV 59.7 keV 12 mum 12 mum Target eIoni + 0 2.32 cm -1.78 cm -2.44 m 436 keV 0 eV 0 fm 0 fm Target initStep + 1 2.33 cm -1.78 cm -2.44 m 0 eV 436 keV 251 mum 251 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 67 +* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 118 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.35 mm -1.13 mm -2.43 m 196 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.35 mm -1.13 mm -2.43 m 0 eV 196 keV 79.1 mum 79.1 mum Target eIoni + 0 1.64 cm -1.38 cm -2.44 m 428 keV 0 eV 0 fm 0 fm Target initStep + 1 1.64 cm -1.39 cm -2.44 m 0 eV 428 keV 245 mum 245 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 66, Parent ID = 57 +* G4Track Information: Particle = gamma, Track ID = 117, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.24 mm -271 mum -2.43 m 34.8 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.78 mm -477 mum -2.43 m 0 eV 0 eV 2.06 mm 2.06 mm Target conv + 0 3.58 mm 38.4 mum -2.44 m 4.29 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.11 cm -1.87 cm -2.41 m 4.29 MeV 0 eV 3.49 cm 3.49 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 120, Parent ID = 66 +* G4Track Information: Particle = e+, Track ID = 136, Parent ID = 117 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.78 mm -477 mum -2.43 m 29.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.89 mm -574 mum -2.43 m 19.2 MeV 530 keV 509 mum 509 mum Target eBrem - 2 -2 mm -801 mum -2.43 m 17.7 MeV 1.19 MeV 836 mum 1.34 mm Target eBrem - 3 -2.64 mm -459 mum -2.43 m 14.2 MeV 2.19 MeV 1.96 mm 3.31 mm Target eBrem - 4 -2.08 mm -114 mum -2.43 m 10.8 MeV 2.86 MeV 909 mum 4.22 mm Target eBrem - 5 -2.07 mm 202 mum -2.43 m 9.3 MeV 492 keV 405 mum 4.62 mm Target eBrem - 6 -1.67 mm 920 mum -2.43 m 7.63 MeV 1.21 MeV 844 mum 5.47 mm Target eBrem - 7 -1.63 mm 860 mum -2.43 m 239 keV 2.49 MeV 462 mum 5.93 mm Target eBrem - 8 -1.62 mm 863 mum -2.43 m 0 eV 239 keV 104 mum 6.03 mm Target eIoni - 9 -1.62 mm 863 mum -2.43 m 0 eV 0 eV 0 fm 6.03 mm Target annihil + 0 2.11 cm -1.87 cm -2.41 m 2.43 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.13 cm -1.89 cm -2.41 m 0 eV 2.43 MeV 1.94 mm 1.94 mm Target eIoni + 2 2.13 cm -1.89 cm -2.41 m 0 eV 0 eV 0 fm 1.94 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 129, Parent ID = 120 +* G4Track Information: Particle = gamma, Track ID = 138, Parent ID = 136 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.62 mm 863 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -93.8 mum -928 mum -2.42 m 0 eV 88 keV 2.97 mm 2.97 mm Target phot + 0 2.13 cm -1.89 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm -1.69 cm -2.41 m 511 keV 0 eV 5.92 mm 5.92 mm Target Transportation + 2 3.39 cm -1.21 cm -2.4 m 511 keV 0 eV 1.42 cm 2.01 cm World Transportation + 3 2.4 m 1.27 m 23.7 cm 511 keV 0 eV 3.77 m 3.79 m Tracker Transportation + 4 2.91 m 1.55 m 80.6 cm 511 keV 0 eV 81.2 cm 4.6 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 129 +* G4Track Information: Particle = gamma, Track ID = 137, Parent ID = 136 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -93.8 mum -928 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -92.6 mum -942 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 2.13 cm -1.89 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.24 cm -2.37 cm -2.42 m 355 keV 0 eV 1.42 cm 1.42 cm Target compt + 2 1.04 cm -2.13 cm -2.43 m 277 keV 0 eV 4.14 mm 1.83 cm Target compt + 3 1.08 cm -2.12 cm -2.43 m 277 keV 88 keV 1.5 mm 1.98 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 128, Parent ID = 120 +* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 137 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.62 mm 863 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.96 mm 5.95 mm -2.43 m 0 eV 88 keV 8.46 mm 8.46 mm Target phot + 0 1.08 cm -2.12 cm -2.43 m 189 keV 0 eV 0 fm 0 fm Target initStep + 1 1.08 cm -2.12 cm -2.43 m 0 eV 189 keV 75.3 mum 75.3 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 128 +* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 137 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.96 mm 5.95 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.97 mm 5.97 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 1.04 cm -2.13 cm -2.43 m 78.2 keV 0 eV 0 fm 0 fm Target initStep + 1 1.04 cm -2.13 cm -2.43 m 0 eV 78.2 keV 18.5 mum 18.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 127, Parent ID = 120 +* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 137 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.63 mm 860 mum -2.43 m 4.91 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.01 mm 1.34 mm -2.42 m 763 keV 0 eV 1.44 mm 1.44 mm Target compt - 2 7.77 mm 8.18 mm -2.43 m 479 keV 0 eV 1.12 cm 1.27 cm Target compt - 3 7.81 mm 1.82 cm -2.43 m 0 eV 88 keV 1.12 cm 2.39 cm Target phot + 0 1.24 cm -2.37 cm -2.42 m 156 keV 0 eV 0 fm 0 fm Target initStep + 1 1.24 cm -2.37 cm -2.42 m 0 eV 156 keV 55.5 mum 55.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 127 +* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 117 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.81 mm 1.82 cm -2.43 m 391 keV 0 eV 0 fm 0 fm Target initStep - 1 7.82 mm 1.82 cm -2.43 m 0 eV 391 keV 216 mum 216 mum Target eIoni + 0 2.11 cm -1.87 cm -2.41 m 846 keV 0 eV 0 fm 0 fm Target initStep + 1 2.11 cm -1.87 cm -2.41 m 458 keV 73.8 keV 56 mum 56 mum Target eBrem + 2 2.11 cm -1.87 cm -2.41 m 0 eV 458 keV 269 mum 325 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 127 +* G4Track Information: Particle = gamma, Track ID = 142, Parent ID = 135 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.77 mm 8.18 mm -2.43 m 284 keV 0 eV 0 fm 0 fm Target initStep - 1 7.78 mm 8.18 mm -2.43 m 0 eV 284 keV 138 mum 138 mum Target eIoni + 0 2.11 cm -1.87 cm -2.41 m 314 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 cm -1.77 cm -2.41 m 314 keV 88 keV 1.29 mm 1.29 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 127 +* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 142 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.01 mm 1.34 mm -2.42 m 4.14 MeV 0 eV 0 fm 0 fm Target initStep - 1 -342 mum -839 mum -2.42 m 627 keV 3.52 MeV 2.78 mm 2.78 mm Target eBrem - 2 -318 mum -837 mum -2.42 m 0 eV 627 keV 405 mum 3.18 mm Target eIoni + 0 2.09 cm -1.77 cm -2.41 m 226 keV 0 eV 0 fm 0 fm Target initStep + 1 2.1 cm -1.77 cm -2.41 m 0 eV 226 keV 98.5 mum 98.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 126, Parent ID = 120 +* G4Track Information: Particle = gamma, Track ID = 116, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.67 mm 920 mum -2.43 m 455 keV 0 eV 0 fm 0 fm Target initStep - 1 3.69 mm 926 mum -2.41 m 381 keV 0 eV 1.28 cm 1.28 cm Target compt - 2 3.67 mm 875 mum -2.41 m 0 eV 88 keV 141 mum 1.3 cm Target phot + 0 3.28 mm 326 mum -2.44 m 714 keV 0 eV 0 fm 0 fm Target initStep + 1 6.54 mm -2.03 mm -2.44 m 338 keV 0 eV 4.42 mm 4.42 mm Target compt + 2 9.95 mm -1.37 mm -2.44 m 338 keV 88 keV 4.59 mm 9.01 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 126 +* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 116 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.67 mm 875 mum -2.41 m 293 keV 0 eV 0 fm 0 fm Target initStep - 1 3.66 mm 871 mum -2.41 m 0 eV 293 keV 144 mum 144 mum Target eIoni + 0 9.95 mm -1.37 mm -2.44 m 250 keV 0 eV 0 fm 0 fm Target initStep + 1 9.96 mm -1.37 mm -2.44 m 0 eV 250 keV 114 mum 114 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 126 +* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 116 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.69 mm 926 mum -2.41 m 74.6 keV 0 eV 0 fm 0 fm Target initStep - 1 3.69 mm 927 mum -2.41 m 0 eV 74.6 keV 17.2 mum 17.2 mum Target eIoni + 0 6.54 mm -2.03 mm -2.44 m 376 keV 0 eV 0 fm 0 fm Target initStep + 1 6.55 mm -2.04 mm -2.44 m 0 eV 376 keV 205 mum 205 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 125, Parent ID = 120 +* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.07 mm 202 mum -2.43 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.24 mm 1.89 mm -2.42 m 430 keV 0 eV 2.53 mm 2.53 mm Target compt - 2 -1.23 mm 1.78 mm -2.42 m 0 eV 88 keV 258 mum 2.79 mm Target phot + 0 2.64 mm 617 mum -2.44 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm -4.09 mm -2.42 m 1.38 MeV 0 eV 2.74 cm 2.74 cm Target Transportation + 2 5.96 cm -1.14 cm -2.4 m 1.38 MeV 0 eV 4.25 cm 6.99 cm World Transportation + 3 2.4 m -50.4 cm -81.1 cm 1.38 MeV 0 eV 2.87 m 2.94 m Tracker Transportation + 4 2.91 m -61.1 cm -46.5 cm 1.38 MeV 0 eV 62.6 cm 3.57 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 125 +* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.23 mm 1.78 mm -2.42 m 342 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.23 mm 1.77 mm -2.42 m 0 eV 342 keV 180 mum 180 mum Target eIoni + 0 1.67 mm 585 mum -2.44 m 2.45 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.53 mm 711 mum -2.44 m 2.45 MeV 0 eV 3.54 mm 3.54 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 125 +* G4Track Information: Particle = e+, Track ID = 147, Parent ID = 114 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.24 mm 1.89 mm -2.42 m 580 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.24 mm 1.92 mm -2.42 m 0 eV 580 keV 367 mum 367 mum Target eIoni + 0 3.53 mm 711 mum -2.44 m 390 keV 0 eV 0 fm 0 fm Target initStep + 1 3.55 mm 696 mum -2.44 m 0 eV 390 keV 213 mum 213 mum Target eIoni + 2 3.55 mm 696 mum -2.44 m 0 eV 0 eV 0 fm 213 mum Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 124, Parent ID = 120 +* G4Track Information: Particle = gamma, Track ID = 149, Parent ID = 147 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.08 mm -114 mum -2.43 m 558 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.41 mm 4.06 mm -2.42 m 0 eV 88 keV 6.41 mm 6.41 mm Target phot + 0 3.55 mm 696 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.13 mm 75 mum -2.44 m 511 keV 88 keV 756 mum 756 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 124 +* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 149 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.41 mm 4.06 mm -2.42 m 470 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.41 mm 4.08 mm -2.42 m 0 eV 470 keV 278 mum 278 mum Target eIoni + 0 3.13 mm 75 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.12 mm 75.5 mum -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 120 +* G4Track Information: Particle = gamma, Track ID = 148, Parent ID = 147 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.64 mm -459 mum -2.43 m 1.26 MeV 0 eV 0 fm 0 fm Target initStep - 1 186 mum 3.72 mm -2.42 m 692 keV 0 eV 7.22 mm 7.22 mm Target compt - 2 -3.63 mm 6.61 mm -2.41 m 603 keV 0 eV 1.16 cm 1.88 cm Target compt - 3 -1.59 cm 9.62 mm -2.4 m 603 keV 0 eV 1.7 cm 3.58 cm Target Transportation - 4 -2.4 m 59.5 cm -18.5 cm 603 keV 0 eV 3.31 m 3.34 m Tracker Transportation - 5 -2.91 m 72.1 cm 28.9 cm 603 keV 0 eV 70.7 cm 4.05 m OutOfWorld Transportation + 0 3.55 mm 696 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.5 mm 2.12 mm -2.44 m 511 keV 88 keV 1.73 mm 1.73 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 123 +* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 148 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.63 mm 6.61 mm -2.41 m 88.5 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.63 mm 6.61 mm -2.41 m 0 eV 88.5 keV 22.8 mum 22.8 mum Target eIoni + 0 4.5 mm 2.12 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 4.52 mm 2.13 mm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 123 +* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 114 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 186 mum 3.72 mm -2.42 m 568 keV 0 eV 0 fm 0 fm Target initStep - 1 205 mum 3.74 mm -2.42 m 0 eV 568 keV 358 mum 358 mum Target eIoni + 0 3.53 mm 711 mum -2.44 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.54 mm 742 mum -2.44 m 0 eV 1.04 MeV 754 mum 754 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 120 +* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2 mm -801 mum -2.43 m 327 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.17 mm -633 mum -2.43 m 0 eV 88 keV 2.82 mm 2.82 mm Target phot + 0 1.15 mm 733 mum -2.44 m 1.55 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.9 mm 183 mum -2.43 m 1.48 MeV 0 eV 7.63 mm 7.63 mm Target compt + 2 8.3 mm -114 mum -2.43 m 299 keV 0 eV 3.19 mm 1.08 cm Target compt + 3 8.41 mm 718 mum -2.43 m 299 keV 88 keV 1.02 mm 1.18 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 122 +* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 113 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.17 mm -633 mum -2.43 m 239 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.16 mm -635 mum -2.43 m 0 eV 239 keV 107 mum 107 mum Target eIoni + 0 8.41 mm 718 mum -2.43 m 211 keV 0 eV 0 fm 0 fm Target initStep + 1 8.41 mm 722 mum -2.43 m 0 eV 211 keV 88.7 mum 88.7 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 120 +* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 113 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.89 mm -574 mum -2.43 m 9.41 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.63 mm -1.5 mm -2.42 m 0 eV 0 eV 6.76 mm 6.76 mm Target conv + 0 8.3 mm -114 mum -2.43 m 1.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.35 mm -131 mum -2.43 m 0 eV 1.18 MeV 874 mum 874 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 144, Parent ID = 121 +* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 113 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.63 mm -1.5 mm -2.42 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.66 mm -1.54 mm -2.42 m 0 eV 1.4 MeV 1.08 mm 1.08 mm Target eIoni - 2 -3.66 mm -1.54 mm -2.42 m 0 eV 0 eV 0 fm 1.08 mm Target annihil + 0 5.9 mm 183 mum -2.43 m 73.9 keV 0 eV 0 fm 0 fm Target initStep + 1 5.9 mm 183 mum -2.43 m 0 eV 73.9 keV 17 mum 17 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 146, Parent ID = 144 +* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.66 mm -1.54 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.23 mm -1.92 mm -2.42 m 0 eV 88 keV 690 mum 690 mum Target phot + 0 727 mum 742 mum -2.44 m 292 keV 0 eV 0 fm 0 fm Target initStep + 1 1.47 mm 821 mum -2.44 m 291 keV 0 eV 1.5 mm 1.5 mm Target compt + 2 1.93 mm 867 mum -2.44 m 291 keV 88 keV 792 mum 2.29 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 146 +* G4Track Information: Particle = e-, Track ID = 156, Parent ID = 112 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.23 mm -1.92 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.24 mm -1.93 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 1.93 mm 867 mum -2.44 m 203 keV 0 eV 0 fm 0 fm Target initStep + 1 1.93 mm 866 mum -2.44 m 0 eV 203 keV 83.6 mum 83.6 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 145, Parent ID = 144 +* G4Track Information: Particle = e-, Track ID = 155, Parent ID = 112 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.66 mm -1.54 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.48 mm -1.41 mm -2.42 m 199 keV 0 eV 222 mum 222 mum Target compt - 2 -5.69 mm -1.51 mm -2.43 m 0 eV 88 keV 3.19 mm 3.41 mm Target phot + 0 1.47 mm 821 mum -2.44 m 1.14 keV 0 eV 0 fm 0 fm Target initStep + 1 1.47 mm 821 mum -2.44 m 0 eV 1.14 keV 34 nm 34 nm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 145 +* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.69 mm -1.51 mm -2.43 m 111 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.69 mm -1.51 mm -2.43 m 0 eV 111 keV 32.6 mum 32.6 mum Target eIoni + 0 651 mum 746 mum -2.44 m 647 keV 0 eV 0 fm 0 fm Target initStep + 1 1.91 mm 599 mum -2.44 m 223 keV 0 eV 2.41 mm 2.41 mm Target compt + 2 1.84 mm 433 mum -2.44 m 223 keV 88 keV 200 mum 2.61 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 145 +* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 111 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.48 mm -1.41 mm -2.42 m 312 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.47 mm -1.41 mm -2.42 m 0 eV 312 keV 157 mum 157 mum Target eIoni + 0 1.84 mm 433 mum -2.44 m 135 keV 0 eV 0 fm 0 fm Target initStep + 1 1.84 mm 434 mum -2.44 m 0 eV 135 keV 44.7 mum 44.7 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 121 +* G4Track Information: Particle = e-, Track ID = 157, Parent ID = 111 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.63 mm -1.5 mm -2.42 m 6.98 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.65 mm -1.5 mm -2.42 m 6.59 MeV 56.8 keV 56.1 mum 56.1 mum Target eBrem - 2 -3.61 mm -1.17 mm -2.42 m 5.12 MeV 963 keV 808 mum 864 mum Target eBrem - 3 -2.73 mm -1.72 mm -2.42 m 1.04 MeV 1.89 MeV 1.61 mm 2.48 mm Target eBrem - 4 -2.72 mm -1.71 mm -2.42 m 0 eV 1.04 MeV 756 mum 3.23 mm Target eIoni + 0 1.91 mm 599 mum -2.44 m 424 keV 0 eV 0 fm 0 fm Target initStep + 1 1.92 mm 602 mum -2.44 m 0 eV 424 keV 242 mum 242 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 152, Parent ID = 143 +* G4Track Information: Particle = gamma, Track ID = 110, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.73 mm -1.72 mm -2.42 m 2.19 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.66 mm -1.44 mm -2.42 m 0 eV 0 eV 756 mum 756 mum Target conv + 0 488 mum 779 mum -2.44 m 5.48 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.86 mm 1.2 mm -2.43 m 1.78 MeV 0 eV 7.13 mm 7.13 mm Target compt + 2 2.22 cm -5.4 mm -2.42 m 1.78 MeV 88 keV 2.57 cm 3.28 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 154, Parent ID = 152 +* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 110 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.66 mm -1.44 mm -2.42 m 1.03 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.65 mm -1.41 mm -2.42 m 0 eV 1.03 MeV 757 mum 757 mum Target eIoni - 2 -2.65 mm -1.41 mm -2.42 m 0 eV 0 eV 0 fm 757 mum Target annihil + 0 2.22 cm -5.4 mm -2.42 m 1.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.23 cm -5.42 mm -2.42 m 0 eV 1.7 MeV 1.31 mm 1.31 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 156, Parent ID = 154 +* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 110 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.65 mm -1.41 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.66 mm -1.79 mm -2.42 m 196 keV 0 eV 417 mum 417 mum Target compt - 2 -2.74 mm -1.73 mm -2.42 m 196 keV 0 eV 98 mum 515 mum Target compt - 3 -3.18 mm -1.38 mm -2.42 m 0 eV 88 keV 569 mum 1.08 mm Target phot + 0 2.86 mm 1.2 mm -2.43 m 3.69 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.67 mm 1.71 mm -2.43 m 571 keV 2.8 MeV 2.31 mm 2.31 mm Target eBrem + 2 4.68 mm 1.69 mm -2.43 m 0 eV 571 keV 360 mum 2.67 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 156 +* G4Track Information: Particle = gamma, Track ID = 161, Parent ID = 159 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.18 mm -1.38 mm -2.42 m 108 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.18 mm -1.38 mm -2.42 m 0 eV 108 keV 31.3 mum 31.3 mum Target eIoni + 0 4.67 mm 1.71 mm -2.43 m 320 keV 0 eV 0 fm 0 fm Target initStep + 1 7.66 mm 1.41 mm -2.43 m 173 keV 0 eV 3.03 mm 3.03 mm Target compt + 2 7.08 mm 217 mum -2.43 m 173 keV 88 keV 1.36 mm 4.39 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 156 +* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 161 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.74 mm -1.73 mm -2.42 m 415 eV 0 eV 0 fm 0 fm Target initStep - 1 -2.74 mm -1.73 mm -2.42 m 0 eV 415 eV 10.8 nm 10.8 nm Target eIoni + 0 7.08 mm 217 mum -2.43 m 84.7 keV 0 eV 0 fm 0 fm Target initStep + 1 7.08 mm 215 mum -2.43 m 0 eV 84.7 keV 21.2 mum 21.2 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 157, Parent ID = 156 +* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 161 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.66 mm -1.79 mm -2.42 m 315 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.66 mm -1.8 mm -2.42 m 0 eV 315 keV 159 mum 159 mum Target eIoni + 0 7.66 mm 1.41 mm -2.43 m 147 keV 0 eV 0 fm 0 fm Target initStep + 1 7.67 mm 1.41 mm -2.43 m 0 eV 147 keV 51.1 mum 51.1 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 155, Parent ID = 154 +* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.65 mm -1.41 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.59 mm 334 mum -2.42 m 0 eV 88 keV 1.91 mm 1.91 mm Target phot + 0 150 mum 786 mum -2.44 m 776 keV 0 eV 0 fm 0 fm Target initStep + 1 2.36 mm 1.45 mm -2.44 m 593 keV 0 eV 6.4 mm 6.4 mm Target compt + 2 3.46 mm -1.16 mm -2.43 m 593 keV 88 keV 5.11 mm 1.15 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 155 +* G4Track Information: Particle = e-, Track ID = 165, Parent ID = 109 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.59 mm 334 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.6 mm 340 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 3.46 mm -1.16 mm -2.43 m 505 keV 0 eV 0 fm 0 fm Target initStep + 1 3.48 mm -1.17 mm -2.43 m 0 eV 505 keV 306 mum 306 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 152 +* G4Track Information: Particle = e-, Track ID = 164, Parent ID = 109 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.66 mm -1.44 mm -2.42 m 142 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.66 mm -1.44 mm -2.42 m 0 eV 142 keV 48.6 mum 48.6 mum Target eIoni + 0 2.36 mm 1.45 mm -2.44 m 182 keV 0 eV 0 fm 0 fm Target initStep + 1 2.36 mm 1.45 mm -2.44 m 0 eV 182 keV 71.2 mum 71.2 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 151, Parent ID = 143 +* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.61 mm -1.17 mm -2.42 m 500 keV 0 eV 0 fm 0 fm Target initStep - 1 117 mum -6.3 mm -2.42 m 338 keV 0 eV 6.53 mm 6.53 mm Target compt - 2 -104 mum -9.21 mm -2.42 m 0 eV 88 keV 3.4 mm 9.93 mm Target phot + 0 30.7 mum 611 mum -2.44 m 6.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.28 mm 2.89 mm -2.41 m 6.77 MeV 0 eV 3.75 cm 3.75 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 151 +* G4Track Information: Particle = e+, Track ID = 167, Parent ID = 108 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -104 mum -9.21 mm -2.42 m 250 keV 0 eV 0 fm 0 fm Target initStep - 1 -106 mum -9.22 mm -2.42 m 0 eV 250 keV 114 mum 114 mum Target eIoni + 0 6.28 mm 2.89 mm -2.41 m 2.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.57 mm 3.02 mm -2.41 m 0 eV 2.7 MeV 2.15 mm 2.15 mm Target eIoni + 2 6.57 mm 3.02 mm -2.41 m 0 eV 0 eV 0 fm 2.15 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 161, Parent ID = 151 +* G4Track Information: Particle = gamma, Track ID = 169, Parent ID = 167 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 117 mum -6.3 mm -2.42 m 162 keV 0 eV 0 fm 0 fm Target initStep - 1 120 mum -6.3 mm -2.42 m 0 eV 162 keV 58.9 mum 58.9 mum Target eIoni + 0 6.57 mm 3.02 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 7.96 mm 2.66 mm -2.41 m 224 keV 0 eV 6.4 mm 6.4 mm Target compt + 2 6.85 mm 2.9 mm -2.41 m 176 keV 0 eV 1.14 mm 7.54 mm Target compt + 3 6.61 mm 2.66 mm -2.41 m 176 keV 88 keV 446 mum 7.99 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 150, Parent ID = 143 +* G4Track Information: Particle = e-, Track ID = 172, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.65 mm -1.5 mm -2.42 m 342 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.28 mm -1.9 mm -2.42 m 0 eV 88 keV 2.46 mm 2.46 mm Target phot + 0 6.61 mm 2.66 mm -2.41 m 87.5 keV 0 eV 0 fm 0 fm Target initStep + 1 6.61 mm 2.66 mm -2.41 m 0 eV 87.5 keV 22.4 mum 22.4 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 150 +* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.28 mm -1.9 mm -2.42 m 254 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.29 mm -1.9 mm -2.42 m 0 eV 254 keV 116 mum 116 mum Target eIoni + 0 6.85 mm 2.9 mm -2.41 m 48.1 keV 0 eV 0 fm 0 fm Target initStep + 1 6.85 mm 2.9 mm -2.41 m 0 eV 48.1 keV 8.41 mum 8.41 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 66 +* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.78 mm -477 mum -2.43 m 4.63 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.1 mm -922 mum -2.43 m 2.77 MeV 1.36 MeV 714 mum 714 mum Target eBrem - 2 -2.06 mm -466 mum -2.43 m 1.23 MeV 1.22 MeV 1.23 mm 1.94 mm Target eBrem - 3 -2.01 mm -442 mum -2.43 m 0 eV 1.23 MeV 918 mum 2.86 mm Target eIoni + 0 7.96 mm 2.66 mm -2.41 m 287 keV 0 eV 0 fm 0 fm Target initStep + 1 7.97 mm 2.65 mm -2.41 m 0 eV 287 keV 140 mum 140 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 165, Parent ID = 119 +* G4Track Information: Particle = gamma, Track ID = 168, Parent ID = 167 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.06 mm -466 mum -2.43 m 315 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.21 mm -251 mum -2.43 m 280 keV 0 eV 1.72 mm 1.72 mm Target compt - 2 -908 mum -418 mum -2.43 m 0 eV 88 keV 418 mum 2.14 mm Target phot + 0 6.57 mm 3.02 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.61 mm 3.28 mm -2.4 m 511 keV 88 keV 4.4 mm 4.4 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 167, Parent ID = 165 +* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 168 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -908 mum -418 mum -2.43 m 192 keV 0 eV 0 fm 0 fm Target initStep - 1 -912 mum -419 mum -2.43 m 0 eV 192 keV 76.9 mum 76.9 mum Target eIoni + 0 5.61 mm 3.28 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.62 mm 3.27 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 165 +* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 108 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.21 mm -251 mum -2.43 m 35.2 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.21 mm -251 mum -2.43 m 0 eV 35.2 keV 5.08 mum 5.08 mum Target eIoni + 0 6.28 mm 2.89 mm -2.41 m 3.06 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.16 mm 2.8 mm -2.41 m 2.57 MeV 204 keV 174 mum 174 mum Target eBrem + 2 6.15 mm 2.79 mm -2.41 m 1.88 MeV 24 keV 27.7 mum 201 mum Target eBrem + 3 6.38 mm 2.07 mm -2.41 m 28 keV 1.85 MeV 1.34 mm 1.54 mm Target eBrem + 4 6.38 mm 2.07 mm -2.41 m 0 eV 28 keV 3.52 mum 1.55 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 164, Parent ID = 119 +* G4Track Information: Particle = gamma, Track ID = 175, Parent ID = 166 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.1 mm -922 mum -2.43 m 510 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.16 mm -2.81 mm -2.43 m 0 eV 88 keV 3.05 mm 3.05 mm Target phot + 0 6.15 mm 2.79 mm -2.41 m 665 keV 0 eV 0 fm 0 fm Target initStep + 1 2.85 mm 2.47 mm -2.4 m 538 keV 0 eV 7.17 mm 7.17 mm Target compt + 2 2.84 mm 2.49 mm -2.4 m 538 keV 0 eV 52.2 mum 7.23 mm Target Transportation + 3 -43.1 cm 1.95 m 1.6 m 538 keV 0 eV 4.47 m 4.48 m Tracker Transportation + 4 -43.5 cm 1.97 m 1.63 m 538 keV 0 eV 3.67 cm 4.51 m Chamber Transportation + 5 -51.8 cm 2.34 m 2.4 m 538 keV 0 eV 85.8 cm 5.37 m Tracker Transportation + 6 -57.3 cm 2.59 m 2.91 m 538 keV 0 eV 57 cm 5.94 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 168, Parent ID = 164 +* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 175 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.16 mm -2.81 mm -2.43 m 422 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.16 mm -2.82 mm -2.43 m 0 eV 422 keV 240 mum 240 mum Target eIoni + 0 2.85 mm 2.47 mm -2.4 m 127 keV 0 eV 0 fm 0 fm Target initStep + 1 2.85 mm 2.47 mm -2.4 m 0 eV 127 keV 40.4 mum 40.4 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 65, Parent ID = 57 +* G4Track Information: Particle = gamma, Track ID = 174, Parent ID = 166 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.2 mm -259 mum -2.43 m 1.78 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.28 mm -286 mum -2.43 m 1.67 MeV 0 eV 287 mum 287 mum Target compt - 2 -8.63 mm -8.82 mm -2.4 m 328 keV 0 eV 3.02 cm 3.05 cm Target compt - 3 -1.65 cm -7.08 mm -2.41 m 203 keV 0 eV 8.98 mm 3.95 cm Target compt - 4 -1.65 cm -7.17 mm -2.41 m 0 eV 88 keV 89.3 mum 3.96 cm Target phot + 0 6.16 mm 2.8 mm -2.41 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 313 mum 4.88 mm -2.4 m 284 keV 88 keV 8.14 mm 8.14 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 172, Parent ID = 65 +* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 174 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.65 cm -7.17 mm -2.41 m 115 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.65 cm -7.17 mm -2.41 m 0 eV 115 keV 34.6 mum 34.6 mum Target eIoni + 0 313 mum 4.88 mm -2.4 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 312 mum 4.88 mm -2.4 m 0 eV 196 keV 79.5 mum 79.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 65 +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.65 cm -7.08 mm -2.41 m 125 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.65 cm -7.08 mm -2.41 m 0 eV 125 keV 39.3 mum 39.3 mum Target eIoni + 0 10.7 mum 473 mum -2.45 m 2.86 MeV 0 eV 0 fm 0 fm Target initStep + 1 60.2 mum 587 mum -2.44 m 1.46 MeV 0 eV 1.32 mm 1.32 mm Target compt + 2 1.04 mm -1.69 cm -2.41 m 1.03 MeV 0 eV 3.59 cm 3.73 cm Target compt + 3 4.09 mm -2.5 cm -2.41 m 1.03 MeV 0 eV 1.02 cm 4.75 cm Target Transportation + 4 8.11 mm -3.57 cm -2.4 m 1.03 MeV 0 eV 1.35 cm 6.09 cm World Transportation + 5 89.5 cm -2.4 m -83.9 cm 1.03 MeV 0 eV 2.97 m 3.03 m Tracker Transportation + 6 1.09 m -2.91 m -50.2 cm 1.03 MeV 0 eV 64 cm 3.67 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 65 +* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 9 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.63 mm -8.82 mm -2.4 m 1.34 MeV 0 eV 0 fm 0 fm Target initStep - 1 -8.63 mm -8.85 mm -2.4 m 0 eV 1.34 MeV 1.01 mm 1.01 mm Target eIoni + 0 1.04 mm -1.69 cm -2.41 m 430 keV 0 eV 0 fm 0 fm Target initStep + 1 1.03 mm -1.69 cm -2.41 m 0 eV 430 keV 246 mum 246 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 169, Parent ID = 65 +* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 9 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.28 mm -286 mum -2.43 m 108 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.28 mm -284 mum -2.43 m 0 eV 108 keV 31.2 mum 31.2 mum Target eIoni + 0 60.2 mum 587 mum -2.44 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 63.7 mum 636 mum -2.44 m 0 eV 1.4 MeV 1.06 mm 1.06 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 64, Parent ID = 57 +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.15 mm -259 mum -2.43 m 426 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.26 mm -271 mum -2.43 m 0 eV 88 keV 470 mum 470 mum Target phot + 0 -5.93 mum 454 mum -2.45 m 6.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 983 mum 2.45 mm -2.42 m 2.17 MeV 0 eV 3.03 cm 3.03 cm Target compt + 2 -1.72 mm 811 mum -2.41 m 2.17 MeV 0 eV 6.67 mm 3.69 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 64 +* G4Track Information: Particle = e+, Track ID = 182, Parent ID = 8 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.26 mm -271 mum -2.43 m 338 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.27 mm -275 mum -2.43 m 0 eV 338 keV 177 mum 177 mum Target eIoni + 0 -1.72 mm 811 mum -2.41 m 382 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.72 mm 799 mum -2.41 m 0 eV 382 keV 208 mum 208 mum Target eIoni + 2 -1.72 mm 799 mum -2.41 m 0 eV 0 eV 0 fm 208 mum Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 63, Parent ID = 57 +* G4Track Information: Particle = gamma, Track ID = 184, Parent ID = 182 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.08 mm -264 mum -2.43 m 438 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.1 mm -265 mum -2.43 m 0 eV 88 keV 100 mum 100 mum Target phot + 0 -1.72 mm 799 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 mm -630 mum -2.4 m 355 keV 0 eV 5.25 mm 5.25 mm Target compt + 2 -893 mum -461 mum -2.4 m 355 keV 88 keV 352 mum 5.61 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 174, Parent ID = 63 +* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 184 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.1 mm -265 mum -2.43 m 350 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.11 mm -271 mum -2.43 m 0 eV 350 keV 186 mum 186 mum Target eIoni + 0 -893 mum -461 mum -2.4 m 267 keV 0 eV 0 fm 0 fm Target initStep + 1 -889 mum -463 mum -2.4 m 0 eV 267 keV 125 mum 125 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 62, Parent ID = 57 +* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 184 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -860 mum -228 mum -2.43 m 21.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -976 mum -377 mum -2.43 m 0 eV 0 eV 1.79 mm 1.79 mm Target conv + 0 -1.1 mm -630 mum -2.4 m 156 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 mm -633 mum -2.4 m 0 eV 156 keV 56 mum 56 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 176, Parent ID = 62 +* G4Track Information: Particle = gamma, Track ID = 183, Parent ID = 182 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -976 mum -377 mum -2.43 m 9.81 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.16 mm -215 mum -2.43 m 7.6 MeV 834 keV 757 mum 757 mum Target eBrem - 2 -1.18 mm -238 mum -2.43 m 4.1 MeV 1.16 MeV 249 mum 1.01 mm Target eBrem - 3 -1.34 mm 483 mum -2.43 m 2.51 MeV 1.6 MeV 1.63 mm 2.63 mm Target eBrem - 4 -1.22 mm 323 mum -2.43 m 0 eV 2.51 MeV 2 mm 4.63 mm Target eIoni - 5 -1.22 mm 323 mum -2.43 m 0 eV 0 eV 0 fm 4.63 mm Target annihil + 0 -1.72 mm 799 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.75 mm 861 mum -2.41 m 511 keV 88 keV 226 mum 226 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 180, Parent ID = 176 +* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 183 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 mm 323 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 7.17 mm 1.37 mm -2.43 m 0 eV 88 keV 8.48 mm 8.48 mm Target phot + 0 -1.75 mm 861 mum -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.75 mm 873 mum -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 180 +* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 8 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.17 mm 1.37 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 7.18 mm 1.38 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 -1.72 mm 811 mum -2.41 m 767 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.74 mm 812 mum -2.41 m 0 eV 767 keV 523 mum 523 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 179, Parent ID = 176 +* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 8 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 mm 323 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.24 mm -428 mum -2.43 m 467 keV 0 eV 6.09 mm 6.09 mm Target compt - 2 -8.2 mm -943 mum -2.43 m 0 eV 88 keV 1.15 mm 7.24 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 183, Parent ID = 179 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.2 mm -943 mum -2.43 m 379 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.21 mm -952 mum -2.43 m 0 eV 379 keV 207 mum 207 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 182, Parent ID = 179 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.24 mm -428 mum -2.43 m 43.9 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.24 mm -427 mum -2.43 m 0 eV 43.9 keV 7.29 mum 7.29 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 178, Parent ID = 176 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.18 mm -238 mum -2.43 m 2.33 MeV 0 eV 0 fm 0 fm Target initStep - 1 9.44 mm -1.94 cm -2.4 m 1.54 MeV 0 eV 3.61 cm 3.61 cm Target compt - 2 1.09 cm -2.12 cm -2.4 m 0 eV 88 keV 2.56 mm 3.87 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 178 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.09 cm -2.12 cm -2.4 m 1.45 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.11 cm -2.09 cm -2.4 m 300 keV 732 keV 779 mum 779 mum Target eBrem - 2 1.11 cm -2.09 cm -2.4 m 0 eV 300 keV 149 mum 928 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 186, Parent ID = 185 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.11 cm -2.09 cm -2.4 m 418 keV 0 eV 0 fm 0 fm Target initStep - 1 1.14 cm -2.08 cm -2.4 m 348 keV 0 eV 316 mum 316 mum Target compt - 2 1.31 cm -2 cm -2.4 m 348 keV 0 eV 2.7 mm 3.02 mm Target Transportation - 3 2.4 m 1.11 m 38.5 cm 348 keV 0 eV 3.84 m 3.84 m Tracker Transportation - 4 2.91 m 1.35 m 98.1 cm 348 keV 0 eV 82 cm 4.66 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 186 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.14 cm -2.08 cm -2.4 m 69.7 keV 0 eV 0 fm 0 fm Target initStep - 1 1.14 cm -2.08 cm -2.4 m 0 eV 69.7 keV 15.5 mum 15.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 178 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.44 mm -1.94 cm -2.4 m 797 keV 0 eV 0 fm 0 fm Target initStep - 1 9.44 mm -1.94 cm -2.4 m 0 eV 797 keV 549 mum 549 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 177, Parent ID = 176 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.16 mm -215 mum -2.43 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep - 1 -954 mum -611 mum -2.43 m 380 keV 0 eV 1.69 mm 1.69 mm Target compt - 2 3.44 mm 2.92 mm -2.43 m 0 eV 88 keV 5.65 mm 7.35 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 177 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.44 mm 2.92 mm -2.43 m 292 keV 0 eV 0 fm 0 fm Target initStep - 1 3.45 mm 2.92 mm -2.43 m 0 eV 292 keV 144 mum 144 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 177 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -954 mum -611 mum -2.43 m 996 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.02 mm -557 mum -2.43 m 743 keV 253 keV 179 mum 179 mum Target eBrem - 2 -996 mum -578 mum -2.43 m 0 eV 743 keV 503 mum 681 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 175, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -976 mum -377 mum -2.43 m 10.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1 mm -620 mum -2.43 m 9.15 MeV 836 keV 603 mum 603 mum Target eBrem - 2 -916 mum -455 mum -2.43 m 8.54 MeV 295 keV 250 mum 852 mum Target eBrem - 3 -912 mum -421 mum -2.43 m 6.81 MeV 703 keV 562 mum 1.41 mm Target eBrem - 4 -817 mum -138 mum -2.43 m 5.61 MeV 634 keV 414 mum 1.83 mm Target eBrem - 5 -762 mum -55.3 mum -2.43 m 4.87 MeV 148 keV 129 mum 1.96 mm Target eBrem - 6 -760 mum -48.2 mum -2.43 m 4.53 MeV 7.12 keV 9.09 mum 1.97 mm Target eBrem - 7 -598 mum 393 mum -2.43 m 0 eV 4.53 MeV 3.54 mm 5.5 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 195, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -760 mum -48.2 mum -2.43 m 332 keV 0 eV 0 fm 0 fm Target initStep - 1 -467 mum 399 mum -2.43 m 0 eV 88 keV 678 mum 678 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 196, Parent ID = 195 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -467 mum 399 mum -2.43 m 244 keV 0 eV 0 fm 0 fm Target initStep - 1 -465 mum 406 mum -2.43 m 0 eV 244 keV 110 mum 110 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 194, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -762 mum -55.3 mum -2.43 m 598 keV 0 eV 0 fm 0 fm Target initStep - 1 396 mum 3.53 mm -2.43 m 551 keV 0 eV 4.75 mm 4.75 mm Target compt - 2 2.16 mm 7.64 mm -2.43 m 345 keV 0 eV 4.66 mm 9.41 mm Target compt - 3 -478 mum 1.22 cm -2.43 m 186 keV 0 eV 5.62 mm 1.5 cm Target compt - 4 -334 mum 1.24 cm -2.43 m 0 eV 88 keV 1.45 mm 1.65 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 194 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -334 mum 1.24 cm -2.43 m 97.9 keV 0 eV 0 fm 0 fm Target initStep - 1 -336 mum 1.24 cm -2.43 m 0 eV 97.9 keV 26.7 mum 26.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 199, Parent ID = 194 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -478 mum 1.22 cm -2.43 m 159 keV 0 eV 0 fm 0 fm Target initStep - 1 -480 mum 1.22 cm -2.43 m 0 eV 159 keV 57.2 mum 57.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 194 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.16 mm 7.64 mm -2.43 m 207 keV 0 eV 0 fm 0 fm Target initStep - 1 2.16 mm 7.64 mm -2.43 m 0 eV 207 keV 86 mum 86 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 197, Parent ID = 194 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 396 mum 3.53 mm -2.43 m 46.2 keV 0 eV 0 fm 0 fm Target initStep - 1 396 mum 3.53 mm -2.43 m 0 eV 46.2 keV 7.91 mum 7.91 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 193, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -817 mum -138 mum -2.43 m 560 keV 0 eV 0 fm 0 fm Target initStep - 1 1.49 mm 3.79 mm -2.43 m 0 eV 88 keV 7.14 mm 7.14 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 193 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.49 mm 3.79 mm -2.43 m 472 keV 0 eV 0 fm 0 fm Target initStep - 1 1.5 mm 3.8 mm -2.43 m 0 eV 472 keV 280 mum 280 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 192, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -912 mum -421 mum -2.43 m 1.03 MeV 0 eV 0 fm 0 fm Target initStep - 1 -885 mum -207 mum -2.43 m 570 keV 0 eV 231 mum 231 mum Target compt - 2 -3.23 mm 2 mm -2.43 m 315 keV 0 eV 5.72 mm 5.95 mm Target compt - 3 -4.82 mm 2.89 mm -2.43 m 0 eV 88 keV 1.91 mm 7.86 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 192 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.82 mm 2.89 mm -2.43 m 227 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.82 mm 2.89 mm -2.43 m 0 eV 227 keV 99 mum 99 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 192 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.23 mm 2 mm -2.43 m 255 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.23 mm 2 mm -2.43 m 0 eV 255 keV 117 mum 117 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 192 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -885 mum -207 mum -2.43 m 462 keV 0 eV 0 fm 0 fm Target initStep - 1 -877 mum -190 mum -2.43 m 0 eV 462 keV 272 mum 272 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 191, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -916 mum -455 mum -2.43 m 309 keV 0 eV 0 fm 0 fm Target initStep - 1 2.8 mm 1.02 mm -2.43 m 0 eV 88 keV 7.84 mm 7.84 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 191 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.8 mm 1.02 mm -2.43 m 221 keV 0 eV 0 fm 0 fm Target initStep - 1 2.8 mm 1.02 mm -2.43 m 0 eV 221 keV 95.3 mum 95.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 190, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1 mm -620 mum -2.43 m 416 keV 0 eV 0 fm 0 fm Target initStep - 1 387 mum 1.71 mm -2.43 m 319 keV 0 eV 4.71 mm 4.71 mm Target compt - 2 -32.9 mum 4.94 mm -2.43 m 0 eV 88 keV 3.35 mm 8.06 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -32.9 mum 4.94 mm -2.43 m 231 keV 0 eV 0 fm 0 fm Target initStep - 1 -35.4 mum 4.95 mm -2.43 m 0 eV 231 keV 102 mum 102 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 387 mum 1.71 mm -2.43 m 97.2 keV 0 eV 0 fm 0 fm Target initStep - 1 388 mum 1.7 mm -2.43 m 0 eV 97.2 keV 26.4 mum 26.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 61, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -817 mum -228 mum -2.44 m 4.24 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.4 mm -252 mum -2.42 m 0 eV 0 eV 1.85 cm 1.85 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 209, Parent ID = 61 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.4 mm -252 mum -2.42 m 1.45 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.27 mm -226 mum -2.42 m 0 eV 1.45 MeV 1.12 mm 1.12 mm Target eIoni - 2 -2.27 mm -226 mum -2.42 m 0 eV 0 eV 0 fm 1.12 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 211, Parent ID = 209 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.27 mm -226 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -89.8 mum 1.12 mm -2.41 m 0 eV 88 keV 3.99 mm 3.99 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 211 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -89.8 mum 1.12 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -81.7 mum 1.14 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 210, Parent ID = 209 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.27 mm -226 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.07 mm -1.96 mm -2.42 m 0 eV 88 keV 5.12 mm 5.12 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 213, Parent ID = 210 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.07 mm -1.96 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.08 mm -1.95 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 61 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.4 mm -252 mum -2.42 m 1.77 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.52 mm -278 mum -2.42 m 0 eV 1.77 MeV 1.37 mm 1.37 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 60, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -816 mum -228 mum -2.44 m 550 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.29 mm -221 mum -2.42 m 201 keV 0 eV 1.59 cm 1.59 cm Target compt - 2 -2.43 mm -90.6 mum -2.42 m 0 eV 88 keV 254 mum 1.61 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 215, Parent ID = 60 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.43 mm -90.6 mum -2.42 m 113 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.43 mm -89.3 mum -2.42 m 0 eV 113 keV 33.9 mum 33.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 214, Parent ID = 60 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.29 mm -221 mum -2.42 m 348 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.29 mm -223 mum -2.42 m 0 eV 348 keV 184 mum 184 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 59, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -798 mum -220 mum -2.44 m 447 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.06 mm -369 mum -2.43 m 208 keV 0 eV 3.04 mm 3.04 mm Target compt - 2 -551 mum 561 mum -2.43 m 0 eV 88 keV 1.09 mm 4.13 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 59 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -551 mum 561 mum -2.43 m 120 keV 0 eV 0 fm 0 fm Target initStep - 1 -550 mum 560 mum -2.43 m 0 eV 120 keV 37.1 mum 37.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 216, Parent ID = 59 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.06 mm -369 mum -2.43 m 239 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.06 mm -372 mum -2.43 m 0 eV 239 keV 107 mum 107 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 58, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -785 mum -216 mum -2.44 m 305 keV 0 eV 0 fm 0 fm Target initStep - 1 -972 mum -328 mum -2.43 m 0 eV 88 keV 2.12 mm 2.12 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 218, Parent ID = 58 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -972 mum -328 mum -2.43 m 217 keV 0 eV 0 fm 0 fm Target initStep - 1 -971 mum -332 mum -2.43 m 0 eV 217 keV 92.8 mum 92.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -746 mum -190 mum -2.44 m 9.82 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.11 mm -962 mum -2.44 m 6.59 MeV 1.84 MeV 1.4 mm 1.4 mm Target eBrem - 2 -3.82 mm -1.54 mm -2.44 m 1.17 MeV 4.11 MeV 3.37 mm 4.77 mm Target eBrem - 3 -3.87 mm -1.53 mm -2.44 m 0 eV 1.17 MeV 867 mum 5.64 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 220, Parent ID = 56 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.82 mm -1.54 mm -2.44 m 1.31 MeV 0 eV 0 fm 0 fm Target initStep - 1 -7.43 mm -332 mum -2.43 m 520 keV 0 eV 7.47 mm 7.47 mm Target compt - 2 -9.33 mm 9.62 mm -2.43 m 406 keV 0 eV 1.03 cm 1.78 cm Target compt - 3 -8.26 mm 1.14 cm -2.43 m 0 eV 88 keV 2.06 mm 1.99 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 223, Parent ID = 220 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.26 mm 1.14 cm -2.43 m 318 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.25 mm 1.14 cm -2.43 m 0 eV 318 keV 162 mum 162 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 222, Parent ID = 220 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.33 mm 9.62 mm -2.43 m 114 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.33 mm 9.62 mm -2.43 m 0 eV 114 keV 34.1 mum 34.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 221, Parent ID = 220 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.43 mm -332 mum -2.43 m 787 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.45 mm -342 mum -2.43 m 0 eV 787 keV 540 mum 540 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 219, Parent ID = 56 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.11 mm -962 mum -2.44 m 1.39 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.07 cm -3.33 mm -2.42 m 746 keV 0 eV 2.66 cm 2.66 cm Target compt - 2 -2.08 cm -3.02 mm -2.41 m 400 keV 0 eV 3.67 mm 3.03 cm Target compt - 3 -1.86 cm -2.03 mm -2.41 m 0 eV 88 keV 2.61 mm 3.29 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 219 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.86 cm -2.03 mm -2.41 m 312 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.86 cm -2.03 mm -2.41 m 0 eV 312 keV 157 mum 157 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 225, Parent ID = 219 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.08 cm -3.02 mm -2.41 m 346 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.08 cm -3.03 mm -2.41 m 0 eV 346 keV 182 mum 182 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 224, Parent ID = 219 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.07 cm -3.33 mm -2.42 m 644 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.07 cm -3.33 mm -2.42 m 0 eV 644 keV 420 mum 420 mum Target eIoni + 0 983 mum 2.45 mm -2.42 m 3.91 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.09 mm 2.55 mm -2.41 m 0 eV 3.91 MeV 3.07 mm 3.07 mm Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -365 mum 180 mum -2.45 m 9.76 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.18 mm -465 mum -2.42 m 0 eV 0 eV 3.12 cm 3.12 cm Target conv + 0 -9.77 mum 447 mum -2.45 m 1.74 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.76 mm 3.08 mm -2.42 m 972 keV 0 eV 3.07 cm 3.07 cm Target compt + 2 -514 mum 7.06 mm -2.41 m 972 keV 88 keV 6.82 mm 3.75 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 228, Parent ID = 7 +* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 7 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.18 mm -465 mum -2.42 m 7.34 MeV 0 eV 0 fm 0 fm Target initStep - 1 -85.9 mum 286 mum -2.42 m 4.37 MeV 2.59 MeV 1.82 mm 1.82 mm Target eBrem - 2 1.27 mm -156 mum -2.42 m 1.05 MeV 1.59 MeV 1.6 mm 3.42 mm Target eBrem - 3 1.34 mm -158 mum -2.42 m 0 eV 1.05 MeV 776 mum 4.2 mm Target eIoni - 4 1.34 mm -158 mum -2.42 m 0 eV 0 eV 0 fm 4.2 mm Target annihil + 0 -514 mum 7.06 mm -2.41 m 884 keV 0 eV 0 fm 0 fm Target initStep + 1 -543 mum 7.07 mm -2.41 m 0 eV 884 keV 622 mum 622 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 232, Parent ID = 228 +* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 7 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.34 mm -158 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 706 mum 1.05 cm -2.42 m 0 eV 88 keV 1.07 cm 1.07 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 233, Parent ID = 232 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 706 mum 1.05 cm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 708 mum 1.05 cm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 231, Parent ID = 228 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.34 mm -158 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.51 mm -2.86 mm -2.42 m 416 keV 0 eV 2.71 mm 2.71 mm Target compt - 2 1.12 mm -4.7 mm -2.41 m 0 eV 88 keV 2.52 mm 5.23 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 235, Parent ID = 231 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.12 mm -4.7 mm -2.41 m 328 keV 0 eV 0 fm 0 fm Target initStep - 1 1.13 mm -4.7 mm -2.41 m 0 eV 328 keV 169 mum 169 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 234, Parent ID = 231 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.51 mm -2.86 mm -2.42 m 95.2 keV 0 eV 0 fm 0 fm Target initStep - 1 1.51 mm -2.86 mm -2.42 m 0 eV 95.2 keV 25.6 mum 25.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 230, Parent ID = 228 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.27 mm -156 mum -2.42 m 1.73 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.1 mm 205 mum -2.42 m 1.13 MeV 0 eV 954 mum 954 mum Target compt - 2 6.29 mm 581 mum -2.41 m 362 keV 0 eV 6.23 mm 7.18 mm Target compt - 3 2.38 mm -5.88 mm -2.41 m 225 keV 0 eV 8.83 mm 1.6 cm Target compt - 4 1.54 mm -5.9 mm -2.41 m 0 eV 88 keV 966 mum 1.7 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 239, Parent ID = 230 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.54 mm -5.9 mm -2.41 m 137 keV 0 eV 0 fm 0 fm Target initStep - 1 1.54 mm -5.9 mm -2.41 m 0 eV 137 keV 45.6 mum 45.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 238, Parent ID = 230 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.38 mm -5.88 mm -2.41 m 137 keV 0 eV 0 fm 0 fm Target initStep - 1 2.39 mm -5.89 mm -2.41 m 0 eV 137 keV 45.6 mum 45.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 237, Parent ID = 230 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.29 mm 581 mum -2.41 m 763 keV 0 eV 0 fm 0 fm Target initStep - 1 6.32 mm 592 mum -2.41 m 0 eV 763 keV 520 mum 520 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 230 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.1 mm 205 mum -2.42 m 604 keV 0 eV 0 fm 0 fm Target initStep - 1 2.12 mm 221 mum -2.42 m 0 eV 604 keV 387 mum 387 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 229, Parent ID = 228 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -85.9 mum 286 mum -2.42 m 368 keV 0 eV 0 fm 0 fm Target initStep - 1 414 mum 108 mum -2.42 m 155 keV 0 eV 946 mum 946 mum Target compt - 2 224 mum 67.1 mum -2.42 m 0 eV 88 keV 254 mum 1.2 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 241, Parent ID = 229 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 224 mum 67.1 mum -2.42 m 67.4 keV 0 eV 0 fm 0 fm Target initStep - 1 224 mum 66.5 mum -2.42 m 0 eV 67.4 keV 14.6 mum 14.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 240, Parent ID = 229 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 414 mum 108 mum -2.42 m 212 keV 0 eV 0 fm 0 fm Target initStep - 1 417 mum 107 mum -2.42 m 0 eV 212 keV 89.6 mum 89.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 227, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.18 mm -465 mum -2.42 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -976 mum -482 mum -2.42 m 659 keV 396 keV 379 mum 379 mum Target eBrem - 2 -1.01 mm -473 mum -2.42 m 0 eV 659 keV 432 mum 811 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 242, Parent ID = 227 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -976 mum -482 mum -2.42 m 347 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.26 mm -145 mum -2.42 m 301 keV 0 eV 448 mum 448 mum Target compt - 2 -1.42 mm 607 mum -2.42 m 0 eV 88 keV 819 mum 1.27 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 244, Parent ID = 242 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.42 mm 607 mum -2.42 m 213 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.42 mm 609 mum -2.42 m 0 eV 213 keV 89.7 mum 89.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 243, Parent ID = 242 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.26 mm -145 mum -2.42 m 46.2 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.27 mm -145 mum -2.42 m 0 eV 46.2 keV 7.91 mum 7.91 mum Target eIoni + 0 1.76 mm 3.08 mm -2.42 m 766 keV 0 eV 0 fm 0 fm Target initStep + 1 1.77 mm 3.07 mm -2.42 m 0 eV 766 keV 522 mum 522 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -336 mum 191 mum -2.45 m 764 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.15 mm -928 mum -2.4 m 764 keV 0 eV 4.93 cm 4.93 cm Target Transportation - 2 -3.16 cm -1.91 cm -1.6 m 764 keV 0 eV 80.1 cm 85 cm Tracker Transportation - 3 -3.9 cm -2.36 cm -1.4 m 764 keV 0 eV 20 cm 1.05 m Chamber Transportation - 4 -6.11 cm -3.73 cm -80 cm 764 keV 0 eV 60.1 cm 1.65 m Tracker Transportation - 5 -6.85 cm -4.18 cm -60 cm 764 keV 0 eV 20 cm 1.85 m Chamber Transportation - 6 -9.06 cm -5.54 cm 0 fm 764 keV 0 eV 60.1 cm 2.45 m Tracker Transportation - 7 -9.79 cm -6 cm 20 cm 764 keV 0 eV 20 cm 2.65 m Chamber Transportation - 8 -12 cm -7.36 cm 80 cm 764 keV 0 eV 60.1 cm 3.25 m Tracker Transportation - 9 -12.7 cm -7.81 cm 1 m 764 keV 0 eV 20 cm 3.45 m Chamber Transportation - 10 -14.9 cm -9.17 cm 1.6 m 764 keV 0 eV 60.1 cm 4.05 m Tracker Transportation - 11 -15.7 cm -9.63 cm 1.8 m 764 keV 0 eV 20 cm 4.25 m Chamber Transportation - 12 -17.9 cm -11 cm 2.4 m 764 keV 0 eV 60.1 cm 4.85 m Tracker Transportation - 13 -19.8 cm -12.1 cm 2.91 m 764 keV 0 eV 51 cm 5.36 m OutOfWorld Transportation + 0 -302 mum 189 mum -2.45 m 31.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.42 mm 1.24 mm -2.43 m 732 keV 0 eV 1.35 cm 1.35 cm Target compt + 2 -6.14 mm 5.55 mm -2.43 m 575 keV 0 eV 9.45 mm 2.29 cm Target compt + 3 -7.85 mm 9.61 mm -2.43 m 575 keV 88 keV 4.58 mm 2.75 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 192, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.85 mm 9.61 mm -2.43 m 487 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.85 mm 9.63 mm -2.43 m 0 eV 487 keV 292 mum 292 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 191, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.14 mm 5.55 mm -2.43 m 157 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.14 mm 5.55 mm -2.43 m 0 eV 157 keV 56.2 mum 56.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.42 mm 1.24 mm -2.43 m 30.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.39 mm 963 mum -2.43 m 26.4 MeV 3.13 MeV 2.58 mm 2.58 mm Target eBrem + 2 2.42 mm 901 mum -2.43 m 23.3 MeV 548 keV 191 mum 2.77 mm Target eBrem + 3 2.54 mm -685 mum -2.43 m 16.7 MeV 6.59 MeV 2.3 mm 5.07 mm Target eBrem + 4 2.46 mm -935 mum -2.43 m 14.4 MeV 675 keV 533 mum 5.6 mm Target eBrem + 5 1.88 mm -1.18 mm -2.43 m 10 MeV 990 keV 863 mum 6.47 mm Target eBrem + 6 986 mum -1.55 mm -2.43 m 8.32 MeV 1.39 MeV 1.31 mm 7.78 mm Target eBrem + 7 -147 mum 2.02 mm -2.43 m 3.13 MeV 4.87 MeV 3.83 mm 1.16 cm Target eBrem + 8 -249 mum 2.34 mm -2.43 m 1.31 MeV 516 keV 528 mum 1.21 cm Target eBrem + 9 -212 mum 2.3 mm -2.43 m 0 eV 1.31 MeV 985 mum 1.31 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 199, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -249 mum 2.34 mm -2.43 m 1.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 948 mum 1.82 mm -2.43 m 892 keV 0 eV 2.93 mm 2.93 mm Target compt + 2 1.01 cm -1.72 cm -2.45 m 590 keV 0 eV 2.69 cm 2.99 cm Target compt + 3 1.08 cm -1.73 cm -2.45 m 590 keV 0 eV 1.16 mm 3.1 cm Target Transportation + 4 36.8 cm -2.49 cm -2.91 m 590 keV 0 eV 58.2 cm 61.3 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 199 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.01 cm -1.72 cm -2.45 m 302 keV 0 eV 0 fm 0 fm Target initStep + 1 1.01 cm -1.73 cm -2.45 m 0 eV 302 keV 150 mum 150 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 199 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 948 mum 1.82 mm -2.43 m 412 keV 0 eV 0 fm 0 fm Target initStep + 1 952 mum 1.83 mm -2.43 m 0 eV 412 keV 233 mum 233 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 198, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -147 mum 2.02 mm -2.43 m 324 keV 0 eV 0 fm 0 fm Target initStep + 1 -321 mum 2.1 mm -2.43 m 324 keV 88 keV 993 mum 993 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 198 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -321 mum 2.1 mm -2.43 m 236 keV 0 eV 0 fm 0 fm Target initStep + 1 -318 mum 2.09 mm -2.43 m 0 eV 236 keV 105 mum 105 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 197, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 986 mum -1.55 mm -2.43 m 322 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.62 mm -1.57 mm -2.43 m 322 keV 88 keV 7.28 mm 7.28 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 197 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.62 mm -1.57 mm -2.43 m 234 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.62 mm -1.58 mm -2.43 m 0 eV 234 keV 103 mum 103 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 196, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.88 mm -1.18 mm -2.43 m 3.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.3 mm -1.27 cm -2.4 m 3.39 MeV 0 eV 3.22 cm 3.22 cm Target Transportation + 2 -45.7 cm -64.6 cm -80 cm 3.39 MeV 0 eV 1.78 m 1.81 m Tracker Transportation + 3 -47.6 cm -67.2 cm -73.4 cm 3.39 MeV 0 eV 7.38 cm 1.88 m Chamber Transportation + 4 -68.3 cm -96.2 cm 0 fm 3.39 MeV 0 eV 81.6 cm 2.7 m Tracker Transportation + 5 -73.9 cm -1.04 m 20 cm 3.39 MeV 0 eV 22.2 cm 2.92 m Chamber Transportation + 6 -90.8 cm -1.28 m 80 cm 3.39 MeV 0 eV 66.7 cm 3.59 m Tracker Transportation + 7 -96.5 cm -1.36 m 1 m 3.39 MeV 0 eV 22.2 cm 3.81 m Chamber Transportation + 8 -1.13 m -1.6 m 1.6 m 3.39 MeV 0 eV 66.7 cm 4.48 m Tracker Transportation + 9 -1.19 m -1.67 m 1.8 m 3.39 MeV 0 eV 22.2 cm 4.7 m Chamber Transportation + 10 -1.36 m -1.91 m 2.4 m 3.39 MeV 0 eV 66.7 cm 5.37 m Tracker Transportation + 11 -1.5 m -2.11 m 2.91 m 3.39 MeV 0 eV 56.7 cm 5.94 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 195, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.46 mm -935 mum -2.43 m 1.63 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.57 mm -8.37 mm -2.42 m 1.24 MeV 0 eV 1.15 cm 1.15 cm Target compt + 2 -4.65 mm -2.5 cm -2.41 m 1.24 MeV 0 eV 1.87 cm 3.03 cm Target Transportation + 3 -8.1 mm -5.26 cm -2.4 m 1.24 MeV 0 eV 3.12 cm 6.14 cm World Transportation + 4 -30.1 cm -2.4 m -1.21 m 1.24 MeV 0 eV 2.65 m 2.71 m Tracker Transportation + 5 -36.5 cm -2.91 m -95.5 cm 1.24 MeV 0 eV 57.5 cm 3.28 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 195 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.57 mm -8.37 mm -2.42 m 388 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.58 mm -8.37 mm -2.42 m 0 eV 388 keV 214 mum 214 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 194, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.42 mm 901 mum -2.43 m 2.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.26 mm -5.05 mm -2.42 m 1.96 MeV 0 eV 1.6 cm 1.6 cm Target compt + 2 1.08 mm -1.72 cm -2.4 m 1.96 MeV 0 eV 2.12 cm 3.72 cm Target Transportation + 3 -62.1 cm -2.4 m 93.8 cm 1.96 MeV 0 eV 4.15 m 4.19 m Tracker Transportation + 4 -75.4 cm -2.91 m 1.65 m 1.96 MeV 0 eV 88.8 cm 5.07 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 194 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.26 mm -5.05 mm -2.42 m 617 keV 0 eV 0 fm 0 fm Target initStep + 1 4.27 mm -5.05 mm -2.42 m 0 eV 617 keV 397 mum 397 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 193, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.39 mm 963 mum -2.43 m 904 keV 0 eV 0 fm 0 fm Target initStep + 1 3.57 mm -2.2 mm -2.42 m 904 keV 88 keV 8.32 mm 8.32 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.57 mm -2.2 mm -2.42 m 816 keV 0 eV 0 fm 0 fm Target initStep + 1 3.58 mm -2.21 mm -2.42 m 0 eV 816 keV 564 mum 564 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -335 mum 194 mum -2.45 m 7.67 MeV 0 eV 0 fm 0 fm Target initStep - 1 -607 mum -119 mum -2.42 m 0 eV 0 eV 2.8 cm 2.8 cm Target conv + 0 -317 mum 190 mum -2.45 m 304 keV 0 eV 0 fm 0 fm Target initStep + 1 -191 mum 208 mum -2.44 m 304 keV 88 keV 4.29 mm 4.29 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 246, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -607 mum -119 mum -2.42 m 2.45 MeV 0 eV 0 fm 0 fm Target initStep - 1 -639 mum 37.4 mum -2.42 m 0 eV 314 keV 284 mum 284 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 248, Parent ID = 246 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -639 mum 37.4 mum -2.42 m 2.8 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.94 cm -2.61 mm -2.4 m 2.8 MeV 0 eV 2.93 cm 2.93 cm Target Transportation - 2 2.4 m -31.7 cm 12.1 cm 2.8 MeV 0 eV 3.48 m 3.51 m Tracker Transportation - 3 2.91 m -38.5 cm 66.1 cm 2.8 MeV 0 eV 74.6 cm 4.26 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 247, Parent ID = 246 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -639 mum 37.4 mum -2.42 m 360 keV 0 eV 0 fm 0 fm Target initStep - 1 -631 mum 620 nm -2.42 m 0 eV 88 keV 115 mum 115 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 249, Parent ID = 247 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -631 mum 620 nm -2.42 m 272 keV 0 eV 0 fm 0 fm Target initStep - 1 -633 mum -3.01 mum -2.42 m 0 eV 272 keV 129 mum 129 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 245, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -607 mum -119 mum -2.42 m 4.19 MeV 0 eV 0 fm 0 fm Target initStep - 1 -601 mum -132 mum -2.42 m 0 eV 4.19 MeV 3.29 mm 3.29 mm Target eIoni + 0 -191 mum 208 mum -2.44 m 216 keV 0 eV 0 fm 0 fm Target initStep + 1 -191 mum 206 mum -2.44 m 0 eV 216 keV 91.7 mum 91.7 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -326 mum 194 mum -2.45 m 1.34 MeV 0 eV 0 fm 0 fm Target initStep - 1 -596 mum 305 mum -2.43 m 0 eV 88 keV 2.08 cm 2.08 cm Target phot + 0 -323 mum 209 mum -2.45 m 3.27 MeV 0 eV 0 fm 0 fm Target initStep + 1 -305 mum 209 mum -2.45 m 686 keV 0 eV 631 mum 631 mum Target compt + 2 -427 mum 231 mum -2.45 m 263 keV 0 eV 138 mum 769 mum Target compt + 3 -303 mum 179 mum -2.45 m 263 keV 88 keV 218 mum 988 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 250, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 210, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -596 mum 305 mum -2.43 m 1.25 MeV 0 eV 0 fm 0 fm Target initStep - 1 -749 mum 466 mum -2.43 m 674 keV 294 keV 370 mum 370 mum Target eBrem - 2 -688 mum 528 mum -2.43 m 284 keV 390 keV 364 mum 735 mum Target eBrem - 3 -687 mum 519 mum -2.43 m 0 eV 284 keV 138 mum 872 mum Target eIoni + 0 -303 mum 179 mum -2.45 m 175 keV 0 eV 0 fm 0 fm Target initStep + 1 -300 mum 176 mum -2.45 m 0 eV 175 keV 66.8 mum 66.8 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 251, Parent ID = 250 +* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -749 mum 466 mum -2.43 m 285 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.77 mm 69.5 mum -2.43 m 179 keV 0 eV 1.09 mm 1.09 mm Target compt - 2 -1.81 mm 256 mum -2.43 m 0 eV 88 keV 261 mum 1.35 mm Target phot + 0 -427 mum 231 mum -2.45 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -443 mum 235 mum -2.45 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 253, Parent ID = 251 +* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.81 mm 256 mum -2.43 m 90.8 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.81 mm 256 mum -2.43 m 0 eV 90.8 keV 23.7 mum 23.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 252, Parent ID = 251 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.77 mm 69.5 mum -2.43 m 106 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.77 mm 68.1 mum -2.43 m 0 eV 106 keV 30.3 mum 30.3 mum Target eIoni + 0 -305 mum 209 mum -2.45 m 2.59 MeV 0 eV 0 fm 0 fm Target initStep + 1 -250 mum 200 mum -2.45 m 0 eV 2.59 MeV 1.99 mm 1.99 mm Target eBrem ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -326 mum 194 mum -2.45 m 19.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -559 mum 209 mum -2.43 m 0 eV 0 eV 2.09 cm 2.09 cm Target conv + 0 -325 mum 197 mum -2.45 m 1.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 -324 mum 200 mum -2.45 m 515 keV 0 eV 333 mum 333 mum Target compt + 2 -3.2 mm -1.22 cm -2.44 m 210 keV 0 eV 1.38 cm 1.42 cm Target compt + 3 -2.85 mm -1.22 cm -2.44 m 210 keV 88 keV 724 mum 1.49 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 255, Parent ID = 3 +* G4Track Information: Particle = e-, Track ID = 213, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -559 mum 209 mum -2.43 m 1.35 MeV 0 eV 0 fm 0 fm Target initStep - 1 -559 mum 167 mum -2.43 m 0 eV 1.35 MeV 1.03 mm 1.03 mm Target eIoni - 2 -559 mum 167 mum -2.43 m 0 eV 0 eV 0 fm 1.03 mm Target annihil + 0 -2.85 mm -1.22 cm -2.44 m 122 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.85 mm -1.22 cm -2.44 m 0 eV 122 keV 37.9 mum 37.9 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 257, Parent ID = 255 +* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -559 mum 167 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 260 mum -1.42 mm -2.43 m 178 keV 0 eV 1.79 mm 1.79 mm Target compt - 2 349 mum 474 mum -2.43 m 139 keV 0 eV 1.9 mm 3.69 mm Target compt - 3 -105 mum 579 mum -2.43 m 0 eV 88 keV 481 mum 4.18 mm Target phot + 0 -3.2 mm -1.22 cm -2.44 m 305 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.21 mm -1.22 cm -2.44 m 0 eV 305 keV 152 mum 152 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 260, Parent ID = 257 +* G4Track Information: Particle = e-, Track ID = 211, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -105 mum 579 mum -2.43 m 51.1 keV 0 eV 0 fm 0 fm Target initStep - 1 -105 mum 579 mum -2.43 m 0 eV 51.1 keV 9.28 mum 9.28 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 259, Parent ID = 257 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 349 mum 474 mum -2.43 m 39.4 keV 0 eV 0 fm 0 fm Target initStep - 1 350 mum 475 mum -2.43 m 0 eV 39.4 keV 6.06 mum 6.06 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 258, Parent ID = 257 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 260 mum -1.42 mm -2.43 m 333 keV 0 eV 0 fm 0 fm Target initStep - 1 264 mum -1.43 mm -2.43 m 0 eV 333 keV 172 mum 172 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 256, Parent ID = 255 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -559 mum 167 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.58 mm 4.08 mm -2.43 m 324 keV 0 eV 4.41 mm 4.41 mm Target compt - 2 -2.3 mm 5.11 mm -2.43 m 0 eV 88 keV 1.92 mm 6.33 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 262, Parent ID = 256 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.3 mm 5.11 mm -2.43 m 236 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.3 mm 5.11 mm -2.43 m 0 eV 236 keV 105 mum 105 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 261, Parent ID = 256 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.58 mm 4.08 mm -2.43 m 187 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.58 mm 4.09 mm -2.43 m 0 eV 187 keV 74.1 mum 74.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 254, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -559 mum 209 mum -2.43 m 16.9 MeV 0 eV 0 fm 0 fm Target initStep - 1 -308 mum 635 mum -2.43 m 14.3 MeV 1.59 MeV 1.33 mm 1.33 mm Target eBrem - 2 -360 mum 635 mum -2.43 m 10.1 MeV 88.8 keV 63.6 mum 1.39 mm Target eBrem - 3 -583 mum 708 mum -2.43 m 1.44 MeV 421 keV 389 mum 1.78 mm Target eBrem - 4 -642 mum 667 mum -2.43 m 0 eV 1.44 MeV 1.06 mm 2.85 mm Target eBrem - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 265, Parent ID = 254 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -583 mum 708 mum -2.43 m 8.26 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm -2.12 cm -2.41 m 8.26 MeV 0 eV 3.88 cm 3.88 cm Target Transportation - 2 -3.28 cm -2.82 cm -2.4 m 8.26 MeV 0 eV 1.23 cm 5.12 cm World Transportation - 3 -2.4 m -2.15 m -38.8 cm 8.26 MeV 0 eV 3.76 m 3.81 m Tracker Transportation - 4 -2.91 m -2.61 m 4.52 cm 8.26 MeV 0 eV 81.1 cm 4.63 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 264, Parent ID = 254 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -360 mum 635 mum -2.43 m 4.04 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm -3.93 mm -2.41 m 4.04 MeV 0 eV 3.18 cm 3.18 cm Target Transportation - 2 -3.5 cm -5.79 mm -2.4 m 4.04 MeV 0 eV 1.3 cm 4.48 cm World Transportation - 3 -2.4 m -44.4 cm -51.5 cm 4.04 MeV 0 eV 3.06 m 3.1 m Tracker Transportation - 4 -2.91 m -53.8 cm -10.9 cm 4.04 MeV 0 eV 65.9 cm 3.76 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 263, Parent ID = 254 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -308 mum 635 mum -2.43 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep - 1 -9.41 mm 98.1 mum -2.42 m 814 keV 0 eV 1.14 cm 1.14 cm Target compt - 2 -1.51 cm -3.24 mm -2.42 m 441 keV 0 eV 7.02 mm 1.84 cm Target compt - 3 -1.47 cm -6.66 mm -2.42 m 0 eV 88 keV 3.67 mm 2.21 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 268, Parent ID = 263 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.47 cm -6.66 mm -2.42 m 353 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.46 cm -6.67 mm -2.42 m 0 eV 353 keV 188 mum 188 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 267, Parent ID = 263 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.51 cm -3.24 mm -2.42 m 372 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.51 cm -3.24 mm -2.42 m 0 eV 372 keV 202 mum 202 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 266, Parent ID = 263 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.41 mm 98.1 mum -2.42 m 195 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.41 mm 102 mum -2.42 m 0 eV 195 keV 78.9 mum 78.9 mum Target eIoni + 0 -324 mum 200 mum -2.45 m 830 keV 0 eV 0 fm 0 fm Target initStep + 1 -461 mum 370 mum -2.45 m 245 keV 585 keV 421 mum 421 mum Target eBrem + 2 -460 mum 368 mum -2.45 m 0 eV 245 keV 110 mum 531 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 @@ -2502,2995 +2094,119 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm -2.91 m 1 TeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 0 fm -2.45 m 1e+03 GeV 106 keV 46 cm 46 cm World Transportation - 2 -36.5 nm 15.2 nm -2.45 m 1e+03 GeV 4.38 MeV 3.7 mm 46.4 cm Target muIoni - 3 -79.7 nm -2.58 nm -2.44 m 1e+03 GeV 19.6 MeV 1.1 cm 47.5 cm Target muPairProd - 4 164 nm -60.8 nm -2.42 m 1e+03 GeV 21 MeV 1.35 cm 48.8 cm Target muPairProd - 5 581 nm -827 nm -2.41 m 1e+03 GeV 21.1 MeV 1.63 cm 50.4 cm Target muIoni - 6 836 nm -1.01 mum -2.4 m 1e+03 GeV 7.88 MeV 5.56 mm 51 cm Target Transportation - 7 9.32 mum -5.5 mum -1.94 m 1e+03 GeV 107 keV 46.2 cm 97.2 cm Tracker muIoni - 8 13.6 mum -7.76 mum -1.71 m 1e+03 GeV 46.9 keV 22.9 cm 1.2 m Tracker muIoni - 9 14.4 mum -8.17 mum -1.67 m 1e+03 GeV 8.75 keV 3.98 cm 1.24 m Tracker muIoni - 10 15.7 mum -8.91 mum -1.6 m 1e+03 GeV 23.7 keV 6.99 cm 1.31 m Tracker Transportation - 11 19.5 mum -11 mum -1.4 m 1e+03 GeV 137 keV 20 cm 1.51 m Chamber Transportation - 12 20.2 mum -11.4 mum -1.36 m 1e+03 GeV 8.97 keV 4.15 cm 1.55 m Tracker muIoni - 13 22.8 mum -13 mum -1.21 m 1e+03 GeV 34 keV 15 cm 1.7 m Tracker muIoni - 14 30.1 mum -17.2 mum -80 cm 1e+03 GeV 93.5 keV 40.9 cm 2.11 m Tracker Transportation - 15 33.5 mum -19.2 mum -60 cm 1e+03 GeV 163 keV 20 cm 2.31 m Chamber Transportation - 16 40.2 mum -23.4 mum -19.8 cm 1e+03 GeV 99 keV 40.2 cm 2.71 m Tracker muIoni - 17 43.5 mum -25.4 mum-1.08e-06 fm 1e+03 GeV 54.5 keV 19.8 cm 2.91 m Tracker Transportation - 18 46.9 mum -27.4 mum 20 cm 1e+03 GeV 248 keV 20 cm 3.11 m Chamber Transportation - 19 57.9 mum -33.5 mum 80 cm 1e+03 GeV 138 keV 60 cm 3.71 m Tracker Transportation - 20 61.9 mum -35.7 mum 1 m 1e+03 GeV 229 keV 20 cm 3.91 m Chamber Transportation - 21 69.5 mum -40.1 mum 1.4 m 1e+03 GeV 87.6 keV 40 cm 4.31 m Tracker muIoni - 22 73.3 mum -42.5 mum 1.6 m 1e+03 GeV 44.3 keV 20 cm 4.51 m Tracker Transportation - 23 77.2 mum -44.8 mum 1.8 m 1e+03 GeV 153 keV 20 cm 4.71 m Chamber Transportation - 24 84.2 mum -51 mum 2.4 m 1e+03 GeV 137 keV 60 cm 5.31 m Tracker Transportation - 25 88.1 mum -54.3 mum 2.72 m 1e+03 GeV 73.3 keV 32.2 cm 5.63 m World muIoni - 26 90.4 mum -56.5 mum 2.91 m 1e+03 GeV 54.3 keV 18.8 cm 5.82 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 88.1 mum -54.3 mum 2.72 m 79.9 keV 0 eV 0 fm 0 fm World initStep - 1 -2.49 cm 3.36 cm 2.73 m 0 eV 79.9 keV 9.19 cm 9.19 cm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 69.5 mum -40.1 mum 1.4 m 10.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -1.01 mm 273 mum 1.4 m 0 eV 10.3 keV 2.4 mm 2.4 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 40.2 mum -23.4 mum -19.8 cm 10.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 43.1 mum 1.1 mm -19.8 cm 0 eV 10.3 keV 2.4 mm 2.4 mm Tracker eIoni + 1 12.3 nm -55.3 nm -2.73 m 1e+03 GeV 50.6 keV 17.5 cm 17.5 cm World muIoni + 2 -39.9 nm -100 nm -2.45 m 1e+03 GeV 61.9 keV 28.5 cm 46 cm World Transportation + 3 -36.3 nm -108 nm -2.4 m 1e+03 GeV 80.2 MeV 5 cm 51 cm Target Transportation + 4 21.3 mum 10.8 mum -2.17 m 1e+03 GeV 47.9 keV 23.4 cm 74.4 cm Tracker muIoni + 5 73 mum 37.1 mum -1.6 m 1e+03 GeV 145 keV 56.6 cm 1.31 m Tracker Transportation + 6 91.4 mum 46.4 mum -1.4 m 1e+03 GeV 139 keV 20 cm 1.51 m Chamber Transportation + 7 147 mum 74.3 mum -80 cm 1e+03 GeV 139 keV 60 cm 2.11 m Tracker Transportation + 8 166 mum 83.5 mum -60 cm 1e+03 GeV 162 keV 20 cm 2.31 m Chamber Transportation + 9 221 mum 111 mum 0 fm 1e+03 GeV 136 keV 60 cm 2.91 m Tracker Transportation + 10 235 mum 118 mum 16.4 cm 1e+03 GeV 101 keV 16.4 cm 3.07 m Chamber muIoni + 11 239 mum 120 mum 20 cm 1e+03 GeV 17.4 keV 3.59 cm 3.11 m Chamber Transportation + 12 246 mum 124 mum 27.6 cm 1e+03 GeV 22.2 keV 7.58 cm 3.19 m Tracker muIoni + 13 263 mum 132 mum 46.5 cm 1e+03 GeV 41.4 keV 18.9 cm 3.37 m Tracker muIoni + 14 277 mum 140 mum 61.4 cm 1e+03 GeV 36.4 keV 14.9 cm 3.52 m Tracker muIoni + 15 295 mum 148 mum 80 cm 1e+03 GeV 40.7 keV 18.6 cm 3.71 m Tracker Transportation + 16 314 mum 158 mum 1 m 1e+03 GeV 167 keV 20 cm 3.91 m Chamber Transportation + 17 325 mum 164 mum 1.12 m 1e+03 GeV 29.6 keV 12.1 cm 4.03 m Tracker muIoni + 18 369 mum 187 mum 1.6 m 1e+03 GeV 103 keV 47.9 cm 4.51 m Tracker Transportation + 19 378 mum 192 mum 1.71 m 1e+03 GeV 61 keV 10.6 cm 4.62 m Chamber muIoni + 20 387 mum 197 mum 1.8 m 1e+03 GeV 71.9 keV 9.37 cm 4.71 m Chamber Transportation + 21 419 mum 213 mum 2.14 m 1e+03 GeV 77.3 keV 33.8 cm 5.05 m Tracker muIoni + 22 443 mum 225 mum 2.4 m 1e+03 GeV 61.9 keV 26.2 cm 5.31 m Tracker Transportation + 23 471 mum 239 mum 2.7 m 1e+03 GeV 72.3 keV 29.8 cm 5.61 m World muIoni + 24 483 mum 245 mum 2.83 m 1e+03 GeV 31.1 keV 12.8 cm 5.74 m World muIoni + 25 491 mum 249 mum 2.91 m 1e+03 GeV 17.3 keV 8.49 cm 5.82 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 22.8 mum -13 mum -1.21 m 64.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 9.72 mm 2.71 cm -1.2 m 0 eV 64.3 keV 6.26 cm 6.26 cm Tracker eIoni + 0 483 mum 245 mum 2.83 m 9.64 keV 0 eV 0 fm 0 fm World initStep + 1 -109 mum -553 mum 2.83 m 0 eV 9.64 keV 2.13 mm 2.13 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 20.2 mum -11.4 mum -1.36 m 10.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 279 mum -1.1 mm -1.36 m 0 eV 10.3 keV 2.38 mm 2.38 mm Tracker eIoni + 0 471 mum 239 mum 2.7 m 12.7 keV 0 eV 0 fm 0 fm World initStep + 1 -935 mum -524 mum 2.7 m 0 eV 12.7 keV 3.4 mm 3.4 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 14.4 mum -8.17 mum -1.67 m 8.84 keV 0 eV 0 fm 0 fm Tracker initStep - 1 679 mum -547 mum -1.67 m 0 eV 8.84 keV 1.83 mm 1.83 mm Tracker eIoni + 0 419 mum 213 mum 2.14 m 13.8 keV 0 eV 0 fm 0 fm Tracker initStep + 1 2.21 mm 818 mum 2.14 m 0 eV 13.8 keV 4 mm 4 mm Tracker eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 13.6 mum -7.76 mum -1.71 m 9.91 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -1.02 mm -147 mum -1.71 m 0 eV 9.91 keV 2.22 mm 2.22 mm Tracker eIoni + 0 378 mum 192 mum 1.71 m 80 keV 0 eV 0 fm 0 fm Chamber initStep + 1 3.55 mm 1.43 mm 1.71 m 0 eV 80 keV 3.41 cm 3.41 cm Chamber eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.32 mum -5.5 mum -1.94 m 8.61 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -801 mum 93.9 mum -1.94 m 0 eV 8.61 keV 1.75 mm 1.75 mm Tracker eIoni + 0 325 mum 164 mum 1.12 m 33.5 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -4.85 mm -7.38 mm 1.12 m 0 eV 33.5 keV 1.95 cm 1.95 cm Tracker eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 581 nm -827 nm -2.41 m 77.3 MeV 0 eV 0 fm 0 fm Target initStep - 1 7.29 mum -2.42 mum -2.41 m 51.9 MeV 246 keV 70.4 mum 70.4 mum Target eBrem - 2 17.3 mum -1.83 mum -2.41 m 50.1 MeV 79.3 keV 87.3 mum 158 mum Target eBrem - 3 -186 mum -147 mum -2.4 m 13 MeV 2.31 MeV 1.85 mm 2.01 mm Target eBrem - 4 -202 mum -800 mum -2.4 m 0 eV 13 MeV 5.37 mm 7.38 mm Target eBrem + 0 277 mum 140 mum 61.4 cm 14.3 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -761 mum 1.84 mm 61.4 cm 0 eV 14.3 keV 4.22 mm 4.22 mm Tracker eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 7 +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -186 mum -147 mum -2.4 m 34.8 MeV 0 eV 0 fm 0 fm Target initStep - 1 -144 mum -1.11 mm -2.4 m 34.8 MeV 0 eV 3.71 mm 3.71 mm Target Transportation - 2 9.32 mm -21.7 cm -1.6 m 34.8 MeV 0 eV 82.9 cm 83.2 cm Tracker Transportation - 3 1.03 cm -24 cm -1.51 m 34.8 MeV 0 eV 8.97 cm 92.2 cm Chamber Transportation - 4 1.88 cm -43.2 cm -80 cm 34.8 MeV 0 eV 73.9 cm 1.66 m Tracker Transportation - 5 2.11 cm -48.6 cm -60 cm 34.8 MeV 0 eV 20.7 cm 1.87 m Chamber Transportation - 6 2.82 cm -64.8 cm 0 fm 34.8 MeV 0 eV 62.1 cm 2.49 m Tracker Transportation - 7 3.06 cm -70.2 cm 20 cm 34.8 MeV 0 eV 20.7 cm 2.7 m Chamber Transportation - 8 3.77 cm -86.3 cm 80 cm 34.8 MeV 0 eV 62.1 cm 3.32 m Tracker Transportation - 9 3.78 cm -86.5 cm 80.5 cm 0 eV 0 eV 5.66 mm 3.32 m Chamber conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 20, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.78 cm -86.5 cm 80.5 cm 28.9 MeV 0 eV 0 fm 0 fm Chamber initStep - 1 3.68 cm -90.5 cm 92.5 cm 27.8 MeV 90.7 keV 12.6 cm 12.6 cm Chamber eBrem - 2 3.7 cm -92.9 cm 1 m 27.7 MeV 82.7 keV 7.92 cm 20.5 cm Chamber Transportation - 3 3.63 cm -1.01 m 1.27 m 27.7 MeV 55.6 keV 28 cm 48.5 cm Tracker eIoni - 4 3.8 cm -1.12 m 1.6 m 27.6 MeV 69.9 keV 34.9 cm 83.3 cm Tracker Transportation - 5 3.76 cm -1.14 m 1.67 m 27.2 MeV 45.2 keV 7.59 cm 90.9 cm Chamber eIoni - 6 4.25 cm -1.17 m 1.8 m 27.1 MeV 76.8 keV 13.1 cm 1.04 m Chamber Transportation - 7 5.39 cm -1.2 m 1.98 m 27.1 MeV 41.4 keV 18.1 cm 1.22 m Tracker eIoni - 8 6.2 cm -1.23 m 2.1 m 27 MeV 20.6 keV 12.5 cm 1.35 m Tracker eIoni - 9 8.16 cm -1.29 m 2.4 m 27 MeV 66.3 keV 30.8 cm 1.65 m Tracker Transportation - 10 10.7 cm -1.39 m 2.91 m 26.8 MeV 107 keV 52 cm 2.17 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.2 cm -1.23 m 2.1 m 8.31 keV 0 eV 0 fm 0 fm Tracker initStep - 1 6.2 cm -1.23 m 2.1 m 0 eV 8.31 keV 1.64 mm 1.64 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.39 cm -1.2 m 1.98 m 10.6 keV 0 eV 0 fm 0 fm Tracker initStep - 1 5.35 cm -1.2 m 1.98 m 0 eV 10.6 keV 2.5 mm 2.5 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.76 cm -1.14 m 1.67 m 378 keV 0 eV 0 fm 0 fm Chamber initStep - 1 -1.27 cm -1.15 m 1.67 m 82.2 keV 226 keV 33.1 cm 33.1 cm Chamber eIoni - 2 -1.57 cm -1.15 m 1.67 m 0 eV 82.2 keV 3.57 cm 36.6 cm Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 23 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.27 cm -1.15 m 1.67 m 69.5 keV 0 eV 0 fm 0 fm Chamber initStep - 1 -1.16 cm -1.15 m 1.67 m 0 eV 69.5 keV 2.72 cm 2.72 cm Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.63 cm -1.01 m 1.27 m 9.05 keV 0 eV 0 fm 0 fm Tracker initStep - 1 3.66 cm -1.01 m 1.27 m 0 eV 9.05 keV 1.91 mm 1.91 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.68 cm -90.5 cm 92.5 cm 944 keV 0 eV 0 fm 0 fm Chamber initStep - 1 3.62 cm -93 cm 1 m 944 keV 0 eV 7.93 cm 7.93 cm Chamber Transportation - 2 3.15 cm -1.13 m 1.6 m 944 keV 0 eV 63.2 cm 71.1 cm Tracker Transportation - 3 3 cm -1.19 m 1.8 m 944 keV 0 eV 21.1 cm 92.2 cm Chamber Transportation - 4 2.53 cm -1.39 m 2.4 m 944 keV 0 eV 63.2 cm 1.55 m Tracker Transportation - 5 2.13 cm -1.56 m 2.91 m 944 keV 0 eV 53.7 cm 2.09 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.78 cm -86.5 cm 80.5 cm 4.94 MeV 0 eV 0 fm 0 fm Chamber initStep - 1 3.47 cm -87.5 cm 1 m 4.79 MeV 150 keV 20.3 cm 20.3 cm Chamber Transportation - 2 -6.78 cm -92.2 cm 1.56 m 4.68 MeV 106 keV 57.3 cm 77.6 cm Tracker eIoni - 3 -8.14 cm -92.9 cm 1.6 m 4.67 MeV 5.91 keV 4.25 cm 81.8 cm Tracker Transportation - 4 -9.23 cm -93.6 cm 1.65 m 4.58 MeV 24.4 keV 5.38 cm 87.2 cm Chamber eIoni - 5 -9.2 cm -94.6 cm 1.67 m 4.57 MeV 9.76 keV 2.46 cm 89.7 cm Chamber eIoni - 6 -7.12 cm -99.1 cm 1.8 m 4.41 MeV 88.7 keV 14.5 cm 1.04 m Chamber eIoni - 7 -7.12 cm -99.2 cm 1.8 m 4.41 MeV 0 eV 477 mum 1.04 m Chamber Transportation - 8 -5.65 cm -1.05 m 2 m 4.36 MeV 46.8 keV 20.9 cm 1.25 m Tracker eIoni - 9 -4.9 cm -1.06 m 2.11 m 4.33 MeV 18 keV 11.5 cm 1.37 m Tracker eIoni - 10 -1.89 cm -1.09 m 2.4 m 4.28 MeV 49 keV 28.9 cm 1.66 m Tracker Transportation - 11 -1.6 cm -1.1 m 2.44 m 4.26 MeV 17.7 keV 4.28 cm 1.7 m World eIoni - 12 -1.15 cm -1.1 m 2.47 m 4.24 MeV 3.66 keV 3.17 cm 1.73 m World eIoni - 13 2.45 cm -1.12 m 2.72 m 4.17 MeV 50.7 keV 24.7 cm 1.98 m World eIoni - 14 3.45 cm -1.14 m 2.84 m 4.14 MeV 20.9 keV 13 cm 2.11 m World eIoni - 15 3.56 cm -1.15 m 2.91 m 4.13 MeV 11.9 keV 6.72 cm 2.17 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.45 cm -1.14 m 2.84 m 8.45 keV 0 eV 0 fm 0 fm World initStep - 1 3.43 cm -1.15 m 2.84 m 0 eV 8.45 keV 1.7 mm 1.7 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.45 cm -1.12 m 2.72 m 20.5 keV 0 eV 0 fm 0 fm World initStep - 1 2.24 cm -1.12 m 2.72 m 0 eV 20.5 keV 8.01 mm 8.01 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.15 cm -1.1 m 2.47 m 15.8 keV 0 eV 0 fm 0 fm World initStep - 1 -9.67 mm -1.1 m 2.47 m 0 eV 15.8 keV 5.02 mm 5.02 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.9 cm -1.06 m 2.11 m 9.87 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -4.81 cm -1.06 m 2.11 m 0 eV 9.87 keV 2.21 mm 2.21 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.65 cm -1.05 m 2 m 8.99 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -5.65 cm -1.05 m 2 m 0 eV 8.99 keV 1.89 mm 1.89 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.12 cm -99.1 cm 1.8 m 71.7 keV 0 eV 0 fm 0 fm Chamber initStep - 1 -7.1 cm -99.1 cm 1.8 m 71.1 keV 605 eV 1.08 mm 1.08 mm Chamber Transportation - 2 -6.43 cm -97.9 cm 1.81 m 63.5 keV 7.55 keV 1.5 cm 1.61 cm Tracker msc - 3 -5.77 cm -97.2 cm 1.82 m 40.8 keV 9.48 keV 1.35 cm 2.96 cm Tracker eIoni - 4 -6.55 cm -96.7 cm 1.83 m 29.8 keV 11.1 keV 1.5 cm 4.46 cm Tracker msc - 5 -4.92 cm -96.8 cm 1.81 m 8.72 keV 21 keV 1.5 cm 5.96 cm Tracker msc - 6 -4.88 cm -96.7 cm 1.81 m 0 eV 8.72 keV 1.79 mm 6.13 cm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 29 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.77 cm -97.2 cm 1.82 m 13.2 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -5.63 cm -97.1 cm 1.82 m 0 eV 13.2 keV 3.69 mm 3.69 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.23 cm -93.6 cm 1.65 m 63.6 keV 0 eV 0 fm 0 fm Chamber initStep - 1 -9.14 cm -93.4 cm 1.65 m 0 eV 63.6 keV 2.33 cm 2.33 cm Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.78 cm -92.2 cm 1.56 m 10.8 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -6.83 cm -92.1 cm 1.56 m 0 eV 10.8 keV 2.61 mm 2.61 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 17.3 mum -1.83 mum -2.41 m 1.72 MeV 0 eV 0 fm 0 fm Target initStep - 1 102 mum -312 mum -2.4 m 465 keV 0 eV 3.2 mm 3.2 mm Target compt - 2 5.66 mm -1.78 mm -2.4 m 0 eV 88 keV 5.82 mm 9.02 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 17 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.66 mm -1.78 mm -2.4 m 377 keV 0 eV 0 fm 0 fm Target initStep - 1 5.68 mm -1.77 mm -2.4 m 0 eV 377 keV 206 mum 206 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 17 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 102 mum -312 mum -2.4 m 1.25 MeV 0 eV 0 fm 0 fm Target initStep - 1 83.6 mum -314 mum -2.4 m 0 eV 1.25 MeV 935 mum 935 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.29 mum -2.42 mum -2.41 m 25.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 640 mum -90.4 mum -2.4 m 25.1 MeV 0 eV 5.53 mm 5.53 mm Target Transportation - 2 9.29 cm -1.29 cm -1.6 m 25.1 MeV 0 eV 80.5 cm 81.1 cm Tracker Transportation - 3 11.6 cm -1.61 cm -1.4 m 25.1 MeV 0 eV 20.1 cm 1.01 m Chamber Transportation - 4 18.5 cm -2.57 cm -80 cm 25.1 MeV 0 eV 60.4 cm 1.62 m Tracker Transportation - 5 20.8 cm -2.89 cm -60 cm 25.1 MeV 0 eV 20.1 cm 1.82 m Chamber Transportation - 6 27.7 cm -3.85 cm -0.114 fm 25.1 MeV 0 eV 60.4 cm 2.42 m Tracker Transportation - 7 30 cm -4.17 cm 20 cm 25.1 MeV 0 eV 20.1 cm 2.62 m Chamber Transportation - 8 37 cm -5.13 cm 80 cm 25.1 MeV 0 eV 60.4 cm 3.23 m Tracker Transportation - 9 39.3 cm -5.45 cm 1 m 25.1 MeV 0 eV 20.1 cm 3.43 m Chamber Transportation - 10 46.2 cm -6.42 cm 1.6 m 25.1 MeV 0 eV 60.4 cm 4.03 m Tracker Transportation - 11 48.5 cm -6.74 cm 1.8 m 25.1 MeV 0 eV 20.1 cm 4.23 m Chamber Transportation - 12 55.4 cm -7.7 cm 2.4 m 25.1 MeV 0 eV 60.4 cm 4.84 m Tracker Transportation - 13 61.3 cm -8.51 cm 2.91 m 25.1 MeV 0 eV 51.3 cm 5.35 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 164 nm -60.8 nm -2.42 m 262 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.19 mum -2.33 mum -2.42 m 259 MeV 487 keV 335 mum 335 mum Target eBrem - 2 3.92 mum -989 nm -2.42 m 258 MeV 118 keV 118 mum 453 mum Target eBrem - 3 -11.3 mum -2.06 mum -2.42 m 256 MeV 1.44 MeV 1.22 mm 1.68 mm Target eBrem - 4 1.98 mum 23.1 mum -2.42 m 253 MeV 722 keV 610 mum 2.29 mm Target eBrem - 5 7.3 mum 25.9 mum -2.42 m 176 MeV 181 keV 151 mum 2.44 mm Target eBrem - 6 16.9 mum 52.9 mum -2.42 m 170 MeV 589 keV 502 mum 2.94 mm Target eBrem - 7 15.3 mum -23.4 mum -2.42 m 157 MeV 2.92 MeV 2.25 mm 5.18 mm Target eBrem - 8 5.91 mum -31.9 mum -2.42 m 152 MeV 583 keV 369 mum 5.55 mm Target eBrem - 9 -10.7 mum -36.4 mum -2.42 m 110 MeV 462 keV 344 mum 5.9 mm Target eBrem - 10 89.2 mum -227 mum -2.41 m 34.8 MeV 2.47 MeV 2.12 mm 8.01 mm Target eBrem - 11 97.4 mum -225 mum -2.41 m 34.1 MeV 152 keV 131 mum 8.15 mm Target eBrem - 12 96.3 mum -225 mum -2.41 m 21.8 MeV 102 keV 76.7 mum 8.22 mm Target eBrem - 13 520 mum -103 mum -2.41 m 12.4 MeV 2.31 MeV 1.87 mm 1.01 cm Target eBrem - 14 311 mum -327 mum -2.41 m 11.6 MeV 547 keV 564 mum 1.07 cm Target eBrem - 15 446 mum -430 mum -2.41 m 10.2 MeV 1.03 MeV 930 mum 1.16 cm Target eBrem - 16 -1.21 mm -4.02 mm -2.41 m 4.57 MeV 4.83 MeV 3.79 mm 1.54 cm Target eBrem - 17 -1.03 mm -4.66 mm -2.41 m 2.4 MeV 2.17 MeV 1.95 mm 1.73 cm Target eBrem - 18 -627 mum -4.13 mm -2.41 m 0 eV 923 keV 870 mum 1.82 cm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 55, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -627 mum -4.13 mm -2.41 m 2.11 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.02 cm 7.16 mm -2.41 m 922 keV 0 eV 1.58 cm 1.58 cm Target compt - 2 1.03 cm 1.08 cm -2.41 m 531 keV 0 eV 3.7 mm 1.95 cm Target compt - 3 1.19 cm 1.57 cm -2.4 m 0 eV 88 keV 6.66 mm 2.61 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 55 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.19 cm 1.57 cm -2.4 m 443 keV 0 eV 0 fm 0 fm Target initStep - 1 1.19 cm 1.57 cm -2.4 m 0 eV 443 keV 257 mum 257 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 55 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.03 cm 1.08 cm -2.41 m 391 keV 0 eV 0 fm 0 fm Target initStep - 1 1.03 cm 1.08 cm -2.41 m 0 eV 391 keV 216 mum 216 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 55 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.02 cm 7.16 mm -2.41 m 1.18 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.03 cm 7.19 mm -2.41 m 0 eV 1.18 MeV 876 mum 876 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 54, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -627 mum -4.13 mm -2.41 m 388 keV 0 eV 0 fm 0 fm Target initStep - 1 -942 mum -4.17 mm -2.41 m 357 keV 0 eV 511 mum 511 mum Target compt - 2 -4.24 mm -4.53 mm -2.41 m 173 keV 0 eV 3.65 mm 4.16 mm Target compt - 3 -4.1 mm -3.96 mm -2.41 m 0 eV 88 keV 883 mum 5.04 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 54 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.1 mm -3.96 mm -2.41 m 85 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.1 mm -3.96 mm -2.41 m 0 eV 85 keV 21.3 mum 21.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 54 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.24 mm -4.53 mm -2.41 m 184 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.25 mm -4.53 mm -2.41 m 0 eV 184 keV 72.4 mum 72.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 54 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -942 mum -4.17 mm -2.41 m 30.5 keV 0 eV 0 fm 0 fm Target initStep - 1 -942 mum -4.17 mm -2.41 m 0 eV 30.5 keV 4.01 mum 4.01 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 53, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.21 mm -4.02 mm -2.41 m 790 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.23 mm -9.54 mm -2.41 m 227 keV 0 eV 5.67 mm 5.67 mm Target compt - 2 -2.46 mm -9.3 mm -2.41 m 0 eV 88 keV 351 mum 6.02 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 53 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.46 mm -9.3 mm -2.41 m 139 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.46 mm -9.3 mm -2.41 m 0 eV 139 keV 46.5 mum 46.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 53 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.23 mm -9.54 mm -2.41 m 564 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.23 mm -9.57 mm -2.41 m 0 eV 564 keV 354 mum 354 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 52, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 446 mum -430 mum -2.41 m 359 keV 0 eV 0 fm 0 fm Target initStep - 1 286 mum -467 mum -2.41 m 0 eV 88 keV 354 mum 354 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 52 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 286 mum -467 mum -2.41 m 271 keV 0 eV 0 fm 0 fm Target initStep - 1 283 mum -471 mum -2.41 m 0 eV 271 keV 128 mum 128 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 51, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 311 mum -327 mum -2.41 m 309 keV 0 eV 0 fm 0 fm Target initStep - 1 -34.6 mum -96.1 mum -2.41 m 0 eV 88 keV 2.09 mm 2.09 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 51 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -34.6 mum -96.1 mum -2.41 m 221 keV 0 eV 0 fm 0 fm Target initStep - 1 -35 mum -97.4 mum -2.41 m 0 eV 221 keV 95.3 mum 95.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 50, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 520 mum -103 mum -2.41 m 7.06 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.22 mm -4.46 mm -2.4 m 0 eV 0 eV 1.07 cm 1.07 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 67, Parent ID = 50 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 mm -4.46 mm -2.4 m 1.14 MeV 0 eV 0 fm 0 fm Target initStep - 1 -825 mum -4.59 mm -2.4 m 0 eV 1.07 MeV 631 mum 631 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 67 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -825 mum -4.59 mm -2.4 m 536 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.13 mm -4.99 mm -2.4 m 472 keV 0 eV 504 mum 504 mum Target compt - 2 -3.06 mm -7.86 mm -2.4 m 472 keV 0 eV 4.15 mm 4.65 mm Target Transportation - 3 -1.62 m -2.4 m -49.2 cm 472 keV 0 eV 3.46 m 3.46 m Tracker Transportation - 4 -1.96 m -2.91 m -8.55 cm 472 keV 0 eV 73.7 cm 4.2 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.13 mm -4.99 mm -2.4 m 63.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.13 mm -4.99 mm -2.4 m 0 eV 63.6 keV 13.2 mum 13.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 67 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -825 mum -4.59 mm -2.4 m 562 keV 0 eV 0 fm 0 fm Target initStep - 1 -62.3 mum -4.2 mm -2.4 m 0 eV 88 keV 868 mum 868 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 68 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -62.3 mum -4.2 mm -2.4 m 474 keV 0 eV 0 fm 0 fm Target initStep - 1 -43.1 mum -4.2 mm -2.4 m 0 eV 474 keV 281 mum 281 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 50 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 mm -4.46 mm -2.4 m 4.89 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.46 mm -4.81 mm -2.4 m 0 eV 4.89 MeV 3.14 mm 3.14 mm Target eBrem - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 49, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 96.3 mum -225 mum -2.41 m 12.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -279 mum -165 mum -2.41 m 0 eV 0 eV 4.81 mm 4.81 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 73, Parent ID = 49 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -279 mum -165 mum -2.41 m 3.47 MeV 0 eV 0 fm 0 fm Target initStep - 1 -171 mum -188 mum -2.41 m 2.1 MeV 247 keV 251 mum 251 mum Target eBrem - 2 -52.1 mum -158 mum -2.41 m 0 eV 2.1 MeV 1.67 mm 1.92 mm Target eIoni - 3 -52.1 mum -158 mum -2.41 m 0 eV 0 eV 0 fm 1.92 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 76, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -52.1 mum -158 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.6 mm 401 mum -2.41 m 228 keV 0 eV 1.67 mm 1.67 mm Target compt - 2 -471 mum -2.16 mm -2.4 m 210 keV 0 eV 4.9 mm 6.58 mm Target compt - 3 -334 mum -2.17 mm -2.4 m 0 eV 88 keV 215 mum 6.79 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 76 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -334 mum -2.17 mm -2.4 m 122 keV 0 eV 0 fm 0 fm Target initStep - 1 -334 mum -2.17 mm -2.4 m 0 eV 122 keV 37.7 mum 37.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 76 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -471 mum -2.16 mm -2.4 m 18.1 keV 0 eV 0 fm 0 fm Target initStep - 1 -471 mum -2.16 mm -2.4 m 0 eV 18.1 keV 1.76 mum 1.76 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 76 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.6 mm 401 mum -2.41 m 283 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.61 mm 405 mum -2.41 m 0 eV 283 keV 137 mum 137 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 75, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -52.1 mum -158 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.68 mm -781 mum -2.41 m 0 eV 88 keV 1.87 mm 1.87 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 75 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.68 mm -781 mum -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 1.69 mm -792 mum -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -171 mum -188 mum -2.41 m 1.12 MeV 0 eV 0 fm 0 fm Target initStep - 1 4.85 mm 1.1 mm -2.4 m 1.12 MeV 0 eV 1.01 cm 1.01 cm Target Transportation - 2 2.4 m 61.5 cm 1.74 m 1.12 MeV 0 eV 4.82 m 4.83 m Tracker Transportation - 3 2.91 m 74.5 cm 2.62 m 1.12 MeV 0 eV 1.03 m 5.86 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 49 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -279 mum -165 mum -2.41 m 7.73 MeV 0 eV 0 fm 0 fm Target initStep - 1 -773 mum 1.5 mum -2.41 m 5.72 MeV 1.13 MeV 869 mum 869 mum Target eBrem - 2 -2.41 mm 255 mum -2.41 m 3.33 MeV 2.39 MeV 2.05 mm 2.92 mm Target eBrem - 3 -3.18 mm -192 mum -2.41 m 519 keV 1.77 MeV 1.34 mm 4.26 mm Target eBrem - 4 -3.16 mm -209 mum -2.41 m 0 eV 519 keV 318 mum 4.58 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 82, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.18 mm -192 mum -2.41 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.6 mm -6.89 mm -2.41 m 405 keV 0 eV 8.23 mm 8.23 mm Target compt - 2 3.87 mm -6.23 mm -2.41 m 0 eV 88 keV 3.19 mm 1.14 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 82 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.87 mm -6.23 mm -2.41 m 317 keV 0 eV 0 fm 0 fm Target initStep - 1 3.88 mm -6.23 mm -2.41 m 0 eV 317 keV 161 mum 161 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 82 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.6 mm -6.89 mm -2.41 m 638 keV 0 eV 0 fm 0 fm Target initStep - 1 1.61 mm -6.91 mm -2.41 m 0 eV 638 keV 415 mum 415 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 81, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -773 mum 1.5 mum -2.41 m 876 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.7 mm 442 mum -2.41 m 226 keV 0 eV 1.2 mm 1.2 mm Target compt - 2 -1.52 mm 429 mum -2.41 m 0 eV 88 keV 830 mum 2.03 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 81 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.52 mm 429 mum -2.41 m 138 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.52 mm 427 mum -2.41 m 0 eV 138 keV 46.3 mum 46.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 81 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.7 mm 442 mum -2.41 m 650 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.72 mm 452 mum -2.41 m 0 eV 650 keV 425 mum 425 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 48, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 97.4 mum -225 mum -2.41 m 571 keV 0 eV 0 fm 0 fm Target initStep - 1 -377 mum 42.3 mum -2.4 m 571 keV 0 eV 1.38 cm 1.38 cm Target Transportation - 2 -2.8 cm 1.56 cm -1.6 m 571 keV 0 eV 80.1 cm 81.4 cm Tracker Transportation - 3 -3.49 cm 1.95 cm -1.4 m 571 keV 0 eV 20 cm 1.01 m Chamber Transportation - 4 -5.55 cm 3.12 cm -80 cm 571 keV 0 eV 60 cm 1.62 m Tracker Transportation - 5 -6.24 cm 3.51 cm -60 cm 571 keV 0 eV 20 cm 1.82 m Chamber Transportation - 6 -8.31 cm 4.68 cm 0 fm 571 keV 0 eV 60 cm 2.42 m Tracker Transportation - 7 -9 cm 5.07 cm 20 cm 571 keV 0 eV 20 cm 2.62 m Chamber Transportation - 8 -11.1 cm 6.23 cm 80 cm 571 keV 0 eV 60 cm 3.22 m Tracker Transportation - 9 -11.8 cm 6.62 cm 1 m 571 keV 0 eV 20 cm 3.42 m Chamber Transportation - 10 -13.8 cm 7.79 cm 1.6 m 571 keV 0 eV 60 cm 4.02 m Tracker Transportation - 11 -14.5 cm 8.18 cm 1.8 m 571 keV 0 eV 20 cm 4.22 m Chamber Transportation - 12 -16.6 cm 9.35 cm 2.4 m 571 keV 0 eV 60 cm 4.82 m Tracker Transportation - 13 -18.3 cm 10.3 cm 2.91 m 571 keV 0 eV 51 cm 5.33 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 47, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 89.2 mum -227 mum -2.41 m 72.8 MeV 0 eV 0 fm 0 fm Target initStep - 1 499 mum -435 mum -2.41 m 0 eV 0 eV 5.1 mm 5.1 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 88, Parent ID = 47 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 499 mum -435 mum -2.41 m 46.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 504 mum -437 mum -2.41 m 45.9 MeV 68.5 keV 54.7 mum 54.7 mum Target eBrem - 2 501 mum -496 mum -2.41 m 44.7 MeV 503 keV 459 mum 514 mum Target eBrem - 3 507 mum -505 mum -2.41 m 43.9 MeV 316 keV 258 mum 772 mum Target eBrem - 4 502 mum -536 mum -2.41 m 42 MeV 379 keV 358 mum 1.13 mm Target eBrem - 5 515 mum -579 mum -2.41 m 2.39 MeV 1.74 MeV 500 mum 1.63 mm Target eBrem - 6 553 mum -486 mum -2.41 m 1.67 MeV 207 keV 217 mum 1.85 mm Target eBrem - 7 445 mum -559 mum -2.41 m 0 eV 1.67 MeV 1.31 mm 3.15 mm Target eIoni - 8 445 mum -559 mum -2.41 m 0 eV 0 eV 0 fm 3.15 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 96, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 445 mum -559 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 900 mum 1.56 mm -2.41 m 277 keV 0 eV 4.47 mm 4.47 mm Target compt - 2 563 mum 1.4 mm -2.41 m 0 eV 88 keV 424 mum 4.89 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 96 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 563 mum 1.4 mm -2.41 m 189 keV 0 eV 0 fm 0 fm Target initStep - 1 561 mum 1.4 mm -2.41 m 0 eV 189 keV 75.1 mum 75.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 96 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 900 mum 1.56 mm -2.41 m 234 keV 0 eV 0 fm 0 fm Target initStep - 1 903 mum 1.56 mm -2.41 m 0 eV 234 keV 104 mum 104 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 95, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 445 mum -559 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 195 mum -1.72 mm -2.4 m 0 eV 88 keV 2.45 mm 2.45 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 95 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 195 mum -1.72 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 185 mum -1.72 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 94, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 553 mum -486 mum -2.41 m 513 keV 0 eV 0 fm 0 fm Target initStep - 1 -840 mum -5.54 mm -2.4 m 269 keV 0 eV 8.06 mm 8.06 mm Target compt - 2 -4.46 mm -6.51 mm -2.4 m 199 keV 0 eV 3.91 mm 1.2 cm Target compt - 3 -4.74 mm -6.68 mm -2.4 m 0 eV 88 keV 545 mum 1.25 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 94 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.74 mm -6.68 mm -2.4 m 111 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.74 mm -6.68 mm -2.4 m 0 eV 111 keV 32.6 mum 32.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 94 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.46 mm -6.51 mm -2.4 m 70.5 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.46 mm -6.51 mm -2.4 m 0 eV 70.5 keV 15.7 mum 15.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 94 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -840 mum -5.54 mm -2.4 m 244 keV 0 eV 0 fm 0 fm Target initStep - 1 -838 mum -5.54 mm -2.4 m 0 eV 244 keV 110 mum 110 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 93, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 515 mum -579 mum -2.41 m 37.9 MeV 0 eV 0 fm 0 fm Target initStep - 1 79.3 mum -944 mum -2.4 m 37.9 MeV 0 eV 7.2 mm 7.2 mm Target Transportation - 2 -4.85 cm -4.17 cm -1.6 m 37.9 MeV 0 eV 80.3 cm 81 cm Tracker Transportation - 3 -6.06 cm -5.19 cm -1.4 m 37.9 MeV 0 eV 20.1 cm 1.01 m Chamber Transportation - 4 -9.7 cm -8.25 cm -80 cm 37.9 MeV 0 eV 60.2 cm 1.61 m Tracker Transportation - 5 -10.9 cm -9.27 cm -60 cm 37.9 MeV 0 eV 20.1 cm 1.81 m Chamber Transportation - 6 -14.6 cm -12.3 cm 0 fm 37.9 MeV 0 eV 60.2 cm 2.41 m Tracker Transportation - 7 -15.8 cm -13.3 cm 20 cm 37.9 MeV 0 eV 20.1 cm 2.62 m Chamber Transportation - 8 -19.4 cm -16.4 cm 80 cm 37.9 MeV 0 eV 60.2 cm 3.22 m Tracker Transportation - 9 -20.6 cm -17.4 cm 1 m 37.9 MeV 0 eV 20.1 cm 3.42 m Chamber Transportation - 10 -24.3 cm -20.5 cm 1.6 m 37.9 MeV 0 eV 60.2 cm 4.02 m Tracker Transportation - 11 -25.5 cm -21.5 cm 1.8 m 37.9 MeV 0 eV 20.1 cm 4.22 m Chamber Transportation - 12 -29.1 cm -24.6 cm 2.4 m 37.9 MeV 0 eV 60.2 cm 4.82 m Tracker Transportation - 13 -32.2 cm -27.2 cm 2.91 m 37.9 MeV 0 eV 51.2 cm 5.33 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 92, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 502 mum -536 mum -2.41 m 1.52 MeV 0 eV 0 fm 0 fm Target initStep - 1 144 mum -902 mum -2.4 m 1.2 MeV 0 eV 3.54 mm 3.54 mm Target compt - 2 502 mum -2.65 mm -2.4 m 1.1 MeV 0 eV 3.76 mm 7.29 mm Target compt - 3 443 mum -2.85 mm -2.4 m 245 keV 0 eV 749 mum 8.04 mm Target compt - 4 -646 mum -3.54 mm -2.4 m 0 eV 88 keV 2.08 mm 1.01 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 92 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -646 mum -3.54 mm -2.4 m 157 keV 0 eV 0 fm 0 fm Target initStep - 1 -645 mum -3.55 mm -2.4 m 0 eV 157 keV 56.2 mum 56.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 92 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 443 mum -2.85 mm -2.4 m 853 keV 0 eV 0 fm 0 fm Target initStep - 1 445 mum -2.85 mm -2.4 m 0 eV 853 keV 596 mum 596 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 92 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 502 mum -2.65 mm -2.4 m 98.3 keV 0 eV 0 fm 0 fm Target initStep - 1 503 mum -2.65 mm -2.4 m 0 eV 98.3 keV 26.8 mum 26.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 92 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 144 mum -902 mum -2.4 m 321 keV 0 eV 0 fm 0 fm Target initStep - 1 140 mum -895 mum -2.4 m 0 eV 321 keV 164 mum 164 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 91, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 507 mum -505 mum -2.41 m 408 keV 0 eV 0 fm 0 fm Target initStep - 1 475 mum -887 mum -2.41 m 0 eV 88 keV 2.66 mm 2.66 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 91 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 475 mum -887 mum -2.41 m 320 keV 0 eV 0 fm 0 fm Target initStep - 1 485 mum -886 mum -2.41 m 0 eV 320 keV 163 mum 163 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 90, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 501 mum -496 mum -2.41 m 688 keV 0 eV 0 fm 0 fm Target initStep - 1 528 mum -905 mum -2.4 m 325 keV 0 eV 5.93 mm 5.93 mm Target compt - 2 2.21 mm 3.14 mm -2.4 m 0 eV 88 keV 4.51 mm 1.04 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 90 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.21 mm 3.14 mm -2.4 m 237 keV 0 eV 0 fm 0 fm Target initStep - 1 2.21 mm 3.15 mm -2.4 m 0 eV 237 keV 106 mum 106 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 90 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 528 mum -905 mum -2.4 m 363 keV 0 eV 0 fm 0 fm Target initStep - 1 526 mum -911 mum -2.4 m 0 eV 363 keV 195 mum 195 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 89, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 504 mum -437 mum -2.41 m 314 keV 0 eV 0 fm 0 fm Target initStep - 1 703 mum -696 mum -2.41 m 0 eV 88 keV 2.84 mm 2.84 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 89 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 703 mum -696 mum -2.41 m 226 keV 0 eV 0 fm 0 fm Target initStep - 1 705 mum -701 mum -2.41 m 0 eV 226 keV 98.4 mum 98.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 47 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 499 mum -435 mum -2.41 m 25.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 505 mum -442 mum -2.41 m 24.8 MeV 144 keV 79.3 mum 79.3 mum Target eBrem - 2 297 mum 239 mum -2.41 m 19.8 MeV 3.49 MeV 2.26 mm 2.34 mm Target eBrem - 3 417 mum 121 mum -2.41 m 15.6 MeV 3.74 MeV 693 mum 3.03 mm Target eBrem - 4 389 mum 97.1 mum -2.41 m 14.6 MeV 273 keV 192 mum 3.22 mm Target eBrem - 5 -884 mum -743 mum -2.4 m 11 MeV 2.78 MeV 1.98 mm 5.2 mm Target eBrem - 6 -854 mum -643 mum -2.4 m 9.61 MeV 1.03 MeV 890 mum 6.09 mm Target eBrem - 7 -1.65 mm -1.45 mm -2.4 m 5.14 MeV 4.47 MeV 2.45 mm 8.54 mm Target eBrem - 8 -1.79 mm -1.37 mm -2.4 m 3.63 MeV 872 keV 679 mum 9.22 mm Target eBrem - 9 -2.17 mm -1.51 mm -2.4 m 0 eV 3.63 MeV 2.85 mm 1.21 cm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 117, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.79 mm -1.37 mm -2.4 m 635 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.19 mm -1.55 mm -2.4 m 564 keV 0 eV 435 mum 435 mum Target compt - 2 -5.51 mm -1.58 mm -2.4 m 564 keV 0 eV 3.48 mm 3.92 mm Target Transportation - 3 -2.4 m -2.21 cm -1.64 m 564 keV 0 eV 2.51 m 2.52 m Tracker Transportation - 4 -2.91 m -2.64 cm -1.48 m 564 keV 0 eV 53.5 cm 3.05 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 117 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.19 mm -1.55 mm -2.4 m 71.3 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.19 mm -1.55 mm -2.4 m 0 eV 71.3 keV 16 mum 16 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 116, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -854 mum -643 mum -2.4 m 409 keV 0 eV 0 fm 0 fm Target initStep - 1 -402 mum -39.1 mum -2.4 m 0 eV 88 keV 1.63 mm 1.63 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 116 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -402 mum -39.1 mum -2.4 m 321 keV 0 eV 0 fm 0 fm Target initStep - 1 -404 mum -38.3 mum -2.4 m 0 eV 321 keV 163 mum 163 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -884 mum -743 mum -2.4 m 784 keV 0 eV 0 fm 0 fm Target initStep - 1 -802 mum -824 mum -2.4 m 441 keV 0 eV 410 mum 410 mum Target compt - 2 -1.37 mm -1.24 mm -2.4 m 396 keV 0 eV 843 mum 1.25 mm Target compt - 3 -4.09 mm -1.36 mm -2.4 m 0 eV 88 keV 4.27 mm 5.52 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 115 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.09 mm -1.36 mm -2.4 m 308 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.09 mm -1.37 mm -2.4 m 0 eV 308 keV 155 mum 155 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 115 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.37 mm -1.24 mm -2.4 m 44.5 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.37 mm -1.24 mm -2.4 m 0 eV 44.5 keV 7.45 mum 7.45 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 115 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -802 mum -824 mum -2.4 m 343 keV 0 eV 0 fm 0 fm Target initStep - 1 -794 mum -823 mum -2.4 m 0 eV 343 keV 180 mum 180 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 389 mum 97.1 mum -2.41 m 688 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.16 mm -1.93 mm -2.4 m 688 keV 0 eV 6.54 mm 6.54 mm Target Transportation - 2 -41.3 cm -54.1 cm -80 cm 688 keV 0 eV 1.74 m 1.74 m Tracker Transportation - 3 -46.5 cm -60.8 cm -60 cm 688 keV 0 eV 21.7 cm 1.96 m Chamber Transportation - 4 -61.9 cm -81.1 cm 0 fm 688 keV 0 eV 65.2 cm 2.61 m Tracker Transportation - 5 -67.1 cm -87.8 cm 20 cm 688 keV 0 eV 21.7 cm 2.83 m Chamber Transportation - 6 -82.6 cm -1.08 m 80 cm 688 keV 0 eV 65.2 cm 3.48 m Tracker Transportation - 7 -87.7 cm -1.15 m 1 m 688 keV 0 eV 21.7 cm 3.7 m Chamber Transportation - 8 -1.03 m -1.35 m 1.6 m 688 keV 0 eV 65.2 cm 4.35 m Tracker Transportation - 9 -1.08 m -1.42 m 1.8 m 688 keV 0 eV 21.7 cm 4.57 m Chamber Transportation - 10 -1.24 m -1.62 m 2.4 m 688 keV 0 eV 65.2 cm 5.22 m Tracker Transportation - 11 -1.37 m -1.79 m 2.91 m 688 keV 0 eV 55.4 cm 5.77 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 417 mum 121 mum -2.41 m 505 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.21 mum -408 mum -2.4 m 370 keV 0 eV 1.92 mm 1.92 mm Target compt - 2 -64 mum -523 mum -2.4 m 0 eV 88 keV 135 mum 2.06 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 113 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -64 mum -523 mum -2.4 m 282 keV 0 eV 0 fm 0 fm Target initStep - 1 -68.8 mum -529 mum -2.4 m 0 eV 282 keV 136 mum 136 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 113 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.21 mum -408 mum -2.4 m 135 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.88 mum -407 mum -2.4 m 0 eV 135 keV 44.8 mum 44.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 297 mum 239 mum -2.41 m 1.49 MeV 0 eV 0 fm 0 fm Target initStep - 1 80.3 mum -896 mum -2.4 m 1.49 MeV 0 eV 6.97 mm 6.97 mm Target Transportation - 2 -2.51 cm -13.3 cm -1.6 m 1.49 MeV 0 eV 81.1 cm 81.8 cm Tracker Transportation - 3 -3.14 cm -16.6 cm -1.4 m 1.49 MeV 0 eV 20.3 cm 1.02 m Chamber Transportation - 4 -5.03 cm -26.5 cm -80 cm 1.49 MeV 0 eV 60.8 cm 1.63 m Tracker Transportation - 5 -5.66 cm -29.8 cm -60 cm 1.49 MeV 0 eV 20.3 cm 1.83 m Chamber Transportation - 6 -7.55 cm -39.7 cm -0.114 fm 1.49 MeV 0 eV 60.8 cm 2.44 m Tracker Transportation - 7 -8.18 cm -43 cm 20 cm 1.49 MeV 0 eV 20.3 cm 2.64 m Chamber Transportation - 8 -10.1 cm -52.9 cm 80 cm 1.49 MeV 0 eV 60.8 cm 3.25 m Tracker Transportation - 9 -10.7 cm -56.2 cm 1 m 1.49 MeV 0 eV 20.3 cm 3.45 m Chamber Transportation - 10 -12.6 cm -66.2 cm 1.6 m 1.49 MeV 0 eV 60.8 cm 4.06 m Tracker Transportation - 11 -13.2 cm -69.5 cm 1.8 m 1.49 MeV 0 eV 20.3 cm 4.27 m Chamber Transportation - 12 -15.1 cm -79.4 cm 2.4 m 1.49 MeV 0 eV 60.8 cm 4.87 m Tracker Transportation - 13 -16.7 cm -87.8 cm 2.91 m 1.49 MeV 0 eV 51.7 cm 5.39 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 505 mum -442 mum -2.41 m 556 keV 0 eV 0 fm 0 fm Target initStep - 1 444 mum -491 mum -2.41 m 535 keV 0 eV 2.52 mm 2.52 mm Target compt - 2 1.97 mm -276 mum -2.4 m 535 keV 0 eV 6.38 mm 8.9 mm Target Transportation - 3 19.9 cm 2.75 cm -1.6 m 535 keV 0 eV 82.4 cm 83.3 cm Tracker Transportation - 4 24 cm 3.33 cm -1.43 m 535 keV 0 eV 17.3 cm 1.01 m Chamber Transportation - 5 39.5 cm 5.52 cm -80 cm 535 keV 0 eV 65.1 cm 1.66 m Tracker Transportation - 6 44.5 cm 6.22 cm -60 cm 535 keV 0 eV 20.6 cm 1.86 m Chamber Transportation - 7 59.2 cm 8.3 cm 0 fm 535 keV 0 eV 61.8 cm 2.48 m Tracker Transportation - 8 64.1 cm 8.99 cm 20 cm 535 keV 0 eV 20.6 cm 2.69 m Chamber Transportation - 9 78.9 cm 11.1 cm 80 cm 535 keV 0 eV 61.8 cm 3.31 m Tracker Transportation - 10 83.8 cm 11.8 cm 1 m 535 keV 0 eV 20.6 cm 3.51 m Chamber Transportation - 11 98.6 cm 13.8 cm 1.6 m 535 keV 0 eV 61.8 cm 4.13 m Tracker Transportation - 12 1.03 m 14.5 cm 1.8 m 535 keV 0 eV 20.6 cm 4.34 m Chamber Transportation - 13 1.18 m 16.6 cm 2.4 m 535 keV 0 eV 61.8 cm 4.95 m Tracker Transportation - 14 1.31 m 18.4 cm 2.91 m 535 keV 0 eV 52.5 cm 5.48 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 111 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 444 mum -491 mum -2.41 m 21.2 keV 0 eV 0 fm 0 fm Target initStep - 1 444 mum -491 mum -2.41 m 0 eV 21.2 keV 2.24 mum 2.24 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 46, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -10.7 mum -36.4 mum -2.42 m 41.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 86 mum -463 mum -2.4 m 0 eV 0 eV 1.19 cm 1.19 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 127, Parent ID = 46 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 86 mum -463 mum -2.4 m 21.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.1 mm -1.13 mm -2.4 m 16.6 MeV 4.28 MeV 3.15 mm 3.15 mm Target eBrem - 2 680 mum -1.1 mm -2.4 m 8.32 MeV 1.53 MeV 1.13 mm 4.28 mm Target eBrem - 3 703 mum -1.21 mm -2.4 m 8.09 MeV 231 keV 233 mum 4.51 mm Target Transportation - 4 -6.67 cm -7.47 cm -2.21 m 8 MeV 41.6 keV 21.8 cm 22.3 cm Tracker eIoni - 5 -42.1 cm -43.3 cm -1.3 m 7.79 MeV 203 keV 1.04 m 1.26 m Tracker eIoni - 6 -54.9 cm -61.2 cm -1.08 m 7.68 MeV 67.5 keV 31.1 cm 1.57 m Tracker eIoni - 7 -1.93 m -2.24 m 64.3 cm 7.18 MeV 499 keV 2.75 m 4.33 m Tracker eIoni - 8 -2.05 m -2.4 m 82 cm 7.13 MeV 44.8 keV 26.9 cm 4.6 m Tracker Transportation - 9 -2.39 m -2.91 m 1.35 m 6.98 MeV 150 keV 80.8 cm 5.4 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 127 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -54.9 cm -61.2 cm -1.08 m 51.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -56.2 cm -63.3 cm -1.02 m 13.6 keV 37.6 keV 3.93 cm 3.93 cm Tracker eIoni - 2 -56.2 cm -63.4 cm -1.02 m 0 eV 13.6 keV 3.91 mm 4.32 cm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 127 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.67 cm -7.47 cm -2.21 m 49.4 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -6.4 cm -6.07 cm -2.19 m 0 eV 49.4 keV 3.89 cm 3.89 cm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 129, Parent ID = 127 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 680 mum -1.1 mm -2.4 m 6.71 MeV 0 eV 0 fm 0 fm Target initStep - 1 711 mum -1.22 mm -2.4 m 6.71 MeV 0 eV 232 mum 232 mum Target Transportation - 2 60.9 cm -2.4 m 1.38 m 6.71 MeV 0 eV 4.52 m 4.52 m Tracker Transportation - 3 73.8 cm -2.91 m 2.18 m 6.71 MeV 0 eV 96 cm 5.48 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 128, Parent ID = 127 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.1 mm -1.13 mm -2.4 m 672 keV 0 eV 0 fm 0 fm Target initStep - 1 567 mum -1.19 mm -2.4 m 672 keV 0 eV 1.28 mm 1.28 mm Target Transportation - 2 -1.1 m -13.5 cm 0 fm 672 keV 0 eV 2.64 m 2.65 m Tracker Transportation - 3 -1.1 m -13.5 cm 2.2 mm 672 keV 0 eV 2.42 mm 2.65 m Chamber Transportation - 4 -1.47 m -18 cm 80 cm 672 keV 0 eV 87.9 cm 3.53 m Tracker Transportation - 5 -1.54 m -18.8 cm 94.2 cm 672 keV 0 eV 15.6 cm 3.68 m Chamber Transportation - 6 -1.84 m -22.5 cm 1.6 m 672 keV 0 eV 72.5 cm 4.41 m Tracker Transportation - 7 -1.93 m -23.6 cm 1.8 m 672 keV 0 eV 22 cm 4.63 m Chamber Transportation - 8 -2.21 m -26.9 cm 2.4 m 672 keV 0 eV 66.1 cm 5.29 m Tracker Transportation - 9 -2.44 m -29.8 cm 2.91 m 672 keV 0 eV 56.2 cm 5.85 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 46 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 86 mum -463 mum -2.4 m 18.6 MeV 0 eV 0 fm 0 fm Target initStep - 1 -148 mum 704 mum -2.4 m 14.5 MeV 3.5 MeV 2.63 mm 2.63 mm Target eBrem - 2 -126 mum 1.24 mm -2.4 m 11.7 MeV 2.42 MeV 1.57 mm 4.2 mm Target eBrem - 3 64.3 mum 1.35 mm -2.4 m 7.73 MeV 1 MeV 494 mum 4.7 mm Target eBrem - 4 20.7 mum 1.52 mm -2.4 m 6.38 MeV 1.35 MeV 361 mum 5.06 mm Target Transportation - 5 -24.3 cm 14.6 cm -2.15 m 6.3 MeV 69.5 keV 37.7 cm 38.2 cm Tracker eIoni - 6 -48 cm 27.6 cm -1.92 m 6.21 MeV 60.4 keV 35.4 cm 73.6 cm Tracker eIoni - 7 -50.2 cm 28.8 cm -1.9 m 6.19 MeV 4.26 keV 3.64 cm 77.3 cm Tracker eIoni - 8 -1.02 m 51.9 cm -1.26 m 6.03 MeV 159 keV 85 cm 1.62 m Tracker eIoni - 9 -1.23 m 68.3 cm -93.7 cm 5.95 MeV 61.2 keV 42.5 cm 2.05 m Tracker eIoni - 10 -1.78 m 99 cm -3.01 cm 5.75 MeV 202 keV 1.11 m 3.16 m Tracker eIoni - 11 -1.88 m 1.05 m 19.8 cm 5.69 MeV 33.6 keV 25.7 cm 3.41 m Tracker eIoni - 12 -1.9 m 1.07 m 23.3 cm 5.67 MeV 6.4 keV 3.99 cm 3.45 m Tracker eIoni - 13 -2.4 m 1.52 m 1.72 m 5.35 MeV 301 keV 1.65 m 5.1 m Tracker eIoni - 14 -2.4 m 1.53 m 1.73 m 5.35 MeV 3.2 keV 1.5 cm 5.12 m Tracker Transportation - 15 -2.41 m 1.53 m 1.75 m 5.35 MeV 2.39 keV 2.52 cm 5.14 m World eIoni - 16 -2.73 m 1.8 m 2.56 m 5.12 MeV 158 keV 91 cm 6.05 m World eIoni - 17 -2.82 m 1.81 m 2.85 m 5.07 MeV 56 keV 30.6 cm 6.36 m World eIoni - 18 -2.83 m 1.81 m 2.91 m 5.06 MeV 10.3 keV 5.9 cm 6.42 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.73 m 1.8 m 2.56 m 67.7 keV 0 eV 0 fm 0 fm World initStep - 1 -2.75 m 1.83 m 2.56 m 0 eV 67.7 keV 6.89 cm 6.89 cm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.4 m 1.52 m 1.72 m 20.4 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -2.4 m 1.52 m 1.72 m 0 eV 20.4 keV 7.9 mm 7.9 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.9 m 1.07 m 23.3 cm 10.4 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -1.9 m 1.07 m 23.3 cm 0 eV 10.4 keV 2.42 mm 2.42 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.88 m 1.05 m 19.8 cm 28 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -1.89 m 1.05 m 19.7 cm 0 eV 28 keV 1.41 cm 1.41 cm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.23 m 68.3 cm -93.7 cm 9.74 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -1.23 m 68.4 cm -93.7 cm 0 eV 9.74 keV 2.16 mm 2.16 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.02 m 51.9 cm -1.26 m 10.5 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -1.02 m 51.8 cm -1.26 m 0 eV 10.5 keV 2.47 mm 2.47 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -50.2 cm 28.8 cm -1.9 m 8.8 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -50.2 cm 28.7 cm -1.9 m 0 eV 8.8 keV 1.82 mm 1.82 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -48 cm 27.6 cm -1.92 m 28.9 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -48.6 cm 27.6 cm -1.93 m 0 eV 28.9 keV 1.49 cm 1.49 cm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -24.3 cm 14.6 cm -2.15 m 9.89 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -24.3 cm 14.5 cm -2.15 m 0 eV 9.89 keV 2.21 mm 2.21 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 134, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 64.3 mum 1.35 mm -2.4 m 2.98 MeV 0 eV 0 fm 0 fm Target initStep - 1 16.2 mum 1.51 mm -2.4 m 2.98 MeV 0 eV 319 mum 319 mum Target Transportation - 2 -71.7 cm 2.4 m 1.65 m 2.98 MeV 0 eV 4.76 m 4.76 m Tracker Transportation - 3 -86.9 cm 2.91 m 2.51 m 2.98 MeV 0 eV 1.01 m 5.77 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 133, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -126 mum 1.24 mm -2.4 m 317 keV 0 eV 0 fm 0 fm Target initStep - 1 128 mum 1.66 mm -2.4 m 317 keV 0 eV 858 mum 858 mum Target Transportation - 2 1.43 m 2.4 m 1.55 m 317 keV 0 eV 4.84 m 4.84 m Tracker Transportation - 3 1.74 m 2.91 m 2.39 m 317 keV 0 eV 1.03 m 5.87 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 132, Parent ID = 126 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -148 mum 704 mum -2.4 m 698 keV 0 eV 0 fm 0 fm Target initStep - 1 331 mum 1.63 mm -2.4 m 698 keV 0 eV 2.16 mm 2.16 mm Target Transportation - 2 1.01 m 1.95 m 1.6 m 698 keV 0 eV 4.56 m 4.56 m Tracker Transportation - 3 1.02 m 1.97 m 1.64 m 698 keV 0 eV 4.47 cm 4.61 m Chamber Transportation - 4 1.22 m 2.34 m 2.4 m 698 keV 0 eV 86.8 cm 5.48 m Tracker Transportation - 5 1.34 m 2.59 m 2.91 m 698 keV 0 eV 58.2 cm 6.06 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 45, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.91 mum -31.9 mum -2.42 m 4.71 MeV 0 eV 0 fm 0 fm Target initStep - 1 -33.4 mum -103 mum -2.41 m 0 eV 0 eV 1.76 mm 1.76 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 145, Parent ID = 45 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -33.4 mum -103 mum -2.41 m 2.02 MeV 0 eV 0 fm 0 fm Target initStep - 1 -670 mum -707 mum -2.41 m 846 keV 1.17 MeV 1.17 mm 1.17 mm Target eBrem - 2 -730 mum -717 mum -2.41 m 0 eV 846 keV 597 mum 1.76 mm Target eIoni - 3 -730 mum -717 mum -2.41 m 0 eV 0 eV 0 fm 1.76 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 147, Parent ID = 145 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -730 mum -717 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.67 mm -1.49 mm -2.41 m 353 keV 0 eV 4.46 mm 4.46 mm Target compt - 2 -6.93 mm -550 mum -2.41 m 0 eV 88 keV 4.44 mm 8.9 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 147 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.93 mm -550 mum -2.41 m 265 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.94 mm -551 mum -2.41 m 0 eV 265 keV 124 mum 124 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 147 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.67 mm -1.49 mm -2.41 m 158 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.67 mm -1.49 mm -2.41 m 0 eV 158 keV 57 mum 57 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 146, Parent ID = 145 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -730 mum -717 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.31 mm 93.2 mum -2.42 m 0 eV 88 keV 4.69 mm 4.69 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 146 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.31 mm 93.2 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 1.32 mm 96.5 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 45 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -33.4 mum -103 mum -2.41 m 1.68 MeV 0 eV 0 fm 0 fm Target initStep - 1 -381 mum -262 mum -2.41 m 621 keV 577 keV 642 mum 642 mum Target eBrem - 2 -384 mum -282 mum -2.41 m 0 eV 621 keV 401 mum 1.04 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 151, Parent ID = 144 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -381 mum -262 mum -2.41 m 478 keV 0 eV 0 fm 0 fm Target initStep - 1 -603 mum -9.64 mum -2.41 m 444 keV 0 eV 336 mum 336 mum Target compt - 2 -2.09 mm 3.59 mm -2.41 m 355 keV 0 eV 4.01 mm 4.35 mm Target compt - 3 -2.99 mm 5.03 mm -2.41 m 0 eV 88 keV 1.96 mm 6.3 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 151 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.99 mm 5.03 mm -2.41 m 267 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.98 mm 5.03 mm -2.41 m 0 eV 267 keV 126 mum 126 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 151 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.09 mm 3.59 mm -2.41 m 89 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.09 mm 3.59 mm -2.41 m 0 eV 89 keV 23 mum 23 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 151 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -603 mum -9.64 mum -2.41 m 34 keV 0 eV 0 fm 0 fm Target initStep - 1 -604 mum -9.72 mum -2.41 m 0 eV 34 keV 4.79 mum 4.79 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 44, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 15.3 mum -23.4 mum -2.42 m 10 MeV 0 eV 0 fm 0 fm Target initStep - 1 -135 mum -273 mum -2.41 m 0 eV 0 eV 6.47 mm 6.47 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 156, Parent ID = 44 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -135 mum -273 mum -2.41 m 2.54 MeV 0 eV 0 fm 0 fm Target initStep - 1 -137 mum -342 mum -2.41 m 0 eV 2.54 MeV 2.03 mm 2.03 mm Target eIoni - 2 -137 mum -342 mum -2.41 m 0 eV 0 eV 0 fm 2.03 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 158, Parent ID = 156 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -137 mum -342 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.82 mm -7.67 mm -2.41 m 0 eV 88 keV 7.6 mm 7.6 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 158 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.82 mm -7.67 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.82 mm -7.68 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 157, Parent ID = 156 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -137 mum -342 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 2.22 mm 9.9 mm -2.41 m 187 keV 0 eV 1.06 cm 1.06 cm Target compt - 2 2.18 mm 9.88 mm -2.41 m 0 eV 88 keV 47 mum 1.07 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 161, Parent ID = 157 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.18 mm 9.88 mm -2.41 m 99.3 keV 0 eV 0 fm 0 fm Target initStep - 1 2.18 mm 9.88 mm -2.41 m 0 eV 99.3 keV 27.3 mum 27.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 157 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.22 mm 9.9 mm -2.41 m 324 keV 0 eV 0 fm 0 fm Target initStep - 1 2.22 mm 9.91 mm -2.41 m 0 eV 324 keV 166 mum 166 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 155, Parent ID = 44 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -135 mum -273 mum -2.41 m 6.46 MeV 0 eV 0 fm 0 fm Target initStep - 1 463 mum -344 mum -2.41 m 4.33 MeV 1.32 MeV 1.02 mm 1.02 mm Target eBrem - 2 660 mum -1.1 mm -2.41 m 2.26 MeV 1.77 MeV 1.4 mm 2.42 mm Target eBrem - 3 661 mum -1.1 mm -2.41 m 1.73 MeV 284 eV 2.84 mum 2.43 mm Target eBrem - 4 690 mum -1.07 mm -2.41 m 0 eV 1.73 MeV 1.33 mm 3.76 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 164, Parent ID = 155 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 661 mum -1.1 mm -2.41 m 529 keV 0 eV 0 fm 0 fm Target initStep - 1 808 mum -417 mum -2.4 m 207 keV 0 eV 4.84 mm 4.84 mm Target compt - 2 2.19 mm -457 mum -2.4 m 0 eV 88 keV 1.63 mm 6.47 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 164 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.19 mm -457 mum -2.4 m 119 keV 0 eV 0 fm 0 fm Target initStep - 1 2.19 mm -455 mum -2.4 m 0 eV 119 keV 36.7 mum 36.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 165, Parent ID = 164 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 808 mum -417 mum -2.4 m 322 keV 0 eV 0 fm 0 fm Target initStep - 1 805 mum -416 mum -2.4 m 0 eV 322 keV 164 mum 164 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 163, Parent ID = 155 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 660 mum -1.1 mm -2.41 m 305 keV 0 eV 0 fm 0 fm Target initStep - 1 1.13 mm -1.4 mm -2.41 m 0 eV 88 keV 2.82 mm 2.82 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 167, Parent ID = 163 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.13 mm -1.4 mm -2.41 m 217 keV 0 eV 0 fm 0 fm Target initStep - 1 1.12 mm -1.4 mm -2.41 m 0 eV 217 keV 92.3 mum 92.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 162, Parent ID = 155 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 463 mum -344 mum -2.41 m 808 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.58 mm 2.57 mm -2.4 m 808 keV 0 eV 1.01 cm 1.01 cm Target Transportation - 2 -34.9 cm 49.9 cm -80 cm 808 keV 0 eV 1.71 m 1.72 m Tracker Transportation - 3 -39.3 cm 56 cm -60 cm 808 keV 0 eV 21.4 cm 1.93 m Chamber Transportation - 4 -52.3 cm 74.6 cm 0 fm 808 keV 0 eV 64.2 cm 2.58 m Tracker Transportation - 5 -56.7 cm 80.8 cm 20 cm 808 keV 0 eV 21.4 cm 2.79 m Chamber Transportation - 6 -69.7 cm 99.4 cm 80 cm 808 keV 0 eV 64.2 cm 3.43 m Tracker Transportation - 7 -74.1 cm 1.06 m 1 m 808 keV 0 eV 21.4 cm 3.65 m Chamber Transportation - 8 -87.1 cm 1.24 m 1.6 m 808 keV 0 eV 64.2 cm 4.29 m Tracker Transportation - 9 -91.5 cm 1.3 m 1.8 m 808 keV 0 eV 21.4 cm 4.5 m Chamber Transportation - 10 -1.05 m 1.49 m 2.4 m 808 keV 0 eV 64.2 cm 5.14 m Tracker Transportation - 11 -1.16 m 1.65 m 2.91 m 808 keV 0 eV 54.5 cm 5.69 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 43, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 16.9 mum 52.9 mum -2.42 m 5.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 12.1 mum 82.5 mum -2.4 m 5.1 MeV 0 eV 1.89 cm 1.89 cm Target Transportation - 2 -194 mum 1.33 mm -1.6 m 5.1 MeV 0 eV 80 cm 81.9 cm Tracker Transportation - 3 -245 mum 1.65 mm -1.4 m 5.1 MeV 0 eV 20 cm 1.02 m Chamber Transportation - 4 -400 mum 2.59 mm -80 cm 5.1 MeV 0 eV 60 cm 1.62 m Tracker Transportation - 5 -451 mum 2.9 mm -60 cm 5.1 MeV 0 eV 20 cm 1.82 m Chamber Transportation - 6 -605 mum 3.84 mm -0.114 fm 5.1 MeV 0 eV 60 cm 2.42 m Tracker Transportation - 7 -657 mum 4.15 mm 20 cm 5.1 MeV 0 eV 20 cm 2.62 m Chamber Transportation - 8 -811 mum 5.09 mm 80 cm 5.1 MeV 0 eV 60 cm 3.22 m Tracker Transportation - 9 -863 mum 5.4 mm 1 m 5.1 MeV 0 eV 20 cm 3.42 m Chamber Transportation - 10 -1.02 mm 6.34 mm 1.6 m 5.1 MeV 0 eV 60 cm 4.02 m Tracker Transportation - 11 -1.07 mm 6.65 mm 1.8 m 5.1 MeV 0 eV 20 cm 4.22 m Chamber Transportation - 12 -1.22 mm 7.59 mm 2.4 m 5.1 MeV 0 eV 60 cm 4.82 m Tracker Transportation - 13 -1.35 mm 8.39 mm 2.91 m 5.1 MeV 0 eV 51 cm 5.33 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.3 mum 25.9 mum -2.42 m 77.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 39.7 mum 82.6 mum -2.42 m 0 eV 0 eV 1.66 mm 1.66 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 169, Parent ID = 42 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 39.7 mum 82.6 mum -2.42 m 26.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 53.8 mum 78.9 mum -2.42 m 24.5 MeV 252 keV 173 mum 173 mum Target eBrem - 2 128 mum 58.7 mum -2.42 m 23.7 MeV 433 keV 399 mum 572 mum Target eBrem - 3 181 mum 71.1 mum -2.42 m 11.9 MeV 111 keV 116 mum 687 mum Target eBrem - 4 431 mum -1.06 mm -2.41 m 1.96 MeV 5.93 MeV 2.86 mm 3.55 mm Target eBrem - 5 601 mum -1.19 mm -2.41 m 0 eV 1.96 MeV 1.55 mm 5.1 mm Target eIoni - 6 601 mum -1.19 mm -2.41 m 0 eV 0 eV 0 fm 5.1 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 175, Parent ID = 169 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 601 mum -1.19 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.69 mm -9.82 mm -2.4 m 205 keV 0 eV 1.89 cm 1.89 cm Target compt - 2 -9.59 mm -9.71 mm -2.4 m 0 eV 88 keV 152 mum 1.91 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.59 mm -9.71 mm -2.4 m 117 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.59 mm -9.71 mm -2.4 m 0 eV 117 keV 35.7 mum 35.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.69 mm -9.82 mm -2.4 m 306 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.7 mm -9.82 mm -2.4 m 0 eV 306 keV 153 mum 153 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 174, Parent ID = 169 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 601 mum -1.19 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.59 mm -364 mum -2.42 m 266 keV 0 eV 1.81 mm 1.81 mm Target compt - 2 5.15 mm -1.93 mm -2.41 m 0 eV 88 keV 4.09 mm 5.9 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 174 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.15 mm -1.93 mm -2.41 m 178 keV 0 eV 0 fm 0 fm Target initStep - 1 5.15 mm -1.93 mm -2.41 m 0 eV 178 keV 68.8 mum 68.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 174 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.59 mm -364 mum -2.42 m 245 keV 0 eV 0 fm 0 fm Target initStep - 1 1.59 mm -360 mum -2.42 m 0 eV 245 keV 110 mum 110 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 173, Parent ID = 169 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 431 mum -1.06 mm -2.41 m 4.03 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.58 cm -1.22 cm -2.4 m 4.03 MeV 0 eV 2.38 cm 2.38 cm Target Transportation - 2 2.4 m -1.75 m -17.8 cm 4.03 MeV 0 eV 3.69 m 3.71 m Tracker Transportation - 3 2.91 m -2.12 m 29.7 cm 4.03 MeV 0 eV 79 cm 4.5 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 172, Parent ID = 169 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 181 mum 71.1 mum -2.42 m 11.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.8 mm 473 mum -2.41 m 0 eV 0 eV 3.24 mm 3.24 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 181, Parent ID = 172 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.8 mm 473 mum -2.41 m 282 keV 0 eV 0 fm 0 fm Target initStep - 1 1.81 mm 473 mum -2.41 m 0 eV 282 keV 133 mum 133 mum Target eIoni - 2 1.81 mm 473 mum -2.41 m 0 eV 0 eV 0 fm 133 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 183, Parent ID = 181 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.81 mm 473 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -190 mum -1.26 mm -2.41 m 189 keV 0 eV 4.19 mm 4.19 mm Target compt - 2 56.2 mum 77.7 mum -2.41 m 0 eV 88 keV 1.43 mm 5.62 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 183 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 56.2 mum 77.7 mum -2.41 m 101 keV 0 eV 0 fm 0 fm Target initStep - 1 57.7 mum 78.5 mum -2.41 m 0 eV 101 keV 27.9 mum 27.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 183 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -190 mum -1.26 mm -2.41 m 322 keV 0 eV 0 fm 0 fm Target initStep - 1 -195 mum -1.26 mm -2.41 m 0 eV 322 keV 165 mum 165 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 182, Parent ID = 181 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.81 mm 473 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 2.03 mm 661 mum -2.41 m 337 keV 0 eV 456 mum 456 mum Target compt - 2 1.43 mm 7.44 mm -2.42 m 0 eV 88 keV 6.89 mm 7.35 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 182 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.43 mm 7.44 mm -2.42 m 249 keV 0 eV 0 fm 0 fm Target initStep - 1 1.43 mm 7.45 mm -2.42 m 0 eV 249 keV 113 mum 113 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 182 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.03 mm 661 mum -2.41 m 174 keV 0 eV 0 fm 0 fm Target initStep - 1 2.03 mm 660 mum -2.41 m 0 eV 174 keV 66.4 mum 66.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 172 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.8 mm 473 mum -2.41 m 10.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.81 mm 476 mum -2.41 m 8.56 MeV 13.6 keV 17.3 mum 17.3 mum Target eBrem - 2 1.96 mm 304 mum -2.41 m 7.47 MeV 678 keV 622 mum 639 mum Target eBrem - 3 453 mum 2.32 mm -2.41 m 4.08 MeV 2.96 MeV 2.71 mm 3.35 mm Target eBrem - 4 530 mum 2.32 mm -2.41 m 3.21 MeV 176 keV 80.1 mum 3.43 mm Target eBrem - 5 646 mum 2.44 mm -2.41 m 0 eV 3.21 MeV 2.52 mm 5.95 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 191, Parent ID = 180 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 530 mum 2.32 mm -2.41 m 694 keV 0 eV 0 fm 0 fm Target initStep - 1 1.17 mm 2.8 mm -2.41 m 0 eV 88 keV 1.17 mm 1.17 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 192, Parent ID = 191 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.17 mm 2.8 mm -2.41 m 606 keV 0 eV 0 fm 0 fm Target initStep - 1 1.25 mm 2.85 mm -2.41 m 176 keV 430 keV 311 mum 311 mum Target eBrem - 2 1.24 mm 2.85 mm -2.41 m 0 eV 176 keV 67.4 mum 378 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 190, Parent ID = 180 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 453 mum 2.32 mm -2.41 m 426 keV 0 eV 0 fm 0 fm Target initStep - 1 3.6 mm 1.65 mm -2.41 m 0 eV 88 keV 3.23 mm 3.23 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 193, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.6 mm 1.65 mm -2.41 m 338 keV 0 eV 0 fm 0 fm Target initStep - 1 3.61 mm 1.64 mm -2.41 m 0 eV 338 keV 176 mum 176 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 189, Parent ID = 180 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.96 mm 304 mum -2.41 m 416 keV 0 eV 0 fm 0 fm Target initStep - 1 1.98 mm 408 mum -2.41 m 404 keV 0 eV 305 mum 305 mum Target compt - 2 2.86 mm 991 mum -2.41 m 0 eV 88 keV 3.29 mm 3.6 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 195, Parent ID = 189 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.86 mm 991 mum -2.41 m 316 keV 0 eV 0 fm 0 fm Target initStep - 1 2.87 mm 992 mum -2.41 m 0 eV 316 keV 160 mum 160 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 194, Parent ID = 189 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.98 mm 408 mum -2.41 m 11.6 keV 0 eV 0 fm 0 fm Target initStep - 1 1.98 mm 408 mum -2.41 m 0 eV 11.6 keV 881 nm 881 nm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 188, Parent ID = 180 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.81 mm 476 mum -2.41 m 1.81 MeV 0 eV 0 fm 0 fm Target initStep - 1 9.7 mm 2.66 mm -2.4 m 1.81 MeV 0 eV 1.65 cm 1.65 cm Target Transportation - 2 1.61 m 44.4 cm 50.1 cm 1.25 MeV 0 eV 3.34 m 3.36 m Tracker compt - 3 2.4 m 46.1 cm 1.01 m 1.25 MeV 0 eV 94.2 cm 4.3 m Tracker Transportation - 4 2.91 m 47.1 cm 1.34 m 1.25 MeV 0 eV 60.6 cm 4.91 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 196, Parent ID = 188 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.61 m 44.4 cm 50.1 cm 557 keV 0 eV 0 fm 0 fm Tracker initStep - 1 1.54 m 51.1 cm 78.6 cm 507 keV 50 keV 31.5 cm 31.5 cm Tracker eIoni - 2 1.53 m 52.2 cm 80 cm 504 keV 2.66 keV 2.01 cm 33.6 cm Tracker Transportation - 3 1.52 m 53.7 cm 86.5 cm 439 keV 65.1 keV 12.4 cm 46 cm Chamber msc - 4 1.54 m 54.6 cm 87.2 cm 429 keV 10.3 keV 2.21 cm 48.2 cm Chamber Transportation - 5 1.54 m 54.6 cm 87.2 cm 429 keV 0 eV 0 fm 48.2 cm Tracker Transportation - 6 1.54 m 58.2 cm 89.8 cm 374 keV 54.9 keV 9.88 cm 58.1 cm Chamber msc - 7 1.54 m 58.2 cm 89.8 cm 374 keV 0 eV 287 mum 58.1 cm Chamber Transportation - 8 1.62 m 62.4 cm 90.4 cm 317 keV 18.5 keV 10 cm 68.1 cm Tracker eIoni - 9 1.79 m 71.9 cm 87.3 cm 236 keV 42.3 keV 19.3 cm 87.4 cm Tracker eIoni - 10 1.94 m 79.7 cm 95.6 cm 166 keV 69.7 keV 23.9 cm 1.11 m Tracker msc - 11 1.97 m 82.6 cm 97.4 cm 119 keV 22.4 keV 5.4 cm 1.17 m Tracker eIoni - 12 1.97 m 83.8 cm 1.05 m 59 keV 44.1 keV 9.03 cm 1.26 m Tracker eIoni - 13 1.95 m 82.7 cm 1.06 m 0 eV 59 keV 5.39 cm 1.31 m Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 196 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.97 m 83.8 cm 1.05 m 16.1 keV 0 eV 0 fm 0 fm Tracker initStep - 1 1.97 m 84 cm 1.05 m 0 eV 16.1 keV 5.18 mm 5.18 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 199, Parent ID = 196 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.97 m 82.6 cm 97.4 cm 24.7 keV 0 eV 0 fm 0 fm Tracker initStep - 1 1.98 m 82.7 cm 97.3 cm 0 eV 24.7 keV 1.12 cm 1.12 cm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 196 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.79 m 71.9 cm 87.3 cm 38.5 keV 0 eV 0 fm 0 fm Tracker initStep - 1 1.78 m 72.4 cm 88.2 cm 0 eV 38.5 keV 2.49 cm 2.49 cm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 197, Parent ID = 196 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.62 m 62.4 cm 90.4 cm 38.7 keV 0 eV 0 fm 0 fm Tracker initStep - 1 1.62 m 61.8 cm 91.1 cm 0 eV 38.7 keV 2.51 cm 2.51 cm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 171, Parent ID = 169 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 128 mum 58.7 mum -2.42 m 329 keV 0 eV 0 fm 0 fm Target initStep - 1 2.74 mm 972 mum -2.41 m 0 eV 88 keV 6.26 mm 6.26 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 171 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.74 mm 972 mum -2.41 m 241 keV 0 eV 0 fm 0 fm Target initStep - 1 2.74 mm 968 mum -2.41 m 0 eV 241 keV 108 mum 108 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 170, Parent ID = 169 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 53.8 mum 78.9 mum -2.42 m 1.51 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.11 mm 732 mum -2.4 m 1.51 MeV 0 eV 1.77 cm 1.77 cm Target Transportation - 2 9.56 cm 3.04 cm -1.6 m 1.51 MeV 0 eV 80.6 cm 82.4 cm Tracker Transportation - 3 11.9 cm 3.79 cm -1.4 m 1.51 MeV 0 eV 20.1 cm 1.03 m Chamber Transportation - 4 18.9 cm 6.01 cm -80 cm 1.51 MeV 0 eV 60.4 cm 1.63 m Tracker Transportation - 5 21.2 cm 6.75 cm -60 cm 1.51 MeV 0 eV 20.1 cm 1.83 m Chamber Transportation - 6 28.3 cm 8.98 cm 0 fm 1.51 MeV 0 eV 60.4 cm 2.44 m Tracker Transportation - 7 30.6 cm 9.72 cm 20 cm 1.51 MeV 0 eV 20.1 cm 2.64 m Chamber Transportation - 8 37.6 cm 12 cm 80 cm 1.51 MeV 0 eV 60.4 cm 3.24 m Tracker Transportation - 9 39.9 cm 12.7 cm 1 m 1.51 MeV 0 eV 20.1 cm 3.44 m Chamber Transportation - 10 47 cm 14.9 cm 1.6 m 1.51 MeV 0 eV 60.4 cm 4.05 m Tracker Transportation - 11 49.3 cm 15.7 cm 1.8 m 1.51 MeV 0 eV 20.1 cm 4.25 m Chamber Transportation - 12 56.3 cm 17.9 cm 2.4 m 1.51 MeV 0 eV 60.4 cm 4.85 m Tracker Transportation - 13 62.3 cm 19.8 cm 2.91 m 1.51 MeV 0 eV 51.4 cm 5.37 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 168, Parent ID = 42 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 39.7 mum 82.6 mum -2.42 m 49.9 MeV 0 eV 0 fm 0 fm Target initStep - 1 62.3 mum 57 mum -2.42 m 46.9 MeV 797 keV 683 mum 683 mum Target eBrem - 2 -457 mum 644 mum -2.41 m 42.8 MeV 3.33 MeV 2.38 mm 3.06 mm Target eBrem - 3 -749 mum 847 mum -2.41 m 24.6 MeV 1.07 MeV 899 mum 3.96 mm Target eBrem - 4 -777 mum 967 mum -2.41 m 23.5 MeV 405 keV 399 mum 4.36 mm Target eBrem - 5 -1.47 mm 609 mum -2.41 m 20.3 MeV 2.76 MeV 2.28 mm 6.64 mm Target eBrem - 6 -1.4 mm 1.24 mm -2.41 m 18.8 MeV 843 keV 638 mum 7.27 mm Target eBrem - 7 -1.16 mm 2 mm -2.41 m 14.7 MeV 1.06 MeV 873 mum 8.15 mm Target eBrem - 8 -988 mum 2.5 mm -2.41 m 12.7 MeV 1.68 MeV 543 mum 8.69 mm Target eBrem - 9 1.42 mm 3.04 mm -2.41 m 5.05 MeV 7.17 MeV 2.32 mm 1.1 cm Target eBrem - 10 2.51 mm 2.9 mm -2.41 m 2.11 MeV 2.62 MeV 2.28 mm 1.33 cm Target eBrem - 11 2.49 mm 2.79 mm -2.41 m 0 eV 2.11 MeV 1.64 mm 1.49 cm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 211, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.51 mm 2.9 mm -2.41 m 323 keV 0 eV 0 fm 0 fm Target initStep - 1 -614 mum -3.13 mm -2.42 m 0 eV 88 keV 1.08 cm 1.08 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 211 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -614 mum -3.13 mm -2.42 m 235 keV 0 eV 0 fm 0 fm Target initStep - 1 -621 mum -3.13 mm -2.42 m 0 eV 235 keV 104 mum 104 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 210, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.42 mm 3.04 mm -2.41 m 494 keV 0 eV 0 fm 0 fm Target initStep - 1 5.05 mm 1.02 cm -2.41 m 0 eV 88 keV 8.44 mm 8.44 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 213, Parent ID = 210 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.05 mm 1.02 cm -2.41 m 406 keV 0 eV 0 fm 0 fm Target initStep - 1 5.06 mm 1.02 cm -2.41 m 0 eV 406 keV 228 mum 228 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 209, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -988 mum 2.5 mm -2.41 m 291 keV 0 eV 0 fm 0 fm Target initStep - 1 370 mum 3.87 mm -2.41 m 164 keV 0 eV 2.03 mm 2.03 mm Target compt - 2 371 mum 3.86 mm -2.41 m 0 eV 88 keV 4.47 mum 2.04 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 215, Parent ID = 209 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 371 mum 3.86 mm -2.41 m 76.2 keV 0 eV 0 fm 0 fm Target initStep - 1 370 mum 3.86 mm -2.41 m 0 eV 76.2 keV 17.8 mum 17.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 214, Parent ID = 209 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 370 mum 3.87 mm -2.41 m 127 keV 0 eV 0 fm 0 fm Target initStep - 1 371 mum 3.87 mm -2.41 m 0 eV 127 keV 40.4 mum 40.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 208, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.16 mm 2 mm -2.41 m 2.99 MeV 0 eV 0 fm 0 fm Target initStep - 1 -853 mum 2.47 mm -2.41 m 1.46 MeV 0 eV 565 mum 565 mum Target compt - 2 1.15 cm 1.19 cm -2.4 m 1.46 MeV 0 eV 1.95 cm 2.01 cm Target Transportation - 3 2.4 m 1.84 m -11.8 cm 1.46 MeV 0 eV 3.78 m 3.8 m Tracker Transportation - 4 2.91 m 2.23 m 36.9 cm 1.46 MeV 0 eV 80.6 cm 4.6 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 216, Parent ID = 208 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -853 mum 2.47 mm -2.41 m 1.54 MeV 0 eV 0 fm 0 fm Target initStep - 1 -815 mum 2.57 mm -2.41 m 0 eV 1.54 MeV 1.17 mm 1.17 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 207, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.4 mm 1.24 mm -2.41 m 686 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.39 mm 1.26 mm -2.41 m 582 keV 0 eV 19.8 mum 19.8 mum Target compt - 2 -521 mum 7.95 mm -2.41 m 0 eV 88 keV 8.1 mm 8.12 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 218, Parent ID = 207 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -521 mum 7.95 mm -2.41 m 494 keV 0 eV 0 fm 0 fm Target initStep - 1 -523 mum 7.96 mm -2.41 m 0 eV 494 keV 297 mum 297 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 207 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.39 mm 1.26 mm -2.41 m 104 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.39 mm 1.26 mm -2.41 m 0 eV 104 keV 29.4 mum 29.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 206, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.47 mm 609 mum -2.41 m 474 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.49 mm 3.25 mm -2.41 m 0 eV 88 keV 2.64 mm 2.64 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 219, Parent ID = 206 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.49 mm 3.25 mm -2.41 m 386 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.48 mm 3.26 mm -2.41 m 0 eV 386 keV 213 mum 213 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 205, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -777 mum 967 mum -2.41 m 680 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.78 mm 2.76 mm -2.41 m 0 eV 88 keV 9.24 mm 9.24 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 220, Parent ID = 205 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.78 mm 2.76 mm -2.41 m 592 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.78 mm 2.77 mm -2.41 m 0 eV 592 keV 377 mum 377 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 204, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -749 mum 847 mum -2.41 m 17.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.77 mm 2.25 mm -2.41 m 0 eV 0 eV 6.21 mm 6.21 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 222, Parent ID = 204 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.77 mm 2.25 mm -2.41 m 5.32 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.9 mm 2.44 mm -2.41 m 0 eV 5.32 MeV 4.18 mm 4.18 mm Target eIoni - 2 -1.9 mm 2.44 mm -2.41 m 0 eV 0 eV 0 fm 4.18 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 224, Parent ID = 222 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.9 mm 2.44 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.09 mm 7.33 mm -2.4 m 438 keV 0 eV 6.7 mm 6.7 mm Target compt - 2 -6.21 mm 8.14 mm -2.4 m 0 eV 88 keV 1.38 mm 8.09 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 224 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.21 mm 8.14 mm -2.4 m 350 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.22 mm 8.15 mm -2.4 m 0 eV 350 keV 185 mum 185 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 225, Parent ID = 224 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.09 mm 7.33 mm -2.4 m 72.9 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.09 mm 7.33 mm -2.4 m 0 eV 72.9 keV 16.6 mum 16.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 223, Parent ID = 222 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.9 mm 2.44 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 2.69 mm -4.57 mm -2.41 m 185 keV 0 eV 9.62 mm 9.62 mm Target compt - 2 2.12 mm -4.33 mm -2.41 m 0 eV 88 keV 627 mum 1.02 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 228, Parent ID = 223 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.12 mm -4.33 mm -2.41 m 97.2 keV 0 eV 0 fm 0 fm Target initStep - 1 2.12 mm -4.33 mm -2.41 m 0 eV 97.2 keV 26.4 mum 26.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 227, Parent ID = 223 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.69 mm -4.57 mm -2.41 m 326 keV 0 eV 0 fm 0 fm Target initStep - 1 2.7 mm -4.58 mm -2.41 m 0 eV 326 keV 167 mum 167 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 221, Parent ID = 204 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.77 mm 2.25 mm -2.41 m 10.8 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.79 mm 2.37 mm -2.41 m 9.56 MeV 362 keV 286 mum 286 mum Target eBrem - 2 -2.55 mm 3.17 mm -2.41 m 7.3 MeV 1.86 MeV 1.23 mm 1.51 mm Target eBrem - 3 -3.17 mm 3.53 mm -2.41 m 0 eV 7.3 MeV 5.58 mm 7.09 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 230, Parent ID = 221 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.55 mm 3.17 mm -2.41 m 398 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.62 mm 5.73 mm -2.4 m 0 eV 88 keV 7.59 mm 7.59 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 231, Parent ID = 230 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.62 mm 5.73 mm -2.4 m 310 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.63 mm 5.73 mm -2.4 m 0 eV 310 keV 156 mum 156 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 229, Parent ID = 221 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.79 mm 2.37 mm -2.41 m 834 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.77 mm 5.71 mm -2.4 m 834 keV 0 eV 9.03 mm 9.03 mm Target Transportation - 2 -91.7 cm 1.03 m -0.455 fm 834 keV 0 eV 2.76 m 2.77 m Tracker Transportation - 3 -98.6 cm 1.1 m 18 cm 834 keV 0 eV 20.8 cm 2.98 m Chamber Transportation - 4 -1.22 m 1.37 m 80 cm 834 keV 0 eV 71.3 cm 3.69 m Tracker Transportation - 5 -1.3 m 1.45 m 1 m 834 keV 0 eV 23 cm 3.92 m Chamber Transportation - 6 -1.53 m 1.71 m 1.6 m 834 keV 0 eV 69.1 cm 4.61 m Tracker Transportation - 7 -1.6 m 1.79 m 1.8 m 834 keV 0 eV 23 cm 4.85 m Chamber Transportation - 8 -1.83 m 2.05 m 2.4 m 834 keV 0 eV 69.1 cm 5.54 m Tracker Transportation - 9 -2.02 m 2.27 m 2.91 m 834 keV 0 eV 58.7 cm 6.12 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 203, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -457 mum 644 mum -2.41 m 850 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.87 mm 2.87 mm -2.4 m 850 keV 0 eV 1.57 cm 1.57 cm Target Transportation - 2 -47.8 cm 24.2 cm -80 cm 850 keV 0 eV 1.69 m 1.7 m Tracker Transportation - 3 -53.8 cm 27.2 cm -60 cm 850 keV 0 eV 21.1 cm 1.91 m Chamber Transportation - 4 -71.5 cm 36.1 cm 0 fm 850 keV 0 eV 63.2 cm 2.54 m Tracker Transportation - 5 -77.4 cm 39.1 cm 20 cm 850 keV 0 eV 21.1 cm 2.75 m Chamber Transportation - 6 -95.2 cm 48.1 cm 80 cm 850 keV 0 eV 63.2 cm 3.39 m Tracker Transportation - 7 -1.01 m 51.1 cm 1 m 850 keV 0 eV 21.1 cm 3.6 m Chamber Transportation - 8 -1.19 m 60 cm 1.6 m 850 keV 0 eV 63.2 cm 4.23 m Tracker Transportation - 9 -1.25 m 63 cm 1.8 m 850 keV 0 eV 21.1 cm 4.44 m Chamber Transportation - 10 -1.43 m 72 cm 2.4 m 850 keV 0 eV 63.2 cm 5.07 m Tracker Transportation - 11 -1.58 m 79.6 cm 2.91 m 850 keV 0 eV 53.7 cm 5.61 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 202, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 62.3 mum 57 mum -2.42 m 2.13 MeV 0 eV 0 fm 0 fm Target initStep - 1 -887 mum 1.39 mm -2.41 m 1.74 MeV 0 eV 9.65 mm 9.65 mm Target compt - 2 -532 mum 2.33 mm -2.41 m 239 keV 0 eV 2.64 mm 1.23 cm Target compt - 3 -559 mum 2.33 mm -2.41 m 0 eV 88 keV 61.1 mum 1.24 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 234, Parent ID = 202 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -559 mum 2.33 mm -2.41 m 151 keV 0 eV 0 fm 0 fm Target initStep - 1 -562 mum 2.33 mm -2.41 m 0 eV 151 keV 53.2 mum 53.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 233, Parent ID = 202 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -532 mum 2.33 mm -2.41 m 1.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 -218 mum 2.38 mm -2.41 m 554 keV 507 keV 523 mum 523 mum Target eBrem - 2 -236 mum 2.39 mm -2.41 m 0 eV 554 keV 346 mum 869 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 235, Parent ID = 233 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -218 mum 2.38 mm -2.41 m 444 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.19 mm 4.48 mm -2.4 m 0 eV 88 keV 9.4 mm 9.4 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 235 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.19 mm 4.48 mm -2.4 m 356 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.2 mm 4.49 mm -2.4 m 0 eV 356 keV 190 mum 190 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 232, Parent ID = 202 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -887 mum 1.39 mm -2.41 m 382 keV 0 eV 0 fm 0 fm Target initStep - 1 -895 mum 1.38 mm -2.41 m 0 eV 382 keV 209 mum 209 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.98 mum 23.1 mum -2.42 m 2.09 MeV 0 eV 0 fm 0 fm Target initStep - 1 101 mum 103 mum -2.42 m 0 eV 88 keV 3.42 mm 3.42 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 237, Parent ID = 41 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 101 mum 103 mum -2.42 m 2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -202 mum -11.9 mum -2.42 m 1.13 MeV 585 keV 619 mum 619 mum Target eBrem - 2 -219 mum -25.8 mum -2.42 m 0 eV 1.13 MeV 828 mum 1.45 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 238, Parent ID = 237 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -202 mum -11.9 mum -2.42 m 291 keV 0 eV 0 fm 0 fm Target initStep - 1 1.34 mm -925 mum -2.42 m 0 eV 88 keV 1.96 mm 1.96 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 239, Parent ID = 238 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.34 mm -925 mum -2.42 m 203 keV 0 eV 0 fm 0 fm Target initStep - 1 1.34 mm -929 mum -2.42 m 0 eV 203 keV 83.4 mum 83.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 40, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -11.3 mum -2.06 mum -2.42 m 427 keV 0 eV 0 fm 0 fm Target initStep - 1 16.5 mum 34.8 mum -2.42 m 0 eV 88 keV 1.48 mm 1.48 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 240, Parent ID = 40 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 16.5 mum 34.8 mum -2.42 m 339 keV 0 eV 0 fm 0 fm Target initStep - 1 14.7 mum 25.7 mum -2.42 m 0 eV 339 keV 177 mum 177 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 39, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.92 mum -989 nm -2.42 m 1.33 MeV 0 eV 0 fm 0 fm Target initStep - 1 44.6 mum 189 mum -2.41 m 304 keV 0 eV 7.39 mm 7.39 mm Target compt - 2 425 mum 3.62 mm -2.42 m 0 eV 88 keV 3.65 mm 1.1 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 242, Parent ID = 39 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 425 mum 3.62 mm -2.42 m 216 keV 0 eV 0 fm 0 fm Target initStep - 1 426 mum 3.63 mm -2.42 m 0 eV 216 keV 91.7 mum 91.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 241, Parent ID = 39 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 44.6 mum 189 mum -2.41 m 1.02 MeV 0 eV 0 fm 0 fm Target initStep - 1 43.6 mum 179 mum -2.41 m 0 eV 1.02 MeV 741 mum 741 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 38, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.19 mum -2.33 mum -2.42 m 2.73 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.37 mum 15.2 mum -2.42 m 1.25 MeV 0 eV 2.01 mm 2.01 mm Target compt - 2 490 mum 490 mum -2.42 m 0 eV 88 keV 1.08 mm 3.09 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 244, Parent ID = 38 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 490 mum 490 mum -2.42 m 1.16 MeV 0 eV 0 fm 0 fm Target initStep - 1 509 mum 549 mum -2.42 m 0 eV 1.16 MeV 859 mum 859 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 243, Parent ID = 38 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.37 mum 15.2 mum -2.42 m 1.48 MeV 0 eV 0 fm 0 fm Target initStep - 1 -31.9 mum -12.7 mum -2.42 m 0 eV 1.48 MeV 1.13 mm 1.13 mm Target eIoni + 0 263 mum 132 mum 46.5 cm 15.4 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -6.27 mum -2.13 mm 46.5 cm 0 eV 15.4 keV 4.82 mm 4.82 mm Tracker eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 164 nm -60.8 nm -2.42 m 27.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -804 mum -68.4 mum -2.42 m 14.3 MeV 3.01 MeV 2.5 mm 2.5 mm Target eBrem - 2 -814 mum 32.4 mum -2.42 m 13.1 MeV 249 keV 168 mum 2.66 mm Target eBrem - 3 -268 mum 133 mum -2.42 m 9.92 MeV 1.92 MeV 1.53 mm 4.19 mm Target eBrem - 4 -346 mum 436 mum -2.42 m 5.9 MeV 963 keV 850 mum 5.04 mm Target eBrem - 5 -615 mum 771 mum -2.42 m 3.92 MeV 1.17 MeV 1 mm 6.04 mm Target eBrem - 6 -738 mum 739 mum -2.42 m 3.3 MeV 175 keV 156 mum 6.2 mm Target eBrem - 7 -730 mum -1.12 mm -2.42 m 937 keV 2.36 MeV 2.27 mm 8.47 mm Target eBrem - 8 -694 mum -1.08 mm -2.42 m 0 eV 937 keV 667 mum 9.14 mm Target eIoni + 0 246 mum 124 mum 27.6 cm 219 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -20.1 cm 9.48 cm 37.9 cm 0 eV 219 keV 51.9 cm 51.9 cm Tracker eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 250, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -738 mum 739 mum -2.42 m 439 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.23 cm -1.05 mm -2.42 m 0 eV 88 keV 1.17 cm 1.17 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 251, Parent ID = 250 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.23 cm -1.05 mm -2.42 m 351 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.23 cm -1.05 mm -2.42 m 0 eV 351 keV 186 mum 186 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 249, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -615 mum 771 mum -2.42 m 817 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.46 mm 1.16 mm -2.42 m 0 eV 88 keV 4.27 mm 4.27 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 252, Parent ID = 249 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.46 mm 1.16 mm -2.42 m 729 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.48 mm 1.17 mm -2.42 m 0 eV 729 keV 491 mum 491 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 248, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -346 mum 436 mum -2.42 m 3.06 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm 7.77 mm -2.41 m 3.06 MeV 0 eV 2.67 cm 2.67 cm Target Transportation - 2 -5.91 cm 1.79 cm -2.4 m 3.06 MeV 0 eV 3.7 cm 6.37 cm World Transportation - 3 -2.4 m 71.5 cm -1.71 m 3.06 MeV 0 eV 2.54 m 2.6 m Tracker Transportation - 4 -2.91 m 86.7 cm -1.56 m 3.06 MeV 0 eV 55.3 cm 3.15 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 247, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -268 mum 133 mum -2.42 m 1.28 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.53 mm 701 mum -2.42 m 681 keV 0 eV 2.76 mm 2.76 mm Target compt - 2 -4.32 mm -1.26 mm -2.41 m 337 keV 0 eV 3.92 mm 6.68 mm Target compt - 3 -4.48 mm -2.14 mm -2.41 m 0 eV 88 keV 1.08 mm 7.77 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 255, Parent ID = 247 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.48 mm -2.14 mm -2.41 m 249 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.48 mm -2.15 mm -2.41 m 0 eV 249 keV 113 mum 113 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 254, Parent ID = 247 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.32 mm -1.26 mm -2.41 m 344 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.33 mm -1.26 mm -2.41 m 0 eV 344 keV 181 mum 181 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 253, Parent ID = 247 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.53 mm 701 mum -2.42 m 600 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.53 mm 718 mum -2.42 m 0 eV 600 keV 383 mum 383 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 246, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -814 mum 32.4 mum -2.42 m 904 keV 0 eV 0 fm 0 fm Target initStep - 1 -914 mum 1.85 mm -2.42 m 561 keV 0 eV 4.48 mm 4.48 mm Target compt - 2 1.74 mm 3.21 mm -2.41 m 476 keV 0 eV 3.63 mm 8.11 mm Target compt - 3 3.61 mm 5.07 mm -2.41 m 0 eV 88 keV 2.64 mm 1.07 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 258, Parent ID = 246 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.61 mm 5.07 mm -2.41 m 388 keV 0 eV 0 fm 0 fm Target initStep - 1 3.61 mm 5.08 mm -2.41 m 0 eV 388 keV 214 mum 214 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 257, Parent ID = 246 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.74 mm 3.21 mm -2.41 m 85.4 keV 0 eV 0 fm 0 fm Target initStep - 1 1.74 mm 3.21 mm -2.41 m 0 eV 85.4 keV 21.5 mum 21.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 256, Parent ID = 246 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -914 mum 1.85 mm -2.42 m 342 keV 0 eV 0 fm 0 fm Target initStep - 1 -922 mum 1.85 mm -2.42 m 0 eV 342 keV 180 mum 180 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 245, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -804 mum -68.4 mum -2.42 m 9.91 MeV 0 eV 0 fm 0 fm Target initStep - 1 -928 mum 2.29 mm -2.42 m 0 eV 0 eV 4.48 mm 4.48 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 260, Parent ID = 245 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -928 mum 2.29 mm -2.42 m 6.03 MeV 0 eV 0 fm 0 fm Target initStep - 1 -945 mum 2.55 mm -2.42 m 5.02 MeV 346 keV 348 mum 348 mum Target eBrem - 2 -2.9 mm 2.97 mm -2.42 m 1.34 MeV 2.95 MeV 2.54 mm 2.89 mm Target eBrem - 3 -2.94 mm 2.9 mm -2.42 m 188 keV 1.15 MeV 296 mum 3.19 mm Target eBrem - 4 -2.94 mm 2.91 mm -2.42 m 0 eV 188 keV 71 mum 3.26 mm Target eIoni - 5 -2.94 mm 2.91 mm -2.42 m 0 eV 0 eV 0 fm 3.26 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 264, Parent ID = 260 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.94 mm 2.91 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.39 mm 4.04 mm -2.42 m 244 keV 0 eV 3.06 mm 3.06 mm Target compt - 2 449 mum 5.79 mm -2.42 m 0 eV 88 keV 5.34 mm 8.4 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 266, Parent ID = 264 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 449 mum 5.79 mm -2.42 m 156 keV 0 eV 0 fm 0 fm Target initStep - 1 452 mum 5.79 mm -2.42 m 0 eV 156 keV 55.7 mum 55.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 265, Parent ID = 264 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.39 mm 4.04 mm -2.42 m 267 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.39 mm 4.04 mm -2.42 m 0 eV 267 keV 126 mum 126 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 263, Parent ID = 260 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.94 mm 2.91 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.25 mm 2.37 mm -2.42 m 322 keV 0 eV 1.46 mm 1.46 mm Target compt - 2 843 mum 3.78 mm -2.42 m 0 eV 88 keV 3.45 mm 4.91 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 268, Parent ID = 263 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 843 mum 3.78 mm -2.42 m 234 keV 0 eV 0 fm 0 fm Target initStep - 1 848 mum 3.78 mm -2.42 m 0 eV 234 keV 104 mum 104 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 267, Parent ID = 263 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.25 mm 2.37 mm -2.42 m 189 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.25 mm 2.37 mm -2.42 m 0 eV 189 keV 74.8 mum 74.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 262, Parent ID = 260 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.9 mm 2.97 mm -2.42 m 725 keV 0 eV 0 fm 0 fm Target initStep - 1 1.29 cm 3.74 mm -2.4 m 426 keV 0 eV 2.04 cm 2.04 cm Target compt - 2 1.38 cm 3.33 mm -2.4 m 0 eV 88 keV 1.07 mm 2.15 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 270, Parent ID = 262 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.38 cm 3.33 mm -2.4 m 338 keV 0 eV 0 fm 0 fm Target initStep - 1 1.39 cm 3.33 mm -2.4 m 0 eV 338 keV 176 mum 176 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 269, Parent ID = 262 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.29 cm 3.74 mm -2.4 m 299 keV 0 eV 0 fm 0 fm Target initStep - 1 1.29 cm 3.74 mm -2.4 m 0 eV 299 keV 148 mum 148 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 261, Parent ID = 260 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -945 mum 2.55 mm -2.42 m 663 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.42 mm 2.66 mm -2.42 m 0 eV 88 keV 560 mum 560 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 271, Parent ID = 261 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.42 mm 2.66 mm -2.42 m 575 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.44 mm 2.67 mm -2.42 m 0 eV 575 keV 363 mum 363 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 259, Parent ID = 245 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -928 mum 2.29 mm -2.42 m 2.86 MeV 0 eV 0 fm 0 fm Target initStep - 1 -965 mum 2.45 mm -2.42 m 0 eV 2.86 MeV 2.25 mm 2.25 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -79.7 nm -2.58 nm -2.44 m 8.14 MeV 0 eV 0 fm 0 fm Target initStep - 1 -339 mum 165 mum -2.43 m 4.99 MeV 1.11 MeV 854 mum 854 mum Target eBrem - 2 697 mum -138 mum -2.43 m 3.25 MeV 1.31 MeV 1.23 mm 2.08 mm Target eBrem - 3 897 mum 528 mum -2.43 m 1.18 MeV 946 keV 883 mum 2.96 mm Target eBrem - 4 1e+03 mum 512 mum -2.43 m 0 eV 1.18 MeV 890 mum 3.85 mm Target eIoni - 5 1e+03 mum 512 mum -2.43 m 0 eV 0 eV 0 fm 3.85 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 276, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1e+03 mum 512 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.07 mm 619 mum -2.43 m 0 eV 88 keV 259 mum 259 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 277, Parent ID = 276 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.07 mm 619 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 1.07 mm 630 mum -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 275, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1e+03 mum 512 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -306 mum -1.59 mm -2.44 m 0 eV 88 keV 5.11 mm 5.11 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 278, Parent ID = 275 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -306 mum -1.59 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -305 mum -1.6 mm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 274, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 897 mum 528 mum -2.43 m 1.12 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.11 cm -2.1 mm -2.43 m 272 keV 0 eV 1.08 cm 1.08 cm Target compt - 2 1.07 cm -119 mum -2.43 m 0 eV 88 keV 2.03 mm 1.28 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 280, Parent ID = 274 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.07 cm -119 mum -2.43 m 184 keV 0 eV 0 fm 0 fm Target initStep - 1 1.07 cm -116 mum -2.43 m 0 eV 184 keV 71.9 mum 71.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 279, Parent ID = 274 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.11 cm -2.1 mm -2.43 m 844 keV 0 eV 0 fm 0 fm Target initStep - 1 1.12 cm -2.12 mm -2.43 m 0 eV 844 keV 588 mum 588 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 273, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 697 mum -138 mum -2.43 m 434 keV 0 eV 0 fm 0 fm Target initStep - 1 7.22 mm 3.64 mm -2.44 m 421 keV 0 eV 7.61 mm 7.61 mm Target compt - 2 1.12 cm 6.79 mm -2.44 m 365 keV 0 eV 5.43 mm 1.3 cm Target compt - 3 1.23 cm 7.42 mm -2.44 m 260 keV 0 eV 1.26 mm 1.43 cm Target compt - 4 1.42 cm 7.63 mm -2.44 m 0 eV 88 keV 2.85 mm 1.72 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 284, Parent ID = 273 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.42 cm 7.63 mm -2.44 m 172 keV 0 eV 0 fm 0 fm Target initStep - 1 1.42 cm 7.63 mm -2.44 m 0 eV 172 keV 64.8 mum 64.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 283, Parent ID = 273 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.23 cm 7.42 mm -2.44 m 105 keV 0 eV 0 fm 0 fm Target initStep - 1 1.23 cm 7.42 mm -2.44 m 0 eV 105 keV 29.9 mum 29.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 282, Parent ID = 273 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.12 cm 6.79 mm -2.44 m 56.8 keV 0 eV 0 fm 0 fm Target initStep - 1 1.12 cm 6.79 mm -2.44 m 0 eV 56.8 keV 11.1 mum 11.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 281, Parent ID = 273 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.22 mm 3.64 mm -2.44 m 12.2 keV 0 eV 0 fm 0 fm Target initStep - 1 7.22 mm 3.64 mm -2.44 m 0 eV 12.2 keV 949 nm 949 nm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 272, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -339 mum 165 mum -2.43 m 2.04 MeV 0 eV 0 fm 0 fm Target initStep - 1 5.45 mm 3.84 mm -2.43 m 1.42 MeV 0 eV 8.39 mm 8.39 mm Target compt - 2 8.42 mm 7.07 mm -2.43 m 338 keV 0 eV 4.48 mm 1.29 cm Target compt - 3 9.02 mm 6.28 mm -2.43 m 0 eV 88 keV 992 mum 1.39 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 287, Parent ID = 272 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.02 mm 6.28 mm -2.43 m 250 keV 0 eV 0 fm 0 fm Target initStep - 1 9.02 mm 6.28 mm -2.43 m 0 eV 250 keV 114 mum 114 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 286, Parent ID = 272 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.42 mm 7.07 mm -2.43 m 1.09 MeV 0 eV 0 fm 0 fm Target initStep - 1 8.45 mm 7.12 mm -2.43 m 0 eV 1.09 MeV 793 mum 793 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 285, Parent ID = 272 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.45 mm 3.84 mm -2.43 m 618 keV 0 eV 0 fm 0 fm Target initStep - 1 5.46 mm 3.83 mm -2.43 m 0 eV 618 keV 399 mum 399 mum Target eIoni + 0 235 mum 118 mum 16.4 cm 46.1 keV 0 eV 0 fm 0 fm Chamber initStep + 1 -1.19 mm 34 mum 16.4 cm 0 eV 46.1 keV 1.37 cm 1.37 cm Chamber eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -79.7 nm -2.58 nm -2.44 m 13.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.19 mum -2.88 mum -2.44 m 13.2 MeV 57.1 keV 53.7 mum 53.7 mum Target eBrem - 2 -226 mum -34.1 mum -2.43 m 11.7 MeV 894 keV 752 mum 806 mum Target eBrem - 3 68.1 mum -243 mum -2.43 m 9.42 MeV 1.29 MeV 467 mum 1.27 mm Target eBrem - 4 49.5 mum -530 mum -2.43 m 8.24 MeV 1.18 MeV 1.03 mm 2.3 mm Target eBrem - 5 -825 mum -184 mum -2.43 m 5.06 MeV 1.58 MeV 1.32 mm 3.62 mm Target eBrem - 6 -1.44 mm -222 mum -2.43 m 537 keV 940 keV 880 mum 4.5 mm Target eBrem - 7 -1.45 mm -203 mum -2.43 m 0 eV 537 keV 332 mum 4.83 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 292, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.44 mm -222 mum -2.43 m 3.58 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.64 mm 1.35 mm -2.43 m 381 keV 0 eV 2.01 mm 2.01 mm Target compt - 2 -2.46 mm 1.44 mm -2.43 m 0 eV 88 keV 204 mum 2.21 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 294, Parent ID = 292 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.46 mm 1.44 mm -2.43 m 293 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.45 mm 1.44 mm -2.43 m 0 eV 293 keV 144 mum 144 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 293, Parent ID = 292 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.64 mm 1.35 mm -2.43 m 3.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.69 mm 1.51 mm -2.43 m 2.29 MeV 193 keV 171 mum 171 mum Target eBrem - 2 -2.87 mm 1.59 mm -2.43 m 0 eV 2.29 MeV 1.79 mm 1.96 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 295, Parent ID = 293 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.69 mm 1.51 mm -2.43 m 715 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.19 cm 4.33 mm -2.43 m 444 keV 0 eV 9.92 mm 9.92 mm Target compt - 2 -1.94 cm -2.16 mm -2.42 m 0 eV 88 keV 1.15 cm 2.14 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 297, Parent ID = 295 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.94 cm -2.16 mm -2.42 m 356 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.94 cm -2.16 mm -2.42 m 0 eV 356 keV 190 mum 190 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 296, Parent ID = 295 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.19 cm 4.33 mm -2.43 m 271 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.19 cm 4.34 mm -2.43 m 0 eV 271 keV 129 mum 129 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 291, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -825 mum -184 mum -2.43 m 1.6 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.95 mm 896 mum -2.43 m 0 eV 88 keV 1.62 mm 1.62 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 298, Parent ID = 291 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.95 mm 896 mum -2.43 m 1.51 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.03 mm 932 mum -2.43 m 0 eV 1.51 MeV 1.15 mm 1.15 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 290, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 68.1 mum -243 mum -2.43 m 941 keV 0 eV 0 fm 0 fm Target initStep - 1 1.47 cm -2.5 cm -2.41 m 941 keV 0 eV 3.77 cm 3.77 cm Target Transportation - 2 2.07 cm -3.51 cm -2.4 m 941 keV 0 eV 1.54 cm 5.31 cm World Transportation - 3 1.42 m -2.4 m -7.7 cm 941 keV 0 eV 3.6 m 3.65 m Tracker Transportation - 4 1.72 m -2.91 m 42.4 cm 941 keV 0 eV 77.6 cm 4.43 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 289, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -226 mum -34.1 mum -2.43 m 635 keV 0 eV 0 fm 0 fm Target initStep - 1 109 mum -566 mum -2.43 m 444 keV 0 eV 1.57 mm 1.57 mm Target compt - 2 -252 mum -961 mum -2.43 m 0 eV 88 keV 683 mum 2.25 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 300, Parent ID = 289 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -252 mum -961 mum -2.43 m 356 keV 0 eV 0 fm 0 fm Target initStep - 1 -247 mum -972 mum -2.43 m 0 eV 356 keV 190 mum 190 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 299, Parent ID = 289 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 109 mum -566 mum -2.43 m 192 keV 0 eV 0 fm 0 fm Target initStep - 1 112 mum -565 mum -2.43 m 0 eV 192 keV 76.6 mum 76.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 288, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.19 mum -2.88 mum -2.44 m 431 keV 0 eV 0 fm 0 fm Target initStep - 1 22.3 mum -203 mum -2.43 m 0 eV 88 keV 1.48 mm 1.48 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 301, Parent ID = 288 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 22.3 mum -203 mum -2.43 m 343 keV 0 eV 0 fm 0 fm Target initStep - 1 25.8 mum -202 mum -2.43 m 0 eV 343 keV 180 mum 180 mum Target eIoni + 0 21.3 mum 10.8 mum -2.17 m 67.3 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -9.95 mm -2.97 cm -2.16 m 0 eV 67.3 keV 6.82 cm 6.82 cm Tracker eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -36.5 nm 15.2 nm -2.45 m 20.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 -392 mum 800 mum -2.44 m 17.2 MeV 2.34 MeV 2.01 mm 2.01 mm Target eBrem - 2 78.5 mum 929 mum -2.44 m 15.5 MeV 1.04 MeV 852 mum 2.86 mm Target eBrem - 3 435 mum 808 mum -2.44 m 11.7 MeV 462 keV 438 mum 3.3 mm Target eBrem - 4 2.07 mm 1.24 mm -2.44 m 8.78 MeV 2.12 MeV 1.66 mm 4.96 mm Target eBrem - 5 2.55 mm 1.34 mm -2.44 m 5.12 MeV 684 keV 622 mum 5.58 mm Target eBrem - 6 2.05 mm 1.61 mm -2.44 m 3.7 MeV 1.1 MeV 996 mum 6.58 mm Target eBrem - 7 2.08 mm 1.56 mm -2.44 m 3.06 MeV 33.6 keV 56.3 mum 6.63 mm Target eBrem - 8 1.74 mm 999 mum -2.44 m 1.34 MeV 1.37 MeV 929 mum 7.56 mm Target eBrem - 9 1.7 mm 1.02 mm -2.44 m 462 keV 26 keV 40 mum 7.6 mm Target eBrem - 10 1.69 mm 1.01 mm -2.44 m 0 eV 462 keV 272 mum 7.88 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 310, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.7 mm 1.02 mm -2.44 m 849 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.32 cm -2.5 cm -2.45 m 849 keV 0 eV 3.66 cm 3.66 cm Target Transportation - 2 -1.78 m -1.86 m -2.91 m 849 keV 0 eV 2.58 m 2.62 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 309, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.74 mm 999 mum -2.44 m 350 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.43 mm -199 mum -2.44 m 0 eV 88 keV 5.4 mm 5.4 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 311, Parent ID = 309 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.43 mm -199 mum -2.44 m 262 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.43 mm -206 mum -2.44 m 0 eV 262 keV 122 mum 122 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 308, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.08 mm 1.56 mm -2.44 m 607 keV 0 eV 0 fm 0 fm Target initStep - 1 2.97 mm 66.8 mum -2.44 m 193 keV 0 eV 1.74 mm 1.74 mm Target compt - 2 2.34 mm 2.25 mm -2.44 m 0 eV 88 keV 2.74 mm 4.48 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 313, Parent ID = 308 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.34 mm 2.25 mm -2.44 m 105 keV 0 eV 0 fm 0 fm Target initStep - 1 2.34 mm 2.25 mm -2.44 m 0 eV 105 keV 30 mum 30 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 312, Parent ID = 308 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.97 mm 66.8 mum -2.44 m 414 keV 0 eV 0 fm 0 fm Target initStep - 1 2.98 mm 52.9 mum -2.44 m 0 eV 414 keV 234 mum 234 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 307, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.05 mm 1.61 mm -2.44 m 330 keV 0 eV 0 fm 0 fm Target initStep - 1 2.53 mm 1.08 mm -2.44 m 199 keV 0 eV 724 mum 724 mum Target compt - 2 2 mm 676 mum -2.44 m 0 eV 88 keV 725 mum 1.45 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 315, Parent ID = 307 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2 mm 676 mum -2.44 m 111 keV 0 eV 0 fm 0 fm Target initStep - 1 2 mm 677 mum -2.44 m 0 eV 111 keV 33 mum 33 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 314, Parent ID = 307 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.53 mm 1.08 mm -2.44 m 130 keV 0 eV 0 fm 0 fm Target initStep - 1 2.53 mm 1.08 mm -2.44 m 0 eV 130 keV 42.1 mum 42.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 306, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.55 mm 1.34 mm -2.44 m 2.98 MeV 0 eV 0 fm 0 fm Target initStep - 1 9.78 mm 2.5 cm -2.43 m 2.98 MeV 0 eV 3.03 cm 3.03 cm Target Transportation - 2 2.05 cm 6.01 cm -2.4 m 2.98 MeV 0 eV 4.5 cm 7.53 cm World Transportation - 3 73.6 cm 2.4 m -66.9 cm 2.98 MeV 0 eV 3 m 3.07 m Tracker Transportation - 4 89.2 cm 2.91 m -29.1 cm 2.98 MeV 0 eV 65.3 cm 3.73 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 305, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.07 mm 1.24 mm -2.44 m 843 keV 0 eV 0 fm 0 fm Target initStep - 1 7.6 mm 680 mum -2.43 m 356 keV 0 eV 1.06 cm 1.06 cm Target compt - 2 8.33 mm 1.7 mm -2.44 m 232 keV 0 eV 1.26 mm 1.19 cm Target compt - 3 8.38 mm 1.68 mm -2.43 m 0 eV 88 keV 54.6 mum 1.19 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 318, Parent ID = 305 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.38 mm 1.68 mm -2.43 m 144 keV 0 eV 0 fm 0 fm Target initStep - 1 8.38 mm 1.68 mm -2.43 m 0 eV 144 keV 49.5 mum 49.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 317, Parent ID = 305 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.33 mm 1.7 mm -2.44 m 124 keV 0 eV 0 fm 0 fm Target initStep - 1 8.33 mm 1.7 mm -2.44 m 0 eV 124 keV 39 mum 39 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 316, Parent ID = 305 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.6 mm 680 mum -2.43 m 487 keV 0 eV 0 fm 0 fm Target initStep - 1 7.6 mm 673 mum -2.43 m 0 eV 487 keV 291 mum 291 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 304, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 435 mum 808 mum -2.44 m 3.31 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.5 cm -4.74 mm -2.44 m 3.31 MeV 0 eV 2.62 cm 2.62 cm Target Transportation - 2 14.8 cm -3.26 cm -2.4 m 3.31 MeV 0 eV 13.1 cm 15.8 cm World Transportation - 3 2.4 m -54.1 cm -1.73 m 3.31 MeV 0 eV 2.4 m 2.56 m Tracker Transportation - 4 2.91 m -65.7 cm -1.58 m 3.31 MeV 0 eV 54.5 cm 3.11 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 303, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 78.5 mum 929 mum -2.44 m 644 keV 0 eV 0 fm 0 fm Target initStep - 1 4.32 mm -170 mum -2.44 m 0 eV 88 keV 4.61 mm 4.61 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 319, Parent ID = 303 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.32 mm -170 mum -2.44 m 556 keV 0 eV 0 fm 0 fm Target initStep - 1 4.33 mm -183 mum -2.44 m 0 eV 556 keV 347 mum 347 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 302, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -392 mum 800 mum -2.44 m 953 keV 0 eV 0 fm 0 fm Target initStep - 1 2.62 mm 952 mum -2.44 m 0 eV 88 keV 8.83 mm 8.83 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 320, Parent ID = 302 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.62 mm 952 mum -2.44 m 865 keV 0 eV 0 fm 0 fm Target initStep - 1 2.63 mm 970 mum -2.44 m 0 eV 865 keV 606 mum 606 mum Target eIoni + 0 12.3 nm -55.3 nm -2.73 m 17.7 keV 0 eV 0 fm 0 fm World initStep + 1 -506 mum 2.89 mm -2.73 m 0 eV 17.7 keV 6.2 mm 6.2 mm World eIoni >>> Event 0 0 trajectories stored in this event. ### Run 2 start. diff --git a/examples/novice/N02/include/ExN02ChamberParameterisation.hh b/examples/novice/N02/include/ExN02ChamberParameterisation.hh index 65361b248c..584d637b08 100644 --- a/examples/novice/N02/include/ExN02ChamberParameterisation.hh +++ b/examples/novice/N02/include/ExN02ChamberParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02ChamberParameterisation.hh,v 1.9 2003/11/10 14:29:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // A parameterisation that describes a series of boxes along Z diff --git a/examples/novice/N02/include/ExN02DetectorConstruction.hh b/examples/novice/N02/include/ExN02DetectorConstruction.hh index 50a8cb8a91..b86afc1937 100644 --- a/examples/novice/N02/include/ExN02DetectorConstruction.hh +++ b/examples/novice/N02/include/ExN02DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorConstruction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02DetectorMessenger.hh b/examples/novice/N02/include/ExN02DetectorMessenger.hh index fb35710fe3..9b12056815 100644 --- a/examples/novice/N02/include/ExN02DetectorMessenger.hh +++ b/examples/novice/N02/include/ExN02DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorMessenger.hh,v 1.7 2002/12/16 16:31:43 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02EventAction.hh b/examples/novice/N02/include/ExN02EventAction.hh index 2059219081..6b46251fcb 100644 --- a/examples/novice/N02/include/ExN02EventAction.hh +++ b/examples/novice/N02/include/ExN02EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02EventAction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02MagneticField.hh b/examples/novice/N02/include/ExN02MagneticField.hh index 232c55d7ff..abecc626bd 100644 --- a/examples/novice/N02/include/ExN02MagneticField.hh +++ b/examples/novice/N02/include/ExN02MagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02MagneticField.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // A class for control of the Magnetic Field of the detector. diff --git a/examples/novice/N02/include/ExN02PhysicsList.hh b/examples/novice/N02/include/ExN02PhysicsList.hh index 7a425e52d5..92425a9651 100644 --- a/examples/novice/N02/include/ExN02PhysicsList.hh +++ b/examples/novice/N02/include/ExN02PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02PhysicsList.hh,v 1.10 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh b/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh index 806dc5cec2..871f6ec37d 100644 --- a/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh +++ b/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02PrimaryGeneratorAction.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02RunAction.hh b/examples/novice/N02/include/ExN02RunAction.hh index 3a839ae3b2..f1991ef076 100644 --- a/examples/novice/N02/include/ExN02RunAction.hh +++ b/examples/novice/N02/include/ExN02RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02RunAction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02SteppingAction.hh b/examples/novice/N02/include/ExN02SteppingAction.hh index d989e269c6..c06dc12fd6 100644 --- a/examples/novice/N02/include/ExN02SteppingAction.hh +++ b/examples/novice/N02/include/ExN02SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingAction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02SteppingVerbose.hh b/examples/novice/N02/include/ExN02SteppingVerbose.hh index 9e9e699213..2e26b12eb9 100644 --- a/examples/novice/N02/include/ExN02SteppingVerbose.hh +++ b/examples/novice/N02/include/ExN02SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingVerbose.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/novice/N02/include/ExN02TrackerHit.hh b/examples/novice/N02/include/ExN02TrackerHit.hh index b672aef1f3..170340564f 100644 --- a/examples/novice/N02/include/ExN02TrackerHit.hh +++ b/examples/novice/N02/include/ExN02TrackerHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerHit.hh,v 1.7 2003/05/28 09:54:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02TrackerSD.hh b/examples/novice/N02/include/ExN02TrackerSD.hh index 65af0e0221..3222794556 100644 --- a/examples/novice/N02/include/ExN02TrackerSD.hh +++ b/examples/novice/N02/include/ExN02TrackerSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerSD.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02VisManager.hh b/examples/novice/N02/include/ExN02VisManager.hh deleted file mode 100644 index cacd31278a..0000000000 --- a/examples/novice/N02/include/ExN02VisManager.hh +++ /dev/null @@ -1,72 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN02VisManager.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef ExN02VisManager_h -#define ExN02VisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class ExN02VisManager: public G4VisManager { - -public: - - ExN02VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - -#endif diff --git a/examples/novice/N02/src/ExN02ChamberParameterisation.cc b/examples/novice/N02/src/ExN02ChamberParameterisation.cc index 6f38ebc5c6..8e6f850ac0 100644 --- a/examples/novice/N02/src/ExN02ChamberParameterisation.cc +++ b/examples/novice/N02/src/ExN02ChamberParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02ChamberParameterisation.cc,v 1.8 2003/05/28 09:54:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02DetectorConstruction.cc b/examples/novice/N02/src/ExN02DetectorConstruction.cc index ba456eb1cb..9d7f82dac2 100644 --- a/examples/novice/N02/src/ExN02DetectorConstruction.cc +++ b/examples/novice/N02/src/ExN02DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorConstruction.cc,v 1.15 2004/09/16 13:55:50 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ExN02DetectorConstruction.cc,v 1.17 2005/05/30 16:51:43 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -236,11 +236,17 @@ G4VPhysicalVolume* ExN02DetectorConstruction::Construct() //--------- example of User Limits ------------------------------- // below is an example of how to set tracking constraints in a given - // logical volume(see also in N02PhysicsList how to setup the process - // G4UserSpecialCuts). - // Sets a max Step length in the tracker region - // G4double maxStep = 0.5*ChamberWidth, maxLength = 2*fTrackerLength; - // G4double maxTime = 0.1*ns, minEkin = 10*MeV; + // logical volume(see also in N02PhysicsList how to setup the processes + // G4StepLimiter or G4UserSpecialCuts). + + // Sets a max Step length in the tracker region, with G4StepLimiter + // + G4double maxStep = 0.5*ChamberWidth; + logicTracker->SetUserLimits(new G4UserLimits(maxStep)); + + // Set additional contraints on the track, with G4UserSpecialCuts + // + // G4double maxLength = 2*fTrackerLength, maxTime = 0.1*ns, minEkin = 10*MeV; // logicTracker->SetUserLimits(new G4UserLimits(maxStep,maxLength,maxTime, // minEkin)); diff --git a/examples/novice/N02/src/ExN02DetectorMessenger.cc b/examples/novice/N02/src/ExN02DetectorMessenger.cc index afb8f76b71..7c6ea6a84a 100644 --- a/examples/novice/N02/src/ExN02DetectorMessenger.cc +++ b/examples/novice/N02/src/ExN02DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorMessenger.cc,v 1.10 2004/04/05 16:21:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02EventAction.cc b/examples/novice/N02/src/ExN02EventAction.cc index 865f2ee60f..298b57f150 100644 --- a/examples/novice/N02/src/ExN02EventAction.cc +++ b/examples/novice/N02/src/ExN02EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02EventAction.cc,v 1.10 2004/09/08 16:30:10 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02MagneticField.cc b/examples/novice/N02/src/ExN02MagneticField.cc index 124977f1b9..c50eb17031 100644 --- a/examples/novice/N02/src/ExN02MagneticField.cc +++ b/examples/novice/N02/src/ExN02MagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02MagneticField.cc,v 1.7 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // User Field class implementation. // diff --git a/examples/novice/N02/src/ExN02PhysicsList.cc b/examples/novice/N02/src/ExN02PhysicsList.cc index 5c4e35f7f4..bc64bf1968 100644 --- a/examples/novice/N02/src/ExN02PhysicsList.cc +++ b/examples/novice/N02/src/ExN02PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02PhysicsList.cc,v 1.19 2004/09/16 13:55:50 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ExN02PhysicsList.cc,v 1.21 2005/05/30 16:20:23 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -150,6 +150,7 @@ void ExN02PhysicsList::ConstructProcess() #include "G4hIonisation.hh" +#include "G4StepLimiter.hh" #include "G4UserSpecialCuts.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -195,7 +196,9 @@ void ExN02PhysicsList::ConstructEM() //all others charged particles except geantino pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); pmanager->AddProcess(new G4hIonisation, -1, 2,2); - ///pmanager->AddProcess(new G4UserSpecialCuts, -1,-1,3); + //step limit + pmanager->AddProcess(new G4StepLimiter, -1,-1,3); + ///pmanager->AddProcess(new G4UserSpecialCuts, -1,-1,4); } } } diff --git a/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc b/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc index b45ca42669..3d62f9b97f 100644 --- a/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc +++ b/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02PrimaryGeneratorAction.cc,v 1.6 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02RunAction.cc b/examples/novice/N02/src/ExN02RunAction.cc index 08978f8352..e79a0bd4e1 100644 --- a/examples/novice/N02/src/ExN02RunAction.cc +++ b/examples/novice/N02/src/ExN02RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02RunAction.cc,v 1.8 2004/03/08 15:14:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02SteppingAction.cc b/examples/novice/N02/src/ExN02SteppingAction.cc index dcd2622acf..49c69235b5 100644 --- a/examples/novice/N02/src/ExN02SteppingAction.cc +++ b/examples/novice/N02/src/ExN02SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingAction.cc,v 1.8 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02SteppingVerbose.cc b/examples/novice/N02/src/ExN02SteppingVerbose.cc index e3b84f8917..8148a464e0 100644 --- a/examples/novice/N02/src/ExN02SteppingVerbose.cc +++ b/examples/novice/N02/src/ExN02SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingVerbose.cc,v 1.11 2003/06/16 16:49:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02TrackerHit.cc b/examples/novice/N02/src/ExN02TrackerHit.cc index 2e960d284e..2e4701c0d9 100644 --- a/examples/novice/N02/src/ExN02TrackerHit.cc +++ b/examples/novice/N02/src/ExN02TrackerHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02TrackerHit.cc,v 1.8 2003/05/28 09:54:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ExN02TrackerHit.cc,v 1.9 2005/06/01 17:41:45 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -81,7 +81,7 @@ void ExN02TrackerHit::Draw() if(pVVisManager) { G4Circle circle(pos); - circle.SetScreenSize(0.04); + circle.SetScreenSize(2.); circle.SetFillStyle(G4Circle::filled); G4Colour colour(1.,0.,0.); G4VisAttributes attribs(colour); diff --git a/examples/novice/N02/src/ExN02TrackerSD.cc b/examples/novice/N02/src/ExN02TrackerSD.cc index 7b9d500774..9c3e78b61d 100644 --- a/examples/novice/N02/src/ExN02TrackerSD.cc +++ b/examples/novice/N02/src/ExN02TrackerSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerSD.cc,v 1.7 2003/05/28 09:54:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02VisManager.cc b/examples/novice/N02/src/ExN02VisManager.cc deleted file mode 100755 index ad3c26fff7..0000000000 --- a/examples/novice/N02/src/ExN02VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN02VisManager.cc,v 1.10 2003/11/10 14:30:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "ExN02VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN02VisManager::ExN02VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN02VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/vis.mac b/examples/novice/N02/vis.mac index b625fa5ab5..e93ffb77af 100644 --- a/examples/novice/N02/vis.mac +++ b/examples/novice/N02/vis.mac @@ -30,4 +30,5 @@ /vis/scene/add/trajectories # (if you prefer refreshing each event, comment out next line) /vis/scene/endOfEventAction accumulate +# /run/beamOn 10 diff --git a/examples/novice/N03/History b/examples/novice/N03/History index e9d446a554..a287a90c8c 100644 --- a/examples/novice/N03/History +++ b/examples/novice/N03/History @@ -1,4 +1,4 @@ -$Id: History,v 1.85 2004/11/21 12:55:04 gbarrand Exp $ +$Id: History,v 1.91 2005/05/30 14:24:31 maire Exp $ -------------------------------------------------- ========================================================= @@ -15,6 +15,21 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +31-05-05 mma (exampleN03-V07-00-03) +- EventAction: decrease size of trajectory points. + +30-05-05 John Allison (exampleN03-V07-00-02) +- Completed replacment of vis manager with G4VisExecutive. + +26-05-05 Gabriele Cosmo (exampleN03-V07-00-01) +- Fixed compilation error in exampleN03.cc (no tracking-action existing...). + +03-05-05 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + +02-02-05 Michel Maire (exampleN03-V07-00-00) +- SteppingAction: sum stepLenght of charged particle even if edep=0. + 21-11-04 Guy Barrand - visTutor/exN03Vis[5,10].mac : reverse notifyHandler and viewer/update so that someone using G4UIterminal see the detector at the moment diff --git a/examples/novice/N03/exampleN03.cc b/examples/novice/N03/exampleN03.cc index 71523705dc..9368e2f555 100644 --- a/examples/novice/N03/exampleN03.cc +++ b/examples/novice/N03/exampleN03.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN03.cc,v 1.20 2004/04/08 09:03:32 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: exampleN03.cc,v 1.22 2005/05/26 12:21:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -44,7 +44,7 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "ExN03VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "ExN03DetectorConstruction.hh" @@ -72,7 +72,7 @@ int main(int argc,char** argv) { ExN03DetectorConstruction* detector = new ExN03DetectorConstruction; runManager->SetUserInitialization(detector); runManager->SetUserInitialization(new ExN03PhysicsList); - + G4UIsession* session=0; if (argc==1) // Define UI session for interactive mode. @@ -91,7 +91,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new ExN03VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/novice/N03/exampleN03.out b/examples/novice/N03/exampleN03.out index dd40c0d0bd..e980c6d2c1 100644 --- a/examples/novice/N03/exampleN03.out +++ b/examples/novice/N03/exampleN03.out @@ -1,65 +1,64 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; ***** Table : Nb of materials = 13 ***** Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm - ---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Aluminium ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm - ---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.549 cm - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.55 % Abundance 52.63 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.55 % Abundance 52.63 % Material: Mylar density: 1.397 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.599 cm - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % Material: quartz density: 2.200 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 12.295 cm - ---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 46.75 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 53.25 % Abundance 66.67 % + ---> Element: Silicon (Si) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 46.75 % Abundance 33.33 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 53.25 % Abundance 66.67 % Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % Material: Aerogel density: 200.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.493 m - ---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 29.22 % Abundance 11.12 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 66.49 % Abundance 44.42 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.19 % Abundance 44.37 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.10 % Abundance 0.09 % + ---> Element: Silicon (Si) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 29.22 % Abundance 11.12 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 66.49 % Abundance 44.42 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.19 % Abundance 44.37 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.10 % Abundance 0.09 % Material: CarbonicGas density: 27.000 mg/cm3 temperature: 325.00 K pressure: 50.00 atm RadLength: 13.406 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % Material: WaterSteam density: 0.300 mg/cm3 temperature: 500.00 K pressure: 2.00 atm RadLength: 1.203 km - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % Material: Galactic density: 0.000 mg/cm3 temperature: 0.00 K pressure: 0.00 atm RadLength: 204727576.737 pc - ---> Element: Galactic Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Beam density: 0.010 mg/cm3 temperature: 273.15 K pressure: 0.02 atm RadLength: 36.786 km - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % Visualization Manager instantiating... @@ -71,8 +70,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -80,18 +79,19 @@ Current available graphics systems are: ------------------------------------------------------------ ---> The calorimeter is 10 layers of: [ 10mm of Lead + 5mm of liquidArgon ] ------------------------------------------------------------ +ExN03PhysicsList::SetCuts:CutLength : 1 mm + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. phot: Total cross sections from Sandia parametrisation. -ExN03PhysicsList::SetCuts:CutLength : 1 mm -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate - -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. - -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -100,8 +100,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -112,8 +112,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -121,26 +121,29 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 +msc: Model variant of multiple scattering for GenericIon + muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -159,9 +162,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -211,8 +214,8 @@ Index : 2 used in the geometry : Yes recalculation needed : No Current couple of seeds = 9876, 54321 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 287.73066 MeV total track length: 20.081958 cm - Gap: total energy: 8.6649655 MeV total track length: 4.2900935 cm + Absorber: total energy: 275.13135 MeV total track length: 19.17602 cm + Gap: total energy: 14.088124 MeV total track length: 7.5983475 cm Transportation, hIoni, msc, eIoni eBrem, annihil, conv, compt phot, muIoni, muBrems, muPairProd @@ -223,24 +226,27 @@ Index : 2 used in the geometry : Yes recalculation needed : No --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 2065037234, 846230883 + Current couple of seeds = 1983856112, 1775194371 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 283.84277 MeV total track length: 19.946309 cm - Gap: total energy: 16.728825 MeV total track length: 8.7736644 cm + Absorber: total energy: 280.72963 MeV total track length: 19.085929 cm + Gap: total energy: 20.29237 MeV total track length: 9.7280438 cm ------------------------------------------------------------ ---> The calorimeter is 30 layers of: [ 20mm of Aluminium + 50mm of Aerogel ] ------------------------------------------------------------ -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.0219981 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.0219981 MeV to 100 GeV in 100 bins. -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -249,8 +255,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -261,8 +267,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -270,26 +276,29 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 +msc: Model variant of multiple scattering for GenericIon + muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -308,9 +317,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -331,10 +340,10 @@ msc: Model variant of multiple scattering for pi- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1304155288, 707820610 + Current couple of seeds = 227741149, 1105690670 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 327.16635 MeV total track length: 77.193843 cm - Gap: total energy: 62.338325 MeV total track length: 1.7060397 m + Absorber: total energy: 428.22036 MeV total track length: 1.0221799 m + Gap: total energy: 64.177519 MeV total track length: 1.8519419 m Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N03/include/ExN03DetectorConstruction.hh b/examples/novice/N03/include/ExN03DetectorConstruction.hh index 42218ca51a..b0cb47cd19 100644 --- a/examples/novice/N03/include/ExN03DetectorConstruction.hh +++ b/examples/novice/N03/include/ExN03DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorConstruction.hh,v 1.6 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/include/ExN03DetectorMessenger.hh b/examples/novice/N03/include/ExN03DetectorMessenger.hh index 680afc5c16..4f03527e11 100644 --- a/examples/novice/N03/include/ExN03DetectorMessenger.hh +++ b/examples/novice/N03/include/ExN03DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorMessenger.hh,v 1.6 2002/12/16 16:37:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/include/ExN03EventAction.hh b/examples/novice/N03/include/ExN03EventAction.hh index 29fc1a8810..21b3ac38e7 100644 --- a/examples/novice/N03/include/ExN03EventAction.hh +++ b/examples/novice/N03/include/ExN03EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03EventAction.hh,v 1.8 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/include/ExN03EventActionMessenger.hh b/examples/novice/N03/include/ExN03EventActionMessenger.hh index 834e2e61d1..ca772aa0ba 100644 --- a/examples/novice/N03/include/ExN03EventActionMessenger.hh +++ b/examples/novice/N03/include/ExN03EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03EventActionMessenger.hh,v 1.7 2002/12/16 16:37:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/include/ExN03PhysicsList.hh b/examples/novice/N03/include/ExN03PhysicsList.hh index 63e7a6766c..4147914293 100644 --- a/examples/novice/N03/include/ExN03PhysicsList.hh +++ b/examples/novice/N03/include/ExN03PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PhysicsList.hh,v 1.11 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh b/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh index 7bd4999e50..9211e4e490 100644 --- a/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh +++ b/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorAction.hh,v 1.6 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh b/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh index 67bf68dec4..ad9eccab89 100644 --- a/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh +++ b/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorMessenger.hh,v 1.6 2002/12/16 16:37:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/include/ExN03RunAction.hh b/examples/novice/N03/include/ExN03RunAction.hh index 14d669212b..4b9d6f9a59 100644 --- a/examples/novice/N03/include/ExN03RunAction.hh +++ b/examples/novice/N03/include/ExN03RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03RunAction.hh,v 1.8 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/include/ExN03SteppingAction.hh b/examples/novice/N03/include/ExN03SteppingAction.hh index c293c21b5d..c565e24f9b 100644 --- a/examples/novice/N03/include/ExN03SteppingAction.hh +++ b/examples/novice/N03/include/ExN03SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingAction.hh,v 1.8 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/include/ExN03SteppingVerbose.hh b/examples/novice/N03/include/ExN03SteppingVerbose.hh index ceed16c906..ae4ae2b04f 100644 --- a/examples/novice/N03/include/ExN03SteppingVerbose.hh +++ b/examples/novice/N03/include/ExN03SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingVerbose.hh,v 1.8 2003/09/15 15:38:15 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/include/ExN03VisManager.hh b/examples/novice/N03/include/ExN03VisManager.hh deleted file mode 100644 index c7eb0ab4eb..0000000000 --- a/examples/novice/N03/include/ExN03VisManager.hh +++ /dev/null @@ -1,72 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN03VisManager.hh,v 1.7 2003/09/15 15:38:15 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef ExN03VisManager_h -#define ExN03VisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class ExN03VisManager: public G4VisManager { - -public: - - ExN03VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - -#endif diff --git a/examples/novice/N03/src/ExN03DetectorConstruction.cc b/examples/novice/N03/src/ExN03DetectorConstruction.cc index 90609687c5..b16c92b50d 100644 --- a/examples/novice/N03/src/ExN03DetectorConstruction.cc +++ b/examples/novice/N03/src/ExN03DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorConstruction.cc,v 1.21 2004/11/14 10:12:08 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/src/ExN03DetectorMessenger.cc b/examples/novice/N03/src/ExN03DetectorMessenger.cc index 74f59fbebb..565ef4ada7 100644 --- a/examples/novice/N03/src/ExN03DetectorMessenger.cc +++ b/examples/novice/N03/src/ExN03DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorMessenger.cc,v 1.9 2003/09/15 15:38:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/src/ExN03EventAction.cc b/examples/novice/N03/src/ExN03EventAction.cc index 25aeb9b749..31a016ec69 100644 --- a/examples/novice/N03/src/ExN03EventAction.cc +++ b/examples/novice/N03/src/ExN03EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventAction.cc,v 1.23 2003/11/12 16:15:48 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ExN03EventAction.cc,v 1.24 2005/05/30 14:24:31 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // @@ -112,11 +112,11 @@ void ExN03EventAction::EndOfEventAction(const G4Event* evt) for (G4int i=0; iGetTrajectoryContainer()))[i]); - if (drawFlag == "all") pVisManager->Draw(*trj,1000); + if (drawFlag == "all") pVisManager->Draw(*trj,100); else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) - pVisManager->Draw(*trj,1000); + pVisManager->Draw(*trj,100); else if ((drawFlag == "neutral")&&(trj->GetCharge() == 0.)) - pVisManager->Draw(*trj,1000); + pVisManager->Draw(*trj,100); } } } diff --git a/examples/novice/N03/src/ExN03EventActionMessenger.cc b/examples/novice/N03/src/ExN03EventActionMessenger.cc index cc1e076e63..5f51a1dafd 100644 --- a/examples/novice/N03/src/ExN03EventActionMessenger.cc +++ b/examples/novice/N03/src/ExN03EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03EventActionMessenger.cc,v 1.9 2002/12/16 16:37:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/src/ExN03PhysicsList.cc b/examples/novice/N03/src/ExN03PhysicsList.cc index f67c726f41..15b3a4176e 100644 --- a/examples/novice/N03/src/ExN03PhysicsList.cc +++ b/examples/novice/N03/src/ExN03PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PhysicsList.cc,v 1.18 2004/03/19 14:58:21 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc b/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc index 3f7133134b..1aec052685 100644 --- a/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc +++ b/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorAction.cc,v 1.7 2003/09/15 15:38:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc b/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc index 6b8fcc6f2b..c151c7080e 100644 --- a/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc +++ b/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.8 2002/12/16 16:37:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N03/src/ExN03RunAction.cc b/examples/novice/N03/src/ExN03RunAction.cc index e7263aeef9..40e0e6a4b5 100644 --- a/examples/novice/N03/src/ExN03RunAction.cc +++ b/examples/novice/N03/src/ExN03RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03RunAction.cc,v 1.15 2003/11/25 16:50:13 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03SteppingAction.cc b/examples/novice/N03/src/ExN03SteppingAction.cc index 86d4a00d04..3f66d85702 100644 --- a/examples/novice/N03/src/ExN03SteppingAction.cc +++ b/examples/novice/N03/src/ExN03SteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03SteppingAction.cc,v 1.8 2003/09/15 15:38:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ExN03SteppingAction.cc,v 1.9 2005/02/02 17:11:11 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // @@ -64,10 +64,8 @@ void ExN03SteppingAction::UserSteppingAction(const G4Step* aStep) if (track->GetDefinition()->GetPDGCharge() != 0.) stepl = aStep->GetStepLength(); - if ((edep!=0.)) { - if (volume == detector->GetAbsorber()) eventaction->AddAbs(edep,stepl); - if (volume == detector->GetGap()) eventaction->AddGap(edep,stepl); - } + if (volume == detector->GetAbsorber()) eventaction->AddAbs(edep,stepl); + if (volume == detector->GetGap()) eventaction->AddGap(edep,stepl); // save the random number seed of this event, under condition //// if(condition) G4RunManager::GetRunManager()->rndmSaveThisEvent(); diff --git a/examples/novice/N03/src/ExN03SteppingVerbose.cc b/examples/novice/N03/src/ExN03SteppingVerbose.cc index 03f2f0e388..c8d4a61c63 100644 --- a/examples/novice/N03/src/ExN03SteppingVerbose.cc +++ b/examples/novice/N03/src/ExN03SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingVerbose.cc,v 1.12 2003/09/15 15:38:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03VisManager.cc b/examples/novice/N03/src/ExN03VisManager.cc deleted file mode 100755 index 4bf94702f1..0000000000 --- a/examples/novice/N03/src/ExN03VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN03VisManager.cc,v 1.12 2003/11/06 14:37:10 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "ExN03VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN03VisManager::ExN03VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/visTutor/History b/examples/novice/N03/visTutor/History index 56b9293680..2579097eb6 100644 --- a/examples/novice/N03/visTutor/History +++ b/examples/novice/N03/visTutor/History @@ -2,6 +2,9 @@ examples/novice/N03/visTutor/History ==================================== +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 10-12-04 Joseph Perl - exNo3Vis5.mac: changed name in comments in header from ...Vis6 to ...Vis5. - exNo3Vis6.mac: changed name in comments in header from ...Vis7 to ...Vis6. diff --git a/examples/novice/N04/History b/examples/novice/N04/History index 92924606c4..52f21fa6b1 100644 --- a/examples/novice/N04/History +++ b/examples/novice/N04/History @@ -1,4 +1,4 @@ -$Id: History,v 1.41 2004/12/14 13:32:11 stesting Exp $ +$Id: History,v 1.42 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + 14 Dec 2004 Sergey Sadilov (exampleN04-V06-02-03) - Removed bad first string in hadronics-lists.gmk diff --git a/examples/novice/N04/exampleN04.EMtest.out b/examples/novice/N04/exampleN04.EMtest.out index 66dab48158..b4802be856 100644 --- a/examples/novice/N04/exampleN04.EMtest.out +++ b/examples/novice/N04/exampleN04.EMtest.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-cand-03 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -15,180 +15,167 @@ You are using the simulation engine: QGSP 2.8 -phot: Total cross sections from Sandia parametrisation. +phot: Total cross sections from Sandia parametrisation. Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... +11170a0 +1116bc8 +1115498 +1114fc0 +112be28 +1128510 +112c300 +11289e8 +112c7d8 +1128ec0 +112e010 +1129870 +112b478 +1128038 +G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - ASCIITree (ATree) - DAWNFILE (DAWNFILE) - GAGTree (GAGTree) - G4HepRepFile (HepRepFile) - G4HepRep (HepRepXML) - RayTracer (RayTracer) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - FukuiRenderer (DAWN) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1 (VRML1) - VRML2 (VRML2) -0x8979380 -0x8979280 -0x8978e60 -0x8978d60 -0x897d7e0 -0x897ccc0 -0x897dbe0 -0x897cdc0 -0x897dce0 -0x897cec0 -0x897e0e0 -0x897d0c0 -0x897d6e0 -0x897cbc0 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate - -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. +compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. + PhysicsTables from 1 keV to 100 GeV in 80 bins. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. +conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. + PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. + Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 -msc: Model variant of multiple scattering for e- 0 +msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. + Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. annihil: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. + PhysicsTables from 10 keV to 10 TeV in 100 bins. annihil: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. + PhysicsTables from 10 keV to 10 TeV in 100 bins. eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 -msc: Model variant of multiple scattering for proton 0 +msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 Scaling relation is used to proton dE/dx and range - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 + +msc: Model variant of multiple scattering for GenericIon muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model + Parametrised model muPairProd: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model + Parametrised model -msc: Model variant of multiple scattering for mu+ 0 +msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model + Parametrised model muPairProd: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model + Parametrised model -msc: Model variant of multiple scattering for pi- 0 +msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 ========= Table of registered couples ============================== -Index : 0 used in the geometry : Yes recalculation needed : No +Index : 0 used in the geometry : Yes recalculation needed : No Material : Air Range cuts : gamma 700 mum e- 700 mum e+ 700 mum - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : DefaultRegionForTheWorld -Index : 1 used in the geometry : Yes recalculation needed : No +Index : 1 used in the geometry : Yes recalculation needed : No Material : ArgonGas Range cuts : gamma 700 mum e- 700 mum e+ 700 mum - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : DefaultRegionForTheWorld -Index : 2 used in the geometry : Yes recalculation needed : No +Index : 2 used in the geometry : Yes recalculation needed : No Material : Silicon Range cuts : gamma 700 mum e- 700 mum e+ 700 mum Energy thresholds : gamma 5.84521 keV e- 422.711 keV e+ 407.385 keV - Region(s) which use this couple : + Region(s) which use this couple : DefaultRegionForTheWorld -Index : 3 used in the geometry : Yes recalculation needed : No +Index : 3 used in the geometry : Yes recalculation needed : No Material : Scintillator Range cuts : gamma 700 mum e- 700 mum e+ 700 mum Energy thresholds : gamma 2.08499 keV e- 281.588 keV e+ 274.74 keV - Region(s) which use this couple : + Region(s) which use this couple : DefaultRegionForTheWorld -Index : 4 used in the geometry : Yes recalculation needed : No +Index : 4 used in the geometry : Yes recalculation needed : No Material : Lead Range cuts : gamma 700 mum e- 700 mum e+ 700 mum Energy thresholds : gamma 94.7155 keV e- 1.00067 MeV e+ 940.93 keV - Region(s) which use this couple : + Region(s) which use this couple : DefaultRegionForTheWorld ==================================================================== @@ -197,24 +184,24 @@ Index : 4 used in the geometry : Yes recalculation needed : No Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 1 isolated muon found. >>> Event 0 - 15 hits are stored in ExN04TrackerHitsCollection. + 19 hits are stored in ExN04TrackerHitsCollection. 5 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.46777758 (GeV) + Total energy deposition in calorimeter : 0.23222415 (GeV) 1 hits are stored in ExN04MuonHitsCollection. ### Run 1 start. Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 1 isolated muon found. >>> Event 0 - 9 hits are stored in ExN04TrackerHitsCollection. - 10 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 1.1193811 (GeV) + 7 hits are stored in ExN04TrackerHitsCollection. + 15 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 4.0202134 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 1 isolated muon found. >>> Event 1 - 25 hits are stored in ExN04TrackerHitsCollection. - 13 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.1341207 (GeV) + 5 hits are stored in ExN04TrackerHitsCollection. + 24 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 12.186877 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N04/exampleN04.cc b/examples/novice/N04/exampleN04.cc index eb79dbeba9..92c110ab5e 100644 --- a/examples/novice/N04/exampleN04.cc +++ b/examples/novice/N04/exampleN04.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN04.cc,v 1.8 2004/12/02 14:28:03 santin Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: exampleN04.cc,v 1.9 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -51,7 +51,7 @@ #include "ExN04SteppingVerbose.hh" #ifdef G4VIS_USE -#include "ExN04VisManager.hh" +#include "G4VisExecutive.hh" #endif int main(int argc,char** argv) @@ -65,7 +65,7 @@ int main(int argc,char** argv) #ifdef G4VIS_USE // Visualization, if you choose to have it! - G4VisManager* visManager = new ExN04VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/novice/N04/exampleN04.out b/examples/novice/N04/exampleN04.out index 5d6b837304..a223c5157d 100644 --- a/examples/novice/N04/exampleN04.out +++ b/examples/novice/N04/exampleN04.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-cand-03 $ (25-June-2004) + Geant4 version $Name: geant4-07-01 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -15,183 +15,170 @@ You are using the simulation engine: QGSP 2.8 -phot: Total cross sections from Sandia parametrisation. +phot: Total cross sections from Sandia parametrisation. Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - ASCIITree (ATree) - DAWNFILE (DAWNFILE) - GAGTree (GAGTree) - G4HepRepFile (HepRepFile) - G4HepRep (HepRepXML) - RayTracer (RayTracer) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - FukuiRenderer (DAWN) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1 (VRML1) - VRML2 (VRML2) -0x8979380 -0x8979280 -0x8978e60 -0x8978d60 -0x897d7e0 -0x897ccc0 -0x897dbe0 -0x897cdc0 -0x897dce0 -0x897cec0 -0x897e0e0 -0x897d0c0 -0x897d6e0 -0x897cbc0 +11170a0 +1116bc8 +1115498 +1114fc0 +112be28 +1128510 +112c300 +11289e8 +112c7d8 +1128ec0 +112e010 +1129870 +112b478 +1128038 /run/verbose 1 /tracking/verbose 0 /run/beamOn 3 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate +G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. +compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. + PhysicsTables from 1 keV to 100 GeV in 80 bins. -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. +conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. + PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. + Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 -msc: Model variant of multiple scattering for e- 0 +msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. + Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. annihil: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. + PhysicsTables from 10 keV to 10 TeV in 100 bins. annihil: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. + PhysicsTables from 10 keV to 10 TeV in 100 bins. eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 -msc: Model variant of multiple scattering for proton 0 +msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 Scaling relation is used to proton dE/dx and range - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 + +msc: Model variant of multiple scattering for GenericIon muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model + Parametrised model muPairProd: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model + Parametrised model -msc: Model variant of multiple scattering for mu+ 0 +msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model + Parametrised model muPairProd: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model + Parametrised model -msc: Model variant of multiple scattering for pi- 0 +msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 ========= Table of registered couples ============================== -Index : 0 used in the geometry : Yes recalculation needed : No +Index : 0 used in the geometry : Yes recalculation needed : No Material : Air Range cuts : gamma 700 mum e- 700 mum e+ 700 mum - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : DefaultRegionForTheWorld -Index : 1 used in the geometry : Yes recalculation needed : No +Index : 1 used in the geometry : Yes recalculation needed : No Material : ArgonGas Range cuts : gamma 700 mum e- 700 mum e+ 700 mum - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : DefaultRegionForTheWorld -Index : 2 used in the geometry : Yes recalculation needed : No +Index : 2 used in the geometry : Yes recalculation needed : No Material : Silicon Range cuts : gamma 700 mum e- 700 mum e+ 700 mum Energy thresholds : gamma 5.84521 keV e- 422.711 keV e+ 407.385 keV - Region(s) which use this couple : + Region(s) which use this couple : DefaultRegionForTheWorld -Index : 3 used in the geometry : Yes recalculation needed : No +Index : 3 used in the geometry : Yes recalculation needed : No Material : Scintillator Range cuts : gamma 700 mum e- 700 mum e+ 700 mum Energy thresholds : gamma 2.08499 keV e- 281.588 keV e+ 274.74 keV - Region(s) which use this couple : + Region(s) which use this couple : DefaultRegionForTheWorld -Index : 4 used in the geometry : Yes recalculation needed : No +Index : 4 used in the geometry : Yes recalculation needed : No Material : Lead Range cuts : gamma 700 mum e- 700 mum e+ 700 mum Energy thresholds : gamma 94.7155 keV e- 1.00067 MeV e+ 940.93 keV - Region(s) which use this couple : + Region(s) which use this couple : DefaultRegionForTheWorld ==================================================================== @@ -201,9 +188,9 @@ Start Run processing. Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 1 isolated muon found. >>> Event 0 - 129 hits are stored in ExN04TrackerHitsCollection. - 59 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.90942701 (GeV) + 117 hits are stored in ExN04TrackerHitsCollection. + 40 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.66710365 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Stage 0->1 : 0 hits found in the muon chamber. ++++++++ event aborted @@ -216,14 +203,14 @@ Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 0 isolated muon found. ++++++++ event aborted >>> Event 2 - 82 hits are stored in ExN04TrackerHitsCollection. + 87 hits are stored in ExN04TrackerHitsCollection. 13 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.33049465 (GeV) + Total energy deposition in calorimeter : 0.33093991 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Run terminated. Run Summary Number of events processed : 3 - User=0.69s Real=0.69s Sys=0s + User=3.22s Real=3.62s Sys=0.19s G4 kernel has come to Quit state. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N04/include/ExN04RunAction.hh b/examples/novice/N04/include/ExN04RunAction.hh index 5749f7fc1e..4a11a9fb82 100644 --- a/examples/novice/N04/include/ExN04RunAction.hh +++ b/examples/novice/N04/include/ExN04RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.hh,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N04/include/ExN04SteppingVerbose.hh b/examples/novice/N04/include/ExN04SteppingVerbose.hh index dd7e1ac913..08157cf409 100644 --- a/examples/novice/N04/include/ExN04SteppingVerbose.hh +++ b/examples/novice/N04/include/ExN04SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.hh,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/novice/N04/include/ExN04VisManager.hh b/examples/novice/N04/include/ExN04VisManager.hh deleted file mode 100644 index 77d00ec4b5..0000000000 --- a/examples/novice/N04/include/ExN04VisManager.hh +++ /dev/null @@ -1,72 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN04VisManager.hh,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef ExN04VisManager_h -#define ExN04VisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class ExN04VisManager: public G4VisManager { - -public: - - ExN04VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - -#endif diff --git a/examples/novice/N04/src/ExN04RunAction.cc b/examples/novice/N04/src/ExN04RunAction.cc index 086f72806a..a17d12dc4b 100644 --- a/examples/novice/N04/src/ExN04RunAction.cc +++ b/examples/novice/N04/src/ExN04RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.cc,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N04/src/ExN04SteppingVerbose.cc b/examples/novice/N04/src/ExN04SteppingVerbose.cc index 06a43ff605..75b5499bb7 100644 --- a/examples/novice/N04/src/ExN04SteppingVerbose.cc +++ b/examples/novice/N04/src/ExN04SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.cc,v 1.3 2003/06/16 16:49:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N04/src/ExN04VisManager.cc b/examples/novice/N04/src/ExN04VisManager.cc deleted file mode 100755 index 6d8cec54e0..0000000000 --- a/examples/novice/N04/src/ExN04VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN04VisManager.cc,v 1.3 2003/11/10 14:28:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "ExN04VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN04VisManager::ExN04VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN04VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N05/History b/examples/novice/N05/History index 86d43e4983..f96665ff3b 100644 --- a/examples/novice/N05/History +++ b/examples/novice/N05/History @@ -1,4 +1,4 @@ -$Id: History,v 1.22 2004/12/09 10:59:40 vnivanch Exp $ +$Id: History,v 1.24 2005/06/28 14:47:09 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,12 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +28th June 2005 Gabriele Cosmo (exampleN05-V07-00-00) +- Added inclusion of to RandomGamma.cc. + +3rd May 2005 John Allison +- Replaced vis manager with G4VisExecutive. + December 9, 2004 Vladimir Ivanchenko (exampleN05-V06-02-02) - Fix compilation problem diff --git a/examples/novice/N05/exampleN05.cc b/examples/novice/N05/exampleN05.cc index 5ef185a2fb..5aa043f20b 100644 --- a/examples/novice/N05/exampleN05.cc +++ b/examples/novice/N05/exampleN05.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN05.cc,v 1.10 2002/01/09 17:24:16 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: exampleN05.cc,v 1.11 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -64,7 +64,7 @@ #include "G4RunManager.hh" #ifdef G4VIS_USE -#include "ExN05VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "G4ios.hh" @@ -105,7 +105,7 @@ int main(int argc, char** argv) { //---------------- #ifdef G4VIS_USE G4cout << "Instantiating Visualization Manager......." << G4endl; - G4VisManager* visManager = new ExN05VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager -> Initialize (); #endif diff --git a/examples/novice/N05/exampleN05.out b/examples/novice/N05/exampleN05.out index 637c0b4b48..7bb5bba351 100644 --- a/examples/novice/N05/exampleN05.out +++ b/examples/novice/N05/exampleN05.out @@ -1,7 +1,7 @@ RunManager construction starting.... ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -10,8 +10,6 @@ RunManager construction starting.... ExN05DetectorConstruction.... - -phot: Total cross sections from Sandia parametrisation. Closing FastSimulation Instantiating Visualization Manager....... Visualization Manager instantiating... @@ -23,20 +21,23 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -45,8 +46,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -57,8 +58,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -66,26 +67,29 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 +msc: Model variant of multiple scattering for GenericIon + muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -104,9 +108,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -125,309 +129,309 @@ msc: Model variant of multiple scattering for pi- ExN05EMShowerModel::DoIt >>> Event 0 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999919 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999895 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 1 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999914 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999922 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 - 11 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999906 (GeV) + 13 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999901 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999561 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999901 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 7 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999847 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999924 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 1 start. ExN05EMShowerModel::DoIt >>> Event 0 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999892 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999895 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 1 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999929 (GeV) + 6 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999924 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999925 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999913 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 - 7 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99992 (GeV) + 8 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999928 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999916 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999922 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 2 start. ExN05EMShowerModel::DoIt >>> Event 0 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99993 (GeV) + 6 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999854 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 1 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999922 (GeV) + 7 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999921 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99989 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999927 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999917 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999922 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99992 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999912 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 3 start. ExN05EMShowerModel::DoIt >>> Event 0 - 11 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999917 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999923 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 1 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999911 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999912 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999905 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999912 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999917 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999925 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999908 (GeV) + 12 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999913 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 4 start. ExN05PionShowerModel::DoIt >>> Event 0 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.259988 (GeV) - 9 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.65997 (GeV) + 4 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.0999937 (GeV) + 11 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.899943 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.379981 (GeV) - 12 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 1.45992 (GeV) + 13 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.499974 (GeV) + 11 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 1.37992 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 17 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.639969 (GeV) - 12 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 2.11989 (GeV) + 19 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.879947 (GeV) + 13 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 1.91988 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 22 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.899954 (GeV) - 15 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 2.67986 (GeV) + 24 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.19993 (GeV) + 14 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 2.47985 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 24 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.13994 (GeV) + 26 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.45991 (GeV) 16 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 3.17983 (GeV) + Total energy deposition in HAD calorimeter towers : 3.17981 (GeV) number of event = 5 ### Run 5 start. ExN05PionShowerModel::DoIt >>> Event 0 - 24 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.13994 (GeV) - 25 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 4.19979 (GeV) + 29 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.51991 (GeV) + 29 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 4.11977 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 28 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.24011 (GeV) + 29 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.51991 (GeV) 31 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 5.03953 (GeV) + Total energy deposition in HAD calorimeter towers : 5.11971 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 28 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.27991 (GeV) + 30 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.53991 (GeV) 33 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 5.99948 (GeV) + Total energy deposition in HAD calorimeter towers : 6.09966 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 28 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.27991 (GeV) - 33 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 6.97944 (GeV) + 31 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.55991 (GeV) + 35 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 7.0796 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 29 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.31991 (GeV) - 36 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 7.91938 (GeV) + 32 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.57991 (GeV) + 37 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 8.05953 (GeV) number of event = 5 ### Run 6 start. ExN05PionShowerModel::DoIt >>> Event 0 - 30 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.33991 (GeV) + 35 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.61992 (GeV) 51 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 8.87933 (GeV) + Total energy deposition in HAD calorimeter towers : 8.97932 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 34 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.4599 (GeV) - 52 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 9.75929 (GeV) + 35 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.6399 (GeV) + 56 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 9.93927 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 35 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.4999 (GeV) - 56 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 10.7192 (GeV) + 39 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.73989 (GeV) + 57 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 10.8392 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 37 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.5399 (GeV) - 59 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 11.6792 (GeV) + 39 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.73989 (GeV) + 60 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 11.8391 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 37 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.5399 (GeV) - 59 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 12.6791 (GeV) + 41 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.79989 (GeV) + 62 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 12.7791 (GeV) number of event = 5 ### Run 7 start. ExN05PionShowerModel::DoIt >>> Event 0 - 47 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.79988 (GeV) - 67 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 13.2991 (GeV) + 50 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 2.01987 (GeV) + 68 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 13.539 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 53 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.15986 (GeV) - 69 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 13.8791 (GeV) + 55 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 2.21986 (GeV) + 70 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 14.259 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 57 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.33985 (GeV) - 70 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 14.659 (GeV) + 58 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 2.39985 (GeV) + 71 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 15.039 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 60 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.51984 (GeV) - 70 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 15.419 (GeV) + 62 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 2.61984 (GeV) + 72 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 15.7789 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 61 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.83982 (GeV) - 70 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 16.0789 (GeV) + 65 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 2.85983 (GeV) + 73 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 16.5389 (GeV) number of event = 5 ### Run 8 start. >>> Event 0 - 38 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99919373 (GeV) + 35 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99648423 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 1 - 46 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99497265 (GeV) + 39 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.9935624 (GeV) 1 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.0044909435 (GeV) + Total energy deposition in HAD calorimeter towers : 0.003090627 (GeV) >>> Event 2 - 40 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99194788 (GeV) - 1 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.0017954339 (GeV) + 33 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99333229 (GeV) + 2 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.0030145333 (GeV) >>> Event 3 - 44 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99586209 (GeV) + 38 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.97739134 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 4 - 36 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.98845618 (GeV) - 3 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.0025230105 (GeV) + 30 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99942693 (GeV) + 0 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 9 start. >>> Event 0 - 21 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99757569 (GeV) + 27 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99532959 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 1 - 27 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.9984857 (GeV) - 2 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.0014228267 (GeV) + 22 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99589786 (GeV) + 0 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 2 - 19 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99271999 (GeV) - 2 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.0011666286 (GeV) + 33 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99988457 (GeV) + 0 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 3 - 27 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99676374 (GeV) + 25 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.9985414 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 4 - 22 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99991547 (GeV) + 23 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99989988 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 diff --git a/examples/novice/N05/include/ExN05CalorimeterHit.hh b/examples/novice/N05/include/ExN05CalorimeterHit.hh index c3375f272f..f129dcf8f6 100644 --- a/examples/novice/N05/include/ExN05CalorimeterHit.hh +++ b/examples/novice/N05/include/ExN05CalorimeterHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterHit.hh,v 1.7 2003/11/10 14:41:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN05CalorimeterHit_h diff --git a/examples/novice/N05/include/ExN05CalorimeterSD.hh b/examples/novice/N05/include/ExN05CalorimeterSD.hh index 00dc531591..7802feddcf 100644 --- a/examples/novice/N05/include/ExN05CalorimeterSD.hh +++ b/examples/novice/N05/include/ExN05CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterSD.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN05CalorimeterSD_h diff --git a/examples/novice/N05/include/ExN05DetectorConstruction.hh b/examples/novice/N05/include/ExN05DetectorConstruction.hh index 1dd3430998..5a193b5484 100644 --- a/examples/novice/N05/include/ExN05DetectorConstruction.hh +++ b/examples/novice/N05/include/ExN05DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05DetectorConstruction.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN05DetectorConstruction_h #define ExN05DetectorConstruction_h 1 diff --git a/examples/novice/N05/include/ExN05DetectorMessenger.hh b/examples/novice/N05/include/ExN05DetectorMessenger.hh index 2f54e64e7d..87ee66b135 100644 --- a/examples/novice/N05/include/ExN05DetectorMessenger.hh +++ b/examples/novice/N05/include/ExN05DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05DetectorMessenger.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N05/include/ExN05EMShowerModel.hh b/examples/novice/N05/include/ExN05EMShowerModel.hh index eece5a56e7..7562482343 100644 --- a/examples/novice/N05/include/ExN05EMShowerModel.hh +++ b/examples/novice/N05/include/ExN05EMShowerModel.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05EMShowerModel.hh,v 1.8 2003/06/16 16:49:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //---------------------------------------------- diff --git a/examples/novice/N05/include/ExN05EnergySpot.hh b/examples/novice/N05/include/ExN05EnergySpot.hh index a347340602..fd72479908 100644 --- a/examples/novice/N05/include/ExN05EnergySpot.hh +++ b/examples/novice/N05/include/ExN05EnergySpot.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05EnergySpot.hh,v 1.7 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN05EnergySpot_h #define ExN05EnergySpot_h diff --git a/examples/novice/N05/include/ExN05EventAction.hh b/examples/novice/N05/include/ExN05EventAction.hh index 0dbf2b2225..f2a1895766 100644 --- a/examples/novice/N05/include/ExN05EventAction.hh +++ b/examples/novice/N05/include/ExN05EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05EventAction.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN05EventAction_h diff --git a/examples/novice/N05/include/ExN05EventActionMessenger.hh b/examples/novice/N05/include/ExN05EventActionMessenger.hh index a0e13d3b56..154bfab593 100644 --- a/examples/novice/N05/include/ExN05EventActionMessenger.hh +++ b/examples/novice/N05/include/ExN05EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05EventActionMessenger.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN05EventActionMessenger_h diff --git a/examples/novice/N05/include/ExN05MaxTimeCuts.hh b/examples/novice/N05/include/ExN05MaxTimeCuts.hh index edd077e44c..873b76ef57 100644 --- a/examples/novice/N05/include/ExN05MaxTimeCuts.hh +++ b/examples/novice/N05/include/ExN05MaxTimeCuts.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05MaxTimeCuts.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05MinEkineCuts.hh b/examples/novice/N05/include/ExN05MinEkineCuts.hh index c62a6965de..50fcabaa37 100644 --- a/examples/novice/N05/include/ExN05MinEkineCuts.hh +++ b/examples/novice/N05/include/ExN05MinEkineCuts.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05MinEkineCuts.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05MinRangeCuts.hh b/examples/novice/N05/include/ExN05MinRangeCuts.hh index e70d6cfc62..7b829d4111 100644 --- a/examples/novice/N05/include/ExN05MinRangeCuts.hh +++ b/examples/novice/N05/include/ExN05MinRangeCuts.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05MinRangeCuts.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05PhysicsList.hh b/examples/novice/N05/include/ExN05PhysicsList.hh index ba256d5f72..19c5bcf71f 100644 --- a/examples/novice/N05/include/ExN05PhysicsList.hh +++ b/examples/novice/N05/include/ExN05PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05PhysicsList.hh,v 1.7 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // #ifndef ExN05PhysicsList_h diff --git a/examples/novice/N05/include/ExN05PiModel.hh b/examples/novice/N05/include/ExN05PiModel.hh index c4bde0bd23..0d4d54eb5e 100644 --- a/examples/novice/N05/include/ExN05PiModel.hh +++ b/examples/novice/N05/include/ExN05PiModel.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05PiModel.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //---------------------------------------- diff --git a/examples/novice/N05/include/ExN05PionShowerModel.hh b/examples/novice/N05/include/ExN05PionShowerModel.hh index 5d744d866c..37be7ca333 100644 --- a/examples/novice/N05/include/ExN05PionShowerModel.hh +++ b/examples/novice/N05/include/ExN05PionShowerModel.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05PionShowerModel.hh,v 1.8 2003/06/16 16:50:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //---------------------------------------------- diff --git a/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh b/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh index 700a352dd1..4fb11ea908 100644 --- a/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh +++ b/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05PrimaryGeneratorAction.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN05PrimaryGeneratorAction_h diff --git a/examples/novice/N05/include/ExN05RunAction.hh b/examples/novice/N05/include/ExN05RunAction.hh index 4c8b8e7cf6..a4e821e101 100644 --- a/examples/novice/N05/include/ExN05RunAction.hh +++ b/examples/novice/N05/include/ExN05RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05RunAction.hh,v 1.8 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN05RunAction_h diff --git a/examples/novice/N05/include/ExN05SpecialCuts.hh b/examples/novice/N05/include/ExN05SpecialCuts.hh index 221ad13555..65ab24d8c4 100644 --- a/examples/novice/N05/include/ExN05SpecialCuts.hh +++ b/examples/novice/N05/include/ExN05SpecialCuts.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05SpecialCuts.hh,v 1.7 2003/08/27 16:15:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05SteppingAction.hh b/examples/novice/N05/include/ExN05SteppingAction.hh index 0b8fd1955c..c79d3926d2 100644 --- a/examples/novice/N05/include/ExN05SteppingAction.hh +++ b/examples/novice/N05/include/ExN05SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05SteppingAction.hh,v 1.5 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN05SteppingAction_h diff --git a/examples/novice/N05/include/ExN05SteppingActionMessenger.hh b/examples/novice/N05/include/ExN05SteppingActionMessenger.hh index 5e94c7c97b..1dafa864e2 100644 --- a/examples/novice/N05/include/ExN05SteppingActionMessenger.hh +++ b/examples/novice/N05/include/ExN05SteppingActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05SteppingActionMessenger.hh,v 1.4 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN05SteppingActionMessenger_h diff --git a/examples/novice/N05/include/ExN05VisManager.hh b/examples/novice/N05/include/ExN05VisManager.hh deleted file mode 100644 index eb3e6414b7..0000000000 --- a/examples/novice/N05/include/ExN05VisManager.hh +++ /dev/null @@ -1,70 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN05VisManager.hh,v 1.3 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new ExN05VisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef ExN05VisManager_h -#define ExN05VisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class ExN05VisManager: public G4VisManager { - -public: - - ExN05VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -#endif - -#endif diff --git a/examples/novice/N05/src/ExN05CalorimeterHit.cc b/examples/novice/N05/src/ExN05CalorimeterHit.cc index 8926768a01..f7ae39559d 100644 --- a/examples/novice/N05/src/ExN05CalorimeterHit.cc +++ b/examples/novice/N05/src/ExN05CalorimeterHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterHit.cc,v 1.5 2003/05/28 11:20:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05CalorimeterHit.hh" diff --git a/examples/novice/N05/src/ExN05CalorimeterSD.cc b/examples/novice/N05/src/ExN05CalorimeterSD.cc index 32e161e8b9..ac141ba2f8 100644 --- a/examples/novice/N05/src/ExN05CalorimeterSD.cc +++ b/examples/novice/N05/src/ExN05CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterSD.cc,v 1.5 2003/05/28 11:20:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05CalorimeterSD.hh" diff --git a/examples/novice/N05/src/ExN05DetectorConstruction.cc b/examples/novice/N05/src/ExN05DetectorConstruction.cc index 0e5acdbd21..bac6dbc346 100644 --- a/examples/novice/N05/src/ExN05DetectorConstruction.cc +++ b/examples/novice/N05/src/ExN05DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05DetectorConstruction.cc,v 1.5 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05DetectorConstruction.hh" #include "ExN05CalorimeterSD.hh" diff --git a/examples/novice/N05/src/ExN05DetectorMessenger.cc b/examples/novice/N05/src/ExN05DetectorMessenger.cc index 4ae99dfbc3..d25f4da8ad 100644 --- a/examples/novice/N05/src/ExN05DetectorMessenger.cc +++ b/examples/novice/N05/src/ExN05DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05DetectorMessenger.cc,v 1.6 2003/06/16 16:50:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N05/src/ExN05EMShowerModel.cc b/examples/novice/N05/src/ExN05EMShowerModel.cc index 0b6c4bc3da..b6384a1df5 100644 --- a/examples/novice/N05/src/ExN05EMShowerModel.cc +++ b/examples/novice/N05/src/ExN05EMShowerModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EMShowerModel.cc,v 1.9 2004/11/25 23:35:16 mverderi Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ExN05EMShowerModel.cc,v 1.10 2005/06/27 15:28:00 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05EMShowerModel.hh" #include "ExN05EnergySpot.hh" @@ -114,7 +114,7 @@ void ExN05EMShowerModel::Explode(const G4FastTrack& fastTrack) G4double a, tmax, b(0.5), C; if (fastTrack.GetPrimaryTrack()->GetDefinition() == G4Gamma::GammaDefinition()) C = 0.5; else C = -0.5; - tmax = 1.0 * (log(y) + C); + tmax = 1.0 * (std::log(y) + C); a = 1.0 + b*tmax; // t : reduced quantity = z/X0: @@ -161,7 +161,7 @@ void ExN05EMShowerModel::Explode(const G4FastTrack& fastTrack) // build the position: ePoint = sShower + z*zShower + - r*cos(phi)*xShower + r*sin(phi)*yShower; + r*std::cos(phi)*xShower + r*std::sin(phi)*yShower; // and the energy spot: eSpot.SetPosition(ePoint); diff --git a/examples/novice/N05/src/ExN05EnergySpot.cc b/examples/novice/N05/src/ExN05EnergySpot.cc index e192c7c226..271e47ad78 100644 --- a/examples/novice/N05/src/ExN05EnergySpot.cc +++ b/examples/novice/N05/src/ExN05EnergySpot.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05EnergySpot.cc,v 1.6 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05EnergySpot.hh" diff --git a/examples/novice/N05/src/ExN05EventAction.cc b/examples/novice/N05/src/ExN05EventAction.cc index 8434d4699a..9c5c98a4b9 100644 --- a/examples/novice/N05/src/ExN05EventAction.cc +++ b/examples/novice/N05/src/ExN05EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05EventAction.cc,v 1.8 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05EventAction.hh" diff --git a/examples/novice/N05/src/ExN05EventActionMessenger.cc b/examples/novice/N05/src/ExN05EventActionMessenger.cc index 8aaa33821d..2ef39bcec2 100644 --- a/examples/novice/N05/src/ExN05EventActionMessenger.cc +++ b/examples/novice/N05/src/ExN05EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05EventActionMessenger.cc,v 1.5 2003/06/16 16:50:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05EventActionMessenger.hh" diff --git a/examples/novice/N05/src/ExN05MaxTimeCuts.cc b/examples/novice/N05/src/ExN05MaxTimeCuts.cc index 690009bb37..e2d2c877a4 100644 --- a/examples/novice/N05/src/ExN05MaxTimeCuts.cc +++ b/examples/novice/N05/src/ExN05MaxTimeCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05MaxTimeCuts.cc,v 1.6 2003/05/28 11:20:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05MinEkineCuts.cc b/examples/novice/N05/src/ExN05MinEkineCuts.cc index ccedea45b9..22c46fc64c 100644 --- a/examples/novice/N05/src/ExN05MinEkineCuts.cc +++ b/examples/novice/N05/src/ExN05MinEkineCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05MinEkineCuts.cc,v 1.7 2003/12/09 08:42:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05MinRangeCuts.cc b/examples/novice/N05/src/ExN05MinRangeCuts.cc index 719ce80fc1..fbd08bd4f5 100644 --- a/examples/novice/N05/src/ExN05MinRangeCuts.cc +++ b/examples/novice/N05/src/ExN05MinRangeCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05MinRangeCuts.cc,v 1.6 2003/08/27 16:15:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05PhysicsList.cc b/examples/novice/N05/src/ExN05PhysicsList.cc index 3bcff3ed58..8c1950e801 100644 --- a/examples/novice/N05/src/ExN05PhysicsList.cc +++ b/examples/novice/N05/src/ExN05PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05PhysicsList.cc,v 1.9 2003/09/29 04:54:11 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N05/src/ExN05PiModel.cc b/examples/novice/N05/src/ExN05PiModel.cc index 470fcd795c..6d65f9d039 100644 --- a/examples/novice/N05/src/ExN05PiModel.cc +++ b/examples/novice/N05/src/ExN05PiModel.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05PiModel.cc,v 1.5 2004/11/25 23:43:02 mverderi Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05PiModel.hh" diff --git a/examples/novice/N05/src/ExN05PionShowerModel.cc b/examples/novice/N05/src/ExN05PionShowerModel.cc index 46967e69a9..b118fb637d 100644 --- a/examples/novice/N05/src/ExN05PionShowerModel.cc +++ b/examples/novice/N05/src/ExN05PionShowerModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PionShowerModel.cc,v 1.11 2004/11/25 23:35:16 mverderi Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ExN05PionShowerModel.cc,v 1.12 2005/06/27 15:28:03 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05PionShowerModel.hh" #include "ExN05EnergySpot.hh" @@ -138,7 +138,7 @@ void ExN05PionShowerModel::Explode(const G4FastTrack& fastTrack) phi = RandFlat::shoot()*twopi; ePoint = showerCenter + z*zShower + - r*cos(phi)*xShower + r*sin(phi)*yShower; + r*std::cos(phi)*xShower + r*std::sin(phi)*yShower; eSpot.SetPosition(ePoint); feSpotList.push_back(eSpot); } diff --git a/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc b/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc index 4d08ff4ed0..deb4d77653 100644 --- a/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc +++ b/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05PrimaryGeneratorAction.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05PrimaryGeneratorAction.hh" diff --git a/examples/novice/N05/src/ExN05RunAction.cc b/examples/novice/N05/src/ExN05RunAction.cc index 2d593c94b4..d432721201 100644 --- a/examples/novice/N05/src/ExN05RunAction.cc +++ b/examples/novice/N05/src/ExN05RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05RunAction.cc,v 1.7 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Make this appear first! diff --git a/examples/novice/N05/src/ExN05SpecialCuts.cc b/examples/novice/N05/src/ExN05SpecialCuts.cc index c95f412c29..986d4b9980 100644 --- a/examples/novice/N05/src/ExN05SpecialCuts.cc +++ b/examples/novice/N05/src/ExN05SpecialCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05SpecialCuts.cc,v 1.8 2004/12/09 10:59:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/src/ExN05SteppingAction.cc b/examples/novice/N05/src/ExN05SteppingAction.cc index cbd4d0d5ec..f263ccdb35 100644 --- a/examples/novice/N05/src/ExN05SteppingAction.cc +++ b/examples/novice/N05/src/ExN05SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05SteppingAction.cc,v 1.6 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05SteppingAction.hh" diff --git a/examples/novice/N05/src/ExN05SteppingActionMessenger.cc b/examples/novice/N05/src/ExN05SteppingActionMessenger.cc index e485b893f6..c08d2d567e 100644 --- a/examples/novice/N05/src/ExN05SteppingActionMessenger.cc +++ b/examples/novice/N05/src/ExN05SteppingActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05SteppingActionMessenger.cc,v 1.5 2003/06/16 16:50:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN05SteppingActionMessenger.hh" diff --git a/examples/novice/N05/src/ExN05VisManager.cc b/examples/novice/N05/src/ExN05VisManager.cc deleted file mode 100644 index 3f6c63999c..0000000000 --- a/examples/novice/N05/src/ExN05VisManager.cc +++ /dev/null @@ -1,143 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN05VisManager.cc,v 1.8 2003/11/10 14:40:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifdef G4VIS_USE - -#include "ExN05VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -ExN05VisManager::ExN05VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void ExN05VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/novice/N05/src/RandomGamma.cc b/examples/novice/N05/src/RandomGamma.cc index 6e3a1c3d00..c15919a3ed 100644 --- a/examples/novice/N05/src/RandomGamma.cc +++ b/examples/novice/N05/src/RandomGamma.cc @@ -26,6 +26,7 @@ // distribution. // -------------------------------------------- #include "RandomGamma.hh" +#include #include double RandomGamma(double p) @@ -40,7 +41,7 @@ double RandomGamma(double p) { double a; a = RandExponential::shoot(); - h = p*(1.-1./(9*p)+a/(3*sqrt(p))); + h = p*(1.-1./(9*p)+a/(3*std::sqrt(p))); h = h*h*h; } } @@ -53,12 +54,12 @@ double RandomGamma(double p) double x = 1.; RandFlat::shootArray(m, stor); for (int i = 0; i < m; i++) x *= stor[i]; - h = -log(x); + h = -std::log(x); } if (f >= 0.00001) { double x = RandFlat::shoot(); - double x1 = -log(x); + double x1 = -std::log(x); if (f >= 0.9999) h += x1; else { @@ -66,12 +67,12 @@ double RandomGamma(double p) double wlog; while (1) { - wlog = log(x)/f; + wlog = std::log(x)/f; if (wlog > -100.) { - double w1 = exp(wlog); + double w1 = std::exp(wlog); x = RandFlat::shoot(); - wlog = log(x)/(1.-f); + wlog = std::log(x)/(1.-f); if (wlog < -100.) { h += x1; @@ -79,7 +80,7 @@ double RandomGamma(double p) } else { - double w = w1 + exp(wlog); + double w = w1 + std::exp(wlog); if (w <= 1.) { h += w1/w; diff --git a/examples/novice/N06/History b/examples/novice/N06/History index 071f29fb2f..af9437ae5d 100644 --- a/examples/novice/N06/History +++ b/examples/novice/N06/History @@ -1,4 +1,4 @@ -$Id: History,v 1.23 2004/06/01 08:24:39 gcosmo Exp $ +$Id: History,v 1.26 2005/05/17 00:21:46 gum Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,15 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +16 May 2005 Peter Gumplinger (exampleN06-V07-00-01) +- use SetProcessOrdering for theDecayProces + +11 May 2005 Michel Maire (exampleN06-V07-00-00) +- UI command cerenkovMaxPhotons available in Idle state only + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + June 1, 2004 Peter Gunplinger (exampleN06-V06-01-01) - Updated README file. diff --git a/examples/novice/N06/exampleN06.cc b/examples/novice/N06/exampleN06.cc index 67f13a04f6..24d60dd5f9 100644 --- a/examples/novice/N06/exampleN06.cc +++ b/examples/novice/N06/exampleN06.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN06.cc,v 1.7 2003/01/23 15:31:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: exampleN06.cc,v 1.8 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -64,7 +64,7 @@ #include "ExN06SteppingVerbose.hh" #ifdef G4VIS_USE -#include "ExN06VisManager.hh" +#include "G4VisExecutive.hh" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -87,7 +87,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new ExN06VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/novice/N06/exampleN06.out b/examples/novice/N06/exampleN06.out index edd47482d9..23bf2e4dd6 100644 --- a/examples/novice/N06/exampleN06.out +++ b/examples/novice/N06/exampleN06.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -15,8 +15,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -38,7 +38,6 @@ Equal /gun/energy 500 keV # /run/beamOn 1 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -47,8 +46,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -59,8 +58,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -68,9 +67,9 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -79,8 +78,11 @@ msc: Model variant of multiple scattering for proton hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 + +msc: Model variant of multiple scattering for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -89,9 +91,9 @@ msc: Model variant of multiple scattering for mu+ muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -106,9 +108,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -144,8 +146,8 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 840 mum 0 fm 0 fm 511 keV 0 eV 0 fm 0 fm Tank initStep - 1 -4.46 m -1.61 m 5 m 511 keV 0 eV 6.89 m 6.89 m Tank Transportation - 2 -8.91 m -3.23 m 10 m 511 keV 0 eV 6.89 m 13.8 m OutOfWorld Transportation + 1 -2.93 m -3.41 m 5 m 511 keV 0 eV 6.72 m 6.72 m Tank Transportation + 2 -5.85 m -6.82 m 10 m 511 keV 0 eV 6.72 m 13.4 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 55, Parent ID = 1 @@ -153,8 +155,8 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 840 mum 0 fm 0 fm 511 keV 0 eV 0 fm 0 fm Tank initStep - 1 4.46 m 1.61 m -5 m 511 keV 0 eV 6.89 m 6.89 m Tank Transportation - 2 8.91 m 3.23 m -10 m 511 keV 0 eV 6.89 m 13.8 m OutOfWorld Transportation + 1 2.93 m 3.41 m -5 m 511 keV 0 eV 6.72 m 6.72 m Tank Transportation + 2 5.85 m 6.82 m -10 m 511 keV 0 eV 6.72 m 13.4 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 1 @@ -165,11 +167,33 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Photon at Boundary! Old Momentum Direction: (-0.039667021,0.23525975,-0.97112274) Old Polarization: (-0.72823979,-0.67227019,-0.13311501) - New Momentum Direction: (-0.053777489,0.31894703,-0.94624562) - New Polarization: (-0.72931032,-0.65981972,-0.18095414) - *** FresnelRefraction *** + New Momentum Direction: (-0.039667021,0.23525975,0.97112274) + New Polarization: (-0.77760583,-0.61760754,0.11785625) + *** SpikeReflection *** 1 -20.4 cm 1.21 m -5 m 3.22 eV 0 eV 5.15 m 5.15 m Tank Transportation - 2 -48.8 cm 2.9 m -10 m 3.22 eV 0 eV 5.28 m 10.4 m OutOfWorld Transportation + 2 -20.4 cm 1.21 m -5 m 3.22 eV 0 eV 0 fm 5.15 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.039667021,0.23525975,0.97112274) + Old Polarization: (-0.77760583,-0.61760754,0.11785625) + New Momentum Direction: (-0.053777489,0.31894703,0.94624562) + New Polarization: (-0.77859685,-0.60671707,0.16025398) + *** FresnelRefraction *** + 3 -38.8 cm 2.3 m -50 cm 3.22 eV 0 eV 4.63 m 9.78 m Tank Transportation + Photon at Boundary! + Old Momentum Direction: (-0.053777489,0.31894703,0.94624562) + Old Polarization: (-0.77859685,-0.60671707,0.16025398) + New Momentum Direction: (-0.039667021,0.23525975,0.97112274) + New Polarization: (-0.77548502,-0.62013518,0.11855521) + *** FresnelRefraction *** + 4 -44.4 cm 2.64 m 50 cm 3.22 eV 0 eV 1.06 m 10.8 m Bubble Transportation + Photon at Boundary! + Old Momentum Direction: (-0.039667021,0.23525975,0.97112274) + Old Polarization: (-0.77548502,-0.62013518,0.11855521) + New Momentum Direction: (-0.053777489,0.31894703,0.94624562) + New Polarization: (-0.77647953,-0.60917426,0.16120255) + *** FresnelRefraction *** + 5 -62.8 cm 3.73 m 5 m 3.22 eV 0 eV 4.63 m 15.5 m Tank Transportation + 6 -91.2 cm 5.41 m 10 m 3.22 eV 0 eV 5.28 m 20.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 1 @@ -177,14 +201,9 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 362 mum 0 fm 0 fm 3.87 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.91371641,0.40251292,0.055728555) - Old Polarization: (0.0091534478,-0.1167208,0.99312258) - New Momentum Direction: (-0.83356173,0.54720655,0.075761619) - New Polarization: (-0.012618967,-0.15596858,0.98768141) - *** FresnelRefraction *** - 1 -5 m 2.2 m 30.5 cm 3.87 eV 0 eV 5.47 m 5.47 m Tank Transportation - 2 -10 m 5.49 m 75.9 cm 3.87 eV 0 eV 6 m 11.5 m OutOfWorld Transportation + +** Photon absorbed! ** + 1 -51.8 cm 22.8 cm 3.16 cm 3.87 eV 0 eV 56.8 cm 56.8 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 1 @@ -192,30 +211,9 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 670 mum 0 fm 0 fm 2.32 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.80723062,-0.168074,-0.56580019) - Old Polarization: (0.37889811,0.58744827,-0.71508094) - New Momentum Direction: (0.80723062,-0.168074,-0.56580019) - New Polarization: (0.010350842,0.96248335,-0.27114326) - *** LobeReflection *** - 1 -5 m -1.04 m -3.51 m 2.32 eV 0 eV 6.19 m 6.19 m Tank Transportation - 2 -5 m -1.04 m -3.51 m 2.32 eV 0 eV 0 fm 6.19 m World Transportation - Photon at Boundary! - Old Momentum Direction: (0.80723062,-0.168074,-0.56580019) - Old Polarization: (0.010350842,0.96248335,-0.27114326) - New Momentum Direction: (-0.80723062,0.168074,0.56580019) - New Polarization: (-0.010350842,-0.96248335,0.27114326) - *** BackScattering *** - 3 -2.87 m -1.49 m -5 m 2.32 eV 0 eV 2.64 m 8.84 m Tank Transportation - 4 -2.87 m -1.49 m -5 m 2.32 eV 0 eV 0 fm 8.84 m World Transportation - Photon at Boundary! - Old Momentum Direction: (-0.80723062,0.168074,0.56580019) - Old Polarization: (-0.010350842,-0.96248335,0.27114326) - New Momentum Direction: (-0.60633167,0.2264423,0.76228983) - New Polarization: (-0.014544314,-0.9615972,0.27407897) - *** FresnelRefraction *** - 5 -5 m -1.04 m -3.51 m 2.32 eV 0 eV 2.64 m 11.5 m Tank Transportation - 6 -10 m 82.6 cm 2.78 m 2.32 eV 0 eV 8.25 m 19.7 m OutOfWorld Transportation + +** Photon absorbed! ** + 1 -2.76 m -57.4 cm -1.93 m 2.32 eV 0 eV 3.41 m 3.41 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 1 @@ -255,11 +253,27 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Photon at Boundary! Old Momentum Direction: (-0.67976209,-0.25444015,0.6878835) Old Polarization: (0.70131468,0.049014812,0.71116472) - New Momentum Direction: (-0.91775944,-0.34352438,0.19927021) - New Polarization: (0.24368727,-0.09092361,0.96558242) - *** FresnelRefraction *** + New Momentum Direction: (0.21255617,-0.61432624,-0.75988364) + New Polarization: (-0.95021626,0.051371137,-0.30732728) + *** LambertianReflection *** 1 -4.94 m -1.85 m 5 m 2.54 eV 0 eV 7.27 m 7.27 m Tank Transportation - 2 -10 m -3.74 m 6.1 m 2.54 eV 0 eV 5.51 m 12.8 m OutOfWorld Transportation + 2 -4.94 m -1.85 m 5 m 2.54 eV 0 eV 0 fm 7.27 m World Transportation + Photon at Boundary! + Old Momentum Direction: (0.21255617,-0.61432624,-0.75988364) + Old Polarization: (-0.95021626,0.051371137,-0.30732728) + New Momentum Direction: (-0.21255617,0.61432624,0.75988364) + New Polarization: (0.95021626,-0.051371137,0.30732728) + *** BackScattering *** + 3 -3.85 m -5 m 1.1 m 2.54 eV 0 eV 5.13 m 12.4 m Tank Transportation + 4 -3.85 m -5 m 1.1 m 2.54 eV 0 eV 0 fm 12.4 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.21255617,0.61432624,0.75988364) + Old Polarization: (0.95021626,-0.051371137,0.30732728) + New Momentum Direction: (-0.28697604,0.82941328,0.47928944) + New Polarization: (0.89763117,0.058109916,0.43689989) + *** FresnelRefraction *** + 5 -4.94 m -1.85 m 5 m 2.54 eV 0 eV 5.13 m 17.5 m Tank Transportation + 6 -7.93 m 6.8 m 10 m 2.54 eV 0 eV 10.4 m 28 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 1 @@ -267,22 +281,28 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 569 mum 0 fm 0 fm 4.1 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (-0.085301626,0.99623032,0.015772581) -Old Polarization: (0.99209262,0.086388787,-0.091045097) -New Polarization: (-0.44403595,-0.34177454,0.82826459) -Polarization Change: (-0.44403595,-0.34177454,0.82826459) -New Momentum Direction: (-0.89470917,0.11935453,-0.43040678) -Momentum Change: (-0.89470917,0.11935453,-0.43040678) - 1 -8.95 cm 1.05 m 1.67 cm 4.1 eV 0 eV 1.06 m 1.06 m Tank OpRayleigh Photon at Boundary! - Old Momentum Direction: (-0.89470917,0.11935453,-0.43040678) - Old Polarization: (-0.44403595,-0.34177454,0.82826459) - New Momentum Direction: (-0.79416454,0.16239161,-0.58560366) - New Polarization: (-0.6042732,-0.31325323,0.73261607) + Old Momentum Direction: (-0.085301626,0.99623032,0.015772581) + Old Polarization: (0.99209262,0.086388787,-0.091045097) + New Momentum Direction: (-0.11605984,0.99301037,0.021459888) + New Polarization: (0.9889353,0.1175395,-0.090506599) *** FresnelRefraction *** - 2 -5 m 1.71 m -2.35 m 4.1 eV 0 eV 5.49 m 6.54 m Tank Transportation - 3 -10 m 2.73 m -6.03 m 4.1 eV 0 eV 6.3 m 12.8 m OutOfWorld Transportation + 1 -17.1 cm 2 m 3.17 cm 4.1 eV 0 eV 2.01 m 2.01 m Tank Transportation + Photon at Boundary! + Old Momentum Direction: (-0.11605984,0.99301037,0.021459888) + Old Polarization: (0.9889353,0.1175395,-0.090506599) + New Momentum Direction: (-0.085301626,0.99623032,0.015772581) + New Polarization: (0.99208438,0.086389492,-0.091134158) + *** FresnelRefraction *** + 2 -28.8 cm 3 m 5.33 cm 4.1 eV 0 eV 1.01 m 3.01 m Bubble Transportation + Photon at Boundary! + Old Momentum Direction: (-0.085301626,0.99623032,0.015772581) + Old Polarization: (0.99208438,0.086389492,-0.091134158) + New Momentum Direction: (-0.11605984,0.99301037,0.021459888) + New Polarization: (0.98892703,0.11754045,-0.090595612) + *** FresnelRefraction *** + 3 -45.9 cm 5 m 8.49 cm 4.1 eV 0 eV 2.01 m 5.02 m Tank Transportation + 4 -1.04 m 10 m 19.3 cm 4.1 eV 0 eV 5.04 m 10.1 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 1 @@ -290,25 +310,9 @@ Momentum Change: (-0.89470917,0.11935453,-0.43040678) Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 418 mum 0 fm 0 fm 4.09 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (-0.30869801,-0.93806187,0.15730691) -Old Polarization: (0.31298792,-0.25635496,-0.91450571) -New Polarization: (0.2633507,-0.74651644,-0.61103159) -Polarization Change: (0.2633507,-0.74651644,-0.61103159) -New Momentum Direction: (-0.16921193,-0.65931586,0.73257759) -Momentum Change: (-0.16921193,-0.65931586,0.73257759) - 1 -1.06 m -3.22 m 54 cm 4.09 eV 0 eV 3.43 m 3.43 m Tank OpRayleigh - Photon at Boundary! - Old Momentum Direction: (-0.16921193,-0.65931586,0.73257759) - Old Polarization: (0.2633507,-0.74651644,-0.61103159) - New Momentum Direction: (-0.16921193,0.65931586,0.73257759) - New Polarization: (-0.2633507,-0.74651644,0.61103159) - *** LobeReflection *** - 2 -1.52 m -5 m 2.52 m 4.09 eV 0 eV 2.7 m 6.13 m Tank Transportation - 3 -1.52 m -5 m 2.52 m 4.09 eV 0 eV 0 fm 6.13 m World Transportation ** Photon absorbed! ** - 4 -1.84 m -3.73 m 3.93 m 4.09 eV 0 eV 1.92 m 8.06 m Tank OpAbsorption + 1 -6.8 cm -20.8 cm 3.49 cm 4.09 eV 0 eV 22.2 cm 22.2 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 1 @@ -331,9 +335,14 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 699 mum 0 fm 0 fm 3.48 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 12.9 cm 11.5 cm -36.3 cm 3.48 eV 0 eV 40.1 cm 40.1 cm Tank OpAbsorption + Photon at Boundary! + Old Momentum Direction: (0.3191864,0.28562051,-0.90362656) + Old Polarization: (-0.94760845,0.10884696,-0.30031743) + New Momentum Direction: (0.4332881,0.38772318,-0.81359213) + New Polarization: (-0.90025675,0.14370886,-0.41095687) + *** FresnelRefraction *** + 1 1.77 m 1.58 m -5 m 3.48 eV 0 eV 5.53 m 5.53 m Tank Transportation + 2 4.43 m 3.96 m -10 m 3.48 eV 0 eV 6.15 m 11.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 1 @@ -341,14 +350,9 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 771 mum 0 fm 0 fm 3.29 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.76980983,0.62800174,-0.11404669) - Old Polarization: (0.17415605,-0.034766175,0.98410415) - New Momentum Direction: (0.5006382,0.85172582,-0.15467555) - New Polarization: (0.25055973,0.02845646,0.96768283) - *** FresnelRefraction *** - 1 5 m 4.08 m -74.1 cm 3.29 eV 0 eV 6.49 m 6.49 m Tank Transportation - 2 8.48 m 10 m -1.82 m 3.29 eV 0 eV 6.95 m 13.4 m OutOfWorld Transportation + +** Photon absorbed! ** + 1 8.87 cm 7.18 cm -1.3 cm 3.29 eV 0 eV 11.4 cm 11.4 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 1 @@ -356,14 +360,22 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 742 mum 0 fm 0 fm 3.41 eV 0 eV 0 fm 0 fm Tank initStep +Scattering Photon! +Old Momentum Direction: (0.43844391,0.89657956,-0.062546253) +Old Polarization: (0.69282795,-0.29283549,0.65896646) +New Polarization: (0.74394422,-0.41664507,0.52244989) +Polarization Change: (0.74394422,-0.41664507,0.52244989) +New Momentum Direction: (0.19702907,-0.61030778,-0.76727046) +Momentum Change: (0.19702907,-0.61030778,-0.76727046) + 1 1.2 m 2.46 m -17.1 cm 3.41 eV 0 eV 2.74 m 2.74 m Tank OpRayleigh Photon at Boundary! - Old Momentum Direction: (0.43844391,0.89657956,-0.062546253) - Old Polarization: (0.69282795,-0.29283549,0.65896646) - New Momentum Direction: (0.59499177,0.7992374,-0.084878601) - New Polarization: (-0.42313043,0.40127221,0.81236768) + Old Momentum Direction: (0.19702907,-0.61030778,-0.76727046) + Old Polarization: (0.74394422,-0.41664507,0.52244989) + New Momentum Direction: (0.26737895,-0.82822021,-0.49250359) + New Polarization: (0.40180596,0.56038671,-0.72423664) *** FresnelRefraction *** - 1 2.45 m 5 m -34.9 cm 3.41 eV 0 eV 5.58 m 5.58 m Tank Transportation - 2 6.17 m 10 m -88 cm 3.41 eV 0 eV 6.26 m 11.8 m OutOfWorld Transportation + 2 2.44 m -1.38 m -5 m 3.41 eV 0 eV 6.29 m 9.03 m Tank Transportation + 3 5.16 m -9.79 m -10 m 3.41 eV 0 eV 10.2 m 19.2 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 1 @@ -371,9 +383,14 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 647 mum 0 fm 0 fm 4.02 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 4.4 cm 4.12 cm 1.11 cm 4.02 eV 0 eV 6.08 cm 6.08 cm Tank OpAbsorption + Photon at Boundary! + Old Momentum Direction: (0.71269582,0.67722866,0.18282783) + Old Polarization: (-0.23374276,0.47501327,-0.84836709) + New Momentum Direction: (0.29961162,0.92108666,0.24866088) + New Polarization: (0.35459097,0.13445769,-0.9253034) + *** FresnelRefraction *** + 1 5 m 4.75 m 1.28 m 4.02 eV 0 eV 7.01 m 7.01 m Tank Transportation + 2 6.71 m 10 m 2.7 m 4.02 eV 0 eV 5.7 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 1 @@ -381,22 +398,14 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 135 mum 0 fm 0 fm 3.24 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (0.40741802,0.69626168,0.59095705) -Old Polarization: (0.3782559,-0.7176375,0.58473831) -New Polarization: (0.33317397,-0.83400473,0.43980816) -Polarization Change: (0.33317397,-0.83400473,0.43980816) -New Momentum Direction: (-0.26880883,-0.53112055,-0.80352521) -Momentum Change: (-0.26880883,-0.53112055,-0.80352521) - 1 1.39 m 2.38 m 2.02 m 3.24 eV 0 eV 3.42 m 3.42 m Tank OpRayleigh Photon at Boundary! - Old Momentum Direction: (-0.26880883,-0.53112055,-0.80352521) - Old Polarization: (0.33317397,-0.83400473,0.43980816) - New Momentum Direction: (-0.36445722,-0.7201055,-0.59043967) - New Polarization: (0.78704718,0.10069113,-0.60861978) + Old Momentum Direction: (0.40741802,0.69626168,0.59095705) + Old Polarization: (0.3782559,-0.7176375,0.58473831) + New Momentum Direction: (0.55238675,0.22998747,0.8012332) + New Polarization: (-0.14500002,0.97304308,-0.17933809) *** FresnelRefraction *** - 2 -95.5 cm -2.26 m -5 m 3.24 eV 0 eV 8.74 m 12.2 m Tank Transportation - 3 -4.04 m -8.36 m -10 m 3.24 eV 0 eV 8.47 m 20.6 m OutOfWorld Transportation + 1 2.93 m 5 m 4.24 m 3.24 eV 0 eV 7.18 m 7.18 m Tank Transportation + 2 6.89 m 6.65 m 10 m 3.24 eV 0 eV 7.18 m 14.4 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 1 @@ -407,11 +416,22 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Photon at Boundary! Old Momentum Direction: (0.61105452,0.27895939,0.74080634) Old Polarization: (-0.084101052,0.95342929,-0.28965427) - New Momentum Direction: (0.82930378,0.37859482,0.41100025) - New Polarization: (-0.5410869,0.72776694,0.42140271) - *** FresnelRefraction *** + New Momentum Direction: (0.61105452,0.27895939,-0.74080634) + New Polarization: (-0.30325042,0.94694671,0.1064477) + *** SpikeReflection *** 1 4.12 m 1.88 m 5 m 3.44 eV 0 eV 6.75 m 6.75 m Tank Transportation - 2 10 m 4.56 m 7.91 m 3.44 eV 0 eV 7.08 m 13.8 m OutOfWorld Transportation + 2 4.12 m 1.88 m 5 m 3.44 eV 0 eV 0 fm 6.75 m World Transportation + Photon at Boundary! + Old Momentum Direction: (0.61105452,0.27895939,-0.74080634) + Old Polarization: (-0.30325042,0.94694671,0.1064477) + New Momentum Direction: (-0.61105452,0.27895939,-0.74080634) + New Polarization: (-0.30325042,-0.94694671,-0.1064477) + *** LobeReflection *** + 3 5 m 2.28 m 3.94 m 3.44 eV 0 eV 1.43 m 8.18 m Tank Transportation + 4 5 m 2.28 m 3.94 m 3.44 eV 0 eV 0 fm 8.18 m World Transportation + +** Photon absorbed! ** + 5 4.05 m 2.71 m 2.79 m 3.44 eV 0 eV 1.55 m 9.73 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 1 @@ -422,11 +442,33 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Photon at Boundary! Old Momentum Direction: (0.15420853,-0.98795999,-0.012441754) Old Polarization: (-0.89175948,-0.14459267,0.42878665) - New Momentum Direction: (0.20966717,-0.97762647,-0.016916233) - New Polarization: (-0.88235741,-0.19663293,0.42752883) - *** FresnelRefraction *** + New Momentum Direction: (-0.15420853,0.98795999,0.012441754) + New Polarization: (0.89175948,0.14459267,-0.42878665) + *** BackScattering *** 1 78.1 cm -5 m -6.3 cm 3.91 eV 0 eV 5.06 m 5.06 m Tank Transportation - 2 1.85 m -10 m -14.9 cm 3.91 eV 0 eV 5.11 m 10.2 m OutOfWorld Transportation + 2 78.1 cm -5 m -6.3 cm 3.91 eV 0 eV 0 fm 5.06 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.15420853,0.98795999,0.012441754) + Old Polarization: (0.89175948,0.14459267,-0.42878665) + New Momentum Direction: (-0.20966717,0.97762647,0.016916233) + New Polarization: (0.88235741,0.19663293,-0.42752883) + *** FresnelRefraction *** + 3 -31.2 cm 2 m 2.52 cm 3.91 eV 0 eV 7.09 m 12.1 m Tank Transportation + Photon at Boundary! + Old Momentum Direction: (-0.20966717,0.97762647,0.016916233) + Old Polarization: (0.88235741,0.19663293,-0.42752883) + New Momentum Direction: (-0.69486096,0.71903647,0.012441754) + New Polarization: (-0.66648564,-0.63738581,-0.38669914) + *** FresnelRefraction *** + 4 -50 cm 2.88 m 4.04 cm 3.91 eV 0 eV 89.7 cm 13 m Bubble Transportation + Photon at Boundary! + Old Momentum Direction: (-0.69486096,0.71903647,0.012441754) + Old Polarization: (-0.66648564,-0.63738581,-0.38669914) + New Momentum Direction: (-0.94475663,0.32733583,0.016916233) + New Polarization: (0.29868447,0.88102199,-0.36686216) + *** FresnelRefraction *** + 5 -2.55 m 5 m 7.71 cm 3.91 eV 0 eV 2.95 m 16 m Tank Transportation + 6 -10 m 7.58 m 21 cm 3.91 eV 0 eV 7.88 m 23.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 @@ -437,22 +479,11 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Photon at Boundary! Old Momentum Direction: (-0.54325085,-0.82649986,-0.14756858) Old Polarization: (-0.81899119,0.48300711,0.30977019) - New Momentum Direction: (-0.54325085,0.82649986,-0.14756858) - New Polarization: (-0.10366624,0.10838794,0.98868871) - *** SpikeReflection *** + New Momentum Direction: (-0.73080113,-0.65308622,-0.19851471) + New Polarization: (0.4143463,-0.65555162,0.63132339) + *** FresnelRefraction *** 1 -3.29 m -5 m -89.3 cm 2.16 eV 0 eV 6.05 m 6.05 m Tank Transportation - 2 -3.29 m -5 m -89.3 cm 2.16 eV 0 eV 0 fm 6.05 m World Transportation - Photon at Boundary! - Old Momentum Direction: (-0.54325085,0.82649986,-0.14756858) - Old Polarization: (-0.10366624,0.10838794,0.98868871) - New Momentum Direction: (0.54325085,0.82649986,-0.14756858) - New Polarization: (-0.10366624,-0.10838794,-0.98868871) - *** LobeReflection *** - 3 -5 m -2.39 m -1.36 m 2.16 eV 0 eV 3.16 m 9.2 m Tank Transportation - 4 -5 m -2.39 m -1.36 m 2.16 eV 0 eV 0 fm 9.2 m World Transportation - -** Photon absorbed! ** - 5 -4.69 m -1.92 m -1.44 m 2.16 eV 0 eV 57.7 cm 9.78 m Tank OpAbsorption + 2 -8.88 m -10 m -2.41 m 2.16 eV 0 eV 7.66 m 13.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 @@ -506,19 +537,11 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Photon at Boundary! Old Momentum Direction: (-0.69881656,0.70075404,0.14352417) Old Polarization: (-0.052228775,0.15012561,-0.98728641) - New Momentum Direction: (-0.69881656,-0.70075404,0.14352417) - New Polarization: (-0.2873477,0.091269731,-0.95346795) - *** SpikeReflection *** - 3 -2.92 m 5 m 90.9 cm 3.59 eV 0 eV 3.46 m 6.12 m Tank Transportation - 4 -2.92 m 5 m 90.9 cm 3.59 eV 0 eV 0 fm 6.12 m World Transportation - Photon at Boundary! - Old Momentum Direction: (-0.69881656,-0.70075404,0.14352417) - Old Polarization: (-0.2873477,0.091269731,-0.95346795) - New Momentum Direction: (-0.23684526,-0.95178929,0.19493968) - New Polarization: (-0.44126564,-0.073374294,-0.89437176) + New Momentum Direction: (-0.94915773,0.24718034,0.19493968) + New Polarization: (-0.1367181,0.2341255,-0.96254528) *** FresnelRefraction *** - 5 -5 m 2.92 m 1.34 m 3.59 eV 0 eV 2.97 m 9.09 m Tank Transportation - 6 -8.21 m -10 m 3.98 m 3.59 eV 0 eV 13.6 m 22.7 m OutOfWorld Transportation + 3 -2.92 m 5 m 90.9 cm 3.59 eV 0 eV 3.46 m 6.12 m Tank Transportation + 4 -10 m 6.84 m 2.36 m 3.59 eV 0 eV 7.46 m 13.6 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 @@ -526,14 +549,9 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 725 mum 0 fm 0 fm 2.2 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.69753178,-0.71465812,0.052088261) - Old Polarization: (0.58818674,0.61257507,0.52800393) - New Momentum Direction: (0.93876159,-0.33736088,0.070102123) - New Polarization: (-0.33448652,-0.84338517,0.42049996) - *** FresnelRefraction *** - 1 4.88 m -5 m 36.4 cm 2.2 eV 0 eV 7 m 7 m Tank Transportation - 2 10 m -6.84 m 74.7 cm 2.2 eV 0 eV 5.45 m 12.4 m OutOfWorld Transportation + +** Photon absorbed! ** + 1 1.02 m -1.04 m 7.59 cm 2.2 eV 0 eV 1.46 m 1.46 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 @@ -559,27 +577,30 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Photon at Boundary! Old Momentum Direction: (0.67591971,0.45034008,0.58337498) Old Polarization: (0.71971555,-0.23304715,-0.65398666) - New Momentum Direction: (-0.9215901,0.38391059,0.057309209) - New Polarization: (0.1714354,0.27010402,0.9474459) - *** LambertianReflection *** + New Momentum Direction: (-0.67591971,0.45034008,0.58337498) + New Polarization: (0.71971555,0.23304715,0.65398666) + *** LobeReflection *** 1 5 m 3.33 m 4.31 m 4.09 eV 0 eV 7.4 m 7.4 m Tank Transportation 2 5 m 3.33 m 4.31 m 4.09 eV 0 eV 0 fm 7.4 m World Transportation Photon at Boundary! - Old Momentum Direction: (-0.9215901,0.38391059,0.057309209) - Old Polarization: (0.1714354,0.27010402,0.9474459) - New Momentum Direction: (0.9215901,-0.38391059,-0.057309209) - New Polarization: (-0.1714354,-0.27010402,-0.9474459) + Old Momentum Direction: (-0.67591971,0.45034008,0.58337498) + Old Polarization: (0.71971555,0.23304715,0.65398666) + New Momentum Direction: (0.67591971,-0.45034008,-0.58337498) + New Polarization: (-0.71971555,-0.23304715,-0.65398666) *** BackScattering *** - 3 99.3 cm 5 m 4.56 m 4.09 eV 0 eV 4.35 m 11.7 m Tank Transportation - 4 99.3 cm 5 m 4.56 m 4.09 eV 0 eV 0 fm 11.7 m World Transportation + 3 4.21 m 3.86 m 5 m 4.09 eV 0 eV 1.17 m 8.57 m Tank Transportation + 4 4.21 m 3.86 m 5 m 4.09 eV 0 eV 0 fm 8.57 m World Transportation Photon at Boundary! - Old Momentum Direction: (0.9215901,-0.38391059,-0.057309209) - Old Polarization: (-0.1714354,-0.27010402,-0.9474459) - New Momentum Direction: (0.84917356,-0.52232624,-0.07797155) - New Polarization: (0.23559646,0.5068086,-0.82924022) - *** FresnelRefraction *** - 5 5 m 3.33 m 4.31 m 4.09 eV 0 eV 4.35 m 16.1 m Tank Transportation - 6 10 m 25.5 cm 3.86 m 4.09 eV 0 eV 5.89 m 22 m OutOfWorld Transportation + Old Momentum Direction: (0.67591971,-0.45034008,-0.58337498) + Old Polarization: (-0.71971555,-0.23304715,-0.65398666) + New Momentum Direction: (-0.67591971,-0.45034008,-0.58337498) + New Polarization: (-0.71971555,0.23304715,0.65398666) + *** LobeReflection *** + 5 5 m 3.33 m 4.31 m 4.09 eV 0 eV 1.17 m 9.75 m Tank Transportation + 6 5 m 3.33 m 4.31 m 4.09 eV 0 eV 0 fm 9.75 m World Transportation + +** Photon absorbed! ** + 7 -3.46 m -2.31 m -2.99 m 4.09 eV 0 eV 12.5 m 22.3 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 @@ -602,14 +623,9 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 272 mum 0 fm 0 fm 4.13 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.94304798,-0.036690037,0.3306272) - Old Polarization: (-0.32698837,0.28493664,-0.90104923) - New Momentum Direction: (-0.89168008,-0.049926352,0.44990443) - New Polarization: (-0.44508046,0.27789062,-0.8512815) - *** FresnelRefraction *** - 1 -5 m -19.5 cm 1.75 m 4.13 eV 0 eV 5.3 m 5.3 m Tank Transportation - 2 -10 m -47.4 cm 4.28 m 4.13 eV 0 eV 5.61 m 10.9 m OutOfWorld Transportation + +** Photon absorbed! ** + 1 -90 cm -3.5 cm 31.6 cm 4.13 eV 0 eV 95.5 cm 95.5 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 @@ -617,9 +633,14 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 181 mum 0 fm 0 fm 2.48 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 -6.6 cm 78 cm 21.2 cm 2.48 eV 0 eV 81.1 cm 81.1 cm Tank OpAbsorption + Photon at Boundary! + Old Momentum Direction: (-0.081608771,0.96169841,0.26167953) + Old Polarization: (0.21004477,-0.24006296,0.94776103) + New Momentum Direction: (-0.1101012,0.92910703,0.35304087) + New Polarization: (0.70153815,0.32426254,-0.63458492) + *** FresnelRefraction *** + 1 -42.4 cm 5 m 1.36 m 2.48 eV 0 eV 5.2 m 5.2 m Tank Transportation + 2 -1.02 m 10 m 3.26 m 2.48 eV 0 eV 5.38 m 10.6 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 @@ -642,14 +663,9 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 42.2 mum 0 fm 0 fm 3.56 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.65365913,0.68383553,-0.32418931) - Old Polarization: (0.75096475,-0.53305731,0.38974587) - New Momentum Direction: (0.88770218,0.13472618,-0.44026548) - New Polarization: (0.17325035,0.78820535,0.59052234) - *** FresnelRefraction *** - 1 4.78 m 5 m -2.37 m 3.56 eV 0 eV 7.31 m 7.31 m Tank Transportation - 2 10 m 5.79 m -4.96 m 3.56 eV 0 eV 5.88 m 13.2 m OutOfWorld Transportation + +** Photon absorbed! ** + 1 1.9 m 1.99 m -94.3 cm 3.56 eV 0 eV 2.91 m 2.91 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 @@ -659,7 +675,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng 0 306 mum 0 fm 0 fm 2.03 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 45.4 cm 58.6 cm 91.4 cm 2.03 eV 0 eV 1.18 m 1.18 m Tank OpAbsorption + 1 5.11 cm 6.56 cm 10.2 cm 2.03 eV 0 eV 13.2 cm 13.2 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 @@ -667,22 +683,14 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 598 mum 0 fm 0 fm 3.95 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (-0.021135295,-0.91329033,-0.40676045) -Old Polarization: (-0.43102505,0.37542315,-0.82053328) -New Polarization: (-0.63270301,-0.42213656,-0.64922078) -Polarization Change: (-0.63270301,-0.42213656,-0.64922078) -New Momentum Direction: (0.028464334,-0.85047004,0.5252528) -Momentum Change: (0.028464334,-0.85047004,0.5252528) - 1 -4.22 cm -1.85 m -82.3 cm 3.95 eV 0 eV 2.02 m 2.02 m Tank OpRayleigh Photon at Boundary! - Old Momentum Direction: (0.028464334,-0.85047004,0.5252528) - Old Polarization: (-0.63270301,-0.42213656,-0.64922078) - New Momentum Direction: (0.038705594,-0.698835,0.71423492) - New Polarization: (-0.61497492,-0.58003199,-0.53419915) + Old Momentum Direction: (-0.021135295,-0.91329033,-0.40676045) + Old Polarization: (-0.43102505,0.37542315,-0.82053328) + New Momentum Direction: (-0.028739619,-0.83261244,-0.5531099) + New Polarization: (-0.34281971,-0.51156811,0.78789131) *** FresnelRefraction *** - 2 6.33 cm -5 m 1.12 m 3.95 eV 0 eV 3.71 m 5.73 m Tank Transportation - 3 34 cm -10 m 6.23 m 3.95 eV 0 eV 7.15 m 12.9 m OutOfWorld Transportation + 1 -11.5 cm -5 m -2.23 m 3.95 eV 0 eV 5.47 m 5.47 m Tank Transportation + 2 -28.8 cm -10 m -5.55 m 3.95 eV 0 eV 6.01 m 11.5 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 @@ -780,14 +788,9 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 343 mum 0 fm 0 fm 3.44 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.85392741,-0.5203495,-0.0066609809) - Old Polarization: (-0.52039213,-0.85385746,-0.010930208) - New Momentum Direction: (0.70794631,-0.7062084,-0.009040156) - New Polarization: (0.70626626,0.70788831,0.0090616605) - *** FresnelRefraction *** - 1 5 m -3.05 m -3.9 cm 3.44 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m -8.03 m -10.3 cm 3.44 eV 0 eV 7.06 m 12.9 m OutOfWorld Transportation + +** Photon absorbed! ** + 1 3.59 m -2.19 m -2.8 cm 3.44 eV 0 eV 4.2 m 4.2 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 @@ -840,14 +843,9 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 83.9 mum 0 fm 0 fm 2.31 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.86025719,0.50572486,0.06480686) - Old Polarization: (-0.50986034,0.85327965,0.10934478) - New Momentum Direction: (0.72676975,0.68130987,0.087307462) - New Polarization: (0.68688117,-0.72087492,-0.092377583) - *** FresnelRefraction *** - 1 5 m 2.94 m 37.7 cm 2.31 eV 0 eV 5.81 m 5.81 m Tank Transportation - 2 10 m 7.63 m 97.7 cm 2.31 eV 0 eV 6.88 m 12.7 m OutOfWorld Transportation + +** Photon absorbed! ** + 1 2.22 m 1.31 m 16.8 cm 2.31 eV 0 eV 2.59 m 2.59 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 @@ -857,7 +855,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng 0 433 mum 0 fm 0 fm 3.94 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 50.1 cm -30.5 cm -3.79 cm 3.94 eV 0 eV 58.7 cm 58.7 cm Tank OpAbsorption + 1 1.8 m -1.09 m -13.6 cm 3.94 eV 0 eV 2.11 m 2.11 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 @@ -867,7 +865,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng 0 376 mum 0 fm 0 fm 3.35 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 1.33 m -80.8 cm -2.91 cm 3.35 eV 0 eV 1.56 m 1.56 m Tank OpAbsorption + 1 1.12 m -68.2 cm -2.45 cm 3.35 eV 0 eV 1.31 m 1.31 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 @@ -875,9 +873,14 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 74.3 mum 0 fm 0 fm 2.61 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 3.11 m -1.2 m -1.42 m 2.61 eV 0 eV 3.63 m 3.63 m Tank OpAbsorption + Photon at Boundary! + Old Momentum Direction: (0.85803548,-0.33212135,-0.39175315) + Old Polarization: (-0.51359042,-0.55486218,-0.6544867) + New Momentum Direction: (0.7202661,-0.44859067,-0.52913434) + New Polarization: (0.69369787,0.46577144,0.54939988) + *** FresnelRefraction *** + 1 5 m -1.94 m -2.28 m 2.61 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m -5.05 m -5.96 m 2.61 eV 0 eV 6.94 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 @@ -885,14 +888,9 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 746 mum 0 fm 0 fm 3.87 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.85250044,-0.49827658,-0.15799827) - Old Polarization: (-0.52272651,-0.81262572,-0.25767507) - New Momentum Direction: (0.70357408,-0.67738341,-0.21479116) - New Polarization: (0.71062192,0.67066521,0.21266089) - *** FresnelRefraction *** - 1 5 m -2.92 m -92.7 cm 3.87 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -7.74 m -2.45 m 3.87 eV 0 eV 7.11 m 13 m OutOfWorld Transportation + +** Photon absorbed! ** + 1 53.4 cm -31.1 cm -9.87 cm 3.87 eV 0 eV 62.5 cm 62.5 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 @@ -902,7 +900,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng 0 137 mum 0 fm 0 fm 3.56 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 2.99 m -30.2 cm -1.8 m 3.56 eV 0 eV 3.51 m 3.51 m Tank OpAbsorption + 1 1.18 m -11.9 cm -70.9 cm 3.56 eV 0 eV 1.38 m 1.38 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 @@ -912,7 +910,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng 0 744 mum 0 fm 0 fm 4.06 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 3.18 m -1.52 m -1.23 m 4.06 eV 0 eV 3.73 m 3.73 m Tank OpAbsorption + 1 1.02 m -48.6 cm -39.3 cm 4.06 eV 0 eV 1.19 m 1.19 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 @@ -920,30 +918,14 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 214 mum 0 fm 0 fm 3.56 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (0.85337283,-0.27498308,-0.44287597) -Old Polarization: (-0.52130108,-0.45014887,-0.72499047) -New Polarization: (0.43593219,0.7099897,0.55306216) -Polarization Change: (0.43593219,0.7099897,0.55306216) -New Momentum Direction: (0.33912339,-0.69881805,0.62980049) -Momentum Change: (0.33912339,-0.69881805,0.62980049) - 1 3.62 m -1.16 m -1.88 m 3.56 eV 0 eV 4.24 m 4.24 m Tank OpRayleigh Photon at Boundary! - Old Momentum Direction: (0.33912339,-0.69881805,0.62980049) - Old Polarization: (0.43593219,0.7099897,0.55306216) - New Momentum Direction: (-0.33912339,-0.69881805,0.62980049) - New Polarization: (0.43593219,-0.7099897,-0.55306216) - *** LobeReflection *** - 2 5 m -4.02 m 69.6 cm 3.56 eV 0 eV 4.08 m 8.32 m Tank Transportation - 3 5 m -4.02 m 69.6 cm 3.56 eV 0 eV 0 fm 8.32 m World Transportation - Photon at Boundary! - Old Momentum Direction: (-0.33912339,-0.69881805,0.62980049) - Old Polarization: (0.43593219,-0.7099897,-0.55306216) - New Momentum Direction: (-0.46055088,-0.23736039,0.85530867) - New Polarization: (0.20425762,-0.96606393,-0.15811167) + Old Momentum Direction: (0.85337283,-0.27498308,-0.44287597) + Old Polarization: (-0.52130108,-0.45014887,-0.72499047) + New Momentum Direction: (0.70625288,-0.37344432,-0.60145341) + New Polarization: (0.70795965,0.37254401,0.60000341) *** FresnelRefraction *** - 4 4.52 m -5 m 1.58 m 3.56 eV 0 eV 1.4 m 9.72 m Tank Transportation - 5 -9.8 mm -7.34 m 10 m 3.56 eV 0 eV 9.84 m 19.6 m OutOfWorld Transportation + 1 5 m -1.61 m -2.59 m 3.56 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m -4.25 m -6.85 m 3.56 eV 0 eV 7.08 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 @@ -953,7 +935,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng 0 356 mum 0 fm 0 fm 3.89 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 2.51 m -1.14 m 1.03 m 3.89 eV 0 eV 2.94 m 2.94 m Tank OpAbsorption + 1 2.16 m -98.3 cm 88.5 cm 3.89 eV 0 eV 2.53 m 2.53 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 @@ -961,9 +943,14 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 19.9 mum 0 fm 0 fm 3.42 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 3.84 m -2.34 m -7.62 cm 3.42 eV 0 eV 4.5 m 4.5 m Tank OpAbsorption + Photon at Boundary! + Old Momentum Direction: (0.85399031,-0.52001286,-0.016946191) + Old Polarization: (-0.52028891,-0.85353721,-0.02781509) + New Momentum Direction: (0.70813791,-0.70569953,-0.022997352) + New Polarization: (0.70607415,0.70776219,0.02306457) + *** FresnelRefraction *** + 1 5 m -3.04 m -9.92 cm 3.42 eV 0 eV 5.85 m 5.85 m Tank Transportation + 2 10 m -8.03 m -26.2 cm 3.42 eV 0 eV 7.06 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 @@ -986,14 +973,22 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 376 mum 0 fm 0 fm 4.12 eV 0 eV 0 fm 0 fm Tank initStep +Scattering Photon! +Old Momentum Direction: (0.85169757,-0.43324649,-0.29480287) +Old Polarization: (-0.52403364,-0.7041437,-0.47913505) +New Polarization: (0.67908503,0.0034355302,0.73405158) +Polarization Change: (0.67908503,0.0034355302,0.73405158) +New Momentum Direction: (0.059482971,0.99644297,-0.059692406) +Momentum Change: (0.059482971,0.99644297,-0.059692406) + 1 3.02 m -1.54 m -1.05 m 4.12 eV 0 eV 3.55 m 3.55 m Tank OpRayleigh Photon at Boundary! - Old Momentum Direction: (0.85169757,-0.43324649,-0.29480287) - Old Polarization: (-0.52403364,-0.7041437,-0.47913505) - New Momentum Direction: (0.70109237,-0.5895333,-0.40114833) - New Polarization: (0.71307047,0.57963036,0.39440987) + Old Momentum Direction: (0.059482971,0.99644297,-0.059692406) + Old Polarization: (0.67908503,0.0034355302,0.73405158) + New Momentum Direction: (0.08094051,0.99340377,-0.081225495) + New Polarization: (0.67915861,0.0046770222,0.73397664) *** FresnelRefraction *** - 1 5 m -2.54 m -1.73 m 4.12 eV 0 eV 5.87 m 5.87 m Tank Transportation - 2 10 m -6.75 m -4.59 m 4.12 eV 0 eV 7.13 m 13 m OutOfWorld Transportation + 2 3.41 m 5 m -1.44 m 4.12 eV 0 eV 6.56 m 10.1 m Tank Transportation + 3 3.82 m 10 m -1.85 m 4.12 eV 0 eV 5.03 m 15.1 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 @@ -1001,14 +996,30 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 379 mum 0 fm 0 fm 2.37 eV 0 eV 0 fm 0 fm Tank initStep +Scattering Photon! +Old Momentum Direction: (0.85984173,-0.39473035,-0.32382117) +Old Polarization: (-0.51056067,-0.66477041,-0.54535136) +New Polarization: (0.6049506,-0.39923248,-0.68894717) +Polarization Change: (0.6049506,-0.39923248,-0.68894717) +New Momentum Direction: (-0.75441473,-0.56417499,-0.33550709) +Momentum Change: (-0.75441473,-0.56417499,-0.33550709) + 1 4.74 m -2.18 m -1.79 m 2.37 eV 0 eV 5.52 m 5.52 m Tank OpRayleigh Photon at Boundary! - Old Momentum Direction: (0.85984173,-0.39473035,-0.32382117) - Old Polarization: (-0.51056067,-0.66477041,-0.54535136) - New Momentum Direction: (0.72556181,-0.5320356,-0.43646097) - New Polarization: (0.688157,0.56095443,0.46018483) + Old Momentum Direction: (-0.75441473,-0.56417499,-0.33550709) + Old Polarization: (0.6049506,-0.39923248,-0.68894717) + New Momentum Direction: (0.75441473,0.56417499,0.33550709) + New Polarization: (-0.6049506,0.39923248,0.68894717) + *** BackScattering *** + 2 97.1 cm -5 m -3.46 m 2.37 eV 0 eV 5 m 10.5 m Tank Transportation + 3 97.1 cm -5 m -3.46 m 2.37 eV 0 eV 0 fm 10.5 m World Transportation + Photon at Boundary! + Old Momentum Direction: (0.75441473,0.56417499,0.33550709) + Old Polarization: (-0.6049506,0.39923248,0.68894717) + New Momentum Direction: (0.4661166,0.76042082,0.45221178) + New Polarization: (0.82352441,-0.55971404,0.092345705) *** FresnelRefraction *** - 1 5 m -2.3 m -1.88 m 2.37 eV 0 eV 5.81 m 5.81 m Tank Transportation - 2 10 m -5.96 m -4.89 m 2.37 eV 0 eV 6.89 m 12.7 m OutOfWorld Transportation + 4 5 m -1.99 m -1.67 m 2.37 eV 0 eV 5.34 m 15.9 m Tank Transportation + 5 10 m 6.17 m 3.18 m 2.37 eV 0 eV 10.7 m 26.6 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 @@ -1031,16 +1042,11 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 766 mum 0 fm 0 fm 3.74 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.85283564,0.3717074,-0.36674921) - Old Polarization: (-0.52217945,0.60708119,-0.59898335) - New Momentum Direction: (0.70460554,0.50511999,-0.49838221) - New Polarization: (0.70959921,-0.5015653,0.49487494) - *** FresnelRefraction *** - 1 5 m 2.18 m -2.15 m 3.74 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 5.76 m -5.69 m 3.74 eV 0 eV 7.1 m 13 m OutOfWorld Transportation + +** Photon absorbed! ** + 1 2.21 m 96.4 cm -95.1 cm 3.74 eV 0 eV 2.59 m 2.59 m Tank OpAbsorption Number of optical photons produces in this event : 53 -number of event = 1 User=0.09s Real=0.23s Sys=0.14s +number of event = 1 User=0.21s Real=0.27s Sys=0.02s # /process/inactivate Scintillation /N06/phys/verbose 0 @@ -1054,326 +1060,361 @@ number of event = 1 User=0.09s Real=0.23s Sys=0.14s Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 0 fm 500 keV 0 eV 0 fm 0 fm Tank initStep - 1 527 mum 0 fm 0 fm 0 eV 500 keV 1.74 mm 1.74 mm Tank eIoni - 2 527 mum 0 fm 0 fm 0 eV 0 eV 0 fm 1.74 mm Tank annihil + 1 607 mum 0 fm 0 fm 0 eV 500 keV 1.74 mm 1.74 mm Tank eIoni + 2 607 mum 0 fm 0 fm 0 eV 0 eV 0 fm 1.74 mm Tank annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 527 mum 0 fm 0 fm 511 keV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -1.57 m -1.32 m 511 keV 0 eV 5.41 m 5.41 m Tank Transportation - 2 10 m -3.15 m -2.64 m 511 keV 0 eV 5.41 m 10.8 m OutOfWorld Transportation + 0 607 mum 0 fm 0 fm 511 keV 0 eV 0 fm 0 fm Tank initStep + 1 -5 m -1.77 m -1.32 m 511 keV 0 eV 5.47 m 5.47 m Tank Transportation + 2 -10 m -3.55 m -2.64 m 511 keV 0 eV 5.47 m 10.9 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 36, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 40, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 527 mum 0 fm 0 fm 511 keV 0 eV 0 fm 0 fm Tank initStep - 1 -5 m 1.58 m 1.32 m 511 keV 0 eV 5.41 m 5.41 m Tank Transportation - 2 -10 m 3.15 m 2.64 m 511 keV 0 eV 5.41 m 10.8 m OutOfWorld Transportation + 0 607 mum 0 fm 0 fm 511 keV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 1.77 m 1.32 m 511 keV 0 eV 5.47 m 5.47 m Tank Transportation + 2 10 m 3.55 m 2.64 m 511 keV 0 eV 5.47 m 10.9 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 350 mum 0 fm 0 fm 4.08 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 92.4 cm 2.93 m 4.08 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m 2.45 m 7.77 m 4.08 eV 0 eV 7.13 m 13 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 201 mum 0 fm 0 fm 2.45 eV 0 eV 0 fm 0 fm Tank initStep + 1 97.3 cm -56.5 cm -12.4 cm 2.45 eV 0 eV 1.13 m 1.13 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 70.3 mum 0 fm 0 fm 3.47 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 91.7 cm -2.91 m 3.47 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m 2.42 m -7.67 m 3.47 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 164 mum 0 fm 0 fm 2.38 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.07 m 2.13 m 2.38 eV 0 eV 5.82 m 5.82 m Tank Transportation + 2 10 m 5.38 m 5.53 m 2.38 eV 0 eV 6.89 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 174 mum 0 fm 0 fm 2.45 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -2.91 m -63.8 cm 2.45 eV 0 eV 5.82 m 5.82 m Tank Transportation - 2 10 m -7.56 m -1.66 m 2.45 eV 0 eV 6.91 m 12.7 m OutOfWorld Transportation + 0 562 mum 0 fm 0 fm 3.59 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -14.7 cm -3.05 m 3.59 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m -38.9 cm -8.06 m 3.59 eV 0 eV 7.08 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 61.1 mum 0 fm 0 fm 3.47 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 91.7 cm -2.91 m 3.47 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 2.42 m -7.67 m 3.47 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation + 0 423 mum 0 fm 0 fm 3.99 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -1.75 m -2.52 m 3.99 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m -4.63 m -6.69 m 3.99 eV 0 eV 7.12 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 142 mum 0 fm 0 fm 2.38 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.07 m 2.13 m 2.38 eV 0 eV 5.82 m 5.82 m Tank Transportation - 2 10 m 5.38 m 5.53 m 2.38 eV 0 eV 6.89 m 12.7 m OutOfWorld Transportation + 0 518 mum 0 fm 0 fm 3.81 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -3.05 m -25.5 cm 3.81 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m -8.08 m -67.5 cm 3.81 eV 0 eV 7.1 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 488 mum 0 fm 0 fm 3.59 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -14.7 cm -3.05 m 3.59 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -38.9 cm -8.06 m 3.59 eV 0 eV 7.08 m 12.9 m OutOfWorld Transportation + 0 559 mum 0 fm 0 fm 2.86 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 16.6 cm -3.01 m 2.86 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m 43.5 cm -7.89 m 2.86 eV 0 eV 6.99 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 368 mum 0 fm 0 fm 3.99 eV 0 eV 0 fm 0 fm Tank initStep - 1 30.1 cm -10.5 cm -15.2 cm 3.99 eV 0 eV 35.3 cm 35.3 cm Tank OpAbsorption + 0 507 mum 0 fm 0 fm 3.27 eV 0 eV 0 fm 0 fm Tank initStep + 1 25.3 cm 1.04 cm 15.3 cm 3.27 eV 0 eV 29.6 cm 29.6 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 450 mum 0 fm 0 fm 3.81 eV 0 eV 0 fm 0 fm Tank initStep - 1 1.02 m -62.3 cm -5.21 cm 3.81 eV 0 eV 1.2 m 1.2 m Tank OpRayleigh - 2 -17.2 cm -5 m -2.49 m 3.81 eV 0 eV 5.15 m 6.35 m Tank Transportation - 3 -2.43 m -10 m -7.09 m 3.81 eV 0 eV 7.16 m 13.5 m OutOfWorld Transportation + 0 602 mum 0 fm 0 fm 3.88 eV 0 eV 0 fm 0 fm Tank initStep + 1 1.75 m 1.08 m 2.19 cm 3.88 eV 0 eV 2.06 m 2.06 m Tank OpRayleigh + 2 1.42 m 2.61 m -1.38 m 3.88 eV 0 eV 2.1 m 4.16 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 486 mum 0 fm 0 fm 2.86 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 16.6 cm -3.01 m 2.86 eV 0 eV 5.84 m 5.84 m Tank Transportation - 2 10 m 43.5 cm -7.89 m 2.86 eV 0 eV 6.99 m 12.8 m OutOfWorld Transportation + 0 109 mum 0 fm 0 fm 3.09 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.16 m -2.12 m 3.09 eV 0 eV 5.85 m 5.85 m Tank Transportation + 2 10 m -5.67 m -5.58 m 3.09 eV 0 eV 7.02 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 441 mum 0 fm 0 fm 3.27 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 20.5 cm 3.03 m 3.27 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m 54 cm 7.98 m 3.27 eV 0 eV 7.04 m 12.9 m OutOfWorld Transportation + 0 512 mum 0 fm 0 fm 2.42 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -45.2 cm -2.94 m 2.42 eV 0 eV 5.82 m 5.82 m Tank Transportation + 2 10 m -1.17 m -7.64 m 2.42 eV 0 eV 6.9 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 523 mum 0 fm 0 fm 3.88 eV 0 eV 0 fm 0 fm Tank initStep - 1 1.75 m 1.08 m 2.19 cm 3.88 eV 0 eV 2.06 m 2.06 m Tank OpRayleigh - 2 1.42 m 2.61 m -1.38 m 3.88 eV 0 eV 2.1 m 4.16 m Tank OpAbsorption + 0 85.6 mum 0 fm 0 fm 2.4 eV 0 eV 0 fm 0 fm Tank initStep + 1 2.8 m -23.5 cm 1.65 m 2.4 eV 0 eV 3.26 m 3.26 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 94.4 mum 0 fm 0 fm 3.09 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -2.16 m -2.12 m 3.09 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m -5.67 m -5.58 m 3.09 eV 0 eV 7.02 m 12.9 m OutOfWorld Transportation + 0 546 mum 0 fm 0 fm 3.32 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.3 m -1.98 m 3.32 eV 0 eV 5.85 m 5.85 m Tank Transportation + 2 10 m 6.07 m -5.23 m 3.32 eV 0 eV 7.05 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 445 mum 0 fm 0 fm 2.42 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -45.2 cm -2.94 m 2.42 eV 0 eV 5.82 m 5.82 m Tank Transportation - 2 10 m -1.17 m -7.64 m 2.42 eV 0 eV 6.9 m 12.7 m OutOfWorld Transportation + 0 316 mum 0 fm 0 fm 2.78 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.8 m 1.09 m 2.78 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m -7.33 m 2.85 m 2.78 eV 0 eV 6.97 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 74.4 mum 0 fm 0 fm 2.4 eV 0 eV 0 fm 0 fm Tank initStep - 1 2.8 m -23.5 cm 1.65 m 2.4 eV 0 eV 3.26 m 3.26 m Tank OpAbsorption + 0 235 mum 0 fm 0 fm 2.22 eV 0 eV 0 fm 0 fm Tank initStep + 1 1.26 m -71.9 cm -18.3 cm 2.22 eV 0 eV 1.46 m 1.46 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 474 mum 0 fm 0 fm 3.32 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.3 m -1.98 m 3.32 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m 6.07 m -5.23 m 3.32 eV 0 eV 7.05 m 12.9 m OutOfWorld Transportation + 0 48.4 mum 0 fm 0 fm 3.63 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 76.4 cm 2.96 m 3.63 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m 2.02 m 7.82 m 3.63 eV 0 eV 7.09 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 275 mum 0 fm 0 fm 2.78 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -2.8 m 1.09 m 2.78 eV 0 eV 5.83 m 5.83 m Tank Transportation - 2 10 m -7.33 m 2.85 m 2.78 eV 0 eV 6.97 m 12.8 m OutOfWorld Transportation + 0 500 mum 0 fm 0 fm 3.13 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 96.4 cm -2.87 m 3.13 eV 0 eV 5.85 m 5.85 m Tank Transportation + 2 10 m 2.53 m -7.55 m 3.13 eV 0 eV 7.02 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 204 mum 0 fm 0 fm 2.22 eV 0 eV 0 fm 0 fm Tank initStep - 1 1.26 m -71.9 cm -18.3 cm 2.22 eV 0 eV 1.46 m 1.46 m Tank OpAbsorption + 0 4.2 mum 0 fm 0 fm 2.44 eV 0 eV 0 fm 0 fm Tank initStep + 1 1.93 m 1.13 m -20.2 cm 2.44 eV 0 eV 2.24 m 2.24 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 42 mum 0 fm 0 fm 3.63 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 76.4 cm 2.96 m 3.63 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 2.02 m 7.82 m 3.63 eV 0 eV 7.09 m 12.9 m OutOfWorld Transportation + 0 59.3 mum 0 fm 0 fm 2.14 eV 0 eV 0 fm 0 fm Tank initStep + 1 2.28 m -1.1 m 76.8 cm 2.14 eV 0 eV 2.65 m 2.65 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 434 mum 0 fm 0 fm 3.13 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 96.4 cm -2.87 m 3.13 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m 2.53 m -7.55 m 3.13 eV 0 eV 7.02 m 12.9 m OutOfWorld Transportation + 0 220 mum 0 fm 0 fm 2.1 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 70.7 cm 2.85 m 2.1 eV 0 eV 5.8 m 5.8 m Tank Transportation + 2 10 m 1.83 m 7.37 m 2.1 eV 0 eV 6.83 m 12.6 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.65 mum 0 fm 0 fm 2.44 eV 0 eV 0 fm 0 fm Tank initStep - 1 1.93 m 1.13 m -20.2 cm 2.44 eV 0 eV 2.24 m 2.24 m Tank OpAbsorption + 0 399 mum 0 fm 0 fm 2.84 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.5 m -1.68 m 2.84 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m 6.55 m -4.4 m 2.84 eV 0 eV 6.99 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 51.5 mum 0 fm 0 fm 2.14 eV 0 eV 0 fm 0 fm Tank initStep - 1 2.28 m -1.1 m 76.8 cm 2.14 eV 0 eV 2.65 m 2.65 m Tank OpAbsorption + 0 311 mum 0 fm 0 fm 3.24 eV 0 eV 0 fm 0 fm Tank initStep + 1 4.77 m 2.63 m -1.21 m 3.24 eV 0 eV 5.58 m 5.58 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 191 mum 0 fm 0 fm 2.1 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 70.7 cm 2.85 m 2.1 eV 0 eV 5.8 m 5.8 m Tank Transportation - 2 10 m 1.83 m 7.37 m 2.1 eV 0 eV 6.83 m 12.6 m OutOfWorld Transportation + 0 213 mum 0 fm 0 fm 3.44 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.45 m -1.81 m 3.44 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m -6.46 m -4.78 m 3.44 eV 0 eV 7.06 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 347 mum 0 fm 0 fm 2.84 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.5 m -1.68 m 2.84 eV 0 eV 5.84 m 5.84 m Tank Transportation - 2 10 m 6.55 m -4.4 m 2.84 eV 0 eV 6.99 m 12.8 m OutOfWorld Transportation + 0 269 mum 0 fm 0 fm 2.97 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.98 m 47.7 cm 2.97 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m -7.83 m 1.25 m 2.97 eV 0 eV 7 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 271 mum 0 fm 0 fm 3.24 eV 0 eV 0 fm 0 fm Tank initStep - 1 4.77 m 2.63 m -1.21 m 3.24 eV 0 eV 5.58 m 5.58 m Tank OpAbsorption + 0 460 mum 0 fm 0 fm 2.75 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -3 m 11.9 cm 2.75 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m -7.85 m 31.2 cm 2.75 eV 0 eV 6.97 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 185 mum 0 fm 0 fm 3.44 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -2.45 m -1.81 m 3.44 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -6.46 m -4.78 m 3.44 eV 0 eV 7.06 m 12.9 m OutOfWorld Transportation + 0 21.1 mum 0 fm 0 fm 4.02 eV 0 eV 0 fm 0 fm Tank initStep + 1 3.43 m 2.09 m 28.9 cm 4.02 eV 0 eV 4.03 m 4.03 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 234 mum 0 fm 0 fm 2.97 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -2.98 m 47.7 cm 2.97 eV 0 eV 5.84 m 5.84 m Tank Transportation - 2 10 m -7.83 m 1.25 m 2.97 eV 0 eV 7 m 12.8 m OutOfWorld Transportation + 0 517 mum 0 fm 0 fm 2.26 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.96 m -1.07 cm 2.26 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m 7.67 m -2.77 cm 2.26 eV 0 eV 6.87 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 400 mum 0 fm 0 fm 2.75 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -3 m 11.9 cm 2.75 eV 0 eV 5.83 m 5.83 m Tank Transportation - 2 10 m -7.85 m 31.2 cm 2.75 eV 0 eV 6.97 m 12.8 m OutOfWorld Transportation + 0 358 mum 0 fm 0 fm 3.5 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 80 cm -2.94 m 3.5 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m 2.11 m -7.77 m 3.5 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 18.3 mum 0 fm 0 fm 4.02 eV 0 eV 0 fm 0 fm Tank initStep - 1 3.43 m 2.09 m 28.9 cm 4.02 eV 0 eV 4.03 m 4.03 m Tank OpAbsorption + 0 51.8 mum 0 fm 0 fm 2.28 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 1.43 m 2.59 m 2.28 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m 3.7 m 6.72 m 2.28 eV 0 eV 6.87 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 449 mum 0 fm 0 fm 2.26 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.96 m -1.07 cm 2.26 eV 0 eV 5.81 m 5.81 m Tank Transportation - 2 10 m 7.67 m -2.77 cm 2.26 eV 0 eV 6.87 m 12.7 m OutOfWorld Transportation + 0 237 mum 0 fm 0 fm 3.78 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.82 m -1.18 m 3.78 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m 7.47 m -3.13 m 3.78 eV 0 eV 7.1 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 311 mum 0 fm 0 fm 3.5 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 80 cm -2.94 m 3.5 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 2.11 m -7.77 m 3.5 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation + 0 589 mum 0 fm 0 fm 2.05 eV 0 eV 0 fm 0 fm Tank initStep + 1 11.9 cm 4.04 cm -5.62 cm 2.05 eV 0 eV 13.7 cm 13.7 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 45 mum 0 fm 0 fm 2.28 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 1.43 m 2.59 m 2.28 eV 0 eV 5.81 m 5.81 m Tank Transportation - 2 10 m 3.7 m 6.72 m 2.28 eV 0 eV 6.87 m 12.7 m OutOfWorld Transportation + 0 139 mum 0 fm 0 fm 3.48 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -15.6 cm 3.05 m 3.48 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m -41.1 cm 8.04 m 3.48 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 206 mum 0 fm 0 fm 3.78 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.82 m -1.18 m 3.78 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 7.47 m -3.13 m 3.78 eV 0 eV 7.1 m 13 m OutOfWorld Transportation + 0 602 mum 0 fm 0 fm 3.62 eV 0 eV 0 fm 0 fm Tank initStep + 1 1.63 m 48.5 cm -87.2 cm 3.62 eV 0 eV 1.91 m 1.91 m Tank OpRayleigh + 2 11.5 cm 5 m -20.9 cm 3.62 eV 0 eV 4.81 m 6.72 m Tank Transportation + 3 -2.31 m 10 m 85 cm 3.62 eV 0 eV 5.66 m 12.4 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 512 mum 0 fm 0 fm 2.05 eV 0 eV 0 fm 0 fm Tank initStep - 1 11.8 cm 4.04 cm -5.62 cm 2.05 eV 0 eV 13.7 cm 13.7 cm Tank OpAbsorption + 0 176 mum 0 fm 0 fm 4.08 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 3.06 m 26.3 cm 4.08 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m 8.12 m 69.7 cm 4.08 eV 0 eV 7.13 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 121 mum 0 fm 0 fm 3.48 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -15.6 cm 3.05 m 3.48 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -41.1 cm 8.04 m 3.48 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation + 0 503 mum 0 fm 0 fm 3.75 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.8 m -1.23 m 3.75 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m 7.41 m -3.26 m 3.75 eV 0 eV 7.1 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 172 mum 0 fm 0 fm 2.59 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -2.99 m -7.61 cm 2.59 eV 0 eV 5.83 m 5.83 m Tank Transportation - 2 10 m -7.8 m -19.9 cm 2.59 eV 0 eV 6.94 m 12.8 m OutOfWorld Transportation + 0 364 mum 0 fm 0 fm 3.53 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.02 m -2.29 m 3.53 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m 5.33 m -6.05 m 3.53 eV 0 eV 7.08 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 132 mum 0 fm 0 fm 2.42 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -45.2 cm -2.94 m 2.42 eV 0 eV 5.82 m 5.82 m Tank Transportation - 2 10 m -1.17 m -7.64 m 2.42 eV 0 eV 6.9 m 12.7 m OutOfWorld Transportation -Number of optical photons produces in this event : 34 -number of event = 1 User=0.05s Real=0.09s Sys=0.04s + 0 433 mum 0 fm 0 fm 2.27 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 1.84 m 2.32 m 2.27 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m 4.77 m 6.01 m 2.27 eV 0 eV 6.87 m 12.7 m OutOfWorld Transportation +Number of optical photons produces in this event : 38 +number of event = 1 User=0.08s Real=0.12s Sys=0.04s Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N06/include/ExN06DetectorConstruction.hh b/examples/novice/N06/include/ExN06DetectorConstruction.hh index 9f2db78b80..09871190d5 100644 --- a/examples/novice/N06/include/ExN06DetectorConstruction.hh +++ b/examples/novice/N06/include/ExN06DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06DetectorConstruction.hh,v 1.4 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06EventAction.hh b/examples/novice/N06/include/ExN06EventAction.hh index c9b99a9617..4a1402a705 100644 --- a/examples/novice/N06/include/ExN06EventAction.hh +++ b/examples/novice/N06/include/ExN06EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06EventAction.hh,v 1.1 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06PhysicsList.hh b/examples/novice/N06/include/ExN06PhysicsList.hh index 4b782444c0..ca569a54ee 100644 --- a/examples/novice/N06/include/ExN06PhysicsList.hh +++ b/examples/novice/N06/include/ExN06PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06PhysicsList.hh,v 1.6 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06PhysicsListMessenger.hh b/examples/novice/N06/include/ExN06PhysicsListMessenger.hh index 52b363018c..1d24d604a8 100644 --- a/examples/novice/N06/include/ExN06PhysicsListMessenger.hh +++ b/examples/novice/N06/include/ExN06PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06PhysicsListMessenger.hh,v 1.1 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N06/include/ExN06PrimaryGeneratorAction.hh b/examples/novice/N06/include/ExN06PrimaryGeneratorAction.hh index 7af281d7f3..495a745187 100644 --- a/examples/novice/N06/include/ExN06PrimaryGeneratorAction.hh +++ b/examples/novice/N06/include/ExN06PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06PrimaryGeneratorAction.hh,v 1.4 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06PrimaryGeneratorMessenger.hh b/examples/novice/N06/include/ExN06PrimaryGeneratorMessenger.hh index 4cd6f7528a..607c299747 100644 --- a/examples/novice/N06/include/ExN06PrimaryGeneratorMessenger.hh +++ b/examples/novice/N06/include/ExN06PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06PrimaryGeneratorMessenger.hh,v 1.1 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N06/include/ExN06RunAction.hh b/examples/novice/N06/include/ExN06RunAction.hh index bbbdcd4711..296747b59f 100644 --- a/examples/novice/N06/include/ExN06RunAction.hh +++ b/examples/novice/N06/include/ExN06RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06RunAction.hh,v 1.8 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06StackingAction.hh b/examples/novice/N06/include/ExN06StackingAction.hh index cd65183c4f..166450ca25 100644 --- a/examples/novice/N06/include/ExN06StackingAction.hh +++ b/examples/novice/N06/include/ExN06StackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN06StackingAction.hh,v 1.4 2003/01/23 15:34:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06SteppingVerbose.hh b/examples/novice/N06/include/ExN06SteppingVerbose.hh index 76f9732d63..f9b6a6021b 100644 --- a/examples/novice/N06/include/ExN06SteppingVerbose.hh +++ b/examples/novice/N06/include/ExN06SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06SteppingVerbose.hh,v 1.1 2003/01/23 15:34:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06VisManager.hh b/examples/novice/N06/include/ExN06VisManager.hh deleted file mode 100644 index 6395248575..0000000000 --- a/examples/novice/N06/include/ExN06VisManager.hh +++ /dev/null @@ -1,72 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN06VisManager.hh,v 1.1 2003/01/23 15:34:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. - -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). - -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef ExN06VisManager_h -#define ExN06VisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class ExN06VisManager: public G4VisManager { - -public: - - ExN06VisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - -#endif diff --git a/examples/novice/N06/src/ExN06DetectorConstruction.cc b/examples/novice/N06/src/ExN06DetectorConstruction.cc index c94b149e29..81982e1cb2 100644 --- a/examples/novice/N06/src/ExN06DetectorConstruction.cc +++ b/examples/novice/N06/src/ExN06DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06DetectorConstruction.cc,v 1.14 2004/03/17 22:41:12 gum Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06EventAction.cc b/examples/novice/N06/src/ExN06EventAction.cc index 1b1d5cc903..ce97837782 100644 --- a/examples/novice/N06/src/ExN06EventAction.cc +++ b/examples/novice/N06/src/ExN06EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06EventAction.cc,v 1.1 2003/01/23 15:34:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06PhysicsList.cc b/examples/novice/N06/src/ExN06PhysicsList.cc index 5078449d8d..967f45ea56 100644 --- a/examples/novice/N06/src/ExN06PhysicsList.cc +++ b/examples/novice/N06/src/ExN06PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN06PhysicsList.cc,v 1.11 2003/10/24 12:38:17 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ExN06PhysicsList.cc,v 1.12 2005/05/17 00:19:45 gum Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -152,13 +152,17 @@ void ExN06PhysicsList::ConstructProcess() void ExN06PhysicsList::ConstructGeneral() { + // Add Decay Process G4Decay* theDecayProcess = new G4Decay(); theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); if (theDecayProcess->IsApplicable(*particle)) { - pmanager->AddDiscreteProcess(theDecayProcess); + pmanager ->AddProcess(theDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); } } } diff --git a/examples/novice/N06/src/ExN06PhysicsListMessenger.cc b/examples/novice/N06/src/ExN06PhysicsListMessenger.cc index 0d81ee179c..bbab254aca 100644 --- a/examples/novice/N06/src/ExN06PhysicsListMessenger.cc +++ b/examples/novice/N06/src/ExN06PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN06PhysicsListMessenger.cc,v 1.1 2003/01/23 15:34:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ExN06PhysicsListMessenger.cc,v 1.2 2005/05/11 16:26:20 maire Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // @@ -57,7 +57,7 @@ ExN06PhysicsListMessenger::ExN06PhysicsListMessenger(ExN06PhysicsList* pPhys) cerenkovCmd->SetGuidance("set max nb of photons per step"); cerenkovCmd->SetParameterName("MaxNumber",false); cerenkovCmd->SetRange("MaxNumber>=0"); - cerenkovCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + cerenkovCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06PrimaryGeneratorMessenger.cc b/examples/novice/N06/src/ExN06PrimaryGeneratorMessenger.cc index 48268bddb2..e6ce0d1b48 100644 --- a/examples/novice/N06/src/ExN06PrimaryGeneratorMessenger.cc +++ b/examples/novice/N06/src/ExN06PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06PrimaryGeneratorMessenger.cc,v 1.1 2003/01/23 15:34:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc b/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc index 08b2ced525..0d018ab6aa 100644 --- a/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc +++ b/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN06PrimaryGeneratorAction.cc,v 1.3 2004/04/02 11:54:29 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: ExN06PrimaryGeneratorAction.cc,v 1.4 2005/06/27 15:28:09 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -89,10 +89,10 @@ void ExN06PrimaryGeneratorAction::SetOptPhotonPolar(G4double angle) G4double modul2 = product*product; G4ThreeVector e_perpend (0., 0., 1.); - if (modul2 > 0.) e_perpend = (1./sqrt(modul2))*product; + if (modul2 > 0.) e_perpend = (1./std::sqrt(modul2))*product; G4ThreeVector e_paralle = e_perpend.cross(kphoton); - G4ThreeVector polar = cos(angle)*e_paralle + sin(angle)*e_perpend; + G4ThreeVector polar = std::cos(angle)*e_paralle + std::sin(angle)*e_perpend; particleGun->SetParticlePolarization(polar); } diff --git a/examples/novice/N06/src/ExN06RunAction.cc b/examples/novice/N06/src/ExN06RunAction.cc index 53c4db1f5d..16521e4e51 100644 --- a/examples/novice/N06/src/ExN06RunAction.cc +++ b/examples/novice/N06/src/ExN06RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06RunAction.cc,v 1.9 2004/04/02 12:14:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06StackingAction.cc b/examples/novice/N06/src/ExN06StackingAction.cc index fa025e21b1..3a3f6a0613 100644 --- a/examples/novice/N06/src/ExN06StackingAction.cc +++ b/examples/novice/N06/src/ExN06StackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN06StackingAction.cc,v 1.4 2003/01/23 15:34:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06SteppingVerbose.cc b/examples/novice/N06/src/ExN06SteppingVerbose.cc index 3585de87ef..83cf8e926b 100644 --- a/examples/novice/N06/src/ExN06SteppingVerbose.cc +++ b/examples/novice/N06/src/ExN06SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06SteppingVerbose.cc,v 1.3 2003/06/16 16:50:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06VisManager.cc b/examples/novice/N06/src/ExN06VisManager.cc deleted file mode 100755 index 7710232946..0000000000 --- a/examples/novice/N06/src/ExN06VisManager.cc +++ /dev/null @@ -1,145 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN06VisManager.cc,v 1.2 2003/11/13 15:11:50 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "ExN06VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN -#include "G4FukuiRenderer.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN06VisManager::ExN06VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN06VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_VRML - RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N07/History b/examples/novice/N07/History index 070bafff0f..8551136794 100644 --- a/examples/novice/N07/History +++ b/examples/novice/N07/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2004/11/17 03:12:05 kurasige Exp $ +$Id: History,v 1.10 2005/05/03 10:05:49 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,10 +14,13 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +3rd May 2005 John Allison (examples-V07-00-03) +- Replaced vis manager with G4VisExecutive. + Nov. 17, 2004 Hisaya Kurashige (exampleN07-V06-02-00) - Modify for new cut-per-region scheme - 13-11-03 John Allison (exampleN07-V05-02-01) - Removed OPACS from Vis Manager. diff --git a/examples/novice/N07/exampleN07.cc b/examples/novice/N07/exampleN07.cc index 4ba3ad4319..4374def66a 100644 --- a/examples/novice/N07/exampleN07.cc +++ b/examples/novice/N07/exampleN07.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN07.cc,v 1.4 2004/11/17 03:07:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: exampleN07.cc,v 1.5 2005/05/03 10:21:16 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- @@ -39,7 +39,7 @@ #include "G4UItcsh.hh" #ifdef G4VIS_USE -#include "ExN07VisManager.hh" +#include "G4VisExecutive.hh" #endif #include "ExN07DetectorConstruction.hh" #include "ExN07PhysicsList.hh" @@ -59,7 +59,7 @@ int main(int argc,char** argv) { #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new ExN07VisManager; + G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif diff --git a/examples/novice/N07/exampleN07.out b/examples/novice/N07/exampleN07.out index f026a68ac8..0cedc57ba8 100644 --- a/examples/novice/N07/exampleN07.out +++ b/examples/novice/N07/exampleN07.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-00-ref-00 $ (17-December-2004) + Geant4 version Name: run-V07-00-05 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -10,28 +10,28 @@ ***** Table : Nb of materials = 7 ***** Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm - ---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Aluminium ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm - ---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.549 cm - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.55 % Abundance 52.63 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.55 % Abundance 52.63 % Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204727576.737 pc - ---> Element: Galactic Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Visualization Manager instantiating... @@ -43,8 +43,8 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -55,8 +55,6 @@ Current available graphics systems are: Absorber is made of Lead Gap is made of liquidArgon -------------------------------------------------------- - -phot: Total cross sections from Sandia parametrisation. ExN07PhysicsList::SetCuts: default cut length : 1 mm /run/dumpRegion @@ -76,15 +74,18 @@ Region Calor-C Materials : Lead liquidArgon Production cuts : gamma 10 cm e- 10 cm e+ 10 cm /run/beamOn 10 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -93,8 +94,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -105,8 +106,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -114,26 +115,29 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 +msc: Model variant of multiple scattering for GenericIon + muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -152,9 +156,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -227,7 +231,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=7.59s Real=13.93s Sys=1.11s + User=62.86s Real=66.12s Sys=3.05s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -235,55 +239,55 @@ Region : Calor-A Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 2.7960542 GeV Gap 336.20564 MeV + Absorber 8.9686271 GeV Gap 875.98411 MeV Number of secondaries in an event : - gamma in Absorber 873.4 in Gap 47.6 - e- in Absorber 1438.8 in Gap 142.6 - e+ in Absorber 79.1 in Gap 3.2 + gamma in Absorber 4705.7 in Gap 244.8 + e- in Absorber 7511.1 in Gap 676.2 + e+ in Absorber 469.1 in Gap 15.2 Minimum kinetic energy of generated secondaries : - gamma in Absorber 100.51181 keV in Gap 6.2363737 keV - e- in Absorber 84.15498 eV in Gap 43.200285 eV - e+ in Absorber 582.55373 eV in Gap 282.95113 keV + gamma in Absorber 100.51337 keV in Gap 6.2120631 keV + e- in Absorber 9.1229807 eV in Gap 0.034980807 eV + e+ in Absorber 2.2152892 keV in Gap 47.191483 keV Total track length of e+/e- in an event : - Absorber 99.925168 cm Gap 67.112531 cm + Absorber 5.2987347 m Gap 3.3130876 m Total number of steps of e+/e- in an event : - Absorber 2456.6 Gap 232.4 + Absorber 12934.2 Gap 1171.8 ############################################################ Region : Calor-B Production thresholds : gamma 1 cm e- 1 cm e+ 1 cm Energy deposition in an event : - Absorber 3.0713601 GeV Gap 359.28131 MeV + Absorber 2.8810051 GeV Gap 345.55323 MeV Number of secondaries in an event : - gamma in Absorber 700.3 in Gap 41.9 - e- in Absorber 1250.1 in Gap 120.7 - e+ in Absorber 95.1 in Gap 3.3 + gamma in Absorber 614 in Gap 37.2 + e- in Absorber 1107.2 in Gap 109.5 + e+ in Absorber 81.1 in Gap 2.2 Minimum kinetic energy of generated secondaries : - gamma in Absorber 279.11803 keV in Gap 19.260754 keV - e- in Absorber 77.709073 eV in Gap 56.266022 eV - e+ in Absorber 3.9811844 keV in Gap 291.1071 keV + gamma in Absorber 282.53203 keV in Gap 19.353277 keV + e- in Absorber 56.266022 eV in Gap 17.61185 eV + e+ in Absorber 2.6702333 keV in Gap 460.62732 keV Total track length of e+/e- in an event : - Absorber 1.0227999 m Gap 68.159776 cm + Absorber 90.704934 cm Gap 61.607549 cm Total number of steps of e+/e- in an event : - Absorber 2075.5 Gap 202.9 + Absorber 1829.8 Gap 181.4 ############################################################ Region : Calor-C Production thresholds : gamma 10 cm e- 10 cm e+ 10 cm Energy deposition in an event : - Absorber 2.5293158 GeV Gap 277.28474 MeV + Absorber 4.0477757 GeV Gap 392.95566 MeV Number of secondaries in an event : - gamma in Absorber 112.3 in Gap 8 - e- in Absorber 206 in Gap 17.2 - e+ in Absorber 30.2 in Gap 0.6 + gamma in Absorber 226.4 in Gap 41.5 + e- in Absorber 450.7 in Gap 56.5 + e+ in Absorber 128.3 in Gap 4.1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 314.49399 keV in Gap 59.823551 keV - e- in Absorber 279.42392 eV in Gap 95.777637 eV - e+ in Absorber 75.868847 keV in Gap 2.0715721 MeV + gamma in Absorber 288.44008 keV in Gap 58.654223 keV + e- in Absorber 282.97634 eV in Gap 112.79606 eV + e+ in Absorber 10.342407 keV in Gap 391.47674 keV Total track length of e+/e- in an event : - Absorber 29.536486 cm Gap 15.723651 cm + Absorber 1.1384109 m Gap 72.674822 cm Total number of steps of e+/e- in an event : - Absorber 344.3 Gap 34.5 + Absorber 1024.9 Gap 139.5 ############################################################ /run/dumpCouples @@ -364,15 +368,18 @@ Region Calor-C Materials : Lead liquidArgon Production cuts : gamma 2 cm e- 2 cm e+ 2 cm /run/beamOn 10 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.0219981 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.0219981 MeV to 100 GeV in 100 bins. -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -381,8 +388,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -393,8 +400,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -402,26 +409,29 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 +msc: Model variant of multiple scattering for GenericIon + muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -440,9 +450,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -515,7 +525,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=27.77s Real=49.73s Sys=3.81s + User=49.02s Real=51.58s Sys=2.34s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -523,55 +533,55 @@ Region : Calor-A Production thresholds : gamma 200 mum e- 200 mum e+ 200 mum Energy deposition in an event : - Absorber 2.9374122 GeV Gap 346.65489 MeV + Absorber 5.6508837 GeV Gap 608.68169 MeV Number of secondaries in an event : - gamma in Absorber 1236.4 in Gap 65.3 - e- in Absorber 2066.2 in Gap 251.2 - e+ in Absorber 85.8 in Gap 3.4 + gamma in Absorber 3304.5 in Gap 163.2 + e- in Absorber 5278.1 in Gap 559.5 + e+ in Absorber 256.5 in Gap 10.2 Minimum kinetic energy of generated secondaries : - gamma in Absorber 47.191177 keV in Gap 2.8431042 keV - e- in Absorber 15.589856 eV in Gap 46.324331 eV - e+ in Absorber 466.21617 eV in Gap 446.55792 keV + gamma in Absorber 47.190904 keV in Gap 2.7882931 keV + e- in Absorber 7.2505289 eV in Gap 1.124437 eV + e+ in Absorber 11.388807 keV in Gap 62.122344 keV Total track length of e+/e- in an event : - Absorber 1.1907091 m Gap 76.462886 cm + Absorber 3.1516543 m Gap 2.0763725 m Total number of steps of e+/e- in an event : - Absorber 3556.1 Gap 415.2 + Absorber 9265.1 Gap 978.6 ############################################################ Region : Calor-B Production thresholds : gamma 2 mm e- 2 mm e+ 2 mm Energy deposition in an event : - Absorber 8.5885748 GeV Gap 814.92851 MeV + Absorber 2.4800242 GeV Gap 307.91587 MeV Number of secondaries in an event : - gamma in Absorber 4232.7 in Gap 211.8 - e- in Absorber 6849.1 in Gap 604.9 - e+ in Absorber 444.5 in Gap 15.1 + gamma in Absorber 612.6 in Gap 36.6 + e- in Absorber 1021.8 in Gap 106.9 + e+ in Absorber 62 in Gap 2.5 Minimum kinetic energy of generated secondaries : - gamma in Absorber 120.59014 keV in Gap 8.6000042 keV - e- in Absorber 7.3592736 eV in Gap 32.250425 eV - e+ in Absorber 1.3540968 keV in Gap 20.283646 keV + gamma in Absorber 120.59693 keV in Gap 8.8267583 keV + e- in Absorber 49.154675 eV in Gap 56.595748 eV + e+ in Absorber 21.91929 keV in Gap 83.935656 keV Total track length of e+/e- in an event : - Absorber 4.9191359 m Gap 2.9361296 m + Absorber 74.318077 cm Gap 51.980794 cm Total number of steps of e+/e- in an event : - Absorber 11660.2 Gap 1017.3 + Absorber 1731 Gap 176.8 ############################################################ Region : Calor-C Production thresholds : gamma 2 cm e- 2 cm e+ 2 cm Energy deposition in an event : - Absorber 4.1133769 GeV Gap 434.69318 MeV + Absorber 2.6880661 GeV Gap 316.47545 MeV Number of secondaries in an event : - gamma in Absorber 996 in Gap 60.9 - e- in Absorber 1845.8 in Gap 158.7 - e+ in Absorber 157.8 in Gap 5.7 + gamma in Absorber 424.4 in Gap 30 + e- in Absorber 812.3 in Gap 75.1 + e+ in Absorber 67.2 in Gap 2.1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 283.70727 keV in Gap 26.997541 keV - e- in Absorber 19.386868 eV in Gap 168.49637 eV - e+ in Absorber 534.24473 eV in Gap 170.52851 keV + gamma in Absorber 347.35522 keV in Gap 27.0338 keV + e- in Absorber 96.330414 eV in Gap 430.20605 eV + e+ in Absorber 16.337466 keV in Gap 276.14154 keV Total track length of e+/e- in an event : - Absorber 1.6481909 m Gap 98.172798 cm + Absorber 71.397488 cm Gap 45.129951 cm Total number of steps of e+/e- in an event : - Absorber 3023.4 Gap 286.2 + Absorber 1321.3 Gap 130.7 ############################################################ /run/dumpCouples @@ -651,15 +661,18 @@ Region Calor-C Materials : Aluminium Water Production cuts : gamma 2 cm e- 2 cm e+ 2 cm /run/beamOn 10 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.0219981 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.0219981 MeV to 100 GeV in 100 bins. -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -668,8 +681,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -680,8 +693,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -689,26 +702,29 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 +msc: Model variant of multiple scattering for GenericIon + muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -727,9 +743,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -832,7 +848,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=3.3s Real=6.21s Sys=0.29s + User=6.82s Real=7.13s Sys=0.25s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -840,55 +856,55 @@ Region : Calor-A Production thresholds : gamma 200 mum e- 200 mum e+ 200 mum Energy deposition in an event : - Absorber 579.77062 MeV Gap 265.05625 MeV + Absorber 593.8102 MeV Gap 262.78978 MeV Number of secondaries in an event : - gamma in Absorber 54.3 in Gap 16 - e- in Absorber 340.6 in Gap 168.4 - e+ in Absorber 1.8 in Gap 0.6 + gamma in Absorber 59.3 in Gap 16.2 + e- in Absorber 339 in Gap 176.9 + e+ in Absorber 2.3 in Gap 0.4 Minimum kinetic energy of generated secondaries : - gamma in Absorber 3.2845477 keV in Gap 1.4976064 keV - e- in Absorber 5.5472297 eV in Gap 27.670976 eV - e+ in Absorber 1.2318077 MeV in Gap 1.8952003 MeV + gamma in Absorber 3.2258906 keV in Gap 1.5098577 keV + e- in Absorber 7.6312885 eV in Gap 16.36413 eV + e+ in Absorber 329.86815 keV in Gap 4.8093377 MeV Total track length of e+/e- in an event : - Absorber 45.648037 cm Gap 49.133792 cm + Absorber 50.350296 cm Gap 48.743703 cm Total number of steps of e+/e- in an event : - Absorber 476 Gap 241.4 + Absorber 484.6 Gap 253.2 ############################################################ Region : Calor-B Production thresholds : gamma 2 mm e- 2 mm e+ 2 mm Energy deposition in an event : - Absorber 568.13477 MeV Gap 252.27939 MeV + Absorber 566.6096 MeV Gap 254.62662 MeV Number of secondaries in an event : - gamma in Absorber 37.2 in Gap 12.1 - e- in Absorber 208.6 in Gap 92.8 - e+ in Absorber 1.3 in Gap 0.5 + gamma in Absorber 38.4 in Gap 12.4 + e- in Absorber 200.8 in Gap 87.7 + e+ in Absorber 1.7 in Gap 0.3 Minimum kinetic energy of generated secondaries : - gamma in Absorber 9.8286849 keV in Gap 4.0251469 keV - e- in Absorber 7.8167142 eV in Gap 138.45367 eV - e+ in Absorber 884.68374 keV in Gap 2.2096458 MeV + gamma in Absorber 9.6420252 keV in Gap 3.9687822 keV + e- in Absorber 5.1699139 eV in Gap 3.2362212 eV + e+ in Absorber 747.83167 keV in Gap 495.02894 keV Total track length of e+/e- in an event : - Absorber 36.063316 cm Gap 38.410035 cm + Absorber 36.182879 cm Gap 38.627644 cm Total number of steps of e+/e- in an event : - Absorber 272.8 Gap 130 + Absorber 284.1 Gap 131.1 ############################################################ Region : Calor-C Production thresholds : gamma 2 cm e- 2 cm e+ 2 cm Energy deposition in an event : - Absorber 742.81336 MeV Gap 321.78381 MeV + Absorber 577.21587 MeV Gap 249.04719 MeV Number of secondaries in an event : - gamma in Absorber 62.5 in Gap 21.1 - e- in Absorber 387.2 in Gap 148.8 - e+ in Absorber 4.9 in Gap 1 + gamma in Absorber 27.1 in Gap 8.3 + e- in Absorber 151.6 in Gap 66.2 + e+ in Absorber 1.9 in Gap 0.2 Minimum kinetic energy of generated secondaries : - gamma in Absorber 28.318542 keV in Gap 10.398363 keV - e- in Absorber 12.310597 eV in Gap 5.645716 eV - e+ in Absorber 554.94969 keV in Gap 917.84131 keV + gamma in Absorber 28.685662 keV in Gap 10.345352 keV + e- in Absorber 20.103865 eV in Gap 35.789319 eV + e+ in Absorber 657.16605 keV in Gap 2.4312984 MeV Total track length of e+/e- in an event : - Absorber 63.52613 cm Gap 64.938038 cm + Absorber 27.659297 cm Gap 26.111762 cm Total number of steps of e+/e- in an event : - Absorber 496.2 Gap 200.8 + Absorber 196.7 Gap 86.1 ############################################################ /run/dumpCouples @@ -999,15 +1015,18 @@ Region Calor-C Materials : Aluminium Water Production cuts : gamma 1 mm e- 1 mm e+ 1 mm /run/beamOn 10 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.0219981 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.0219981 MeV to 100 GeV in 100 bins. -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -1016,8 +1035,8 @@ msc: Model variant of multiple scattering for e- eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -1028,8 +1047,8 @@ eBrem: tables are built for e- eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -1037,26 +1056,29 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 1 msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. Boundary algorithm is active with facrange= 0.199 +msc: Model variant of multiple scattering for GenericIon + muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. @@ -1075,9 +1097,9 @@ muPairProd: tables are built for mu+ muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 muBrems: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -1180,7 +1202,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=11.55s Real=22.04s Sys=1.97s + User=34.52s Real=37.21s Sys=2.35s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -1188,55 +1210,55 @@ Region : Calor-A Production thresholds : gamma 10 mum e- 10 mum e+ 10 mum Energy deposition in an event : - Absorber 708.07427 MeV Gap 316.96774 MeV + Absorber 912.06875 MeV Gap 393.95918 MeV Number of secondaries in an event : - gamma in Absorber 118.7 in Gap 32.5 - e- in Absorber 1436.8 in Gap 2781.8 - e+ in Absorber 5.1 in Gap 0.9 + gamma in Absorber 197.8 in Gap 43.2 + e- in Absorber 2052.1 in Gap 3527.7 + e+ in Absorber 9.2 in Gap 1.5 Minimum kinetic energy of generated secondaries : - gamma in Absorber 1.0016038 keV in Gap 1.0211869 keV - e- in Absorber 3.2513134 eV in Gap 6.1571428 eV - e+ in Absorber 572.13853 keV in Gap 1.4351392 MeV + gamma in Absorber 1.0003597 keV in Gap 1.0049838 keV + e- in Absorber 1.6193201 eV in Gap 0.48480534 eV + e+ in Absorber 237.73553 keV in Gap 372.66473 keV Total track length of e+/e- in an event : - Absorber 81.13241 cm Gap 81.06663 cm + Absorber 1.3277171 m Gap 1.2371474 m Total number of steps of e+/e- in an event : - Absorber 2116.3 Gap 4895.2 + Absorber 3163.7 Gap 6537.1 ############################################################ Region : Calor-B Production thresholds : gamma 100 mum e- 100 mum e+ 100 mum Energy deposition in an event : - Absorber 645.12664 MeV Gap 283.43942 MeV + Absorber 573.98233 MeV Gap 247.68113 MeV Number of secondaries in an event : - gamma in Absorber 83 in Gap 21.3 - e- in Absorber 539.6 in Gap 272.3 - e+ in Absorber 2.9 in Gap 0.6 + gamma in Absorber 56.4 in Gap 12.5 + e- in Absorber 414.7 in Gap 203.1 + e+ in Absorber 1.4 in Gap 0.4 Minimum kinetic energy of generated secondaries : - gamma in Absorber 2.3447341 keV in Gap 1.1291357 keV - e- in Absorber 5.7510079 eV in Gap 24.069703 eV - e+ in Absorber 689.4912 keV in Gap 74.500731 keV + gamma in Absorber 2.3346826 keV in Gap 1.1455228 keV + e- in Absorber 27.649571 eV in Gap 47.678321 eV + e+ in Absorber 517.2278 keV in Gap 702.65262 keV Total track length of e+/e- in an event : - Absorber 63.098259 cm Gap 59.602889 cm + Absorber 45.765516 cm Gap 40.960394 cm Total number of steps of e+/e- in an event : - Absorber 759 Gap 387 + Absorber 569.7 Gap 273.6 ############################################################ Region : Calor-C Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 649.00865 MeV Gap 278.02821 MeV + Absorber 598.5019 MeV Gap 267.58739 MeV Number of secondaries in an event : - gamma in Absorber 62.4 in Gap 17.8 - e- in Absorber 335.4 in Gap 151.4 - e+ in Absorber 2.7 in Gap 1 + gamma in Absorber 48.9 in Gap 13.7 + e- in Absorber 260.8 in Gap 114.1 + e+ in Absorber 2.1 in Gap 0.1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 7.0752908 keV in Gap 2.9891118 keV - e- in Absorber 21.592 eV in Gap 3.1932818 eV - e+ in Absorber 556.00018 keV in Gap 980.38395 keV + gamma in Absorber 6.9285199 keV in Gap 3.0398056 keV + e- in Absorber 4.7916533 eV in Gap 6.1215625 eV + e+ in Absorber 704.27102 keV in Gap 4.1083894 MeV Total track length of e+/e- in an event : - Absorber 57.706759 cm Gap 53.208776 cm + Absorber 46.025647 cm Gap 48.483391 cm Total number of steps of e+/e- in an event : - Absorber 457 Gap 206.7 + Absorber 355.4 Gap 161.6 ############################################################ /run/dumpCouples diff --git a/examples/novice/N07/include/ExN07CalorHit.hh b/examples/novice/N07/include/ExN07CalorHit.hh index f249df485c..31ea0eaadd 100644 --- a/examples/novice/N07/include/ExN07CalorHit.hh +++ b/examples/novice/N07/include/ExN07CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07CalorHit.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN07CalorHit_h diff --git a/examples/novice/N07/include/ExN07CalorimeterSD.hh b/examples/novice/N07/include/ExN07CalorimeterSD.hh index ceab024970..ab4d13af50 100644 --- a/examples/novice/N07/include/ExN07CalorimeterSD.hh +++ b/examples/novice/N07/include/ExN07CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07CalorimeterSD.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN07CalorimeterSD_h diff --git a/examples/novice/N07/include/ExN07DetectorConstruction.hh b/examples/novice/N07/include/ExN07DetectorConstruction.hh index f83ea3c78d..d37c429cee 100644 --- a/examples/novice/N07/include/ExN07DetectorConstruction.hh +++ b/examples/novice/N07/include/ExN07DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07DetectorConstruction.hh,v 1.2 2004/11/17 03:07:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N07/include/ExN07DetectorMessenger.hh b/examples/novice/N07/include/ExN07DetectorMessenger.hh index 98873b07ce..ad17e2557f 100644 --- a/examples/novice/N07/include/ExN07DetectorMessenger.hh +++ b/examples/novice/N07/include/ExN07DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07DetectorMessenger.hh,v 1.3 2004/11/17 03:07:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN07DetectorMessenger_h diff --git a/examples/novice/N07/include/ExN07EventAction.hh b/examples/novice/N07/include/ExN07EventAction.hh index ce1bfd38a1..aadd073aa8 100644 --- a/examples/novice/N07/include/ExN07EventAction.hh +++ b/examples/novice/N07/include/ExN07EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07EventAction.hh,v 1.2 2003/04/08 15:47:00 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN07EventAction_h diff --git a/examples/novice/N07/include/ExN07GapParameterisation.hh b/examples/novice/N07/include/ExN07GapParameterisation.hh index d8f51bdf34..c743c4a21c 100644 --- a/examples/novice/N07/include/ExN07GapParameterisation.hh +++ b/examples/novice/N07/include/ExN07GapParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07GapParameterisation.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // A parameterisation that describes a series of boxes along Z diff --git a/examples/novice/N07/include/ExN07PhysicsList.hh b/examples/novice/N07/include/ExN07PhysicsList.hh index 1581ceb162..d86d070678 100644 --- a/examples/novice/N07/include/ExN07PhysicsList.hh +++ b/examples/novice/N07/include/ExN07PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07PhysicsList.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN07PhysicsList_h diff --git a/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh b/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh index 13be6a0114..9d8be45ddc 100644 --- a/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh +++ b/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07PrimaryGeneratorAction.hh,v 1.1 2003/03/10 01:43:36 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN07PrimaryGeneratorAction_h diff --git a/examples/novice/N07/include/ExN07Run.hh b/examples/novice/N07/include/ExN07Run.hh index 545e2d9b74..ad92273fc8 100644 --- a/examples/novice/N07/include/ExN07Run.hh +++ b/examples/novice/N07/include/ExN07Run.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07Run.hh,v 1.3 2003/04/09 23:20:58 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN07Run_h diff --git a/examples/novice/N07/include/ExN07RunAction.hh b/examples/novice/N07/include/ExN07RunAction.hh index 986afe097b..2c3f98ec52 100644 --- a/examples/novice/N07/include/ExN07RunAction.hh +++ b/examples/novice/N07/include/ExN07RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07RunAction.hh,v 1.1 2003/03/10 01:43:36 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef ExN07RunAction_h diff --git a/examples/novice/N07/src/ExN07CalorHit.cc b/examples/novice/N07/src/ExN07CalorHit.cc index 0110d0b3b4..2f426fa4eb 100644 --- a/examples/novice/N07/src/ExN07CalorHit.cc +++ b/examples/novice/N07/src/ExN07CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07CalorHit.cc,v 1.2 2003/05/21 22:01:17 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN07CalorHit.hh" diff --git a/examples/novice/N07/src/ExN07CalorimeterSD.cc b/examples/novice/N07/src/ExN07CalorimeterSD.cc index 5667072e47..03079dc86b 100644 --- a/examples/novice/N07/src/ExN07CalorimeterSD.cc +++ b/examples/novice/N07/src/ExN07CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07CalorimeterSD.cc,v 1.2 2003/05/21 22:01:17 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN07CalorimeterSD.hh" diff --git a/examples/novice/N07/src/ExN07DetectorConstruction.cc b/examples/novice/N07/src/ExN07DetectorConstruction.cc index 3ea06bdff6..a7ae8506df 100644 --- a/examples/novice/N07/src/ExN07DetectorConstruction.cc +++ b/examples/novice/N07/src/ExN07DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07DetectorConstruction.cc,v 1.4 2004/11/17 03:07:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/examples/novice/N07/src/ExN07DetectorMessenger.cc b/examples/novice/N07/src/ExN07DetectorMessenger.cc index 9784e75bc9..fb585686ba 100644 --- a/examples/novice/N07/src/ExN07DetectorMessenger.cc +++ b/examples/novice/N07/src/ExN07DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07DetectorMessenger.cc,v 1.3 2004/11/17 03:07:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN07DetectorMessenger.hh" diff --git a/examples/novice/N07/src/ExN07EventAction.cc b/examples/novice/N07/src/ExN07EventAction.cc index 1148bff5ee..b1646d6338 100644 --- a/examples/novice/N07/src/ExN07EventAction.cc +++ b/examples/novice/N07/src/ExN07EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07EventAction.cc,v 1.5 2003/06/16 16:50:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN07EventAction.hh" diff --git a/examples/novice/N07/src/ExN07GapParameterisation.cc b/examples/novice/N07/src/ExN07GapParameterisation.cc index 4dd151e56d..4d1951caee 100644 --- a/examples/novice/N07/src/ExN07GapParameterisation.cc +++ b/examples/novice/N07/src/ExN07GapParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07GapParameterisation.cc,v 1.2 2003/05/28 11:24:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN07GapParameterisation.hh" diff --git a/examples/novice/N07/src/ExN07PhysicsList.cc b/examples/novice/N07/src/ExN07PhysicsList.cc index f5671213e3..f7f3938841 100644 --- a/examples/novice/N07/src/ExN07PhysicsList.cc +++ b/examples/novice/N07/src/ExN07PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07PhysicsList.cc,v 1.4 2003/10/24 12:42:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN07PhysicsList.hh" diff --git a/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc b/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc index bc8e0dc57e..21817655ea 100644 --- a/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc +++ b/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07PrimaryGeneratorAction.cc,v 1.1 2003/03/10 01:43:36 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN07PrimaryGeneratorAction.hh" diff --git a/examples/novice/N07/src/ExN07Run.cc b/examples/novice/N07/src/ExN07Run.cc index a1311589f8..e48dc0a986 100644 --- a/examples/novice/N07/src/ExN07Run.cc +++ b/examples/novice/N07/src/ExN07Run.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07Run.cc,v 1.3 2003/04/09 23:20:59 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN07Run.hh" diff --git a/examples/novice/N07/src/ExN07RunAction.cc b/examples/novice/N07/src/ExN07RunAction.cc index 3dfdaf0251..814f942336 100644 --- a/examples/novice/N07/src/ExN07RunAction.cc +++ b/examples/novice/N07/src/ExN07RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07RunAction.cc,v 1.3 2003/04/09 23:20:59 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "ExN07RunAction.hh" diff --git a/physics_lists/electromagnetic/History b/physics_lists/electromagnetic/History index f9e3a04a26..d2f41dd3e5 100644 --- a/physics_lists/electromagnetic/History +++ b/physics_lists/electromagnetic/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 2004/12/13 16:38:53 gcosmo Exp $ +$Id: History,v 1.2 2005/05/04 16:41:53 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +04-05-05 V.Ivanchenko (emphys-V07-00-00) +- Change gamma and e+ classes in G4EmQEDBuilder52 + 13-12-04 G.Cosmo (emphys-V06-02-03) - Moved from top-level to new structure. diff --git a/physics_lists/electromagnetic/standard/DecaysBuilder.cc b/physics_lists/electromagnetic/standard/DecaysBuilder.cc index acbb9c04e5..ccaa87207d 100644 --- a/physics_lists/electromagnetic/standard/DecaysBuilder.cc +++ b/physics_lists/electromagnetic/standard/DecaysBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.cc,v 1.1 2004/12/13 16:38:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/DecaysBuilder.hh b/physics_lists/electromagnetic/standard/DecaysBuilder.hh index faed1c5f15..2538ce1a2e 100644 --- a/physics_lists/electromagnetic/standard/DecaysBuilder.hh +++ b/physics_lists/electromagnetic/standard/DecaysBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.hh,v 1.1 2004/12/13 16:38:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmHadronBuilder.cc b/physics_lists/electromagnetic/standard/G4EmHadronBuilder.cc index c91cb3be24..20c6b055b5 100644 --- a/physics_lists/electromagnetic/standard/G4EmHadronBuilder.cc +++ b/physics_lists/electromagnetic/standard/G4EmHadronBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmHadronBuilder.hh b/physics_lists/electromagnetic/standard/G4EmHadronBuilder.hh index d705e39f27..c034c8baf9 100644 --- a/physics_lists/electromagnetic/standard/G4EmHadronBuilder.hh +++ b/physics_lists/electromagnetic/standard/G4EmHadronBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.cc b/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.cc index 5bb99bbda7..d9a481a943 100644 --- a/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.cc +++ b/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.hh b/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.hh index ed7465c887..d2569e54e9 100644 --- a/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.hh +++ b/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.cc b/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.cc index abd1185347..e8d27e6441 100644 --- a/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.cc +++ b/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHighEnergyBuilder.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.hh b/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.hh index 3d108dc3c1..44374d1bb0 100644 --- a/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.hh +++ b/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHighEnergyBuilder.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmMuonBuilder.cc b/physics_lists/electromagnetic/standard/G4EmMuonBuilder.cc index 1fc56d3085..820f7a5525 100644 --- a/physics_lists/electromagnetic/standard/G4EmMuonBuilder.cc +++ b/physics_lists/electromagnetic/standard/G4EmMuonBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmMuonBuilder.hh b/physics_lists/electromagnetic/standard/G4EmMuonBuilder.hh index d36a8c4c40..96f53caa8c 100644 --- a/physics_lists/electromagnetic/standard/G4EmMuonBuilder.hh +++ b/physics_lists/electromagnetic/standard/G4EmMuonBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.cc b/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.cc index 5adc9af8b3..b69ad840a1 100644 --- a/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.cc +++ b/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.hh b/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.hh index 5101782679..b0462b7530 100644 --- a/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.hh +++ b/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder.cc b/physics_lists/electromagnetic/standard/G4EmQEDBuilder.cc index b5d1262886..7a02556330 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder.cc +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder.hh b/physics_lists/electromagnetic/standard/G4EmQEDBuilder.hh index cf5c64e3dc..f420d7ecea 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder.hh +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.cc b/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.cc index 34a37f3471..a71207b678 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.cc +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EmQEDBuilder52.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4EmQEDBuilder52.cc,v 1.2 2005/05/04 16:41:53 vnivanch Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // @@ -42,15 +42,15 @@ #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" #include "G4MultipleScattering52.hh" #include "G4eIonisation52.hh" #include "G4eBremsstrahlung52.hh" -#include "G4eplusAnnihilation.hh" +#include "G4eplusAnnihilation52.hh" #include "G4Gamma.hh" #include "G4Electron.hh" @@ -84,9 +84,9 @@ void G4EmQEDBuilder52::ConstructProcess() G4ParticleDefinition* particle = G4Gamma::Gamma(); G4ProcessManager* pmanager = particle->GetProcessManager(); - pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() ); - pmanager->AddDiscreteProcess( new G4ComptonScattering() ); - pmanager->AddDiscreteProcess( new G4GammaConversion() ); + pmanager->AddDiscreteProcess( new G4PhotoElectricEffect52() ); + pmanager->AddDiscreteProcess( new G4ComptonScattering52() ); + pmanager->AddDiscreteProcess( new G4GammaConversion52() ); // Add standard EM Processes for e- particle = G4Electron::Electron(); @@ -103,7 +103,7 @@ void G4EmQEDBuilder52::ConstructProcess() pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); } diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.hh b/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.hh index d56fa6e002..5bd0123e27 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.hh +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder52.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.cc b/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.cc index c106df37f8..075d06266a 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.cc +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder70.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.hh b/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.hh index 35757ebea5..bbb45064a0 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.hh +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder70.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.cc b/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.cc index 10c2340dc9..8c2e133878 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.cc +++ b/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.hh b/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.hh index d71e3fb827..74df3c831d 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.hh +++ b/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.cc b/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.cc index 9ef2defa9f..6bc1ff5dd1 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.cc +++ b/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.hh b/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.hh index add6684808..3a03aeafef 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.hh +++ b/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.cc b/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.cc index da268df144..e5e58f1c94 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.cc +++ b/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterPerRegion.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.hh b/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.hh index c1b34d534f..dc2e330cc4 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.hh +++ b/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterPerRegion.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/ParticlesBuilder.cc b/physics_lists/electromagnetic/standard/ParticlesBuilder.cc index d146c11b38..135027177b 100644 --- a/physics_lists/electromagnetic/standard/ParticlesBuilder.cc +++ b/physics_lists/electromagnetic/standard/ParticlesBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: ParticlesBuilder.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/ParticlesBuilder.hh b/physics_lists/electromagnetic/standard/ParticlesBuilder.hh index 0ef1e966b5..911ce3fb65 100644 --- a/physics_lists/electromagnetic/standard/ParticlesBuilder.hh +++ b/physics_lists/electromagnetic/standard/ParticlesBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: ParticlesBuilder.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/PhysicsList.cc b/physics_lists/electromagnetic/standard/PhysicsList.cc index 69f1e0edce..a551da4890 100644 --- a/physics_lists/electromagnetic/standard/PhysicsList.cc +++ b/physics_lists/electromagnetic/standard/PhysicsList.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/PhysicsList.hh b/physics_lists/electromagnetic/standard/PhysicsList.hh index a899fd5e05..186ab28aa7 100644 --- a/physics_lists/electromagnetic/standard/PhysicsList.hh +++ b/physics_lists/electromagnetic/standard/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Modified: // diff --git a/physics_lists/electromagnetic/standard/PhysicsListMessenger.cc b/physics_lists/electromagnetic/standard/PhysicsListMessenger.cc index 924a9c5efa..cf7f195787 100644 --- a/physics_lists/electromagnetic/standard/PhysicsListMessenger.cc +++ b/physics_lists/electromagnetic/standard/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/PhysicsListMessenger.hh b/physics_lists/electromagnetic/standard/PhysicsListMessenger.hh index c0f9458077..1881dd2607 100644 --- a/physics_lists/electromagnetic/standard/PhysicsListMessenger.hh +++ b/physics_lists/electromagnetic/standard/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/hadronic/FTFC/include/FTFC.icc b/physics_lists/hadronic/FTFC/include/FTFC.icc index f795d0c447..7c1d3baa79 100644 --- a/physics_lists/hadronic/FTFC/include/FTFC.icc +++ b/physics_lists/hadronic/FTFC/include/FTFC.icc @@ -50,23 +50,23 @@ template TFTFC::TFTFC(): T() G4DataQuestionaire it(photon); G4cout << "You are using the simulation engine: FTFC 2.8"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsFTFC("hadron")); + this->RegisterPhysics( new HadronPhysicsFTFC("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -77,13 +77,13 @@ template TFTFC::~TFTFC() template void TFTFC::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "FTFC::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/FTFC/index.html b/physics_lists/hadronic/FTFC/index.html deleted file mode 100644 index f414d46c4b..0000000000 --- a/physics_lists/hadronic/FTFC/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -

- - - - - -
-


-The FTFC physics list. -

-
-Click - here to down-load the source code of FTFC - Version 2.7 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The FTFC physics list models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/FTFP/include/FTFP.icc b/physics_lists/hadronic/FTFP/include/FTFP.icc index 576f92fc7f..7316eff3d2 100644 --- a/physics_lists/hadronic/FTFP/include/FTFP.icc +++ b/physics_lists/hadronic/FTFP/include/FTFP.icc @@ -48,23 +48,23 @@ template TFTFP::TFTFP(): T() G4DataQuestionaire it(photon); G4cout << "You are using the simulation engine: FTFP 2.8"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsFTFP("hadron")); + this->RegisterPhysics( new HadronPhysicsFTFP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TFTFP::~TFTFP() template void TFTFP::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "FTFP::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/FTFP/index.html b/physics_lists/hadronic/FTFP/index.html deleted file mode 100644 index c920959b63..0000000000 --- a/physics_lists/hadronic/FTFP/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The FTFP physics list. -

-
-Click - here to down-load the source code of FTFP - Version 2.7 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The FTFP physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/History b/physics_lists/hadronic/History index aa6e2ea8ca..10b428dc97 100644 --- a/physics_lists/hadronic/History +++ b/physics_lists/hadronic/History @@ -1,4 +1,4 @@ -$Id: History,v 1.2 2004/12/13 16:55:01 gcosmo Exp $ +$Id: History,v 1.4 2005/02/17 11:49:25 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,16 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +17.02.2005, G.Cosmo - ghad-lists-V07-00-01 +- Added missing fix in LBE physics-list for usage of 'this' pointer for + porting on gcc-3.4.X compiler series. + +15.02.2005, G.Cosmo - ghad-lists-V07-00-00 +- Implemented porting on gcc-3.4.X compiler series: + o Added explicit 'typename' keywords to template class declarations + o Use 'this' pointer to access data-members of base class for + unqualified names in physics-lists definitions. + 13.12.2004, G.Cosmo - ghad-lists-V06-02-03 - Imported lists from top-level directory. @@ -30,7 +40,49 @@ track of all tags. kernel libraries from EXTRALIBS. 25.04.2004, G.Cosmo - ghad-lists-V06-00-00 -- Updated lists to package 4.1 (H.P.Wellisch). +- Updated lists to package 2.4 (H.P.Wellisch). + Technically verified with 200 events per simulation engine + in two typical calorimeter setups (LArg Copper, and Brass + scintillator sampling calorimeters). +- Technical changes: + o Using templating to configure some of the processes, + resulting in reduced code size, and easier maintenance + (use of TMPs to be extended in releases to come). +- Physics changes: + o Multiple scattering for ions now included. + o Bertini and Binary cascade now used up to 9.9 GeV + for nucleon induced reactions in the respective physics simulation + engines. + o Binary cascade now used for pion induced reactions up to 1.3 GeV + in the respective physics simulation engines. + o QGS model now used to lower energies; 12 GeV for QGSP(_XX), and 8 GeV + for QGSC(_XX) simulation engines (for nucleon, pion and kaon induced + reactions). + o Use of alternative pion cross-sections in BertiniPiKBuilder now also + for pi+. +- Physics lists affected: + o FTFC 2.7 ==> FTFC 2.8 + o FTFP 2.7 ==> FTFP 2.8 + o LBE 5.2 ==> LBE 5.3 + o LHEP 3.6 ==> LHEP 3.7 + o LHEP_BERT 1.0 ==> LHEP_BERT 1.1 + o LHEP_BERT_HP 1.0 ==> LHEP_BERT_HP 1.1 + o LHEP_BIC 1.0 ==> LHEP_BIC 1.1 + o LHEP_BIC_HP 1.0 ==> LHEP_BIC_HP 1.1 + o LHEP_GN 2.4 ==> LHEP_GN 2.5 + o LHEP_HP 1.6 ==> LHEP_HP 1.7 + o LHEP_LEAD 1.4 ==> LHEP_LEAD 1.5 + o LHEP_LEAD_HP 1.5 ==> LHEP_LEAD_HP 1.6 + o LHEP_PRECO 2.6 ==> LHEP_PRECO 2.7 + o LHEP_PRECO_HP 2.4 ==> LHEP_PRECO_HP 2.5 + o QGSC 2.8 ==> QGSC 2.9 + o QGSC_LEAD 1.6 ==> QGSC_LEAD 1.7 + o QGSC_LEAD_HP 1.6 ==> QGSC_LEAD_HP 1.7 + o QGSP 2.7 ==> QGSP 2.8 + o QGSP_BERT 1.1 ==> QGSP_BERT 1.2 + o QGSP_BIC 1.1 ==> QGSP_BIC 1.2 + o QGSP_GN 2.5 ==> QGSP_GN 2.6 + o QGSP_HP 2.2 ==> QGSP_HP 2.3 05.12.2003, G.Cosmo - ghad-lists-V05-02-01 - Changed LISTS_BASE to G4LISTS_BASE. diff --git a/physics_lists/hadronic/LBE/include/LBE.icc b/physics_lists/hadronic/LBE/include/LBE.icc index 7449fca838..e431adb672 100644 --- a/physics_lists/hadronic/LBE/include/LBE.icc +++ b/physics_lists/hadronic/LBE/include/LBE.icc @@ -66,18 +66,18 @@ template TLBE::TLBE() : G4VUserPhysicsList() G4DataQuestionaire it(photon, lowenergy, neutron, radioactive); G4cout << "You are using the simulation engine: LBE 5.3"<defaultCutValue = 1.0*micrometer; // + cutForGamma = this->defaultCutValue; cutForElectron = 1.0*nanometer; - cutForPositron = defaultCutValue; - cutForProton = defaultCutValue; + cutForPositron = this->defaultCutValue; + cutForProton = this->defaultCutValue; cutForAlpha = 1.0*nanometer; cutForGenericIon = 1.0*nanometer; VerboseLevel = 1; OpVerbLevel = 0; - SetVerboseLevel(VerboseLevel); + this->SetVerboseLevel(VerboseLevel); } @@ -212,9 +212,9 @@ template TLBE::~TLBE() G4VUserPhysicsList::AddTransportation(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); + this->theParticleIterator->reset(); + while( (*(this->theParticleIterator))() ){ + G4ParticleDefinition* particle = this->theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); // time cuts for ONLY neutrons: @@ -292,9 +292,9 @@ template TLBE::~TLBE() // ahadronLowEIon->SetBarkasOff(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); + this->theParticleIterator->reset(); + while( (*(this->theParticleIterator))() ){ + G4ParticleDefinition* particle = this->theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); G4String particleType = particle->GetParticleType(); @@ -421,10 +421,10 @@ template TLBE::~TLBE() G4OpticalSurfaceModel themodel = unified; theBoundaryProcess->SetModel(themodel); - theParticleIterator->reset(); - while( (*theParticleIterator)() ) + this->theParticleIterator->reset(); + while( (*(this->theParticleIterator))() ) { - G4ParticleDefinition* particle = theParticleIterator->value(); + G4ParticleDefinition* particle = this->theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); if (theScintProcessDef->IsApplicable(*particle)) { @@ -530,10 +530,10 @@ template TLBE::~TLBE() G4LElastic* theElasticModel = new G4LElastic; theElasticProcess->RegisterMe(theElasticModel); - theParticleIterator->reset(); - while ((*theParticleIterator)()) + this->theParticleIterator->reset(); + while ((*(this->theParticleIterator))()) { - G4ParticleDefinition* particle = theParticleIterator->value(); + G4ParticleDefinition* particle = this->theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); @@ -750,10 +750,10 @@ template TLBE::~TLBE() // Add Decay Process G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ) + this->theParticleIterator->reset(); + while( (*(this->theParticleIterator))() ) { - G4ParticleDefinition* particle = theParticleIterator->value(); + G4ParticleDefinition* particle = this->theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); if (theDecayProcess->IsApplicable(*particle)) @@ -791,13 +791,13 @@ template TLBE::~TLBE() template void TLBE::SetCuts() { - if (verboseLevel >1) + if (this->verboseLevel >1) G4cout << "LBE::SetCuts:"; - if (verboseLevel>0){ + if (this->verboseLevel>0){ G4cout << "LBE::SetCuts:"; G4cout << "CutLength : " - << G4BestUnit(defaultCutValue,"Length") << G4endl; + << G4BestUnit(this->defaultCutValue,"Length") << G4endl; } //special for low energy physics @@ -807,17 +807,17 @@ template void TLBE::SetCuts() // set cut values for gamma at first and for e- second and next for e+, // because some processes for e+/e- need cut values for gamma - SetCutValue(cutForGamma, "gamma"); - SetCutValue(cutForElectron, "e-"); - SetCutValue(cutForPositron, "e+"); + this->SetCutValue(cutForGamma, "gamma"); + this->SetCutValue(cutForElectron, "e-"); + this->SetCutValue(cutForPositron, "e+"); - // SetCutValue(cutForProton, "proton"); - // SetCutValue(cutForProton, "anti_proton"); - // SetCutValue(cutForAlpha, "alpha"); - // SetCutValue(cutForGenericIon, "GenericIon"); + // this->SetCutValue(cutForProton, "proton"); + // this->SetCutValue(cutForProton, "anti_proton"); + // this->SetCutValue(cutForAlpha, "alpha"); + // this->SetCutValue(cutForGenericIon, "GenericIon"); - // SetCutValueForOthers(defaultCutValue); + // this->SetCutValueForOthers(this->defaultCutValue); - if (verboseLevel>0) DumpCutValuesTable(); + if (this->verboseLevel>0) this->DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/LBE/include/MinEkineCuts.hh b/physics_lists/hadronic/LBE/include/MinEkineCuts.hh index 4d7814a16a..73500a1c37 100644 --- a/physics_lists/hadronic/LBE/include/MinEkineCuts.hh +++ b/physics_lists/hadronic/LBE/include/MinEkineCuts.hh @@ -22,7 +22,7 @@ // // // $Id: MinEkineCuts.hh,v 1.1 2004/12/13 16:50:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/physics_lists/hadronic/LBE/index.html b/physics_lists/hadronic/LBE/index.html deleted file mode 100644 index 8f4f3c5f1c..0000000000 --- a/physics_lists/hadronic/LBE/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The LBE physics list. -

-
-Click - here to down-load the source code of LBE - Version 5.2 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The LBE physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/LBE/src/MinEkineCuts.cc b/physics_lists/hadronic/LBE/src/MinEkineCuts.cc index f75c3c6c30..05e2269482 100644 --- a/physics_lists/hadronic/LBE/src/MinEkineCuts.cc +++ b/physics_lists/hadronic/LBE/src/MinEkineCuts.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------- diff --git a/physics_lists/hadronic/LHEP/include/LHEP.icc b/physics_lists/hadronic/LHEP/include/LHEP.icc index eaf01f3b02..c6ce8d9d99 100644 --- a/physics_lists/hadronic/LHEP/include/LHEP.icc +++ b/physics_lists/hadronic/LHEP/include/LHEP.icc @@ -48,23 +48,23 @@ template TLHEP::TLHEP(): T() G4DataQuestionaire it(photon); G4cout << "You are using the simulation engine: LHEP 3.7"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TLHEP::~TLHEP() template void TLHEP::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP/index.html b/physics_lists/hadronic/LHEP/index.html deleted file mode 100644 index aeff18e633..0000000000 --- a/physics_lists/hadronic/LHEP/index.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The LHEP physics list. -

-
-Click - here to down-load the source code of - LHEP Version 3.6 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The LHEP physics list models and cross-section: -
    -
  • - The cross-section used by the LHEP list are the default geant4 cross-sections. - No special data sets are applied to keep performance at its maximum. - Verification plots for these cross-sections can be found - here. - -
  • - The model used for elastic scattering is the G4LElastic model. It models the - scattering angle based on a two slope parametrization. - Verification plots for this can be found - here. -
  • - The models used for inelastic scattering are the LEP and HEP parametrized - models. The modeling parametrizes the final states individual inelastic reactions, so you will not see - resonances, and the detailed secondary angular distributions for O(100MeV) reactions may not be described - perfectly. The average quantities will be well described. - Verification plots for this can be found - here. -
  • - The models used for hadronic interactions of - stopping particles are a direct re-write from geant3.21. - In the case of mu- absorption, the particles from the electromagnetic - cascading prior to capture are taken into account in addition. Capture is in - competition with decay, and effects of the electromagnetic - binding on mu- decay have been added. - Verification plots can be found - here. -
  • - The electromagnetic physics used is the 'standard' geant4 - electromagnetic physics. A production threshold of 0.7mm is applied. - Please refere to the pages of the electromagnetic working group for - verification results of these processes. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.icc b/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.icc index 62b04b6cc6..0d486312d4 100644 --- a/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.icc +++ b/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.icc @@ -51,23 +51,23 @@ template TLHEP_BERT::TLHEP_BERT(): T() G4cout << "You are using the simulation engine: LHEP_BERT 1.1"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP_BERT("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_BERT("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -78,13 +78,13 @@ template TLHEP_BERT::~TLHEP_BERT() template void TLHEP_BERT::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP_BERT::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP_BERT/index.html b/physics_lists/hadronic/LHEP_BERT/index.html deleted file mode 100644 index d47be1a225..0000000000 --- a/physics_lists/hadronic/LHEP_BERT/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The LHEP_BERT physics list. -

-
-Click - here to down-load the source code of LHEP_BERT - Version 1.0 -
-Click - here to down-load the Packaging re-use library 2.3. -

- The LHEP_BERT physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.icc b/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.icc index 31970ab94f..5f34e848ce 100644 --- a/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.icc +++ b/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.icc @@ -49,23 +49,23 @@ template TLHEP_BERT_HP::TLHEP_BERT_HP(): T() G4cout << "You are using the simulation engine: LHEP_BERT_HP 1.1"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP_BERT_HP("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_BERT_HP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -76,13 +76,13 @@ template TLHEP_BERT_HP::~TLHEP_BERT_HP() template void TLHEP_BERT_HP::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP_BERT_HP::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.icc b/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.icc index e727b5b680..7b87ed54cb 100644 --- a/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.icc +++ b/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.icc @@ -51,23 +51,23 @@ template TLHEP_BIC::TLHEP_BIC(): T() G4cout << "You are using the simulation engine: LHEP_BIC 1.1"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP_BIC("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_BIC("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -78,13 +78,13 @@ template TLHEP_BIC::~TLHEP_BIC() template void TLHEP_BIC::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP_BIC::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP_BIC/index.html b/physics_lists/hadronic/LHEP_BIC/index.html deleted file mode 100644 index 0254232b06..0000000000 --- a/physics_lists/hadronic/LHEP_BIC/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The LHEP_BIC physics list. -

-
-Click - here to down-load the source code of LHEP_BIC - Version 1.0 -
-Click - here to down-load the Packaging re-use library 2.3. -

- The LHEP_BIC physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.icc b/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.icc index 89a2175ca3..a175258b57 100644 --- a/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.icc +++ b/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.icc @@ -51,23 +51,23 @@ template TLHEP_BIC_HP::TLHEP_BIC_HP(): T() G4cout << "You are using the simulation engine: LHEP_BIC_HP 1.1"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP_BIC_HP("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_BIC_HP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -78,13 +78,13 @@ template TLHEP_BIC_HP::~TLHEP_BIC_HP() template void TLHEP_BIC_HP::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP_BIC::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP_GN/include/LHEP_GN.icc b/physics_lists/hadronic/LHEP_GN/include/LHEP_GN.icc index 6328c9d0a5..60bc8dffa7 100644 --- a/physics_lists/hadronic/LHEP_GN/include/LHEP_GN.icc +++ b/physics_lists/hadronic/LHEP_GN/include/LHEP_GN.icc @@ -48,23 +48,23 @@ template TLHEP_GN::TLHEP_GN(): T() G4DataQuestionaire it(photon); G4cout << "You are using the simulation engine: LHEP_GN 2.5"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EM_GNPhysics("standard EM plus gamma nuclear")); + this->RegisterPhysics( new EM_GNPhysics("standard EM plus gamma nuclear")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP_GN("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_GN("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TLHEP_GN::~TLHEP_GN() template void TLHEP_GN::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP_GN::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP_GN/index.html b/physics_lists/hadronic/LHEP_GN/index.html deleted file mode 100644 index 3dc0d9edf1..0000000000 --- a/physics_lists/hadronic/LHEP_GN/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The LHEP_GN physics list. -

-
-Click - here to down-load the source code of LHEP_GN - Version 2.4 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The LHEP_GN physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/LHEP_HP/include/LHEP_HP.icc b/physics_lists/hadronic/LHEP_HP/include/LHEP_HP.icc index 460be0d6cc..d3b895ef59 100644 --- a/physics_lists/hadronic/LHEP_HP/include/LHEP_HP.icc +++ b/physics_lists/hadronic/LHEP_HP/include/LHEP_HP.icc @@ -48,23 +48,23 @@ template TLHEP_HP::TLHEP_HP(): T() G4DataQuestionaire it(photon, neutron); G4cout << "You are using the simulation engine: LHEP_HP 1.7"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EM_GNPhysics("standard EM plus electro nuclear")); + this->RegisterPhysics( new EM_GNPhysics("standard EM plus electro nuclear")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP_HP("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_HP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TLHEP_HP::~TLHEP_HP() template void TLHEP_HP::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP_HP::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP_HP/index.html b/physics_lists/hadronic/LHEP_HP/index.html deleted file mode 100644 index ad9c4e896d..0000000000 --- a/physics_lists/hadronic/LHEP_HP/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The LHEP_HP physics list. -

-
-Click - here to down-load the source code of LHEP_HP - Version 1.6 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The LHEP_HP physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.icc b/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.icc index fbe0b7e321..e9c71ae2e7 100644 --- a/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.icc +++ b/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.icc @@ -48,23 +48,23 @@ template TLHEP_LEAD::TLHEP_LEAD(): T() G4DataQuestionaire it(photon); G4cout << "You are using the simulation engine: LHEP_LEAD 1.5"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP_LEAD("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_LEAD("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TLHEP_LEAD::~TLHEP_LEAD() template void TLHEP_LEAD::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP_LEAD::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP_LEAD/index.html b/physics_lists/hadronic/LHEP_LEAD/index.html deleted file mode 100644 index 7e0306f70c..0000000000 --- a/physics_lists/hadronic/LHEP_LEAD/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The LHEP_LEAD physics list. -

-
-Click - here to down-load the source code of LHEP_LEAD - Version 1.4 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The LHEP_LEAD physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc b/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc index 9b1f75eed5..4d4512caf2 100644 --- a/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc +++ b/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc @@ -48,23 +48,23 @@ template TLHEP_LEAD_HP::TLHEP_LEAD_HP(): T() G4DataQuestionaire it(photon, neutron); G4cout << "You are using the simulation engine: LHEP_LEAD_HP 1.6"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP_LEAD_HP("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_LEAD_HP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TLHEP_LEAD_HP::~TLHEP_LEAD_HP() template void TLHEP_LEAD_HP::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP_LEAD_HP::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP_LEAD_HP/index.html b/physics_lists/hadronic/LHEP_LEAD_HP/index.html deleted file mode 100644 index 43ac0ae70f..0000000000 --- a/physics_lists/hadronic/LHEP_LEAD_HP/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The LHEP_LEAD_HP physics list. -

-
-Click - here to down-load the - source code of LHEP_LEAD_HP Version 1.5 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The LHEP_LEAD_HP physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.icc b/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.icc index b880cb55bb..07ea5490d9 100644 --- a/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.icc +++ b/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.icc @@ -48,23 +48,23 @@ template TLHEP_PRECO::TLHEP_PRECO(): T() G4DataQuestionaire it(photon); G4cout << "You are using the simulation engine: LHEP_PRECO 2.7"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP_PRECO("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_PRECO("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TLHEP_PRECO::~TLHEP_PRECO() template void TLHEP_PRECO::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP_PRECO::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP_PRECO/index.html b/physics_lists/hadronic/LHEP_PRECO/index.html deleted file mode 100644 index d878874b8f..0000000000 --- a/physics_lists/hadronic/LHEP_PRECO/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The LHEP_PRECO physics list. -

-
-Click - here to down-load the source code of - LHEP_PRECO Version 2.6 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The LHEP_PRECO physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc b/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc index d84eef9b9e..b7d968f311 100644 --- a/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc +++ b/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc @@ -48,23 +48,23 @@ template TLHEP_PRECO_HP::TLHEP_PRECO_HP(): T() G4DataQuestionaire it(photon, neutron); G4cout << "You are using the simulation engine: LHEP_PRECO_HP 2.5"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsLHEP_PRECO_HP("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_PRECO_HP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TLHEP_PRECO_HP::~TLHEP_PRECO_HP() template void TLHEP_PRECO_HP::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "LHEP_PRECO_HP::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/LHEP_PRECO_HP/index.html b/physics_lists/hadronic/LHEP_PRECO_HP/index.html deleted file mode 100644 index 24f002bef1..0000000000 --- a/physics_lists/hadronic/LHEP_PRECO_HP/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The LHEP_PRECO_HP physics list. -

-
-Click - here to down-load the source code of - LHEP_PRECO_HP Version 2.4 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The LHEP_PRECO_HP physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/Packaging/include/G4HadronQEDBuilder.hh b/physics_lists/hadronic/Packaging/include/G4HadronQEDBuilder.hh index 5123adf140..f01f91ca01 100644 --- a/physics_lists/hadronic/Packaging/include/G4HadronQEDBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4HadronQEDBuilder.hh @@ -29,6 +29,7 @@ #include "G4MultipleScattering.hh" #include "G4hIonisation.hh" #include "G4ProcessManager.hh" +#include "G4ParticleTable.hh" #include "G4Proton.hh" #include "G4AntiProton.hh" diff --git a/physics_lists/hadronic/Packaging/include/plist.tmp b/physics_lists/hadronic/Packaging/include/plist.tmp index 7f49eddad8..8f46c193a3 100644 --- a/physics_lists/hadronic/Packaging/include/plist.tmp +++ b/physics_lists/hadronic/Packaging/include/plist.tmp @@ -36,11 +36,11 @@ struct Apply { template struct CallBack { static void Call_Back() { - typedef typename functor::Fun it; + typedef typename functor::template Fun it; it aF; aF(); typedef typename Rest::first first; typedef typename Rest::rest second; - Apply::CallBack::Call_Back(); + Apply::template CallBack::Call_Back(); } }; template struct CallBack { diff --git a/physics_lists/hadronic/QGSC/include/QGSC.icc b/physics_lists/hadronic/QGSC/include/QGSC.icc index 03d34b1adc..f5d76d31f1 100644 --- a/physics_lists/hadronic/QGSC/include/QGSC.icc +++ b/physics_lists/hadronic/QGSC/include/QGSC.icc @@ -48,23 +48,23 @@ template TQGSC::TQGSC(): T() G4DataQuestionaire it(photon); G4cout << "You are using the simulation engine: QGSC 2.9"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsQGSC("hadron")); + this->RegisterPhysics( new HadronPhysicsQGSC("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TQGSC::~TQGSC() template void TQGSC::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "QGSC::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/QGSC/index.html b/physics_lists/hadronic/QGSC/index.html deleted file mode 100644 index 659f888dcf..0000000000 --- a/physics_lists/hadronic/QGSC/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The QGSC physics list. -

-
-Click - here to down-load the source code of QGSC - Version 2.8 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The QGSC physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.icc b/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.icc index 30489af026..8e8bb2c630 100644 --- a/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.icc +++ b/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.icc @@ -48,23 +48,23 @@ template TQGSC_LEAD::TQGSC_LEAD(): T() G4DataQuestionaire it(photon); G4cout << "You are using the simulation engine: QGSC_LEAD 1.7"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsQGSC_LEAD("hadron")); + this->RegisterPhysics( new HadronPhysicsQGSC_LEAD("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TQGSC_LEAD::~TQGSC_LEAD() template void TQGSC_LEAD::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "QGSC_LEAD::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/QGSC_LEAD/index.html b/physics_lists/hadronic/QGSC_LEAD/index.html deleted file mode 100644 index 99e9643df7..0000000000 --- a/physics_lists/hadronic/QGSC_LEAD/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The QGSC_LEAD physics list. -

-
-Click - here to down-load the source code of - QGSC_LEAD Version 1.6 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The QGSC_LEAD physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc b/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc index 1120067bc4..81867258dc 100644 --- a/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc +++ b/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc @@ -48,23 +48,23 @@ template TQGSC_LEAD_HP::TQGSC_LEAD_HP(): T() G4DataQuestionaire it(photon, neutron); G4cout << "You are using the simulation engine: QGSC_LEAD_HP 1.7"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsQGSC_LEAD_HP("hadron")); + this->RegisterPhysics( new HadronPhysicsQGSC_LEAD_HP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TQGSC_LEAD_HP::~TQGSC_LEAD_HP() template void TQGSC_LEAD_HP::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "QGSC_LEAD_HP::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/QGSC_LEAD_HP/index.html b/physics_lists/hadronic/QGSC_LEAD_HP/index.html deleted file mode 100644 index e34bde1c23..0000000000 --- a/physics_lists/hadronic/QGSC_LEAD_HP/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The QGSC_LEAD_HP physics list. -

-
-Click - here to down-load the source code of - QGSC_LEAD_HP Version 1.6 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The QGSC_LEAD_HP physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/QGSP/include/QGSP.icc b/physics_lists/hadronic/QGSP/include/QGSP.icc index 44325259b4..8ef940824c 100644 --- a/physics_lists/hadronic/QGSP/include/QGSP.icc +++ b/physics_lists/hadronic/QGSP/include/QGSP.icc @@ -51,23 +51,23 @@ template TQGSP::TQGSP(): T() G4cout << "You are using the simulation engine: QGSP 2.8"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsQGSP("hadron")); + this->RegisterPhysics( new HadronPhysicsQGSP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -78,13 +78,13 @@ template TQGSP::~TQGSP() template void TQGSP::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "QGSP::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/QGSP/index.html b/physics_lists/hadronic/QGSP/index.html deleted file mode 100644 index d8b0804d61..0000000000 --- a/physics_lists/hadronic/QGSP/index.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The QGSP physics list. -

-
-Click - here to down-load the source code of QGSP Version 2.7 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The QGSP physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.icc b/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.icc index 2d448d6f70..f02cb59294 100644 --- a/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.icc +++ b/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.icc @@ -51,23 +51,23 @@ template TQGSP_BERT::TQGSP_BERT(): T() G4cout << "You are using the simulation engine: QGSP_BERT 1.2"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsQGSP_BERT("hadron")); + this->RegisterPhysics( new HadronPhysicsQGSP_BERT("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -78,13 +78,13 @@ template TQGSP_BERT::~TQGSP_BERT() template void TQGSP_BERT::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "QGSP_BERT::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/QGSP_BERT/index.html b/physics_lists/hadronic/QGSP_BERT/index.html deleted file mode 100644 index 7fece6f7db..0000000000 --- a/physics_lists/hadronic/QGSP_BERT/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The QGSP_BERT physics list. -

-
-Click - here to down-load the source code of QGSP_BERT - Version 1.1 -
-Click - here to down-load the Packaging re-use library 2.3. -

- The QGSP_BERT physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.icc b/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.icc index febb3697bf..ac0b846b77 100644 --- a/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.icc +++ b/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.icc @@ -51,23 +51,23 @@ template TQGSP_BIC::TQGSP_BIC(): T() G4cout << "You are using the simulation engine: QGSP_BIC 1.2"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new EMPhysics("standard EM")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsQGSP_BIC("hadron")); + this->RegisterPhysics( new HadronPhysicsQGSP_BIC("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -78,13 +78,13 @@ template TQGSP_BIC::~TQGSP_BIC() template void TQGSP_BIC::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "QGSP_BIC::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/QGSP_BIC/index.html b/physics_lists/hadronic/QGSP_BIC/index.html deleted file mode 100644 index d91186560e..0000000000 --- a/physics_lists/hadronic/QGSP_BIC/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The QGSP_BIC physics list. -

-
-Click - here to down-load the source code of QGSP_BIC - Version 1.1 -
-Click - here to down-load the Packaging re-use library 2.3. -

- The QGSP_BIC physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/QGSP_GN/include/QGSP_GN.icc b/physics_lists/hadronic/QGSP_GN/include/QGSP_GN.icc index fb375ca602..1f3d54357a 100644 --- a/physics_lists/hadronic/QGSP_GN/include/QGSP_GN.icc +++ b/physics_lists/hadronic/QGSP_GN/include/QGSP_GN.icc @@ -49,23 +49,23 @@ template TQGSP_GN::TQGSP_GN(): T() G4DataQuestionaire it(photon); G4cout << "You are using the simulation engine: QGSP_GN 2.6"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EM_GNPhysics("standard EM plus electron nuclear")); + this->RegisterPhysics( new EM_GNPhysics("standard EM plus electron nuclear")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsQGSP("hadron")); + this->RegisterPhysics( new HadronPhysicsQGSP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -76,13 +76,13 @@ template TQGSP_GN::~TQGSP_GN() template void TQGSP_GN::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "QGSP_GN::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/QGSP_GN/index.html b/physics_lists/hadronic/QGSP_GN/index.html deleted file mode 100644 index 194d360044..0000000000 --- a/physics_lists/hadronic/QGSP_GN/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The QGSP_GN physics list. -

-
-Click - here to down-load the source code of - QGSP_GN Version 2.5 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The QGSP_GN physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.icc b/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.icc index 3b90f39a22..2cdb20c13b 100644 --- a/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.icc +++ b/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.icc @@ -48,23 +48,23 @@ template TQGSP_HP::TQGSP_HP(): T() G4cout <defaultCutValue = 0.7*mm; + this->SetVerboseLevel(1); // General Physics - RegisterPhysics( new GeneralPhysics("general") ); + this->RegisterPhysics( new GeneralPhysics("general") ); // EM Physics - RegisterPhysics( new EM_GNPhysics("standard EM plus electro nuclear")); + this->RegisterPhysics( new EM_GNPhysics("standard EM plus electro nuclear")); // Muon Physics - RegisterPhysics( new MuonPhysics("muon")); + this->RegisterPhysics( new MuonPhysics("muon")); // Hadron Physics - RegisterPhysics( new HadronPhysicsQGSP_HP("hadron")); + this->RegisterPhysics( new HadronPhysicsQGSP_HP("hadron")); // Ion Physics - RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new IonPhysics("ion")); } @@ -75,13 +75,13 @@ template TQGSP_HP::~TQGSP_HP() template void TQGSP_HP::SetCuts() { - if (verboseLevel >1){ + if (this->verboseLevel >1){ G4cout << "QGSP_HP::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - SetCutsWithDefault(); + this->SetCutsWithDefault(); G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/physics_lists/hadronic/QGSP_HP/index.html b/physics_lists/hadronic/QGSP_HP/index.html deleted file mode 100644 index 0b8c69d2eb..0000000000 --- a/physics_lists/hadronic/QGSP_HP/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The QGSP_HP physics list. -

-
-Click - here to down-load the source code - of QGSP_HP Version 2.2 -
-Click - here to down-load the Packaging re-use library 2.3 -

- The QGSP_HP physics list's models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/source/GNUmakefile b/source/GNUmakefile index ba5f287700..5c571b7352 100644 --- a/source/GNUmakefile +++ b/source/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.65 2004/12/13 16:27:48 gcosmo Exp $ +# $Id: GNUmakefile,v 1.74 2005/06/20 10:16:54 gcosmo Exp $ # ----------------------------------------------------------------- # "gmake" makes default libraries for each subdomain. # "gmake global" makes global libraries for each subdomain. @@ -32,13 +32,13 @@ unique := $(shell echo $$$$) .PHONY: all glob global kernel_global kernel libmap dll win32def includes clean_libs clean clean_lists clean_all all: kernel -ifdef G4USE_G3TOG4 +ifdef G4LIB_USE_G3TOG4 @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE)); done;: endif - $(MAKE) libmap + @$(MAKE) libmap glob global: kernel_global -ifdef G4USE_G3TOG4 +ifdef G4LIB_USE_G3TOG4 @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE)); done;: endif @@ -48,28 +48,26 @@ kernel_global: @for dir in $(SUBDIR3); do (cd $$dir && $(MAKE) global); done;: kernel: + @echo "*************************************************************" + @echo " Installation Geant4 version $$Name: geant4-07-01 $ " + @echo " Copyright : Geant4 Collaboration " + @echo "*************************************************************" @for dir in $(SUBDIR1); do (cd $$dir && $(MAKE)); done;: @for dir in $(SUBDIR2); do (cd $$dir && $(MAKE)); done;: @for dir in $(SUBDIR3); do (cd $$dir && $(MAKE)); done;: libmap: $(G4LIBDIR)/liblist - @echo "WARNING: Making a library map of granular libraries." - @echo " This is a list of libraries in order of use, and for" - @echo " each library a list of other libraries used." - @echo " To do this it needs a complete set of dependency" - @echo " files, e.g., after gmake in the source/ directory." - @echo "Searching $(G4INSTALL)/source" - @echo ' for GNUmakefiles containing "name" and sorting ...' + @echo "libmap stage:" + @echo "Searching for GNUmakefiles and sorting ..." @find . \ -name GNUmakefile -exec $(GREP) -l '^ *name *:=' {} \; \ | sort \ > /tmp/G4_all_lib_makefiles.$(unique); - @echo "Weeding out /test[s]/, global level GNUmakefiles, etc ..." + @echo "Weeding out paths and files ..." @for i in `cat /tmp/G4_all_lib_makefiles.$(unique)`; \ do \ - echo $$i | $(GREP) -q '/tests\?/' || \ - $(GREP) -q SUBDIR $$i || \ - $(GREP) -q G4hepgeometry $$i || \ + echo $$i | $(GREP) -q -e '/tests\?/' -e 'models/verification' || \ + $(GREP) -q -e SUBDIR -e G4hepgeometry $$i || \ echo $$i >> /tmp/G4_granlib_makefiles.$(unique); \ done @echo "Making libname.map starter file ..." @@ -105,7 +103,7 @@ ifneq (,$(findstring WIN32-VC,$(G4SYSTEM))) @echo "Clearing temporary DLL objects and temporaries ..." @rm -rf $(G4LIBDIR)/*.def $(G4LIBDIR)/*.exp @rm -rf $(G4TMPDIR)/* -ifdef G4USE_G3TOG4 +ifdef G4LIB_USE_G3TOG4 @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE)); done;: @mv $(G4LIBDIR)/libG3toG4.a $(G4LIBDIR)/libG3toG4.lib endif @@ -125,25 +123,25 @@ else endif includes: - @echo Installing includes files in $(G4INCLUDE) ... + @echo Installing header files in $(G4INCLUDE) ... @for dir in $(SUBDIR1); do (cd $$dir && $(MAKE) $@); done @for dir in $(SUBDIR2); do (cd $$dir && $(MAKE) $@); done @for dir in $(SUBDIR3); do (cd $$dir && $(MAKE) $@); done -ifdef G4USE_G3TOG4 +ifdef G4LIB_USE_G3TOG4 @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE) $@); done endif -clean_libs: +clean_libs:: @echo Removing all libraries ... @for dir in $(SUBDIR1); do (cd $$dir && $(MAKE) clean_libs); done @for dir in $(SUBDIR2); do (cd $$dir && $(MAKE) clean_libs); done @for dir in $(SUBDIR3); do (cd $$dir && $(MAKE) clean_libs); done -ifdef G4USE_G3TOG4 +ifdef G4LIB_USE_G3TOG4 @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE) clean_libs); done endif @rm -rf $(G4LIBDIR)/libname.map -clean: +clean:: @echo Removing current $(G4SYSTEM) installation ... @rm -rf $(G4TMPDIR) @rm -rf $(G4LIBDIR) @@ -161,7 +159,7 @@ ifdef CFRONT @rm -rf $(G4TREP) endif -clean_lists: +clean_lists:: @echo Removing physics-lists installation ... ifndef G4LISTS_BASE @rm -rf $(G4LIB)/plists/$(G4SYSTEM) @@ -173,7 +171,7 @@ endif # Pay _extremely_ attention before executing the following target !! # -clean_all: +clean_all:: @echo Removing all installations ... @echo Removing $(G4TMP) ... @rm -rf $(G4TMP) diff --git a/source/digits_hits/History b/source/digits_hits/History index 3263ded5c9..9dabe569d9 100644 --- a/source/digits_hits/History +++ b/source/digits_hits/History @@ -1,4 +1,4 @@ -$Id: History,v 1.10 2004/11/18 23:54:22 perl Exp $ +$Id: History,v 1.11 2005/06/01 17:15:35 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,11 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +June 1, 2005, J.Allison (digits_hits-V07-00-00) +- G4VHit: Fixed interface to CreateAttValues (removed const). Improved + description. +- G4VDigi: Improved description. + Nov 18, 2004, J.Perl (digits_hits-V06-02-01) - G4VDigi.hh: add methods to store and retrieve HepRep attributes in same manner that we currently have for trajectories and hits. diff --git a/source/digits_hits/detector/include/G4CellScoreComposer.hh b/source/digits_hits/detector/include/G4CellScoreComposer.hh index 0c4d70b9a4..49a20b3799 100644 --- a/source/digits_hits/detector/include/G4CellScoreComposer.hh +++ b/source/digits_hits/detector/include/G4CellScoreComposer.hh @@ -22,7 +22,7 @@ // // // $Id: G4CellScoreComposer.hh,v 1.1 2003/10/03 10:06:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CellScoreComposer diff --git a/source/digits_hits/detector/include/G4CellScoreValues.hh b/source/digits_hits/detector/include/G4CellScoreValues.hh index 4207b543a7..60e1137d87 100644 --- a/source/digits_hits/detector/include/G4CellScoreValues.hh +++ b/source/digits_hits/detector/include/G4CellScoreValues.hh @@ -22,7 +22,7 @@ // // // $Id: G4CellScoreValues.hh,v 1.1 2003/10/03 10:07:07 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CellScoreValues diff --git a/source/digits_hits/detector/include/G4CellStoreScorer.hh b/source/digits_hits/detector/include/G4CellStoreScorer.hh index c488bf8701..1892e6c2b7 100644 --- a/source/digits_hits/detector/include/G4CellStoreScorer.hh +++ b/source/digits_hits/detector/include/G4CellStoreScorer.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4CellStoreScorer.hh,v 1.1 2003/10/03 10:07:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CellStoreScorer diff --git a/source/digits_hits/detector/include/G4CollectionNameVector.hh b/source/digits_hits/detector/include/G4CollectionNameVector.hh index 62ed0e6c82..920f9be107 100644 --- a/source/digits_hits/detector/include/G4CollectionNameVector.hh +++ b/source/digits_hits/detector/include/G4CollectionNameVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4CollectionNameVector.hh,v 1.1 2003/10/03 10:07:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4CollectionNameVector_H diff --git a/source/digits_hits/detector/include/G4HCtable.hh b/source/digits_hits/detector/include/G4HCtable.hh index 72a9a63833..03e91c7007 100644 --- a/source/digits_hits/detector/include/G4HCtable.hh +++ b/source/digits_hits/detector/include/G4HCtable.hh @@ -22,7 +22,7 @@ // // // $Id: G4HCtable.hh,v 1.2 2004/03/09 19:33:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4HCtable_H diff --git a/source/digits_hits/detector/include/G4SDManager.hh b/source/digits_hits/detector/include/G4SDManager.hh index 20fbefd6f6..631ed547ca 100644 --- a/source/digits_hits/detector/include/G4SDManager.hh +++ b/source/digits_hits/detector/include/G4SDManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4SDManager.hh,v 1.2 2004/05/03 08:14:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4SDManager_h diff --git a/source/digits_hits/detector/include/G4SDStructure.hh b/source/digits_hits/detector/include/G4SDStructure.hh index 51d2a61c19..275ad2cc07 100644 --- a/source/digits_hits/detector/include/G4SDStructure.hh +++ b/source/digits_hits/detector/include/G4SDStructure.hh @@ -22,7 +22,7 @@ // // // $Id: G4SDStructure.hh,v 1.2 2004/05/03 08:14:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4SDStructure_h diff --git a/source/digits_hits/detector/include/G4SDmessenger.hh b/source/digits_hits/detector/include/G4SDmessenger.hh index f37610e570..4e26671acd 100644 --- a/source/digits_hits/detector/include/G4SDmessenger.hh +++ b/source/digits_hits/detector/include/G4SDmessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4SDmessenger.hh,v 1.1 2003/10/03 10:09:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4SDmessenger_h diff --git a/source/digits_hits/detector/include/G4SensitiveVolumeList.hh b/source/digits_hits/detector/include/G4SensitiveVolumeList.hh index 8f4cf97f01..8b3da1163b 100644 --- a/source/digits_hits/detector/include/G4SensitiveVolumeList.hh +++ b/source/digits_hits/detector/include/G4SensitiveVolumeList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SensitiveVolumeList.hh,v 1.1 2003/10/03 10:09:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1996 diff --git a/source/digits_hits/detector/include/G4SensitiveVolumeList.icc b/source/digits_hits/detector/include/G4SensitiveVolumeList.icc index da6e07f2dc..8fe35ab70d 100644 --- a/source/digits_hits/detector/include/G4SensitiveVolumeList.icc +++ b/source/digits_hits/detector/include/G4SensitiveVolumeList.icc @@ -22,7 +22,7 @@ // // // $Id: G4SensitiveVolumeList.icc,v 1.1 2003/10/03 10:09:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ----------------------------------------------------------- // Inline functions of GEANT 4 class header file. diff --git a/source/digits_hits/detector/include/G4TrackLogger.hh b/source/digits_hits/detector/include/G4TrackLogger.hh index 12f1fbecc8..30e87f0220 100644 --- a/source/digits_hits/detector/include/G4TrackLogger.hh +++ b/source/digits_hits/detector/include/G4TrackLogger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4TrackLogger.hh,v 1.1 2003/10/03 10:09:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4TrackLogger diff --git a/source/digits_hits/detector/include/G4VReadOutGeometry.hh b/source/digits_hits/detector/include/G4VReadOutGeometry.hh index 657600e853..d1aa9ca8e4 100644 --- a/source/digits_hits/detector/include/G4VReadOutGeometry.hh +++ b/source/digits_hits/detector/include/G4VReadOutGeometry.hh @@ -22,7 +22,7 @@ // // // $Id: G4VReadOutGeometry.hh,v 1.1 2003/10/03 10:10:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------ diff --git a/source/digits_hits/detector/include/G4VSensitiveDetector.hh b/source/digits_hits/detector/include/G4VSensitiveDetector.hh index 8c38e9ffd0..071d8b90b1 100644 --- a/source/digits_hits/detector/include/G4VSensitiveDetector.hh +++ b/source/digits_hits/detector/include/G4VSensitiveDetector.hh @@ -22,7 +22,7 @@ // // // $Id: G4VSensitiveDetector.hh,v 1.1 2003/10/03 10:10:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4VSensitiveDetector_h diff --git a/source/digits_hits/detector/src/G4CellScoreComposer.cc b/source/digits_hits/detector/src/G4CellScoreComposer.cc index 4504b059c2..a7342a01bf 100644 --- a/source/digits_hits/detector/src/G4CellScoreComposer.cc +++ b/source/digits_hits/detector/src/G4CellScoreComposer.cc @@ -22,7 +22,7 @@ // // // $Id: G4CellScoreComposer.cc,v 1.2 2004/07/01 09:19:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/digits_hits/detector/src/G4CellStoreScorer.cc b/source/digits_hits/detector/src/G4CellStoreScorer.cc index ad0afa7e56..aaaa4022cf 100644 --- a/source/digits_hits/detector/src/G4CellStoreScorer.cc +++ b/source/digits_hits/detector/src/G4CellStoreScorer.cc @@ -22,7 +22,7 @@ // // // $Id: G4CellStoreScorer.cc,v 1.1 2003/10/03 10:10:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/digits_hits/detector/src/G4HCtable.cc b/source/digits_hits/detector/src/G4HCtable.cc index e0dbb36f3f..33c6a221fc 100644 --- a/source/digits_hits/detector/src/G4HCtable.cc +++ b/source/digits_hits/detector/src/G4HCtable.cc @@ -22,7 +22,7 @@ // // // $Id: G4HCtable.cc,v 1.3 2004/03/15 19:16:07 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4HCtable.hh" diff --git a/source/digits_hits/detector/src/G4SDManager.cc b/source/digits_hits/detector/src/G4SDManager.cc index 6d6daf2fab..04c6264e70 100644 --- a/source/digits_hits/detector/src/G4SDManager.cc +++ b/source/digits_hits/detector/src/G4SDManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4SDManager.cc,v 1.2 2004/05/03 08:14:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4SDManager.hh" diff --git a/source/digits_hits/detector/src/G4SDStructure.cc b/source/digits_hits/detector/src/G4SDStructure.cc index 313cfb3e47..c8d9b6fd30 100644 --- a/source/digits_hits/detector/src/G4SDStructure.cc +++ b/source/digits_hits/detector/src/G4SDStructure.cc @@ -22,7 +22,7 @@ // // // $Id: G4SDStructure.cc,v 1.2 2004/05/03 08:14:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4SDStructure diff --git a/source/digits_hits/detector/src/G4SDmessenger.cc b/source/digits_hits/detector/src/G4SDmessenger.cc index 336b9ac533..a3547d5a56 100644 --- a/source/digits_hits/detector/src/G4SDmessenger.cc +++ b/source/digits_hits/detector/src/G4SDmessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4SDmessenger.cc,v 1.1 2003/10/03 10:11:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // --------------------------------------------------------------------- diff --git a/source/digits_hits/detector/src/G4SensitiveVolumeList.cc b/source/digits_hits/detector/src/G4SensitiveVolumeList.cc index 6dca8e3fbd..578be060c8 100644 --- a/source/digits_hits/detector/src/G4SensitiveVolumeList.cc +++ b/source/digits_hits/detector/src/G4SensitiveVolumeList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SensitiveVolumeList.cc,v 1.1 2003/10/03 10:12:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/digits_hits/detector/src/G4TrackLogger.cc b/source/digits_hits/detector/src/G4TrackLogger.cc index 38258dd5ed..7e2bb55660 100644 --- a/source/digits_hits/detector/src/G4TrackLogger.cc +++ b/source/digits_hits/detector/src/G4TrackLogger.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrackLogger.cc,v 1.2 2004/07/01 09:19:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/digits_hits/detector/src/G4VReadOutGeometry.cc b/source/digits_hits/detector/src/G4VReadOutGeometry.cc index 1118867425..a8269b7896 100644 --- a/source/digits_hits/detector/src/G4VReadOutGeometry.cc +++ b/source/digits_hits/detector/src/G4VReadOutGeometry.cc @@ -22,7 +22,7 @@ // // // $Id: G4VReadOutGeometry.cc,v 1.1 2003/10/03 10:12:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4VReadOutGeometry.hh" diff --git a/source/digits_hits/detector/src/G4VSensitiveDetector.cc b/source/digits_hits/detector/src/G4VSensitiveDetector.cc index 0fcf73be10..f79e88061a 100644 --- a/source/digits_hits/detector/src/G4VSensitiveDetector.cc +++ b/source/digits_hits/detector/src/G4VSensitiveDetector.cc @@ -22,7 +22,7 @@ // // // $Id: G4VSensitiveDetector.cc,v 1.1 2003/10/03 10:12:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VSensitiveDetector #include "G4VSensitiveDetector.hh" diff --git a/source/digits_hits/digits/include/G4DCofThisEvent.hh b/source/digits_hits/digits/include/G4DCofThisEvent.hh index 4a13f665ea..0ff3152c74 100644 --- a/source/digits_hits/digits/include/G4DCofThisEvent.hh +++ b/source/digits_hits/digits/include/G4DCofThisEvent.hh @@ -22,7 +22,7 @@ // // // $Id: G4DCofThisEvent.hh,v 1.4 2004/06/11 14:10:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4DCofThisEvent_h diff --git a/source/digits_hits/digits/include/G4TDigiCollection.hh b/source/digits_hits/digits/include/G4TDigiCollection.hh index fe4bca89f8..dcc718bea2 100644 --- a/source/digits_hits/digits/include/G4TDigiCollection.hh +++ b/source/digits_hits/digits/include/G4TDigiCollection.hh @@ -22,7 +22,7 @@ // // // $Id: G4TDigiCollection.hh,v 1.4 2004/06/11 14:10:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4TDigiCollection_h diff --git a/source/digits_hits/digits/include/G4VDigi.hh b/source/digits_hits/digits/include/G4VDigi.hh index 313836f2d1..30f034083c 100644 --- a/source/digits_hits/digits/include/G4VDigi.hh +++ b/source/digits_hits/digits/include/G4VDigi.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VDigi.hh,v 1.2 2004/11/18 23:54:22 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VDigi.hh,v 1.3 2005/06/01 17:15:35 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4VDigi_h @@ -57,16 +57,22 @@ class G4VDigi virtual const std::map* GetAttDefs() const { return 0; } - // If implemented by a derived class, returns a pointer to a map of - // attribute definitions for the attribute values below. The user - // must test the validity of this pointer. + // If implemented by a derived class, returns a pointer to a map + // of attribute definitions for the attribute values below. The + // user must test the validity of this pointer. See + // G4Trajectory for an example of a concrete implementation of + // this method. virtual std::vector* CreateAttValues() const { return 0; } - // If implemented by a derived class, returns a pointer to a list - // of attribute values suitable, e.g., for picking. Each must - // refer to an attribute definition in the above map; its name is - // the key. The user must test the validity of this pointer and - // delete the list after use. + // If implemented by a derived class, returns a pointer to a + // list of attribute values suitable, e.g., for picking. Each + // must refer to an attribute definition in the above map; its + // name is the key. The user must test the validity of this + // pointer (it must be non-zero and conform to the G4AttDefs, + // which may be checked with G4AttCheck) and delete the list + // after use. See G4Trajectory for an example of a concrete + // implementation of this method and + // G4VTrajectory::ShowTrajectory for an example of its use. }; diff --git a/source/digits_hits/digits/include/G4VDigiCollection.hh b/source/digits_hits/digits/include/G4VDigiCollection.hh index 22012c45c1..6a1a6dcda3 100644 --- a/source/digits_hits/digits/include/G4VDigiCollection.hh +++ b/source/digits_hits/digits/include/G4VDigiCollection.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDigiCollection.hh,v 1.1 2003/10/03 10:14:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4VDigiCollection_h diff --git a/source/digits_hits/digits/src/G4DCofThisEvent.cc b/source/digits_hits/digits/src/G4DCofThisEvent.cc index 4a568438a2..864491ec69 100644 --- a/source/digits_hits/digits/src/G4DCofThisEvent.cc +++ b/source/digits_hits/digits/src/G4DCofThisEvent.cc @@ -22,7 +22,7 @@ // // // $Id: G4DCofThisEvent.cc,v 1.3 2004/06/11 14:10:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4DCofThisEvent.hh" diff --git a/source/digits_hits/digits/src/G4TDigiCollection.cc b/source/digits_hits/digits/src/G4TDigiCollection.cc index ae1acbab51..760a979fe0 100644 --- a/source/digits_hits/digits/src/G4TDigiCollection.cc +++ b/source/digits_hits/digits/src/G4TDigiCollection.cc @@ -22,7 +22,7 @@ // // // $Id: G4TDigiCollection.cc,v 1.3 2004/06/11 14:10:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4TDigiCollection.hh" diff --git a/source/digits_hits/digits/src/G4VDigi.cc b/source/digits_hits/digits/src/G4VDigi.cc index 42dba9767e..a467826d55 100644 --- a/source/digits_hits/digits/src/G4VDigi.cc +++ b/source/digits_hits/digits/src/G4VDigi.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDigi.cc,v 1.1 2003/10/03 10:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VDigi diff --git a/source/digits_hits/digits/src/G4VDigiCollection.cc b/source/digits_hits/digits/src/G4VDigiCollection.cc index 839d119841..2f5aef8ef7 100644 --- a/source/digits_hits/digits/src/G4VDigiCollection.cc +++ b/source/digits_hits/digits/src/G4VDigiCollection.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDigiCollection.cc,v 1.1 2003/10/03 10:15:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VDigiCollection diff --git a/source/digits_hits/hits/include/G4HCofThisEvent.hh b/source/digits_hits/hits/include/G4HCofThisEvent.hh index b9c862a2c3..21916cb486 100644 --- a/source/digits_hits/hits/include/G4HCofThisEvent.hh +++ b/source/digits_hits/hits/include/G4HCofThisEvent.hh @@ -22,7 +22,7 @@ // // // $Id: G4HCofThisEvent.hh,v 1.4 2004/06/11 14:10:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4HCofThisEvent_h diff --git a/source/digits_hits/hits/include/G4THitsCollection.hh b/source/digits_hits/hits/include/G4THitsCollection.hh index 42d99d0e4e..882d460143 100644 --- a/source/digits_hits/hits/include/G4THitsCollection.hh +++ b/source/digits_hits/hits/include/G4THitsCollection.hh @@ -22,7 +22,7 @@ // // // $Id: G4THitsCollection.hh,v 1.4 2004/06/11 14:10:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4THitsCollection_h diff --git a/source/digits_hits/hits/include/G4VHit.hh b/source/digits_hits/hits/include/G4VHit.hh index 75ccf5fde6..e5360cc6b1 100644 --- a/source/digits_hits/hits/include/G4VHit.hh +++ b/source/digits_hits/hits/include/G4VHit.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VHit.hh,v 1.1 2003/10/03 10:17:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VHit.hh,v 1.2 2005/06/01 17:15:35 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4VHit_h @@ -62,14 +62,17 @@ class G4VHit // user must test the validity of this pointer. See // G4Trajectory for an example of a concrete implementation of // this method. - virtual const std::vector* CreateAttValues() const + virtual std::vector* CreateAttValues() const { return 0; } // If implemented by a derived class, returns a pointer to a // list of attribute values suitable, e.g., for picking. Each // must refer to an attribute definition in the above map; its // name is the key. The user must test the validity of this - // pointer and delete the list after use. See G4Trajectory for - // an example of a concrete implementation of this method. + // pointer (it must be non-zero and conform to the G4AttDefs, + // which may be checked with G4AttCheck) and delete the list + // after use. See G4Trajectory for an example of a concrete + // implementation of this method and + // G4VTrajectory::ShowTrajectory for an example of its use. }; diff --git a/source/digits_hits/hits/include/G4VHitsCollection.hh b/source/digits_hits/hits/include/G4VHitsCollection.hh index 88f1c3f655..9882dc1107 100644 --- a/source/digits_hits/hits/include/G4VHitsCollection.hh +++ b/source/digits_hits/hits/include/G4VHitsCollection.hh @@ -22,7 +22,7 @@ // // // $Id: G4VHitsCollection.hh,v 1.1 2003/10/03 10:17:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4VHitsCollection_h diff --git a/source/digits_hits/hits/src/G4HCofThisEvent.cc b/source/digits_hits/hits/src/G4HCofThisEvent.cc index ed3b165361..a9eb3b9624 100644 --- a/source/digits_hits/hits/src/G4HCofThisEvent.cc +++ b/source/digits_hits/hits/src/G4HCofThisEvent.cc @@ -22,7 +22,7 @@ // // // $Id: G4HCofThisEvent.cc,v 1.3 2004/06/11 14:10:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4HCofThisEvent.hh" diff --git a/source/digits_hits/hits/src/G4THitsCollection.cc b/source/digits_hits/hits/src/G4THitsCollection.cc index 26aba3faf1..9a96bda33a 100644 --- a/source/digits_hits/hits/src/G4THitsCollection.cc +++ b/source/digits_hits/hits/src/G4THitsCollection.cc @@ -22,7 +22,7 @@ // // // $Id: G4THitsCollection.cc,v 1.3 2004/06/11 14:10:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4THitsCollection.hh" diff --git a/source/digits_hits/hits/src/G4VHit.cc b/source/digits_hits/hits/src/G4VHit.cc index 3bf3d4dd92..46f9acb80c 100644 --- a/source/digits_hits/hits/src/G4VHit.cc +++ b/source/digits_hits/hits/src/G4VHit.cc @@ -22,7 +22,7 @@ // // // $Id: G4VHit.cc,v 1.1 2003/10/03 10:18:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VHit diff --git a/source/digits_hits/hits/src/G4VHitsCollection.cc b/source/digits_hits/hits/src/G4VHitsCollection.cc index f333d650ab..c8559ad40f 100644 --- a/source/digits_hits/hits/src/G4VHitsCollection.cc +++ b/source/digits_hits/hits/src/G4VHitsCollection.cc @@ -22,7 +22,7 @@ // // // $Id: G4VHitsCollection.cc,v 1.1 2003/10/03 10:20:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VHitsCollection diff --git a/source/event/History b/source/event/History index dca28b98d1..e7e4dc28b7 100644 --- a/source/event/History +++ b/source/event/History @@ -1,4 +1,4 @@ -$Id: History,v 1.84 2004/12/02 06:40:37 asaim Exp $ +$Id: History,v 1.90 2005/06/13 14:05:05 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,37 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jun 13, 2005, G.Cosmo (event-V07-00-05) +- Corrected typo in printout in G4GeneralParticleMessenger.cc. + +May 30, 2005, M.Asai (event-V07-00-04) +- Modify G4PrimaryTransformer to accept exotic particles. + +May 10, 2005, F.Lei (event-V07-00-03) +- commentingt out line 157 in G4SinglePariclesource.cc. Fixing a bug in + particle weight + +Apr 26, 2005, M.Asai (event-V07-00-02) +- Modify G4PrimaryTransformer + - to accept shortlived primary particle with proper decay table, + - to issue a warning message if a shortlived primary does not have decay table nor + pre-assigned decay mode, + - and to add a new virtual method to alter the conversion of such shortlived into + a track (default implementation converts it). +- Modify G4ParticleGun and G4ParticleGunMessenger to accept shortlived primary particle + with proper decay table. + +Mar 24, 2005, M.Asai (event-V07-00-01) +- Move G4PrimaryParticle, G4PrimaryVertex, G4VUserPrimaryParticleInformation and + G4VUserPrimaryVertexInformation to particles/management. +- Modify G4PrimaryTransformer to take care of a mass defined in G4PrimaryParticle + if it is defined. + +Jan 26, 2005, F.Lei (event-V07-00-00) +- bug (typo) fix in G4SPSRandomGenerator.cc (lines 608,709) +- restored the inheritance to G4VPrimaryGenerator for G4GeneralParticleSource +- bug fix in G4SPSEneDistribution.cc (lines 1168,1169) + Dec 02, 2004, M.Asai (event-V06-02-04) - Migration to . diff --git a/source/event/include/G4CellScorer.hh b/source/event/include/G4CellScorer.hh index 269baeceaf..ccf3ce84e3 100644 --- a/source/event/include/G4CellScorer.hh +++ b/source/event/include/G4CellScorer.hh @@ -22,7 +22,7 @@ // // // $Id: G4CellScorer.hh,v 1.1 2002/10/28 10:06:00 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CellScorer diff --git a/source/event/include/G4CellScorerStore.hh b/source/event/include/G4CellScorerStore.hh index e607b81b1b..b794987375 100644 --- a/source/event/include/G4CellScorerStore.hh +++ b/source/event/include/G4CellScorerStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4CellScorerStore.hh,v 1.2 2003/06/16 16:50:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CellScorerStore diff --git a/source/event/include/G4ClassificationOfNewTrack.hh b/source/event/include/G4ClassificationOfNewTrack.hh index e077c6d509..0f4f4c0451 100644 --- a/source/event/include/G4ClassificationOfNewTrack.hh +++ b/source/event/include/G4ClassificationOfNewTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4ClassificationOfNewTrack.hh,v 1.5 2001/07/19 00:14:15 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/event/include/G4EvManMessenger.hh b/source/event/include/G4EvManMessenger.hh index 3f3a806d71..1680e74022 100644 --- a/source/event/include/G4EvManMessenger.hh +++ b/source/event/include/G4EvManMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4EvManMessenger.hh,v 1.4 2001/07/11 09:58:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4EvManMessenger_h diff --git a/source/event/include/G4Event.hh b/source/event/include/G4Event.hh index 5b10297cf0..6fb2cacdba 100644 --- a/source/event/include/G4Event.hh +++ b/source/event/include/G4Event.hh @@ -22,7 +22,7 @@ // // // $Id: G4Event.hh,v 1.10 2004/06/11 14:11:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4Event_h diff --git a/source/event/include/G4EventManager.hh b/source/event/include/G4EventManager.hh index 1d911ab65c..d18074762b 100644 --- a/source/event/include/G4EventManager.hh +++ b/source/event/include/G4EventManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4EventManager.hh,v 1.15 2004/08/10 23:59:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/event/include/G4GeneralParticleSource.hh b/source/event/include/G4GeneralParticleSource.hh index 03ec8ac8ec..9a4e00930c 100644 --- a/source/event/include/G4GeneralParticleSource.hh +++ b/source/event/include/G4GeneralParticleSource.hh @@ -145,7 +145,7 @@ // #include "G4GeneralParticleSourceMessenger.hh" -class G4GeneralParticleSource +class G4GeneralParticleSource : public G4VPrimaryGenerator { // public: diff --git a/source/event/include/G4HEPEvtInterface.hh b/source/event/include/G4HEPEvtInterface.hh index 51f534863d..02cd04a954 100644 --- a/source/event/include/G4HEPEvtInterface.hh +++ b/source/event/include/G4HEPEvtInterface.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtInterface.hh,v 1.7 2003/06/16 16:50:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4HEPEvtInterface_h diff --git a/source/event/include/G4HEPEvtParticle.hh b/source/event/include/G4HEPEvtParticle.hh index 650eb19242..2d319bfd79 100644 --- a/source/event/include/G4HEPEvtParticle.hh +++ b/source/event/include/G4HEPEvtParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtParticle.hh,v 1.8 2004/06/11 14:11:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/event/include/G4ParticleGun.hh b/source/event/include/G4ParticleGun.hh index 7066aee9fa..2341f9c81e 100644 --- a/source/event/include/G4ParticleGun.hh +++ b/source/event/include/G4ParticleGun.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleGun.hh,v 1.7 2001/11/20 23:21:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4ParticleGun_h diff --git a/source/event/include/G4ParticleGunMessenger.hh b/source/event/include/G4ParticleGunMessenger.hh index 80dc710d46..9a3626e9ba 100644 --- a/source/event/include/G4ParticleGunMessenger.hh +++ b/source/event/include/G4ParticleGunMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleGunMessenger.hh,v 1.7 2002/02/26 16:34:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/event/include/G4PrimaryTransformer.hh b/source/event/include/G4PrimaryTransformer.hh index f964ac77f4..d6525f5aff 100644 --- a/source/event/include/G4PrimaryTransformer.hh +++ b/source/event/include/G4PrimaryTransformer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PrimaryTransformer.hh,v 1.8 2004/08/10 23:59:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PrimaryTransformer.hh,v 1.10 2005/04/27 01:32:46 asaim Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4PromaryTransformer_h @@ -63,17 +63,35 @@ class G4PrimaryTransformer inline void SetVerboseLevel(G4int vl) { verboseLevel = vl; }; + public: //with description + void SetUnknnownParticleDefined(G4bool vl); + // By invoking this Set method, the user can alter the treatment of unknown + // particle. The ideal place to invoke this method is in the BeginOfRunAction. + + inline G4bool GetUnknownParticleDefined() const + { return unknownParticleDefined; } + protected: void GenerateTracks(G4PrimaryVertex* primaryVertex); void GenerateSingleTrack(G4PrimaryParticle* primaryParticle, G4double x0,G4double y0,G4double z0,G4double t0,G4double wv); void SetDecayProducts(G4PrimaryParticle* mother, G4DynamicParticle* motherDP); + G4bool CheckDynamicParticle(G4DynamicParticle*DP); + protected: //with description + // Following two virtual methods are provided to customize the use of PrimaryTransformer + // for particle types exotic to Geant4. + virtual G4ParticleDefinition* GetDefinition(G4PrimaryParticle*pp); - // virtual method to be overwritten. Return appropriate G4ParticleDefinition - // w.r.t. the primary particle. If NULL is return, the particle will not be - // treated as a track, but its daughters will be examined. + // Return appropriate G4ParticleDefinition w.r.t. the primary particle. + // If NULL is returned, the particle will not be treated as a track, but its daughters + // will be examined in case it has "pre-assigned decay products". + + virtual G4bool IsGoodForTrack(G4ParticleDefinition*pd); + // Return true if a primary particle should be converted into a track. + // By default, all particles of non-shortlived and shortlived with valid decay + // tables are converted. }; #endif diff --git a/source/event/include/G4ScoreTable.hh b/source/event/include/G4ScoreTable.hh index 967145a802..0d848b6bf4 100644 --- a/source/event/include/G4ScoreTable.hh +++ b/source/event/include/G4ScoreTable.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ScoreTable.hh,v 1.2 2003/06/16 16:50:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ScoreTable diff --git a/source/event/include/G4Scorer.hh b/source/event/include/G4Scorer.hh index b06ab51286..d889424e59 100644 --- a/source/event/include/G4Scorer.hh +++ b/source/event/include/G4Scorer.hh @@ -22,7 +22,7 @@ // // // $Id: G4Scorer.hh,v 1.1 2002/10/28 10:06:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Scorer diff --git a/source/event/include/G4StackChecker.hh b/source/event/include/G4StackChecker.hh index a65d3519d0..616fbee65b 100644 --- a/source/event/include/G4StackChecker.hh +++ b/source/event/include/G4StackChecker.hh @@ -22,7 +22,7 @@ // // // $Id: G4StackChecker.hh,v 1.1 2003/06/12 15:14:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4StackChecker_h diff --git a/source/event/include/G4StackManager.hh b/source/event/include/G4StackManager.hh index 8ea4910a07..24b1681e66 100644 --- a/source/event/include/G4StackManager.hh +++ b/source/event/include/G4StackManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4StackManager.hh,v 1.11 2003/06/16 16:50:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/event/include/G4StackedTrack.hh b/source/event/include/G4StackedTrack.hh index f777ae11d6..9c94c6027c 100644 --- a/source/event/include/G4StackedTrack.hh +++ b/source/event/include/G4StackedTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4StackedTrack.hh,v 1.9 2004/06/11 14:11:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Last Modification : 02/Feb/96 M.Asai diff --git a/source/event/include/G4StackingMessenger.hh b/source/event/include/G4StackingMessenger.hh index 7a8b900b25..9afc5db016 100644 --- a/source/event/include/G4StackingMessenger.hh +++ b/source/event/include/G4StackingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4StackingMessenger.hh,v 1.4 2001/07/11 09:58:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4StackingMessenger_h diff --git a/source/event/include/G4TrackStack.hh b/source/event/include/G4TrackStack.hh index d92c23a041..b56c85b94f 100644 --- a/source/event/include/G4TrackStack.hh +++ b/source/event/include/G4TrackStack.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackStack.hh,v 1.5 2001/07/13 15:01:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Last Modification : 09/Dec/96 M.Asai diff --git a/source/event/include/G4TrajectoryContainer.hh b/source/event/include/G4TrajectoryContainer.hh index a0f5fa7ef8..159d038c16 100644 --- a/source/event/include/G4TrajectoryContainer.hh +++ b/source/event/include/G4TrajectoryContainer.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryContainer.hh,v 1.14 2004/06/11 14:11:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4TrajectoryContainer diff --git a/source/event/include/G4UserEventAction.hh b/source/event/include/G4UserEventAction.hh index 58c1c245e3..d6eabc2b64 100644 --- a/source/event/include/G4UserEventAction.hh +++ b/source/event/include/G4UserEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserEventAction.hh,v 1.5 2001/07/11 09:58:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/event/include/G4UserStackingAction.hh b/source/event/include/G4UserStackingAction.hh index 6e13f85974..c3c20ad48b 100644 --- a/source/event/include/G4UserStackingAction.hh +++ b/source/event/include/G4UserStackingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserStackingAction.hh,v 1.5 2001/07/11 09:58:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4UserStackingAction_h diff --git a/source/event/include/G4VPrimaryGenerator.hh b/source/event/include/G4VPrimaryGenerator.hh index 40274c6d24..34738e8559 100644 --- a/source/event/include/G4VPrimaryGenerator.hh +++ b/source/event/include/G4VPrimaryGenerator.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPrimaryGenerator.hh,v 1.7 2003/08/02 00:18:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4VPrimaryGenerator_h diff --git a/source/event/include/G4VUserEventInformation.hh b/source/event/include/G4VUserEventInformation.hh index 5a78b2debf..c2dc156112 100644 --- a/source/event/include/G4VUserEventInformation.hh +++ b/source/event/include/G4VUserEventInformation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserEventInformation.hh,v 1.1 2003/09/09 20:09:17 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- diff --git a/source/event/include/eventgendefs.hh b/source/event/include/eventgendefs.hh index 76f88ec29a..b7b44fdd46 100644 --- a/source/event/include/eventgendefs.hh +++ b/source/event/include/eventgendefs.hh @@ -22,7 +22,7 @@ // // // $Id: eventgendefs.hh,v 1.3 2001/07/11 09:58:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef EventGenerator_DEBUG #define EventGenerator_DEBUG diff --git a/source/event/include/evmandefs.hh b/source/event/include/evmandefs.hh index 9646285256..8ec8a1bddb 100644 --- a/source/event/include/evmandefs.hh +++ b/source/event/include/evmandefs.hh @@ -22,7 +22,7 @@ // // // $Id: evmandefs.hh,v 1.3 2001/07/11 09:58:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ///#define G4EVENTMANAGER_DEBUG 1 diff --git a/source/event/include/trajectoryControl.hh b/source/event/include/trajectoryControl.hh index 47c1d48bca..210b131e06 100644 --- a/source/event/include/trajectoryControl.hh +++ b/source/event/include/trajectoryControl.hh @@ -22,7 +22,7 @@ // // // $Id: trajectoryControl.hh,v 1.3 2001/07/11 09:58:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ////#define G4_STORE_TRAJECTORY 1 diff --git a/source/event/src/G4CellScorer.cc b/source/event/src/G4CellScorer.cc index e78746cdf9..37199e38ca 100644 --- a/source/event/src/G4CellScorer.cc +++ b/source/event/src/G4CellScorer.cc @@ -22,7 +22,7 @@ // // // $Id: G4CellScorer.cc,v 1.3 2003/04/29 07:05:38 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/event/src/G4CellScorerStore.cc b/source/event/src/G4CellScorerStore.cc index d4f7d2b4eb..4b3f438bdb 100644 --- a/source/event/src/G4CellScorerStore.cc +++ b/source/event/src/G4CellScorerStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4CellScorerStore.cc,v 1.3 2004/07/01 10:05:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/event/src/G4EvManMessenger.cc b/source/event/src/G4EvManMessenger.cc index 692a829612..be038dc64d 100644 --- a/source/event/src/G4EvManMessenger.cc +++ b/source/event/src/G4EvManMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4EvManMessenger.cc,v 1.4 2002/12/04 18:43:15 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/event/src/G4Event.cc b/source/event/src/G4Event.cc index 13ffe76621..7b86cf56a0 100644 --- a/source/event/src/G4Event.cc +++ b/source/event/src/G4Event.cc @@ -22,7 +22,7 @@ // // // $Id: G4Event.cc,v 1.8 2004/06/11 14:11:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4Event diff --git a/source/event/src/G4EventManager.cc b/source/event/src/G4EventManager.cc index 798d645cd5..07167114c3 100644 --- a/source/event/src/G4EventManager.cc +++ b/source/event/src/G4EventManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4EventManager.cc,v 1.21 2004/08/10 23:59:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/event/src/G4GeneralParticleSourceMessenger.cc b/source/event/src/G4GeneralParticleSourceMessenger.cc index b2f9eb6778..913733f4e4 100644 --- a/source/event/src/G4GeneralParticleSourceMessenger.cc +++ b/source/event/src/G4GeneralParticleSourceMessenger.cc @@ -39,7 +39,7 @@ // After changes to version 1.1 as in Geant4 v6.0 // - Mutilple particle source definition // - Re-structured commands -// - old commonds have been retained for backward compatibility, will be +// - old commands have been retained for backward compatibility, will be // removed in the future. // /////////////////////////////////////////////////////////////////////////////// @@ -910,219 +910,305 @@ void G4GeneralParticleSourceMessenger::SetNewValue(G4UIcommand *command, G4Strin if(command == typeCmd) { fParticleGun->GetPosDist()->SetPosDisType(newValues); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == shapeCmd) { fParticleGun->GetPosDist()->SetPosDisShape(newValues); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == centreCmd) { fParticleGun->GetPosDist()->SetCentreCoords(centreCmd->GetNew3VectorValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == posrot1Cmd) { fParticleGun->GetPosDist()->SetPosRot1(posrot1Cmd->GetNew3VectorValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == posrot2Cmd) { fParticleGun->GetPosDist()->SetPosRot2(posrot2Cmd->GetNew3VectorValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == halfxCmd) { fParticleGun->GetPosDist()->SetHalfX(halfxCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == halfyCmd) { fParticleGun->GetPosDist()->SetHalfY(halfyCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == halfzCmd) { fParticleGun->GetPosDist()->SetHalfZ(halfzCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == radiusCmd) { fParticleGun->GetPosDist()->SetRadius(radiusCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == radius0Cmd) { fParticleGun->GetPosDist()->SetRadius0(radius0Cmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == possigmarCmd) { fParticleGun->GetPosDist()->SetBeamSigmaInR(possigmarCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == possigmaxCmd) { fParticleGun->GetPosDist()->SetBeamSigmaInX(possigmaxCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == possigmayCmd) { fParticleGun->GetPosDist()->SetBeamSigmaInY(possigmayCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == paralpCmd) { fParticleGun->GetPosDist()->SetParAlpha(paralpCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == partheCmd) { fParticleGun->GetPosDist()->SetParTheta(partheCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == parphiCmd) { fParticleGun->GetPosDist()->SetParPhi(parphiCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == confineCmd) { fParticleGun->GetPosDist()->ConfineSourceToVolume(newValues); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == angtypeCmd) { fParticleGun->GetAngDist()->SetAngDistType(newValues); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == angrot1Cmd) { G4String a = "angref1"; fParticleGun->GetAngDist()->DefineAngRefAxes(a,angrot1Cmd->GetNew3VectorValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == angrot2Cmd) { G4String a = "angref2"; fParticleGun->GetAngDist()->DefineAngRefAxes(a,angrot2Cmd->GetNew3VectorValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == minthetaCmd) { fParticleGun->GetAngDist()->SetMinTheta(minthetaCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == minphiCmd) { fParticleGun->GetAngDist()->SetMinPhi(minphiCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == maxthetaCmd) { fParticleGun->GetAngDist()->SetMaxTheta(maxthetaCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == maxphiCmd) { fParticleGun->GetAngDist()->SetMaxPhi(maxphiCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == angsigmarCmd) { fParticleGun->GetAngDist()->SetBeamSigmaInAngR(angsigmarCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == angsigmaxCmd) { fParticleGun->GetAngDist()->SetBeamSigmaInAngX(angsigmaxCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == angsigmayCmd) { fParticleGun->GetAngDist()->SetBeamSigmaInAngY(angsigmayCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == useuserangaxisCmd) { fParticleGun->GetAngDist()->SetUseUserAngAxis(useuserangaxisCmd->GetNewBoolValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == surfnormCmd) { fParticleGun->GetAngDist()->SetUserWRTSurface(surfnormCmd->GetNewBoolValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == energytypeCmd) { fParticleGun->GetEneDist()->SetEnergyDisType(newValues); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == eminCmd) { fParticleGun->GetEneDist()->SetEmin(eminCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == emaxCmd) { fParticleGun->GetEneDist()->SetEmax(emaxCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == monoenergyCmd) { fParticleGun->GetEneDist()->SetMonoEnergy(monoenergyCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == engsigmaCmd) { fParticleGun->GetEneDist()->SetBeamSigmaInE(engsigmaCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == alphaCmd) { fParticleGun->GetEneDist()->SetAlpha(alphaCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == tempCmd) { fParticleGun->GetEneDist()->SetTemp(tempCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == ezeroCmd) { fParticleGun->GetEneDist()->SetEzero(ezeroCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == gradientCmd) { fParticleGun->GetEneDist()->SetGradient(gradientCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == interceptCmd) { fParticleGun->GetEneDist()->SetInterCept(interceptCmd->GetNewDoubleValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == calculateCmd) { fParticleGun->GetEneDist()->Calculate(); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == energyspecCmd) { fParticleGun->GetEneDist()->InputEnergySpectra(energyspecCmd->GetNewBoolValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == diffspecCmd) { fParticleGun->GetEneDist()->InputDifferentialSpectra(diffspecCmd->GetNewBoolValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == histnameCmd) { histtype = newValues; - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == histpointCmd) { @@ -1148,7 +1234,7 @@ void G4GeneralParticleSourceMessenger::SetNewValue(G4UIcommand *command, G4Strin fParticleGun->GetEneDist()->ArbEnergyHisto(histpointCmd->GetNew3VectorValue(newValues)); if(histtype == "epn") fParticleGun->GetEneDist()->EpnEnergyHisto(histpointCmd->GetNew3VectorValue(newValues)); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning: The command is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; } else if(command == resethistCmd) { @@ -1159,12 +1245,16 @@ void G4GeneralParticleSourceMessenger::SetNewValue(G4UIcommand *command, G4Strin } else { fParticleGun->GetBiasRndm()->ReSetHist(newValues); } - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if(command == arbintCmd) { fParticleGun->GetEneDist()->ArbInterpolate(newValues); - G4cout << " Warning: The commond is obsolete and will be removed soon. Please try to use the new structured commands!" << G4endl; + G4cout << " G4GeneralParticleSourceMessenger - Warning:" << G4endl + << " The command is obsolete and will be removed soon." << G4endl + << " Please try to use the new structured commands!" << G4endl; } else if( command==directionCmd ) { diff --git a/source/event/src/G4HEPEvtInterface.cc b/source/event/src/G4HEPEvtInterface.cc index 4095933949..6cb1251053 100644 --- a/source/event/src/G4HEPEvtInterface.cc +++ b/source/event/src/G4HEPEvtInterface.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtInterface.cc,v 1.9 2003/06/16 16:50:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/event/src/G4HEPEvtParticle.cc b/source/event/src/G4HEPEvtParticle.cc index 05ecf0913d..06d220d52e 100644 --- a/source/event/src/G4HEPEvtParticle.cc +++ b/source/event/src/G4HEPEvtParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtParticle.cc,v 1.7 2004/06/11 14:11:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/event/src/G4ParticleGun.cc b/source/event/src/G4ParticleGun.cc index d8758db15f..d1b436efaa 100644 --- a/source/event/src/G4ParticleGun.cc +++ b/source/event/src/G4ParticleGun.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleGun.cc,v 1.8 2004/12/02 06:40:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4ParticleGun.cc,v 1.9 2005/04/27 01:32:46 asaim Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4ParticleGun @@ -75,10 +75,13 @@ void G4ParticleGun::SetParticleDefinition { if(aParticleDefinition->IsShortLived()) { - G4cerr << "G4ParticleGun does not support shooting short-lived particle." << G4endl; - G4cerr << "G4ParticleGun::SetParticleDefinition for " - << aParticleDefinition->GetParticleName() << " is ignored." << G4endl; - return; + if(!(aParticleDefinition->GetDecayTable())) + { + G4cerr << "G4ParticleGun does not support shooting a short-lived particle without a valid decay table." << G4endl; + G4cerr << "G4ParticleGun::SetParticleDefinition for " + << aParticleDefinition->GetParticleName() << " is ignored." << G4endl; + return; + } } particle_definition = aParticleDefinition; particle_charge = particle_definition->GetPDGCharge(); diff --git a/source/event/src/G4ParticleGunMessenger.cc b/source/event/src/G4ParticleGunMessenger.cc index 19473c7091..b4c1b15b20 100644 --- a/source/event/src/G4ParticleGunMessenger.cc +++ b/source/event/src/G4ParticleGunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleGunMessenger.cc,v 1.11 2004/02/22 02:55:26 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4ParticleGunMessenger.cc,v 1.12 2005/04/27 01:32:46 asaim Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4ParticleGunMessenger.hh" @@ -66,9 +66,10 @@ G4ParticleGunMessenger::G4ParticleGunMessenger(G4ParticleGun * fPtclGun) G4int nPtcl = particleTable->entries(); for(G4int i=0;iGetParticle(i)->IsShortLived())) + G4ParticleDefinition* pd = particleTable->GetParticle(i); + if( !(pd->IsShortLived()) || pd->GetDecayTable() ) { - candidateList += particleTable->GetParticleName(i); + candidateList += pd->GetParticleName(); candidateList += " "; } } diff --git a/source/event/src/G4PrimaryTransformer.cc b/source/event/src/G4PrimaryTransformer.cc index b44377b6cd..15402f484f 100644 --- a/source/event/src/G4PrimaryTransformer.cc +++ b/source/event/src/G4PrimaryTransformer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PrimaryTransformer.cc,v 1.20 2004/08/10 23:59:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PrimaryTransformer.cc,v 1.23 2005/05/30 07:05:47 asaim Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4PrimaryTransformer.hh" @@ -102,8 +102,8 @@ void G4PrimaryTransformer::GenerateSingleTrack G4double x0,G4double y0,G4double z0,G4double t0,G4double wv) { G4ParticleDefinition* partDef = GetDefinition(primaryParticle); - if((!partDef)||partDef->IsShortLived()) - // The particle is not defined in GEANT4 or it is "short-lived", check daughters + if(!IsGoodForTrack(partDef)) + // The particle cannot be converted to G4Track, check daughters { #ifdef G4VERBOSE if(verboseLevel>2) @@ -144,12 +144,24 @@ void G4PrimaryTransformer::GenerateSingleTrack DP->SetCharge(primaryParticle->GetCharge()); } // Set Mass if it is specified - if(partDef==unknown) - { DP->SetMass(primaryParticle->GetMass()); } + G4double pmas = primaryParticle->GetMass(); + if(pmas>=0.) + { DP->SetMass(pmas); } // Set decay products to the DynamicParticle SetDecayProducts( primaryParticle, DP ); // Set primary particle DP->SetPrimaryParticle(primaryParticle); + // Set PDG code if it is different from G4ParticleDefinition + if(partDef->GetPDGEncoding()==0 && primaryParticle->GetPDGcode()!=0) + { + DP->SetPDGcode(primaryParticle->GetPDGcode()); + } + // Check the particle is properly constructed + if(!CheckDynamicParticle(DP)) + { + delete DP; + return; + } // Create G4Track object G4Track* track = new G4Track(DP,t0,G4ThreeVector(x0,y0,z0)); // Set trackID and let primary particle know it @@ -179,7 +191,7 @@ void G4PrimaryTransformer::SetDecayProducts while(daughter) { G4ParticleDefinition* partDef = GetDefinition(daughter); - if((!partDef)||partDef->IsShortLived()) + if(!IsGoodForTrack(partDef)) { #ifdef G4VERBOSE if(verboseLevel>2) @@ -210,15 +222,45 @@ void G4PrimaryTransformer::SetDecayProducts if (daughter->GetCharge()SetCharge(daughter->GetCharge()); } - if(partDef==unknown) - { DP->SetMass(daughter->GetMass()); } + G4double pmas = daughter->GetMass(); + if(pmas>=0.) + { DP->SetMass(pmas); } decayProducts->PushProducts(DP); SetDecayProducts(daughter,DP); + // Check the particle is properly constructed + if(!CheckDynamicParticle(DP)) + { + delete DP; + return; + } } daughter = daughter->GetNext(); } } +void G4PrimaryTransformer::SetUnknnownParticleDefined(G4bool vl) +{ + unknownParticleDefined = vl; + if(unknownParticleDefined && !unknown) + { G4cerr << "unknownParticleDefined cannot be set true because G4UnknownParticle is not defined in the physics list." + << G4endl << "Command ignored." << G4endl; + unknownParticleDefined = false; + } +} + +G4bool G4PrimaryTransformer::CheckDynamicParticle(G4DynamicParticle*DP) +{ + if(IsGoodForTrack(DP->GetDefinition())) return true; + G4DecayProducts* decayProducts = (G4DecayProducts*)(DP->GetPreAssignedDecayProducts()); + if(decayProducts && decayProducts->entries()>0) return true; + G4cerr << G4endl + << "G4PrimaryTransformer: a shortlived primary particle is found" << G4endl + << " without any valid decay table nor pre-assigned decay mode." << G4endl; + G4Exception("G4PrimaryTransformer","InvalidPrimary",JustWarning, + "This primary particle will be ignored."); + return false; +} + G4ParticleDefinition* G4PrimaryTransformer::GetDefinition(G4PrimaryParticle*pp) { G4ParticleDefinition* partDef = pp->GetG4code(); @@ -227,5 +269,16 @@ G4ParticleDefinition* G4PrimaryTransformer::GetDefinition(G4PrimaryParticle*pp) return partDef; } - +G4bool G4PrimaryTransformer::IsGoodForTrack(G4ParticleDefinition* pd) +{ + if(!pd) + { return false; } + else if(!(pd->IsShortLived())) + { return true; } +// Following two lines should be removed if the user does not want to make shortlived +// primary particle with proper decay table to be converted into a track. + else if(pd->GetDecayTable()) + { return true; } + return false; +} diff --git a/source/event/src/G4SPSAngDistribution.cc b/source/event/src/G4SPSAngDistribution.cc index 2f863fb603..94fff2a40b 100644 --- a/source/event/src/G4SPSAngDistribution.cc +++ b/source/event/src/G4SPSAngDistribution.cc @@ -43,7 +43,7 @@ /////////////////////////////////////////////////////////////////////////////// // #include "Randomize.hh" -//#include +//#include #include "G4SPSAngDistribution.hh" diff --git a/source/event/src/G4SPSEneDistribution.cc b/source/event/src/G4SPSEneDistribution.cc index c565c4328d..b51aefc2e6 100644 --- a/source/event/src/G4SPSEneDistribution.cc +++ b/source/event/src/G4SPSEneDistribution.cc @@ -42,7 +42,7 @@ /////////////////////////////////////////////////////////////////////////////// // #include "Randomize.hh" -//#include +//#include #include "G4SPSEneDistribution.hh" @@ -1164,7 +1164,9 @@ void G4SPSEneDistribution::ReSetHist(G4String atype) { if (atype == "energy"){ UDefEnergyH = IPDFEnergyH = ZeroPhysVector ; - IPDFEnergyExist = false ;} + IPDFEnergyExist = false ; + Emin = 0.; + Emax = 1e30;} else if ( atype == "arb"){ ArbEnergyH =IPDFArbEnergyH = ZeroPhysVector ; IPDFArbExist = false;} diff --git a/source/event/src/G4SPSPosDistribution.cc b/source/event/src/G4SPSPosDistribution.cc index 624c917a94..becd9f1562 100644 --- a/source/event/src/G4SPSPosDistribution.cc +++ b/source/event/src/G4SPSPosDistribution.cc @@ -42,7 +42,7 @@ /////////////////////////////////////////////////////////////////////////////// // #include "Randomize.hh" -//#include +//#include #include "G4TransportationManager.hh" #include "G4VPhysicalVolume.hh" #include "G4PhysicalVolumeStore.hh" diff --git a/source/event/src/G4SPSRandomGenerator.cc b/source/event/src/G4SPSRandomGenerator.cc index 88be1531bc..e698d8cc04 100644 --- a/source/event/src/G4SPSRandomGenerator.cc +++ b/source/event/src/G4SPSRandomGenerator.cc @@ -44,7 +44,7 @@ #include "G4PrimaryParticle.hh" #include "G4Event.hh" #include "Randomize.hh" -#include +#include #include "G4TransportationManager.hh" #include "G4VPhysicalVolume.hh" #include "G4PhysicalVolumeStore.hh" @@ -605,7 +605,7 @@ G4double G4SPSRandomGenerator::GenRandPosTheta() // IPDF has not been created, so create it G4double bins[1024],vals[1024], sum; G4int ii; - G4int maxbin = G4int(ThetaBiasH.GetVectorLength()); + G4int maxbin = G4int(PosThetaBiasH.GetVectorLength()); bins[0] = PosThetaBiasH.GetLowEdgeEnergy(size_t(0)); vals[0] = PosThetaBiasH(size_t(0)); sum = vals[0]; @@ -706,7 +706,7 @@ G4double G4SPSRandomGenerator::GenRandPosPhi() G4double NatProb = xaxisu - xaxisl; bweights[7] = NatProb/bweights[7]; if(verbosityLevel >= 1) - G4cout << "PosPhi bin weight " << bweights[4] << " " << rndm << G4endl; + G4cout << "PosPhi bin weight " << bweights[7] << " " << rndm << G4endl; return(IPDFPosPhiBiasH.GetEnergy(rndm)); } } diff --git a/source/event/src/G4ScoreTable.cc b/source/event/src/G4ScoreTable.cc index 6c8f568990..b946390bb1 100644 --- a/source/event/src/G4ScoreTable.cc +++ b/source/event/src/G4ScoreTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4ScoreTable.cc,v 1.3 2003/06/16 16:50:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/event/src/G4Scorer.cc b/source/event/src/G4Scorer.cc index bd6798a51f..720147916b 100644 --- a/source/event/src/G4Scorer.cc +++ b/source/event/src/G4Scorer.cc @@ -22,7 +22,7 @@ // // // $Id: G4Scorer.cc,v 1.1 2002/10/28 10:06:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/event/src/G4SingleParticleSource.cc b/source/event/src/G4SingleParticleSource.cc index e3e81c11e0..4703dbe379 100644 --- a/source/event/src/G4SingleParticleSource.cc +++ b/source/event/src/G4SingleParticleSource.cc @@ -44,7 +44,7 @@ #include "G4PrimaryParticle.hh" #include "G4Event.hh" #include "Randomize.hh" -#include +#include #include "G4ParticleTable.hh" #include "G4Geantino.hh" #include "G4ParticleDefinition.hh" @@ -145,15 +145,16 @@ void G4SingleParticleSource::GeneratePrimaryVertex(G4Event *evt) particle->SetPolarization(particle_polarization.x(), particle_polarization.y(), particle_polarization.z()); - vertex->SetPrimary( particle ); - // Set bweight equal to the multiple of all non-zero weights particle_weight = biasRndm->GetBiasWeight(); // pass it to primary particle - particle->SetWeight(particle_weight); + particle->SetWeight(particle_weight); + + vertex->SetPrimary( particle ); + } - // now pass the weight to the primary vertex - vertex->SetWeight(particle_weight); + // now pass the weight to the primary vertex. CANNOT be used here! + // vertex->SetWeight(particle_weight); evt->AddPrimaryVertex( vertex ); if(verbosityLevel > 1) G4cout << " Primary Vetex generated !"<< G4endl; diff --git a/source/event/src/G4StackChecker.cc b/source/event/src/G4StackChecker.cc index 1693c19df3..29edcdd3c8 100644 --- a/source/event/src/G4StackChecker.cc +++ b/source/event/src/G4StackChecker.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackChecker.cc,v 1.1 2003/06/12 15:14:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4StackChecker.hh" diff --git a/source/event/src/G4StackManager.cc b/source/event/src/G4StackManager.cc index a01d9dd2dd..3abe880768 100644 --- a/source/event/src/G4StackManager.cc +++ b/source/event/src/G4StackManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackManager.cc,v 1.9 2003/08/13 23:44:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Last Modification : 09/Dec/96 M.Asai diff --git a/source/event/src/G4StackedTrack.cc b/source/event/src/G4StackedTrack.cc index 011da067e0..88906e68c0 100644 --- a/source/event/src/G4StackedTrack.cc +++ b/source/event/src/G4StackedTrack.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackedTrack.cc,v 1.8 2004/06/11 14:11:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Last Modification : 02/Feb/96 M.Asai diff --git a/source/event/src/G4StackingMessenger.cc b/source/event/src/G4StackingMessenger.cc index 63ea7460a9..46f758ec22 100644 --- a/source/event/src/G4StackingMessenger.cc +++ b/source/event/src/G4StackingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackingMessenger.cc,v 1.4 2002/12/04 18:43:15 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/event/src/G4TrackStack.cc b/source/event/src/G4TrackStack.cc index c035d26e6c..c7f17b83e6 100644 --- a/source/event/src/G4TrackStack.cc +++ b/source/event/src/G4TrackStack.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrackStack.cc,v 1.5 2002/12/03 17:04:22 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4TrackStack.hh" diff --git a/source/event/src/G4TrajectoryContainer.cc b/source/event/src/G4TrajectoryContainer.cc index c8286e5192..05cb7bed0b 100644 --- a/source/event/src/G4TrajectoryContainer.cc +++ b/source/event/src/G4TrajectoryContainer.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryContainer.cc,v 1.4 2004/06/11 14:11:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4TrajectoryContainer.hh" diff --git a/source/event/src/G4UserEventAction.cc b/source/event/src/G4UserEventAction.cc index a4abe4fc34..c9e40f9b83 100644 --- a/source/event/src/G4UserEventAction.cc +++ b/source/event/src/G4UserEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserEventAction.cc,v 1.5 2003/05/21 20:52:54 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4UserEventAction.hh" diff --git a/source/event/src/G4UserStackingAction.cc b/source/event/src/G4UserStackingAction.cc index f8f63487c7..101f20937c 100644 --- a/source/event/src/G4UserStackingAction.cc +++ b/source/event/src/G4UserStackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserStackingAction.cc,v 1.5 2003/05/21 20:52:54 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4UserStackingAction.hh" diff --git a/source/event/src/G4VPrimaryGenerator.cc b/source/event/src/G4VPrimaryGenerator.cc index 3eacba0276..53d648b048 100644 --- a/source/event/src/G4VPrimaryGenerator.cc +++ b/source/event/src/G4VPrimaryGenerator.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPrimaryGenerator.cc,v 1.4 2003/08/02 00:18:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VPrimaryGenerator diff --git a/source/g3tog4/GNUmakefile b/source/g3tog4/GNUmakefile index bd64e88a15..986d5eb0f1 100644 --- a/source/g3tog4/GNUmakefile +++ b/source/g3tog4/GNUmakefile @@ -20,8 +20,8 @@ endif GLOBLIBS = libG4tracking.lib libG4processes.lib libG4digits_hits.lib GLOBLIBS += libG4track.lib libG4particles.lib libG4geometry.lib -GLOBLIBS += libG4materials.lib libG4intercoms.lib -GLOBLIBS += libG4graphics_reps.lib libG4global.lib +GLOBLIBS += libG4materials.lib libG4graphics_reps.lib +GLOBLIBS += libG4intercoms.lib libG4global.lib include $(G4INSTALL)/config/architecture.gmk @@ -177,7 +177,7 @@ $(G4TMPDIR)/%.d: src/%.F -include $(Fdependencies) -clean: cleanf +clean:: cleanf cleanf: @$(RM) $(Flibobjects) diff --git a/source/g3tog4/History b/source/g3tog4/History index 16e045e025..a405e6ffda 100644 --- a/source/g3tog4/History +++ b/source/g3tog4/History @@ -1,8 +1,16 @@ -$Id: History,v 1.57 2004/12/07 08:36:31 gcosmo Exp $ +$Id: History,v 1.59 2005/05/26 14:17:36 gcosmo Exp $ G3toG4 Modification History (reverse chronological order, please !) -------------------------------------------------------------------- +g3tog4-V07-00-01 26-May-2005 G.Cosmo +- Initialise local pointer variable 'mothLV' in method + G3toG4BuildTree::G3toG4BuildPVTree(). + +g3tog4-V07-00-00 06-Apr-2005 J.Allison +- GNUmakefile: corrected order for graphics_reps and intercoms in the + definition of GLOBLIBS. + g3tog4-V06-02-00 07-Dec-2004 G.Cosmo - Implemented migration to . diff --git a/source/g3tog4/include/G3DetTable.hh b/source/g3tog4/include/G3DetTable.hh index 97614a8d24..58cae1e3d5 100644 --- a/source/g3tog4/include/G3DetTable.hh +++ b/source/g3tog4/include/G3DetTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3DetTable.hh,v 1.8 2003/06/16 16:50:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G3DetTable class diff --git a/source/g3tog4/include/G3DetTableEntry.hh b/source/g3tog4/include/G3DetTableEntry.hh index 3ba573191e..7b1ded783c 100644 --- a/source/g3tog4/include/G3DetTableEntry.hh +++ b/source/g3tog4/include/G3DetTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3DetTableEntry.hh,v 1.5 2003/06/16 16:50:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G3DetTableEntry class diff --git a/source/g3tog4/include/G3Division.hh b/source/g3tog4/include/G3Division.hh index 912dab512a..28e6e82424 100644 --- a/source/g3tog4/include/G3Division.hh +++ b/source/g3tog4/include/G3Division.hh @@ -22,7 +22,7 @@ // // // $Id: G3Division.hh,v 1.7 2001/11/21 14:25:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3EleTable.hh b/source/g3tog4/include/G3EleTable.hh index 1595ec34dd..0d9814b5ad 100644 --- a/source/g3tog4/include/G3EleTable.hh +++ b/source/g3tog4/include/G3EleTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3EleTable.hh,v 1.7 2001/07/16 15:38:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3G4Interface.hh b/source/g3tog4/include/G3G4Interface.hh index afff50dbf2..cf0816d675 100644 --- a/source/g3tog4/include/G3G4Interface.hh +++ b/source/g3tog4/include/G3G4Interface.hh @@ -22,7 +22,7 @@ // // // $Id: G3G4Interface.hh,v 1.9 2001/11/08 16:07:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Interfaces for G3 equivalent routines // diff --git a/source/g3tog4/include/G3MatTable.hh b/source/g3tog4/include/G3MatTable.hh index f76268863c..eef35b907a 100644 --- a/source/g3tog4/include/G3MatTable.hh +++ b/source/g3tog4/include/G3MatTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3MatTable.hh,v 1.12 2003/06/16 16:50:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MatTableEntry.hh b/source/g3tog4/include/G3MatTableEntry.hh index eb41afe3c6..657521ee4c 100644 --- a/source/g3tog4/include/G3MatTableEntry.hh +++ b/source/g3tog4/include/G3MatTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3MatTableEntry.hh,v 1.5 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MedTable.hh b/source/g3tog4/include/G3MedTable.hh index 314d7ce7d2..ab4f1082ed 100644 --- a/source/g3tog4/include/G3MedTable.hh +++ b/source/g3tog4/include/G3MedTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3MedTable.hh,v 1.12 2003/06/16 16:50:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MedTableEntry.hh b/source/g3tog4/include/G3MedTableEntry.hh index d9ccea699b..52b5eb2f6b 100644 --- a/source/g3tog4/include/G3MedTableEntry.hh +++ b/source/g3tog4/include/G3MedTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3MedTableEntry.hh,v 1.5 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3PartTable.hh b/source/g3tog4/include/G3PartTable.hh index ddf105f75a..9fbdc67533 100644 --- a/source/g3tog4/include/G3PartTable.hh +++ b/source/g3tog4/include/G3PartTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3PartTable.hh,v 1.9 2003/06/16 16:50:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3Pos.hh b/source/g3tog4/include/G3Pos.hh index 24fc4a6f82..5147fd7590 100644 --- a/source/g3tog4/include/G3Pos.hh +++ b/source/g3tog4/include/G3Pos.hh @@ -22,7 +22,7 @@ // // // $Id: G3Pos.hh,v 1.10 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3RotTable.hh b/source/g3tog4/include/G3RotTable.hh index 436cdaa33c..8274664c20 100644 --- a/source/g3tog4/include/G3RotTable.hh +++ b/source/g3tog4/include/G3RotTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3RotTable.hh,v 1.14 2003/06/16 16:50:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3RotTableEntry.hh b/source/g3tog4/include/G3RotTableEntry.hh index d6217789f2..3be9bd668f 100644 --- a/source/g3tog4/include/G3RotTableEntry.hh +++ b/source/g3tog4/include/G3RotTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3RotTableEntry.hh,v 1.5 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3SensVolVector.hh b/source/g3tog4/include/G3SensVolVector.hh index c8b32046cc..5edbdb3db8 100644 --- a/source/g3tog4/include/G3SensVolVector.hh +++ b/source/g3tog4/include/G3SensVolVector.hh @@ -22,7 +22,7 @@ // // // $Id: G3SensVolVector.hh,v 1.6 2003/06/16 16:50:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // vector of logical volumes that were defined with // tracking medium with ISVOL=1 diff --git a/source/g3tog4/include/G3VolTable.hh b/source/g3tog4/include/G3VolTable.hh index bd2856e938..f31a1d0052 100644 --- a/source/g3tog4/include/G3VolTable.hh +++ b/source/g3tog4/include/G3VolTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3VolTable.hh,v 1.17 2003/06/16 16:50:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3VolTableEntry.hh b/source/g3tog4/include/G3VolTableEntry.hh index 66ca698a5f..c56c5b026d 100644 --- a/source/g3tog4/include/G3VolTableEntry.hh +++ b/source/g3tog4/include/G3VolTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3VolTableEntry.hh,v 1.8 2003/06/16 16:50:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3toG4.hh b/source/g3tog4/include/G3toG4.hh index d0d6703d1c..1fb93d7ead 100644 --- a/source/g3tog4/include/G3toG4.hh +++ b/source/g3tog4/include/G3toG4.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4.hh,v 1.8 2004/03/26 14:59:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // modified by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/include/G3toG4.inc b/source/g3tog4/include/G3toG4.inc index 3dd5013a13..ab0f23c88b 100644 --- a/source/g3tog4/include/G3toG4.inc +++ b/source/g3tog4/include/G3toG4.inc @@ -22,7 +22,7 @@ * * * $Id: G3toG4.inc,v 1.3 2001/07/11 09:58:58 gunter Exp $ -* GEANT4 tag $Name: geant4-07-00-cand-01 $ +* GEANT4 tag $Name: geant4-07-01 $ * integer maxlines parameter (maxlines = 750) ! max no. of cmd lines per C++ source file diff --git a/source/g3tog4/include/G3toG4BuildTree.hh b/source/g3tog4/include/G3toG4BuildTree.hh index 6df307fbca..71356793b2 100644 --- a/source/g3tog4/include/G3toG4BuildTree.hh +++ b/source/g3tog4/include/G3toG4BuildTree.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4BuildTree.hh,v 1.7 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4MANY.hh b/source/g3tog4/include/G3toG4MANY.hh index dfab171bfa..96cb233efd 100644 --- a/source/g3tog4/include/G3toG4MANY.hh +++ b/source/g3tog4/include/G3toG4MANY.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4MANY.hh,v 1.2 2003/06/16 16:50:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4MakeSolid.hh b/source/g3tog4/include/G3toG4MakeSolid.hh index b32d0552c4..f882fc9c86 100644 --- a/source/g3tog4/include/G3toG4MakeSolid.hh +++ b/source/g3tog4/include/G3toG4MakeSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4MakeSolid.hh,v 1.6 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4RotationMatrix.hh b/source/g3tog4/include/G3toG4RotationMatrix.hh index c36136bd5e..a653bc1360 100644 --- a/source/g3tog4/include/G3toG4RotationMatrix.hh +++ b/source/g3tog4/include/G3toG4RotationMatrix.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4RotationMatrix.hh,v 1.5 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ---------------------- // Class description: // diff --git a/source/g3tog4/include/gcbank.inc b/source/g3tog4/include/gcbank.inc index 5c360123a6..633ff80508 100644 --- a/source/g3tog4/include/gcbank.inc +++ b/source/g3tog4/include/gcbank.inc @@ -22,7 +22,7 @@ * * * $Id: gcbank.inc,v 1.3 2001/07/11 09:58:58 gunter Exp $ -* GEANT4 tag $Name: geant4-07-00-cand-01 $ +* GEANT4 tag $Name: geant4-07-01 $ * INTEGER IQ,LQ,NZEBRA,IXSTOR,IXDIV,IXCONS,LMAIN,LR1,JCG INTEGER KWBANK,KWWORK,IWS diff --git a/source/g3tog4/src/G3DetTable.cc b/source/g3tog4/src/G3DetTable.cc index bd05753599..b30e3789df 100644 --- a/source/g3tog4/src/G3DetTable.cc +++ b/source/g3tog4/src/G3DetTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3DetTable.cc,v 1.11 2003/06/16 16:50:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G3DetTableEntry.cc b/source/g3tog4/src/G3DetTableEntry.cc index a1260d8311..2c321db4e5 100644 --- a/source/g3tog4/src/G3DetTableEntry.cc +++ b/source/g3tog4/src/G3DetTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3DetTableEntry.cc,v 1.4 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "globals.hh" #include "G3DetTableEntry.hh" diff --git a/source/g3tog4/src/G3Division.cc b/source/g3tog4/src/G3Division.cc index e33e8dda37..a9ab2b6c46 100644 --- a/source/g3tog4/src/G3Division.cc +++ b/source/g3tog4/src/G3Division.cc @@ -22,7 +22,7 @@ // // // $Id: G3Division.cc,v 1.16 2004/12/07 08:33:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, V.Berejnoi 13.10.99 diff --git a/source/g3tog4/src/G3EleTable.cc b/source/g3tog4/src/G3EleTable.cc index 94f702a910..dfdbdb2202 100644 --- a/source/g3tog4/src/G3EleTable.cc +++ b/source/g3tog4/src/G3EleTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3EleTable.cc,v 1.13 2003/06/16 16:50:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4Types.hh" diff --git a/source/g3tog4/src/G3MatTable.cc b/source/g3tog4/src/G3MatTable.cc index e669ee349d..e4591e81ad 100644 --- a/source/g3tog4/src/G3MatTable.cc +++ b/source/g3tog4/src/G3MatTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3MatTable.cc,v 1.15 2001/07/16 15:38:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MatTableEntry.cc b/source/g3tog4/src/G3MatTableEntry.cc index 104eb94938..408bf713e1 100644 --- a/source/g3tog4/src/G3MatTableEntry.cc +++ b/source/g3tog4/src/G3MatTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3MatTableEntry.cc,v 1.3 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MedTable.cc b/source/g3tog4/src/G3MedTable.cc index c8706ea490..19f7d298c0 100644 --- a/source/g3tog4/src/G3MedTable.cc +++ b/source/g3tog4/src/G3MedTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3MedTable.cc,v 1.14 2003/01/27 10:45:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MedTableEntry.cc b/source/g3tog4/src/G3MedTableEntry.cc index 28aa7785a9..4c263cc734 100644 --- a/source/g3tog4/src/G3MedTableEntry.cc +++ b/source/g3tog4/src/G3MedTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3MedTableEntry.cc,v 1.3 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3NegVolPars.cc b/source/g3tog4/src/G3NegVolPars.cc index 0a35638dc3..fc34da0582 100644 --- a/source/g3tog4/src/G3NegVolPars.cc +++ b/source/g3tog4/src/G3NegVolPars.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3NegVolPars.cc,v 1.11 2004/12/07 08:33:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G3NegVolPars.cc,v 1.12 2005/06/27 15:28:27 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // modified by I. Hrivnacova, 13.10.99 @@ -30,7 +30,7 @@ #include "G3VolTable.hh" #include "G4VSolid.hh" #include "G3toG4.hh" -#include +#include G4bool G3CalcParamsFn(G4double *Rpar, G4int npar, G4double *Rparm, G4String shape, G4String shapem) diff --git a/source/g3tog4/src/G3PartTable.cc b/source/g3tog4/src/G3PartTable.cc index 6b216d7862..cca4ae7378 100644 --- a/source/g3tog4/src/G3PartTable.cc +++ b/source/g3tog4/src/G3PartTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3PartTable.cc,v 1.12 2003/06/16 16:50:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4Types.hh" diff --git a/source/g3tog4/src/G3Pos.cc b/source/g3tog4/src/G3Pos.cc index ec822662ca..dc47effd68 100644 --- a/source/g3tog4/src/G3Pos.cc +++ b/source/g3tog4/src/G3Pos.cc @@ -22,7 +22,7 @@ // // // $Id: G3Pos.cc,v 1.8 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3RotTable.cc b/source/g3tog4/src/G3RotTable.cc index b0514b997a..c31994ed59 100644 --- a/source/g3tog4/src/G3RotTable.cc +++ b/source/g3tog4/src/G3RotTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3RotTable.cc,v 1.15 2001/07/16 15:38:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3RotTableEntry.cc b/source/g3tog4/src/G3RotTableEntry.cc index 0ba993afb0..22b79d80dc 100644 --- a/source/g3tog4/src/G3RotTableEntry.cc +++ b/source/g3tog4/src/G3RotTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3RotTableEntry.cc,v 1.3 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3VolTable.cc b/source/g3tog4/src/G3VolTable.cc index 94b8a91b4f..32f7667240 100644 --- a/source/g3tog4/src/G3VolTable.cc +++ b/source/g3tog4/src/G3VolTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3VolTable.cc,v 1.21 2003/06/16 16:50:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3VolTableEntry.cc b/source/g3tog4/src/G3VolTableEntry.cc index 4fb6688cbf..21218ad836 100644 --- a/source/g3tog4/src/G3VolTableEntry.cc +++ b/source/g3tog4/src/G3VolTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3VolTableEntry.cc,v 1.11 2003/06/16 16:50:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3fillParams.cc.archive b/source/g3tog4/src/G3fillParams.cc.archive index 1d0b78d9e2..b96d3f3b24 100644 --- a/source/g3tog4/src/G3fillParams.cc.archive +++ b/source/g3tog4/src/G3fillParams.cc.archive @@ -6,7 +6,7 @@ // and all its terms. // // $Id: G3fillParams.cc.archive,v 1.2 2003/06/16 16:50:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // extracted from clparse.cc by I. Hrivnacova, 30.7.99 diff --git a/source/g3tog4/src/G3toG4BuildTree.cc b/source/g3tog4/src/G3toG4BuildTree.cc index 60f072cf35..cfeaa9dda1 100644 --- a/source/g3tog4/src/G3toG4BuildTree.cc +++ b/source/g3tog4/src/G3toG4BuildTree.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4BuildTree.cc,v 1.18 2001/11/21 14:25:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G3toG4BuildTree.cc,v 1.19 2005/05/26 14:18:11 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // modified by I. Hrivnacova, 2.8.99 @@ -107,7 +107,7 @@ void G3toG4BuildPVTree(G3VolTableEntry* curVTE) if (theG3Pos->GetMotherName() == motherVTE->GetMasterClone()->GetName()) { // get mother logical volume - G4LogicalVolume* mothLV; + G4LogicalVolume* mothLV=0; if (motherVTE) { G4String motherName = motherVTE->GetName(); if (!curVTE->FindMother(motherName)) continue; diff --git a/source/g3tog4/src/G3toG4MANY.cc b/source/g3tog4/src/G3toG4MANY.cc index 2b650e07bd..e617872d3d 100644 --- a/source/g3tog4/src/G3toG4MANY.cc +++ b/source/g3tog4/src/G3toG4MANY.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4MANY.cc,v 1.1 2001/11/08 16:08:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // By I. Hrivnacova, 22.10.01 diff --git a/source/g3tog4/src/G3toG4MakeSolid.cc b/source/g3tog4/src/G3toG4MakeSolid.cc index 4b8441760b..e89145459c 100644 --- a/source/g3tog4/src/G3toG4MakeSolid.cc +++ b/source/g3tog4/src/G3toG4MakeSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4MakeSolid.cc,v 1.9 2001/07/16 15:38:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // modified by I.Hrivnacova, V.Berejnoi 27 Sep 99 diff --git a/source/g3tog4/src/G3toG4RotationMatrix.cc b/source/g3tog4/src/G3toG4RotationMatrix.cc index 70761420a1..64437db1d7 100644 --- a/source/g3tog4/src/G3toG4RotationMatrix.cc +++ b/source/g3tog4/src/G3toG4RotationMatrix.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4RotationMatrix.cc,v 1.3 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G3toG4RotationMatrix.hh" diff --git a/source/g3tog4/src/G4BuildGeom.cc b/source/g3tog4/src/G4BuildGeom.cc index bc70b873bb..7aa2f7d5c1 100644 --- a/source/g3tog4/src/G4BuildGeom.cc +++ b/source/g3tog4/src/G4BuildGeom.cc @@ -22,7 +22,7 @@ // // // $Id: G4BuildGeom.cc,v 1.16 2003/06/16 16:50:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // modified by I. Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4ggclos.cc b/source/g3tog4/src/G4ggclos.cc index 4c63af7d97..92741d9c06 100644 --- a/source/g3tog4/src/G4ggclos.cc +++ b/source/g3tog4/src/G4ggclos.cc @@ -22,7 +22,7 @@ // // // $Id: G4ggclos.cc,v 1.7 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G3toG4.hh" #include "G3VolTable.hh" diff --git a/source/g3tog4/src/G4gsatt.cc b/source/g3tog4/src/G4gsatt.cc index 69b332a27d..8e9c36e878 100644 --- a/source/g3tog4/src/G4gsatt.cc +++ b/source/g3tog4/src/G4gsatt.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsatt.cc,v 1.12 2003/04/03 11:30:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "globals.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsbool.cc b/source/g3tog4/src/G4gsbool.cc index d6c4dde391..753869b38d 100644 --- a/source/g3tog4/src/G4gsbool.cc +++ b/source/g3tog4/src/G4gsbool.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsbool.cc,v 1.1 2001/11/08 16:08:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 13.10.01 diff --git a/source/g3tog4/src/G4gsdet.cc b/source/g3tog4/src/G4gsdet.cc index 5df00cc478..6e99d6b279 100644 --- a/source/g3tog4/src/G4gsdet.cc +++ b/source/g3tog4/src/G4gsdet.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdet.cc,v 1.4 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "globals.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdeta.cc b/source/g3tog4/src/G4gsdeta.cc index 1b163eb20c..03712f304f 100644 --- a/source/g3tog4/src/G4gsdeta.cc +++ b/source/g3tog4/src/G4gsdeta.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdeta.cc,v 1.5 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // modified by I.Hrivnacova, 6 Oct 99 diff --git a/source/g3tog4/src/G4gsdetd.cc b/source/g3tog4/src/G4gsdetd.cc index a7172e1083..da39369dec 100644 --- a/source/g3tog4/src/G4gsdetd.cc +++ b/source/g3tog4/src/G4gsdetd.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdetd.cc,v 1.7 2003/04/03 11:30:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G3toG4.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G4gsdeth.cc b/source/g3tog4/src/G4gsdeth.cc index 7d70e81e17..0ff6be1561 100644 --- a/source/g3tog4/src/G4gsdeth.cc +++ b/source/g3tog4/src/G4gsdeth.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdeth.cc,v 1.7 2003/04/03 11:30:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G3toG4.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G4gsdetu.cc b/source/g3tog4/src/G4gsdetu.cc index d46e97fefb..c480e9d07a 100644 --- a/source/g3tog4/src/G4gsdetu.cc +++ b/source/g3tog4/src/G4gsdetu.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdetu.cc,v 1.5 2003/04/03 11:30:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdetv.cc b/source/g3tog4/src/G4gsdetv.cc index 30965f1f83..f8447c562f 100644 --- a/source/g3tog4/src/G4gsdetv.cc +++ b/source/g3tog4/src/G4gsdetv.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdetv.cc,v 1.9 2003/04/03 11:30:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4ios.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdk.cc b/source/g3tog4/src/G4gsdk.cc index 20e79587b0..f7d34bc1f8 100644 --- a/source/g3tog4/src/G4gsdk.cc +++ b/source/g3tog4/src/G4gsdk.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdk.cc,v 1.6 2003/04/03 11:30:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4Decay.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdvn.cc b/source/g3tog4/src/G4gsdvn.cc index 32a1ddeeb7..86bb187f86 100644 --- a/source/g3tog4/src/G4gsdvn.cc +++ b/source/g3tog4/src/G4gsdvn.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvn.cc,v 1.9 2003/04/03 11:30:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvn2.cc b/source/g3tog4/src/G4gsdvn2.cc index 719977a4f6..fd2706bf5a 100644 --- a/source/g3tog4/src/G4gsdvn2.cc +++ b/source/g3tog4/src/G4gsdvn2.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvn2.cc,v 1.7 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvt.cc b/source/g3tog4/src/G4gsdvt.cc index 0b152717aa..a495ab86d9 100644 --- a/source/g3tog4/src/G4gsdvt.cc +++ b/source/g3tog4/src/G4gsdvt.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvt.cc,v 1.6 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvt2.cc b/source/g3tog4/src/G4gsdvt2.cc index f3a0c120b5..0f59d5247a 100644 --- a/source/g3tog4/src/G4gsdvt2.cc +++ b/source/g3tog4/src/G4gsdvt2.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvt2.cc,v 1.6 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvx.cc b/source/g3tog4/src/G4gsdvx.cc index dcd80e325d..57ee0d80ff 100644 --- a/source/g3tog4/src/G4gsdvx.cc +++ b/source/g3tog4/src/G4gsdvx.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvx.cc,v 1.4 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, V.Berejnoi, 27 Sep 99 diff --git a/source/g3tog4/src/G4gsmate.cc b/source/g3tog4/src/G4gsmate.cc index dee1db6ebe..8fa0aa841c 100644 --- a/source/g3tog4/src/G4gsmate.cc +++ b/source/g3tog4/src/G4gsmate.cc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: G4gsmate.cc,v 1.10 2004/12/07 08:33:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4gsmate.cc,v 1.11 2005/06/27 15:28:30 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 27 Sep 99 -#include +#include #include "G3toG4.hh" #include "G3MatTable.hh" diff --git a/source/g3tog4/src/G4gsmixt.cc b/source/g3tog4/src/G4gsmixt.cc index 09cff608bc..1bf24e2281 100644 --- a/source/g3tog4/src/G4gsmixt.cc +++ b/source/g3tog4/src/G4gsmixt.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsmixt.cc,v 1.11 2004/12/07 08:33:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G4gspart.cc b/source/g3tog4/src/G4gspart.cc index 95cf300d00..8f8e862582 100644 --- a/source/g3tog4/src/G4gspart.cc +++ b/source/g3tog4/src/G4gspart.cc @@ -22,7 +22,7 @@ // // // $Id: G4gspart.cc,v 1.6 2003/04/03 11:30:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4ProcessManager.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gspos.cc b/source/g3tog4/src/G4gspos.cc index e0be3f5f26..df01154305 100644 --- a/source/g3tog4/src/G4gspos.cc +++ b/source/g3tog4/src/G4gspos.cc @@ -22,7 +22,7 @@ // // // $Id: G4gspos.cc,v 1.12 2001/07/11 09:59:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4gsposp.cc b/source/g3tog4/src/G4gsposp.cc index 9d71b6d722..9b4c2642e4 100644 --- a/source/g3tog4/src/G4gsposp.cc +++ b/source/g3tog4/src/G4gsposp.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsposp.cc,v 1.15 2002/10/23 17:21:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4gsrotm.cc b/source/g3tog4/src/G4gsrotm.cc index 1380178284..ce9eee6b3d 100644 --- a/source/g3tog4/src/G4gsrotm.cc +++ b/source/g3tog4/src/G4gsrotm.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsrotm.cc,v 1.11 2004/12/07 08:33:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G3toG4.hh" #include "G3RotTable.hh" diff --git a/source/g3tog4/src/G4gstmed.cc b/source/g3tog4/src/G4gstmed.cc index 5a4d13fe93..43f2af5e75 100644 --- a/source/g3tog4/src/G4gstmed.cc +++ b/source/g3tog4/src/G4gstmed.cc @@ -22,7 +22,7 @@ // // // $Id: G4gstmed.cc,v 1.6 2003/04/03 11:30:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // The last G4int argument of G4gstmed(..) is used for sending // info whether the Geant3 tracking medium parameters should diff --git a/source/g3tog4/src/G4gstpar.cc b/source/g3tog4/src/G4gstpar.cc index 209055dd34..66a71b448a 100644 --- a/source/g3tog4/src/G4gstpar.cc +++ b/source/g3tog4/src/G4gstpar.cc @@ -22,7 +22,7 @@ // // // $Id: G4gstpar.cc,v 1.7 2003/04/03 11:30:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G3toG4.hh" #include "G3VolTable.hh" diff --git a/source/g3tog4/src/G4gsvolu.cc b/source/g3tog4/src/G4gsvolu.cc index 5b52eb0f26..f5aa57d7ef 100644 --- a/source/g3tog4/src/G4gsvolu.cc +++ b/source/g3tog4/src/G4gsvolu.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsvolu.cc,v 1.9 2003/06/16 16:50:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/clparse.cc b/source/g3tog4/src/clparse.cc index 4cd0bdffe3..b1e3c3639c 100644 --- a/source/g3tog4/src/clparse.cc +++ b/source/g3tog4/src/clparse.cc @@ -22,7 +22,7 @@ // // // $Id: clparse.cc,v 1.17 2004/12/07 08:33:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // modified by I.Hrivnacova // added G3SensVol diff --git a/source/g3tog4/src/g3routines.F b/source/g3tog4/src/g3routines.F index 69dec549cf..d187605b7a 100644 --- a/source/g3tog4/src/g3routines.F +++ b/source/g3tog4/src/g3routines.F @@ -22,7 +22,7 @@ * * * $Id: g3routines.F,v 1.4 2001/07/11 09:59:02 gunter Exp $ -* GEANT4 tag $Name: geant4-07-00-cand-01 $ +* GEANT4 tag $Name: geant4-07-01 $ * #define CALL_GEANT diff --git a/source/g3tog4/src/g3test.F.main b/source/g3tog4/src/g3test.F.main index 6d6fd8a8de..05aefad4db 100644 --- a/source/g3tog4/src/g3test.F.main +++ b/source/g3tog4/src/g3test.F.main @@ -6,7 +6,7 @@ * and all its terms. * * $Id: g3test.F.main,v 1.2 1999/12/05 17:50:16 gcosmo Exp $ -* GEANT4 tag $Name: geant4-07-00-cand-01 $ +* GEANT4 tag $Name: geant4-07-01 $ * * * g3test diff --git a/source/g3tog4/src/g3tog4.F b/source/g3tog4/src/g3tog4.F index 334dbc779d..cb570e148f 100644 --- a/source/g3tog4/src/g3tog4.F +++ b/source/g3tog4/src/g3tog4.F @@ -22,7 +22,7 @@ * * * $Id: g3tog4.F,v 1.4 2001/07/11 09:59:02 gunter Exp $ -* GEANT4 tag $Name: geant4-07-00-cand-01 $ +* GEANT4 tag $Name: geant4-07-01 $ * * * G3toG4 diff --git a/source/g3tog4/src/g4geom.cc.main b/source/g3tog4/src/g4geom.cc.main index ce9697191e..50f351afbe 100644 --- a/source/g3tog4/src/g4geom.cc.main +++ b/source/g3tog4/src/g4geom.cc.main @@ -6,7 +6,7 @@ // and all its terms. // // $Id: g4geom.cc.main,v 1.2 1999/12/05 17:50:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // g4geom // diff --git a/source/g3tog4/src/jshape.F b/source/g3tog4/src/jshape.F index 1ab25e9801..b53b5adac3 100644 --- a/source/g3tog4/src/jshape.F +++ b/source/g3tog4/src/jshape.F @@ -22,7 +22,7 @@ * * * $Id: jshape.F,v 1.3 2001/07/11 09:59:03 gunter Exp $ -* GEANT4 tag $Name: geant4-07-00-cand-01 $ +* GEANT4 tag $Name: geant4-07-01 $ * * *-- Author : Jouko Vuoskoski, CERN, Jouko.Vuoskoski@cern.ch diff --git a/source/g3tog4/src/mztog4.F b/source/g3tog4/src/mztog4.F index 56eced4729..ad042d61b3 100644 --- a/source/g3tog4/src/mztog4.F +++ b/source/g3tog4/src/mztog4.F @@ -22,7 +22,7 @@ * * * $Id: mztog4.F,v 1.3 2001/07/11 09:59:03 gunter Exp $ -* GEANT4 tag $Name: geant4-07-00-cand-01 $ +* GEANT4 tag $Name: geant4-07-01 $ * subroutine mztog4 ************************************************************************ diff --git a/source/g3tog4/src/rztog4.F b/source/g3tog4/src/rztog4.F index b092ea5364..ed05ef297e 100644 --- a/source/g3tog4/src/rztog4.F +++ b/source/g3tog4/src/rztog4.F @@ -22,7 +22,7 @@ * * * $Id: rztog4.F,v 1.3 2001/07/11 09:59:03 gunter Exp $ -* GEANT4 tag $Name: geant4-07-00-cand-01 $ +* GEANT4 tag $Name: geant4-07-01 $ * program rztog4 ************************************************************************ diff --git a/source/g3tog4/src/tog4.F b/source/g3tog4/src/tog4.F index 831e1a2e3c..29dca39e4c 100644 --- a/source/g3tog4/src/tog4.F +++ b/source/g3tog4/src/tog4.F @@ -22,7 +22,7 @@ * * * $Id: tog4.F,v 1.4 2001/07/11 09:59:03 gunter Exp $ -* GEANT4 tag $Name: geant4-07-00-cand-01 $ +* GEANT4 tag $Name: geant4-07-01 $ * subroutine tog4 ************************************************************************ diff --git a/source/geometry/GNUmakefile b/source/geometry/GNUmakefile index 8d655090e7..ec6e29c661 100644 --- a/source/geometry/GNUmakefile +++ b/source/geometry/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.12 2004/06/01 15:35:46 gcosmo Exp $ +# $Id: GNUmakefile,v 1.13 2005/04/06 19:39:17 allison Exp $ # -------------------------------------------------------------- # GNUmakefile for geometry. Gabriele Cosmo, 16/11/96. # -------------------------------------------------------------- @@ -9,7 +9,7 @@ ifndef G4INSTALL G4INSTALL = ../.. endif -GLOBLIBS = libG4intercoms.lib libG4graphics_reps.lib libG4global.lib +GLOBLIBS = libG4graphics_reps.lib libG4intercoms.lib libG4global.lib include $(G4INSTALL)/config/architecture.gmk diff --git a/source/geometry/biasing/include/G4GeometryCell.hh b/source/geometry/biasing/include/G4GeometryCell.hh index eb5d15b84f..0848af1096 100644 --- a/source/geometry/biasing/include/G4GeometryCell.hh +++ b/source/geometry/biasing/include/G4GeometryCell.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCell.hh,v 1.5 2002/10/22 13:18:43 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4GeometryCell diff --git a/source/geometry/biasing/include/G4GeometryCellComp.hh b/source/geometry/biasing/include/G4GeometryCellComp.hh index e5dc3e7584..3e746ce2eb 100644 --- a/source/geometry/biasing/include/G4GeometryCellComp.hh +++ b/source/geometry/biasing/include/G4GeometryCellComp.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellComp.hh,v 1.1 2002/10/22 13:18:44 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellComp diff --git a/source/geometry/biasing/include/G4GeometryCellImportance.hh b/source/geometry/biasing/include/G4GeometryCellImportance.hh index ee075b5ced..ea855ced1c 100644 --- a/source/geometry/biasing/include/G4GeometryCellImportance.hh +++ b/source/geometry/biasing/include/G4GeometryCellImportance.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellImportance.hh,v 1.3 2003/06/16 16:50:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellImportance diff --git a/source/geometry/biasing/include/G4GeometryCellStep.hh b/source/geometry/biasing/include/G4GeometryCellStep.hh index f1f9ba5648..29276e7d1c 100644 --- a/source/geometry/biasing/include/G4GeometryCellStep.hh +++ b/source/geometry/biasing/include/G4GeometryCellStep.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellStep.hh,v 1.1 2002/10/22 13:18:44 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellStep diff --git a/source/geometry/biasing/include/G4GeometryCellStepStream.hh b/source/geometry/biasing/include/G4GeometryCellStepStream.hh index 947250e82c..bb33b891c7 100644 --- a/source/geometry/biasing/include/G4GeometryCellStepStream.hh +++ b/source/geometry/biasing/include/G4GeometryCellStepStream.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellStepStream.hh,v 1.2 2003/06/16 16:51:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Declarations diff --git a/source/geometry/biasing/include/G4GeometryCellWeight.hh b/source/geometry/biasing/include/G4GeometryCellWeight.hh index e7504e3f6b..9de3ea3b6f 100644 --- a/source/geometry/biasing/include/G4GeometryCellWeight.hh +++ b/source/geometry/biasing/include/G4GeometryCellWeight.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellWeight.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellWeight diff --git a/source/geometry/biasing/include/G4IStore.hh b/source/geometry/biasing/include/G4IStore.hh index fe2692ba56..bab7b7e712 100644 --- a/source/geometry/biasing/include/G4IStore.hh +++ b/source/geometry/biasing/include/G4IStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4IStore.hh,v 1.9 2002/10/22 13:18:44 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4IStore diff --git a/source/geometry/biasing/include/G4ImportanceAlgorithm.hh b/source/geometry/biasing/include/G4ImportanceAlgorithm.hh index a855315cff..a813a0a665 100644 --- a/source/geometry/biasing/include/G4ImportanceAlgorithm.hh +++ b/source/geometry/biasing/include/G4ImportanceAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4ImportanceAlgorithm.hh,v 1.6 2002/10/14 12:36:00 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ImportanceAlgorithm diff --git a/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh b/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh index 6d02a211a7..2d796aa6af 100644 --- a/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh +++ b/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh @@ -22,7 +22,7 @@ // // // $Id: G4ImportanceSplitExaminer.hh,v 1.7 2003/08/19 16:38:45 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ImportanceSplitExaminer diff --git a/source/geometry/biasing/include/G4Nsplit_Weight.hh b/source/geometry/biasing/include/G4Nsplit_Weight.hh index dd3ec1388e..12e1d2de16 100644 --- a/source/geometry/biasing/include/G4Nsplit_Weight.hh +++ b/source/geometry/biasing/include/G4Nsplit_Weight.hh @@ -22,7 +22,7 @@ // // // $Id: G4Nsplit_Weight.hh,v 1.10 2003/06/16 16:51:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Nsplit_Weight diff --git a/source/geometry/biasing/include/G4ParallelNavigator.hh b/source/geometry/biasing/include/G4ParallelNavigator.hh index 487dc52249..724747c9c1 100644 --- a/source/geometry/biasing/include/G4ParallelNavigator.hh +++ b/source/geometry/biasing/include/G4ParallelNavigator.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelNavigator.hh,v 1.9 2002/10/14 12:36:00 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ParallelNavigator diff --git a/source/geometry/biasing/include/G4ParallelStepper.hh b/source/geometry/biasing/include/G4ParallelStepper.hh index 2349eebe9c..c9608bba2f 100644 --- a/source/geometry/biasing/include/G4ParallelStepper.hh +++ b/source/geometry/biasing/include/G4ParallelStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelStepper.hh,v 1.6 2002/10/22 13:18:45 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ParallelStepper diff --git a/source/geometry/biasing/include/G4ParallelWorld.hh b/source/geometry/biasing/include/G4ParallelWorld.hh index f48717917c..2c3b9a5402 100644 --- a/source/geometry/biasing/include/G4ParallelWorld.hh +++ b/source/geometry/biasing/include/G4ParallelWorld.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelWorld.hh,v 1.6 2002/10/14 12:36:00 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ParallelWorld diff --git a/source/geometry/biasing/include/G4VCellScorer.hh b/source/geometry/biasing/include/G4VCellScorer.hh index ae327565f3..8891d62670 100644 --- a/source/geometry/biasing/include/G4VCellScorer.hh +++ b/source/geometry/biasing/include/G4VCellScorer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCellScorer.hh,v 1.6 2002/10/28 09:53:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VCellScorer diff --git a/source/geometry/biasing/include/G4VCellScorerStore.hh b/source/geometry/biasing/include/G4VCellScorerStore.hh index f5d3a23af6..12cf81facc 100644 --- a/source/geometry/biasing/include/G4VCellScorerStore.hh +++ b/source/geometry/biasing/include/G4VCellScorerStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCellScorerStore.hh,v 1.6 2002/10/28 09:53:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VCellScorerStore diff --git a/source/geometry/biasing/include/G4VGCellFinder.hh b/source/geometry/biasing/include/G4VGCellFinder.hh index d1bcea9016..8159efe701 100644 --- a/source/geometry/biasing/include/G4VGCellFinder.hh +++ b/source/geometry/biasing/include/G4VGCellFinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGCellFinder.hh,v 1.1 2002/10/16 14:30:00 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VGCellFinder diff --git a/source/geometry/biasing/include/G4VIStore.hh b/source/geometry/biasing/include/G4VIStore.hh index 16e1b390b2..8fef35df71 100644 --- a/source/geometry/biasing/include/G4VIStore.hh +++ b/source/geometry/biasing/include/G4VIStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4VIStore.hh,v 1.8 2002/10/14 12:36:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VIStore diff --git a/source/geometry/biasing/include/G4VImportanceAlgorithm.hh b/source/geometry/biasing/include/G4VImportanceAlgorithm.hh index 50cc7066c3..e626012039 100644 --- a/source/geometry/biasing/include/G4VImportanceAlgorithm.hh +++ b/source/geometry/biasing/include/G4VImportanceAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4VImportanceAlgorithm.hh,v 1.7 2002/10/14 12:36:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VImportanceAlgorithm diff --git a/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh b/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh index 7a73c7838b..143812ca90 100644 --- a/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh +++ b/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VImportanceSplitExaminer.hh,v 1.4 2002/10/14 12:36:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VImportanceSplitExaminer diff --git a/source/geometry/biasing/include/G4VPGeoDriver.hh b/source/geometry/biasing/include/G4VPGeoDriver.hh index 05310c2649..80ac3c1d5a 100644 --- a/source/geometry/biasing/include/G4VPGeoDriver.hh +++ b/source/geometry/biasing/include/G4VPGeoDriver.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPGeoDriver.hh,v 1.6 2002/10/14 12:36:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VPGeoDriver diff --git a/source/geometry/biasing/include/G4VParallelStepper.hh b/source/geometry/biasing/include/G4VParallelStepper.hh index a7f90a0148..27633945ef 100644 --- a/source/geometry/biasing/include/G4VParallelStepper.hh +++ b/source/geometry/biasing/include/G4VParallelStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4VParallelStepper.hh,v 1.7 2002/10/22 13:18:46 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VParallelStepper diff --git a/source/geometry/biasing/include/G4VScorer.hh b/source/geometry/biasing/include/G4VScorer.hh index e4ad73cf0b..2c8acb95d5 100644 --- a/source/geometry/biasing/include/G4VScorer.hh +++ b/source/geometry/biasing/include/G4VScorer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VScorer.hh,v 1.1 2002/10/28 09:53:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VScorer diff --git a/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh b/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh index d54395f480..58b5604be9 100644 --- a/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh +++ b/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowAlgorithm.hh,v 1.7 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VWeightWindowAlgorithm diff --git a/source/geometry/biasing/include/G4VWeightWindowExaminer.hh b/source/geometry/biasing/include/G4VWeightWindowExaminer.hh index 3308c4717e..c99bc4abed 100644 --- a/source/geometry/biasing/include/G4VWeightWindowExaminer.hh +++ b/source/geometry/biasing/include/G4VWeightWindowExaminer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowExaminer.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VWeightWindowExaminer diff --git a/source/geometry/biasing/include/G4VWeightWindowStore.hh b/source/geometry/biasing/include/G4VWeightWindowStore.hh index aa49db3f70..d5a32dabab 100644 --- a/source/geometry/biasing/include/G4VWeightWindowStore.hh +++ b/source/geometry/biasing/include/G4VWeightWindowStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowStore.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4VWeightWindowStore diff --git a/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh b/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh index 0b08b76956..5484133507 100644 --- a/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh +++ b/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowAlgorithm.hh,v 1.6 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4WeightWindowAlgorithm diff --git a/source/geometry/biasing/include/G4WeightWindowExaminer.hh b/source/geometry/biasing/include/G4WeightWindowExaminer.hh index 98e3b44e3a..b250e5123b 100644 --- a/source/geometry/biasing/include/G4WeightWindowExaminer.hh +++ b/source/geometry/biasing/include/G4WeightWindowExaminer.hh @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowExaminer.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4WeightWindowExaminer diff --git a/source/geometry/biasing/include/G4WeightWindowStore.hh b/source/geometry/biasing/include/G4WeightWindowStore.hh index 72bdb07d15..7e76d6bbeb 100644 --- a/source/geometry/biasing/include/G4WeightWindowStore.hh +++ b/source/geometry/biasing/include/G4WeightWindowStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowStore.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4WeightWindowStore diff --git a/source/geometry/biasing/src/G4GeometryCell.cc b/source/geometry/biasing/src/G4GeometryCell.cc index da35660b72..a4b4506a86 100644 --- a/source/geometry/biasing/src/G4GeometryCell.cc +++ b/source/geometry/biasing/src/G4GeometryCell.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCell.cc,v 1.5 2002/10/22 13:18:46 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellComp.cc b/source/geometry/biasing/src/G4GeometryCellComp.cc index 467dc87e7b..38d7346661 100644 --- a/source/geometry/biasing/src/G4GeometryCellComp.cc +++ b/source/geometry/biasing/src/G4GeometryCellComp.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4GeometryCellComp.cc,v 1.3 2002/12/13 11:54:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellImportance.cc b/source/geometry/biasing/src/G4GeometryCellImportance.cc index d33772a25a..1821bbdf6c 100644 --- a/source/geometry/biasing/src/G4GeometryCellImportance.cc +++ b/source/geometry/biasing/src/G4GeometryCellImportance.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellImportance.cc,v 1.4 2003/06/16 16:51:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellStep.cc b/source/geometry/biasing/src/G4GeometryCellStep.cc index 6109b3df1d..3d0f2fa3a0 100644 --- a/source/geometry/biasing/src/G4GeometryCellStep.cc +++ b/source/geometry/biasing/src/G4GeometryCellStep.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellStep.cc,v 1.1 2002/10/22 13:18:46 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellStepStream.cc b/source/geometry/biasing/src/G4GeometryCellStepStream.cc index 42a2176f2e..98b0cc90f8 100644 --- a/source/geometry/biasing/src/G4GeometryCellStepStream.cc +++ b/source/geometry/biasing/src/G4GeometryCellStepStream.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellStepStream.cc,v 1.2 2003/06/16 16:51:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4IStore.cc b/source/geometry/biasing/src/G4IStore.cc index 5e2cd426c8..2324f24584 100644 --- a/source/geometry/biasing/src/G4IStore.cc +++ b/source/geometry/biasing/src/G4IStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4IStore.cc,v 1.13 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4ImportanceAlgorithm.cc b/source/geometry/biasing/src/G4ImportanceAlgorithm.cc index 3704693530..87e9c7b385 100644 --- a/source/geometry/biasing/src/G4ImportanceAlgorithm.cc +++ b/source/geometry/biasing/src/G4ImportanceAlgorithm.cc @@ -22,7 +22,7 @@ // // // $Id: G4ImportanceAlgorithm.cc,v 1.12 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc b/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc index af8f2a59c3..d634901f17 100644 --- a/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc +++ b/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc @@ -22,7 +22,7 @@ // // // $Id: G4ImportanceSplitExaminer.cc,v 1.7 2003/08/19 16:38:47 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4Nsplit_Weight.cc b/source/geometry/biasing/src/G4Nsplit_Weight.cc index 216357e478..15baf6b1b4 100644 --- a/source/geometry/biasing/src/G4Nsplit_Weight.cc +++ b/source/geometry/biasing/src/G4Nsplit_Weight.cc @@ -22,7 +22,7 @@ // // // $Id: G4Nsplit_Weight.cc,v 1.9 2003/06/16 16:51:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4ParallelNavigator.cc b/source/geometry/biasing/src/G4ParallelNavigator.cc index 21a8c0ec7c..c575a04deb 100644 --- a/source/geometry/biasing/src/G4ParallelNavigator.cc +++ b/source/geometry/biasing/src/G4ParallelNavigator.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParallelNavigator.cc,v 1.18 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4ParallelStepper.cc b/source/geometry/biasing/src/G4ParallelStepper.cc index e9cda8dca0..1c918b9d2a 100644 --- a/source/geometry/biasing/src/G4ParallelStepper.cc +++ b/source/geometry/biasing/src/G4ParallelStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParallelStepper.cc,v 1.11 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4ParallelWorld.cc b/source/geometry/biasing/src/G4ParallelWorld.cc index 0cca2d46e8..a1545430c9 100644 --- a/source/geometry/biasing/src/G4ParallelWorld.cc +++ b/source/geometry/biasing/src/G4ParallelWorld.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParallelWorld.cc,v 1.7 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VCellScorer.cc b/source/geometry/biasing/src/G4VCellScorer.cc index e0e5de5d6c..040a92b868 100644 --- a/source/geometry/biasing/src/G4VCellScorer.cc +++ b/source/geometry/biasing/src/G4VCellScorer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VCellScorer.cc,v 1.5 2002/12/13 11:54:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VCellScorerStore.cc b/source/geometry/biasing/src/G4VCellScorerStore.cc index ce092f64b0..70bc1c3955 100644 --- a/source/geometry/biasing/src/G4VCellScorerStore.cc +++ b/source/geometry/biasing/src/G4VCellScorerStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4VCellScorerStore.cc,v 1.3 2002/10/28 09:53:51 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VGCellFinder.cc b/source/geometry/biasing/src/G4VGCellFinder.cc index 667a6e2dce..669bf80dc7 100644 --- a/source/geometry/biasing/src/G4VGCellFinder.cc +++ b/source/geometry/biasing/src/G4VGCellFinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4VGCellFinder.cc,v 1.1 2002/10/16 14:30:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VIStore.cc b/source/geometry/biasing/src/G4VIStore.cc index cabe6f09d1..2d7c8b37e2 100644 --- a/source/geometry/biasing/src/G4VIStore.cc +++ b/source/geometry/biasing/src/G4VIStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4VIStore.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VImportanceAlgorithm.cc b/source/geometry/biasing/src/G4VImportanceAlgorithm.cc index 4f1dbfff79..74a02600b1 100644 --- a/source/geometry/biasing/src/G4VImportanceAlgorithm.cc +++ b/source/geometry/biasing/src/G4VImportanceAlgorithm.cc @@ -22,7 +22,7 @@ // // // $Id: G4VImportanceAlgorithm.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc b/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc index f69be71c1b..de3f680eff 100644 --- a/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc +++ b/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VImportanceSplitExaminer.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VPGeoDriver.cc b/source/geometry/biasing/src/G4VPGeoDriver.cc index f911623bd2..ac0e7133c5 100644 --- a/source/geometry/biasing/src/G4VPGeoDriver.cc +++ b/source/geometry/biasing/src/G4VPGeoDriver.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPGeoDriver.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VParallelStepper.cc b/source/geometry/biasing/src/G4VParallelStepper.cc index 9d1ad979ed..9e759e8800 100644 --- a/source/geometry/biasing/src/G4VParallelStepper.cc +++ b/source/geometry/biasing/src/G4VParallelStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4VParallelStepper.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VScorer.cc b/source/geometry/biasing/src/G4VScorer.cc index 09a8093e35..78d042d27e 100644 --- a/source/geometry/biasing/src/G4VScorer.cc +++ b/source/geometry/biasing/src/G4VScorer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VScorer.cc,v 1.1 2002/10/28 09:53:51 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc b/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc index 82d1860fd8..eb1a01b6da 100644 --- a/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc +++ b/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowAlgorithm.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VWeightWindowExaminer.cc b/source/geometry/biasing/src/G4VWeightWindowExaminer.cc index b12e62b9db..65b7ebaf16 100644 --- a/source/geometry/biasing/src/G4VWeightWindowExaminer.cc +++ b/source/geometry/biasing/src/G4VWeightWindowExaminer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowExaminer.cc,v 1.1 2003/08/19 15:17:26 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VWeightWindowStore.cc b/source/geometry/biasing/src/G4VWeightWindowStore.cc index 6396a53586..0d9d59d2ff 100644 --- a/source/geometry/biasing/src/G4VWeightWindowStore.cc +++ b/source/geometry/biasing/src/G4VWeightWindowStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowStore.cc,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc b/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc index 2d0034602d..15a1706170 100644 --- a/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc +++ b/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowAlgorithm.cc,v 1.7 2003/08/19 15:16:56 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4WeightWindowExaminer.cc b/source/geometry/biasing/src/G4WeightWindowExaminer.cc index a477c860ef..f4260173f6 100644 --- a/source/geometry/biasing/src/G4WeightWindowExaminer.cc +++ b/source/geometry/biasing/src/G4WeightWindowExaminer.cc @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowExaminer.cc,v 1.1 2003/08/19 15:17:26 dressel Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4WeightWindowStore.cc b/source/geometry/biasing/src/G4WeightWindowStore.cc index 6f6ca26778..86a584204e 100644 --- a/source/geometry/biasing/src/G4WeightWindowStore.cc +++ b/source/geometry/biasing/src/G4WeightWindowStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowStore.cc,v 1.4 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/divisions/History b/source/geometry/divisions/History index b73fa30f2a..b18afcd50e 100644 --- a/source/geometry/divisions/History +++ b/source/geometry/divisions/History @@ -1,4 +1,4 @@ -$Id: History,v 1.15 2004/12/02 09:33:09 gcosmo Exp $ +$Id: History,v 1.16 2005/06/06 09:53:24 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +June 6th, 2005 G.Cosmo (geomdiv-V07-00-00) +- Fixed compilation problems on unit test. + December 2nd, 2004 G.Cosmo (geomdiv-V06-02-02) - Implemented migration to for standard mathematical functions. diff --git a/source/geometry/divisions/include/G4PVDivision.hh b/source/geometry/divisions/include/G4PVDivision.hh index 01fcd2409c..7471fa326d 100644 --- a/source/geometry/divisions/include/G4PVDivision.hh +++ b/source/geometry/divisions/include/G4PVDivision.hh @@ -22,7 +22,7 @@ // // // $Id: G4PVDivision.hh,v 1.8 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4PVDivision // diff --git a/source/geometry/divisions/include/G4PVDivisionFactory.hh b/source/geometry/divisions/include/G4PVDivisionFactory.hh index 2f163c438c..f4727e65ab 100644 --- a/source/geometry/divisions/include/G4PVDivisionFactory.hh +++ b/source/geometry/divisions/include/G4PVDivisionFactory.hh @@ -22,7 +22,7 @@ // // // $Id: G4PVDivisionFactory.hh,v 1.1 2004/05/13 14:56:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4PVDivisionFactory diff --git a/source/geometry/divisions/include/G4ParameterisationBox.hh b/source/geometry/divisions/include/G4ParameterisationBox.hh index b9c234a4ab..07a5e7e75b 100644 --- a/source/geometry/divisions/include/G4ParameterisationBox.hh +++ b/source/geometry/divisions/include/G4ParameterisationBox.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationBox.hh,v 1.5 2004/07/15 14:25:01 stesting Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // classes G4ParameterisationBoxX, // G4ParameterisationBoxY, diff --git a/source/geometry/divisions/include/G4ParameterisationCons.hh b/source/geometry/divisions/include/G4ParameterisationCons.hh index 0b4da4e29e..9a5d86dbba 100644 --- a/source/geometry/divisions/include/G4ParameterisationCons.hh +++ b/source/geometry/divisions/include/G4ParameterisationCons.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationCons.hh,v 1.5 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // classes G4ParameterisationConsRho, // G4ParameterisationConsPhi, diff --git a/source/geometry/divisions/include/G4ParameterisationPara.hh b/source/geometry/divisions/include/G4ParameterisationPara.hh index db158d30ae..a5787f7850 100644 --- a/source/geometry/divisions/include/G4ParameterisationPara.hh +++ b/source/geometry/divisions/include/G4ParameterisationPara.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationPara.hh,v 1.6 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // classes G4ParameterisationParaX, // G4ParameterisationParaY, diff --git a/source/geometry/divisions/include/G4ParameterisationPolycone.hh b/source/geometry/divisions/include/G4ParameterisationPolycone.hh index f4c82bc52a..ac6e67e8e1 100644 --- a/source/geometry/divisions/include/G4ParameterisationPolycone.hh +++ b/source/geometry/divisions/include/G4ParameterisationPolycone.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationPolycone.hh,v 1.6 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // classes G4ParameterisationPolyconeRho, // G4ParameterisationPolyconePhi, diff --git a/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh b/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh index 841cfbf206..078ddd2d4d 100644 --- a/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh +++ b/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationPolyhedra.hh,v 1.7 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // classes G4ParameterisationPolyhedraRho, // G4ParameterisationPolyhedraPhi, diff --git a/source/geometry/divisions/include/G4ParameterisationTrd.hh b/source/geometry/divisions/include/G4ParameterisationTrd.hh index 58c9d019ce..9f66151036 100644 --- a/source/geometry/divisions/include/G4ParameterisationTrd.hh +++ b/source/geometry/divisions/include/G4ParameterisationTrd.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationTrd.hh,v 1.6 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // classes G4ParameterisationTrdX // G4ParameterisationTrdY diff --git a/source/geometry/divisions/include/G4ParameterisationTubs.hh b/source/geometry/divisions/include/G4ParameterisationTubs.hh index 7db4ead148..27eacba051 100644 --- a/source/geometry/divisions/include/G4ParameterisationTubs.hh +++ b/source/geometry/divisions/include/G4ParameterisationTubs.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationTubs.hh,v 1.5 2004/05/13 14:57:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // classes G4ParameterisationTubsRho // G4ParameterisationTubsPhi diff --git a/source/geometry/divisions/include/G4VDivisionParameterisation.hh b/source/geometry/divisions/include/G4VDivisionParameterisation.hh index 7219c571c0..05ccd3c439 100644 --- a/source/geometry/divisions/include/G4VDivisionParameterisation.hh +++ b/source/geometry/divisions/include/G4VDivisionParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDivisionParameterisation.hh,v 1.9 2004/07/15 14:25:01 stesting Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4VDivisionParameterisation // diff --git a/source/geometry/divisions/include/G4VDivisionParameterisation.icc b/source/geometry/divisions/include/G4VDivisionParameterisation.icc index 76404e3695..6f1a722b21 100644 --- a/source/geometry/divisions/include/G4VDivisionParameterisation.icc +++ b/source/geometry/divisions/include/G4VDivisionParameterisation.icc @@ -22,7 +22,7 @@ // // // $Id: G4VDivisionParameterisation.icc,v 1.3 2004/05/13 14:57:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4VDivisionParameterisation Inline Implementation file // diff --git a/source/geometry/divisions/src/G4PVDivision.cc b/source/geometry/divisions/src/G4PVDivision.cc index 88a527c3f5..adcace0a2f 100644 --- a/source/geometry/divisions/src/G4PVDivision.cc +++ b/source/geometry/divisions/src/G4PVDivision.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVDivision.cc,v 1.12 2004/08/26 07:58:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4PVDivision Implementation file // diff --git a/source/geometry/divisions/src/G4PVDivisionFactory.cc b/source/geometry/divisions/src/G4PVDivisionFactory.cc index d309d253f7..3e773fa5c6 100644 --- a/source/geometry/divisions/src/G4PVDivisionFactory.cc +++ b/source/geometry/divisions/src/G4PVDivisionFactory.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVDivisionFactory.cc,v 1.1 2004/05/13 14:56:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4PVDivisionFactory Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationBox.cc b/source/geometry/divisions/src/G4ParameterisationBox.cc index 204ab50bf7..b77e800237 100644 --- a/source/geometry/divisions/src/G4ParameterisationBox.cc +++ b/source/geometry/divisions/src/G4ParameterisationBox.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationBox.cc,v 1.7 2004/05/17 07:20:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4ParameterisationBox Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationCons.cc b/source/geometry/divisions/src/G4ParameterisationCons.cc index f7b2bb9c7c..7e66858211 100644 --- a/source/geometry/divisions/src/G4ParameterisationCons.cc +++ b/source/geometry/divisions/src/G4ParameterisationCons.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationCons.cc,v 1.8 2004/05/17 07:20:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4ParameterisationCons Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationPara.cc b/source/geometry/divisions/src/G4ParameterisationPara.cc index 4fbd3628dd..8dd3c45f03 100644 --- a/source/geometry/divisions/src/G4ParameterisationPara.cc +++ b/source/geometry/divisions/src/G4ParameterisationPara.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationPara.cc,v 1.10 2004/12/10 16:20:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4ParameterisationPara Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationPolycone.cc b/source/geometry/divisions/src/G4ParameterisationPolycone.cc index c987710772..f964657993 100644 --- a/source/geometry/divisions/src/G4ParameterisationPolycone.cc +++ b/source/geometry/divisions/src/G4ParameterisationPolycone.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationPolycone.cc,v 1.10 2004/12/02 09:31:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4ParameterisationPolycone Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc b/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc index 8f0a1636da..f166aefb50 100644 --- a/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc +++ b/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationPolyhedra.cc,v 1.10 2004/12/10 16:20:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4ParameterisationPolyhedra Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationTrd.cc b/source/geometry/divisions/src/G4ParameterisationTrd.cc index 88ac936066..5c137a799c 100644 --- a/source/geometry/divisions/src/G4ParameterisationTrd.cc +++ b/source/geometry/divisions/src/G4ParameterisationTrd.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationTrd.cc,v 1.11 2004/12/02 09:31:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4ParameterisationTrd Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationTubs.cc b/source/geometry/divisions/src/G4ParameterisationTubs.cc index ac658125cd..546f97f1cc 100644 --- a/source/geometry/divisions/src/G4ParameterisationTubs.cc +++ b/source/geometry/divisions/src/G4ParameterisationTubs.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationTubs.cc,v 1.7 2004/05/17 07:20:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4ParameterisationTubs Implementation file // diff --git a/source/geometry/divisions/src/G4VDivisionParameterisation.cc b/source/geometry/divisions/src/G4VDivisionParameterisation.cc index 749b002a08..7dd11774fa 100644 --- a/source/geometry/divisions/src/G4VDivisionParameterisation.cc +++ b/source/geometry/divisions/src/G4VDivisionParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDivisionParameterisation.cc,v 1.10 2004/05/17 07:20:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4VDivisionParameterisation Implementation file // diff --git a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh index 96dfa3563c..98c68de793 100644 --- a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh +++ b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh @@ -22,7 +22,7 @@ // // // $Id: G4CashKarpRKF45.hh,v 1.9 2003/10/31 14:35:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4CashKarpRKF45 diff --git a/source/geometry/magneticfield/include/G4ChordFinder.hh b/source/geometry/magneticfield/include/G4ChordFinder.hh index de6634777c..11e2087437 100644 --- a/source/geometry/magneticfield/include/G4ChordFinder.hh +++ b/source/geometry/magneticfield/include/G4ChordFinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4ChordFinder.hh,v 1.16 2003/11/13 17:53:47 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ChordFinder diff --git a/source/geometry/magneticfield/include/G4ChordFinder.icc b/source/geometry/magneticfield/include/G4ChordFinder.icc index 33dc4734ba..7eabbc8cce 100644 --- a/source/geometry/magneticfield/include/G4ChordFinder.icc +++ b/source/geometry/magneticfield/include/G4ChordFinder.icc @@ -22,7 +22,7 @@ // // // $Id: G4ChordFinder.icc,v 1.11 2003/11/13 18:04:48 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4ChordFinder inline implementations // diff --git a/source/geometry/magneticfield/include/G4ChordFinderSaf.hh b/source/geometry/magneticfield/include/G4ChordFinderSaf.hh index 81bfe27d98..5434b3b9b2 100644 --- a/source/geometry/magneticfield/include/G4ChordFinderSaf.hh +++ b/source/geometry/magneticfield/include/G4ChordFinderSaf.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ChordFinderSaf.hh,v 1.2 2003/12/09 15:35:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ChordFinderRad diff --git a/source/geometry/magneticfield/include/G4ClassicalRK4.hh b/source/geometry/magneticfield/include/G4ClassicalRK4.hh index a861569529..f10ca8908c 100644 --- a/source/geometry/magneticfield/include/G4ClassicalRK4.hh +++ b/source/geometry/magneticfield/include/G4ClassicalRK4.hh @@ -22,7 +22,7 @@ // // // $Id: G4ClassicalRK4.hh,v 1.9 2003/11/05 16:30:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ClassicalRK4 diff --git a/source/geometry/magneticfield/include/G4DELPHIMagField.hh b/source/geometry/magneticfield/include/G4DELPHIMagField.hh index 87b0037851..f58a40db83 100644 --- a/source/geometry/magneticfield/include/G4DELPHIMagField.hh +++ b/source/geometry/magneticfield/include/G4DELPHIMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4DELPHIMagField.hh,v 1.3 2003/10/31 14:35:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4DELPHIMagField diff --git a/source/geometry/magneticfield/include/G4ElectricField.hh b/source/geometry/magneticfield/include/G4ElectricField.hh index 6ca77b34ba..6691b2a307 100644 --- a/source/geometry/magneticfield/include/G4ElectricField.hh +++ b/source/geometry/magneticfield/include/G4ElectricField.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElectricField.hh,v 1.1 2003/11/05 10:35:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ElectricField diff --git a/source/geometry/magneticfield/include/G4ElectroMagneticField.hh b/source/geometry/magneticfield/include/G4ElectroMagneticField.hh index 71b8ff5812..aa7546963d 100644 --- a/source/geometry/magneticfield/include/G4ElectroMagneticField.hh +++ b/source/geometry/magneticfield/include/G4ElectroMagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElectroMagneticField.hh,v 1.10 2004/09/01 10:00:10 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ElectroMagneticField diff --git a/source/geometry/magneticfield/include/G4EqMagElectricField.hh b/source/geometry/magneticfield/include/G4EqMagElectricField.hh index feac73e3f3..fd14a84945 100644 --- a/source/geometry/magneticfield/include/G4EqMagElectricField.hh +++ b/source/geometry/magneticfield/include/G4EqMagElectricField.hh @@ -22,7 +22,7 @@ // // // $Id: G4EqMagElectricField.hh,v 1.8 2003/11/05 12:46:39 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4EqMagElectricField diff --git a/source/geometry/magneticfield/include/G4EquationOfMotion.hh b/source/geometry/magneticfield/include/G4EquationOfMotion.hh index 4dcce801c7..13207275d1 100644 --- a/source/geometry/magneticfield/include/G4EquationOfMotion.hh +++ b/source/geometry/magneticfield/include/G4EquationOfMotion.hh @@ -22,7 +22,7 @@ // // // $Id: G4EquationOfMotion.hh,v 1.9 2003/11/05 12:48:45 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4EquationOfMotion diff --git a/source/geometry/magneticfield/include/G4EquationOfMotion.icc b/source/geometry/magneticfield/include/G4EquationOfMotion.icc index 9207693f36..7f07afa6af 100644 --- a/source/geometry/magneticfield/include/G4EquationOfMotion.icc +++ b/source/geometry/magneticfield/include/G4EquationOfMotion.icc @@ -22,7 +22,7 @@ // // // $Id: G4EquationOfMotion.icc,v 1.8 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Inline implementation diff --git a/source/geometry/magneticfield/include/G4ExplicitEuler.hh b/source/geometry/magneticfield/include/G4ExplicitEuler.hh index 25ed2d2c4f..a8340ad2c9 100644 --- a/source/geometry/magneticfield/include/G4ExplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4ExplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExplicitEuler.hh,v 1.8 2003/11/05 16:30:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ExplicitEuler diff --git a/source/geometry/magneticfield/include/G4Field.hh b/source/geometry/magneticfield/include/G4Field.hh index ca91e07e3d..18fa0b09de 100644 --- a/source/geometry/magneticfield/include/G4Field.hh +++ b/source/geometry/magneticfield/include/G4Field.hh @@ -22,7 +22,7 @@ // // // $Id: G4Field.hh,v 1.9 2004/09/01 09:59:06 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4Field diff --git a/source/geometry/magneticfield/include/G4FieldManager.hh b/source/geometry/magneticfield/include/G4FieldManager.hh index f47b28211e..6e75e22460 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.hh +++ b/source/geometry/magneticfield/include/G4FieldManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4FieldManager.hh,v 1.14 2003/12/09 14:44:59 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4FieldManager diff --git a/source/geometry/magneticfield/include/G4FieldManager.icc b/source/geometry/magneticfield/include/G4FieldManager.icc index 22199c9e15..1af5cc70dc 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.icc +++ b/source/geometry/magneticfield/include/G4FieldManager.icc @@ -22,7 +22,7 @@ // // // $Id: G4FieldManager.icc,v 1.10 2004/12/02 09:55:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4FieldManager inline implementation diff --git a/source/geometry/magneticfield/include/G4FieldTrack.hh b/source/geometry/magneticfield/include/G4FieldTrack.hh index 4141c05f6a..21c72cd20a 100644 --- a/source/geometry/magneticfield/include/G4FieldTrack.hh +++ b/source/geometry/magneticfield/include/G4FieldTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4FieldTrack.hh,v 1.10 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4FieldTrack diff --git a/source/geometry/magneticfield/include/G4FieldTrack.icc b/source/geometry/magneticfield/include/G4FieldTrack.icc index 31a9a1f49e..2e82e56e94 100644 --- a/source/geometry/magneticfield/include/G4FieldTrack.icc +++ b/source/geometry/magneticfield/include/G4FieldTrack.icc @@ -22,7 +22,7 @@ // // // $Id: G4FieldTrack.icc,v 1.12.2.1 2004/12/02 09:55:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh b/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh index 1b7b086262..3dc9b490f6 100644 --- a/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh +++ b/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4HarmonicPolMagField.hh,v 1.3 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4HarmonicPolMagField // diff --git a/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh b/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh index a90667b0ba..24488079c5 100644 --- a/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixExplicitEuler.hh,v 1.7 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4HelixExplicitEuler diff --git a/source/geometry/magneticfield/include/G4HelixHeum.hh b/source/geometry/magneticfield/include/G4HelixHeum.hh index 38133c2129..28c47e40b1 100644 --- a/source/geometry/magneticfield/include/G4HelixHeum.hh +++ b/source/geometry/magneticfield/include/G4HelixHeum.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixHeum.hh,v 1.7 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4HelixHeum diff --git a/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh b/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh index 2cb561245b..611e62f080 100644 --- a/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixImplicitEuler.hh,v 1.7 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4HelixImplicitEuler diff --git a/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh b/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh index ccd1ced5b0..7c2a620e6a 100644 --- a/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh +++ b/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixSimpleRunge.hh,v 1.6 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4HelixSimpleRunge diff --git a/source/geometry/magneticfield/include/G4ImplicitEuler.hh b/source/geometry/magneticfield/include/G4ImplicitEuler.hh index 00ee464ca6..54ce557fd1 100644 --- a/source/geometry/magneticfield/include/G4ImplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4ImplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ImplicitEuler.hh,v 1.7 2003/11/05 16:30:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ImplicitEuler diff --git a/source/geometry/magneticfield/include/G4LineCurrentMagField.hh b/source/geometry/magneticfield/include/G4LineCurrentMagField.hh index 8c4438f086..4eda6ca984 100644 --- a/source/geometry/magneticfield/include/G4LineCurrentMagField.hh +++ b/source/geometry/magneticfield/include/G4LineCurrentMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4LineCurrentMagField.hh,v 1.3 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4LineCurrentMagField diff --git a/source/geometry/magneticfield/include/G4LineSection.hh b/source/geometry/magneticfield/include/G4LineSection.hh index 86171e29bc..e09105b9f1 100644 --- a/source/geometry/magneticfield/include/G4LineSection.hh +++ b/source/geometry/magneticfield/include/G4LineSection.hh @@ -22,7 +22,7 @@ // // // $Id: G4LineSection.hh,v 1.8 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4LineSection diff --git a/source/geometry/magneticfield/include/G4MagErrorStepper.hh b/source/geometry/magneticfield/include/G4MagErrorStepper.hh index 8d20fa2296..10a5aa9e9b 100644 --- a/source/geometry/magneticfield/include/G4MagErrorStepper.hh +++ b/source/geometry/magneticfield/include/G4MagErrorStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagErrorStepper.hh,v 1.10 2003/11/05 12:50:00 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4MagErrorStepper diff --git a/source/geometry/magneticfield/include/G4MagErrorStepper.icc b/source/geometry/magneticfield/include/G4MagErrorStepper.icc index 0945580168..d15d4ba9e4 100644 --- a/source/geometry/magneticfield/include/G4MagErrorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagErrorStepper.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagErrorStepper.icc,v 1.12 2003/11/05 12:50:36 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/include/G4MagHelicalStepper.hh b/source/geometry/magneticfield/include/G4MagHelicalStepper.hh index b850de9d50..65a7739e22 100644 --- a/source/geometry/magneticfield/include/G4MagHelicalStepper.hh +++ b/source/geometry/magneticfield/include/G4MagHelicalStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagHelicalStepper.hh,v 1.8 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4MagHelicalStepper diff --git a/source/geometry/magneticfield/include/G4MagHelicalStepper.icc b/source/geometry/magneticfield/include/G4MagHelicalStepper.icc index be0b0d2edd..e2586b4d5e 100644 --- a/source/geometry/magneticfield/include/G4MagHelicalStepper.icc +++ b/source/geometry/magneticfield/include/G4MagHelicalStepper.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagHelicalStepper.icc,v 1.9 2004/12/02 09:55:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Linear Step in regions of no field // diff --git a/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh b/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh index 53a2417ced..099f4d32f0 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorDriver.hh,v 1.16 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4MagInt_Driver diff --git a/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc b/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc index a34842370d..3f84f753a1 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc +++ b/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorDriver.icc,v 1.10 2004/12/02 09:55:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh index 3e17ed194a..7e82493cb7 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorStepper.hh,v 1.10 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4MagIntegratorStepper diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc index 27936f3241..5506d95f2d 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorStepper.icc,v 1.8 2004/12/02 09:55:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // inline diff --git a/source/geometry/magneticfield/include/G4Mag_EqRhs.hh b/source/geometry/magneticfield/include/G4Mag_EqRhs.hh index 9be809866e..9f34e38b86 100644 --- a/source/geometry/magneticfield/include/G4Mag_EqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_EqRhs.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mag_EqRhs.hh,v 1.8 2003/11/05 12:54:13 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4Mag_EqRhs diff --git a/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh b/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh index c275cd58d4..e12ff5538b 100644 --- a/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mag_SpinEqRhs.hh,v 1.10 2004/10/20 23:28:00 gum Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4Mag_SpinEqRhs diff --git a/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh b/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh index f79aaaea0e..daf2b9a195 100644 --- a/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mag_UsualEqRhs.hh,v 1.6 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4Mag_UsualEqRhs diff --git a/source/geometry/magneticfield/include/G4MagneticField.hh b/source/geometry/magneticfield/include/G4MagneticField.hh index a0814ba17a..8b33c80998 100644 --- a/source/geometry/magneticfield/include/G4MagneticField.hh +++ b/source/geometry/magneticfield/include/G4MagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagneticField.hh,v 1.13 2003/11/05 10:35:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4MagneticField diff --git a/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh b/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh index 408b06fc0b..5752a26d3e 100644 --- a/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh +++ b/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4QuadrupoleMagField.hh,v 1.3 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4QuadrupoleMagField diff --git a/source/geometry/magneticfield/include/G4RKG3_Stepper.hh b/source/geometry/magneticfield/include/G4RKG3_Stepper.hh index 9f56031fce..97d7ebb20a 100644 --- a/source/geometry/magneticfield/include/G4RKG3_Stepper.hh +++ b/source/geometry/magneticfield/include/G4RKG3_Stepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4RKG3_Stepper.hh,v 1.10 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4RKG3_Stepper diff --git a/source/geometry/magneticfield/include/G4SimpleHeum.hh b/source/geometry/magneticfield/include/G4SimpleHeum.hh index 8c69ed6ccd..d29ddefa93 100644 --- a/source/geometry/magneticfield/include/G4SimpleHeum.hh +++ b/source/geometry/magneticfield/include/G4SimpleHeum.hh @@ -22,7 +22,7 @@ // // // $Id: G4SimpleHeum.hh,v 1.7 2003/11/05 16:30:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4SimpleHeum diff --git a/source/geometry/magneticfield/include/G4SimpleRunge.hh b/source/geometry/magneticfield/include/G4SimpleRunge.hh index b3077aa557..ccbb2cd7ca 100644 --- a/source/geometry/magneticfield/include/G4SimpleRunge.hh +++ b/source/geometry/magneticfield/include/G4SimpleRunge.hh @@ -22,7 +22,7 @@ // // // $Id: G4SimpleRunge.hh,v 1.7 2003/11/05 16:30:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4SimpleRunge diff --git a/source/geometry/magneticfield/include/G4UniformElectricField.hh b/source/geometry/magneticfield/include/G4UniformElectricField.hh index c6b00aef14..a661d5ebd9 100644 --- a/source/geometry/magneticfield/include/G4UniformElectricField.hh +++ b/source/geometry/magneticfield/include/G4UniformElectricField.hh @@ -22,7 +22,7 @@ // // // $Id: G4UniformElectricField.hh,v 1.8 2003/11/05 10:35:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4UniformElectricField diff --git a/source/geometry/magneticfield/include/G4UniformMagField.hh b/source/geometry/magneticfield/include/G4UniformMagField.hh index 9948c59111..39d0b29e35 100644 --- a/source/geometry/magneticfield/include/G4UniformMagField.hh +++ b/source/geometry/magneticfield/include/G4UniformMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4UniformMagField.hh,v 1.8 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4UniformMagField diff --git a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc index cda2d95857..acd30c80bc 100644 --- a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc +++ b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc @@ -22,7 +22,7 @@ // // // $Id: G4CashKarpRKF45.cc,v 1.13 2003/10/31 14:35:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // The Cash-Karp Runge-Kutta-Fehlberg 4/5 method is an embedded fourth // order method (giving fifth-order accuracy) for the solution of an ODE. diff --git a/source/geometry/magneticfield/src/G4ChordFinder.cc b/source/geometry/magneticfield/src/G4ChordFinder.cc index c78f246498..100985ab89 100644 --- a/source/geometry/magneticfield/src/G4ChordFinder.cc +++ b/source/geometry/magneticfield/src/G4ChordFinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4ChordFinder.cc,v 1.46 2004/12/02 09:55:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // 25.02.97 John Apostolakis, design and implimentation diff --git a/source/geometry/magneticfield/src/G4ClassicalRK4.cc b/source/geometry/magneticfield/src/G4ClassicalRK4.cc index 86941680f7..4874d4502b 100644 --- a/source/geometry/magneticfield/src/G4ClassicalRK4.cc +++ b/source/geometry/magneticfield/src/G4ClassicalRK4.cc @@ -22,7 +22,7 @@ // // // $Id: G4ClassicalRK4.cc,v 1.11 2003/11/05 16:31:48 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4DELPHIMagField.cc b/source/geometry/magneticfield/src/G4DELPHIMagField.cc index e36115b547..bfe2ae6d4e 100644 --- a/source/geometry/magneticfield/src/G4DELPHIMagField.cc +++ b/source/geometry/magneticfield/src/G4DELPHIMagField.cc @@ -22,7 +22,7 @@ // // // $Id: G4DELPHIMagField.cc,v 1.5 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------------- #include "G4DELPHIMagField.hh" diff --git a/source/geometry/magneticfield/src/G4ElectricField.cc b/source/geometry/magneticfield/src/G4ElectricField.cc index b20fd6b1a4..08d4e5c8bd 100644 --- a/source/geometry/magneticfield/src/G4ElectricField.cc +++ b/source/geometry/magneticfield/src/G4ElectricField.cc @@ -22,7 +22,7 @@ // // // $Id: G4ElectricField.cc,v 1.1 2003/11/05 10:40:59 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4ElectroMagneticField.cc b/source/geometry/magneticfield/src/G4ElectroMagneticField.cc index 8cdc90a934..b1ad331e19 100644 --- a/source/geometry/magneticfield/src/G4ElectroMagneticField.cc +++ b/source/geometry/magneticfield/src/G4ElectroMagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: G4ElectroMagneticField.cc,v 1.2 2003/11/05 10:41:00 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4EqMagElectricField.cc b/source/geometry/magneticfield/src/G4EqMagElectricField.cc index 22a320bd4d..706d7493d3 100644 --- a/source/geometry/magneticfield/src/G4EqMagElectricField.cc +++ b/source/geometry/magneticfield/src/G4EqMagElectricField.cc @@ -22,7 +22,7 @@ // // // $Id: G4EqMagElectricField.cc,v 1.12 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // This is the standard right-hand side for equation of motion. diff --git a/source/geometry/magneticfield/src/G4EquationOfMotion.cc b/source/geometry/magneticfield/src/G4EquationOfMotion.cc index 70f27fe444..6abebab6ce 100644 --- a/source/geometry/magneticfield/src/G4EquationOfMotion.cc +++ b/source/geometry/magneticfield/src/G4EquationOfMotion.cc @@ -22,7 +22,7 @@ // // // $Id: G4EquationOfMotion.cc,v 1.8 2003/10/31 14:35:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4ExplicitEuler.cc b/source/geometry/magneticfield/src/G4ExplicitEuler.cc index 8e05286d77..496e792fc9 100644 --- a/source/geometry/magneticfield/src/G4ExplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4ExplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExplicitEuler.cc,v 1.7 2003/11/05 16:31:49 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Explicit Euler: x_1 = x_0 + h * dx_0 diff --git a/source/geometry/magneticfield/src/G4FieldManager.cc b/source/geometry/magneticfield/src/G4FieldManager.cc index f7e67d9749..e2beddfc88 100644 --- a/source/geometry/magneticfield/src/G4FieldManager.cc +++ b/source/geometry/magneticfield/src/G4FieldManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4FieldManager.cc,v 1.13 2003/11/08 04:08:13 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4FieldTrack.cc b/source/geometry/magneticfield/src/G4FieldTrack.cc index f818e32a91..a309ff9fdd 100644 --- a/source/geometry/magneticfield/src/G4FieldTrack.cc +++ b/source/geometry/magneticfield/src/G4FieldTrack.cc @@ -22,7 +22,7 @@ // // // $Id: G4FieldTrack.cc,v 1.6 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc b/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc index 68403287b5..24e7907b73 100644 --- a/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc +++ b/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc @@ -22,7 +22,7 @@ // // // $Id: G4HarmonicPolMagField.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc index 08eebaf703..e74f8a8118 100644 --- a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixExplicitEuler.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Helix Explicit Euler: x_1 = x_0 + helix(h) diff --git a/source/geometry/magneticfield/src/G4HelixHeum.cc b/source/geometry/magneticfield/src/G4HelixHeum.cc index 6a1e16cb3b..4693c2bd93 100644 --- a/source/geometry/magneticfield/src/G4HelixHeum.cc +++ b/source/geometry/magneticfield/src/G4HelixHeum.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixHeum.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Simple Heum: diff --git a/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc index 3a48a18508..cf2df6fa26 100644 --- a/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixImplicitEuler.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Helix Implicit Euler: diff --git a/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc b/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc index 2a018b27db..ac7207e19f 100644 --- a/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc +++ b/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixSimpleRunge.cc,v 1.6 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Simple Runge: diff --git a/source/geometry/magneticfield/src/G4ImplicitEuler.cc b/source/geometry/magneticfield/src/G4ImplicitEuler.cc index fff0ea9b1e..563812ebea 100644 --- a/source/geometry/magneticfield/src/G4ImplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4ImplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4ImplicitEuler.cc,v 1.8 2003/11/05 16:31:49 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Implicit Euler: diff --git a/source/geometry/magneticfield/src/G4LineCurrentMagField.cc b/source/geometry/magneticfield/src/G4LineCurrentMagField.cc index 86f6634721..c57039d996 100644 --- a/source/geometry/magneticfield/src/G4LineCurrentMagField.cc +++ b/source/geometry/magneticfield/src/G4LineCurrentMagField.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LineCurrentMagField.cc,v 1.5 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------------- #include "G4LineCurrentMagField.hh" diff --git a/source/geometry/magneticfield/src/G4LineSection.cc b/source/geometry/magneticfield/src/G4LineSection.cc index c030dc97b0..c1ce7eb4ab 100644 --- a/source/geometry/magneticfield/src/G4LineSection.cc +++ b/source/geometry/magneticfield/src/G4LineSection.cc @@ -22,7 +22,7 @@ // // // $Id: G4LineSection.cc,v 1.9 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4MagErrorStepper.cc b/source/geometry/magneticfield/src/G4MagErrorStepper.cc index 141396dff9..84bbd460fb 100644 --- a/source/geometry/magneticfield/src/G4MagErrorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagErrorStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagErrorStepper.cc,v 1.12 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4MagHelicalStepper.cc b/source/geometry/magneticfield/src/G4MagHelicalStepper.cc index 1044dd3307..8911d45aba 100644 --- a/source/geometry/magneticfield/src/G4MagHelicalStepper.cc +++ b/source/geometry/magneticfield/src/G4MagHelicalStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagHelicalStepper.cc,v 1.14 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc index 6946751002..1caafe1ed2 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorDriver.cc,v 1.42 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc index d5a8be04b3..4f8e9d6b7f 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorStepper.cc,v 1.10 2003/10/31 14:35:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4Mag_EqRhs.cc b/source/geometry/magneticfield/src/G4Mag_EqRhs.cc index a63f38b1e4..1ed809a67c 100644 --- a/source/geometry/magneticfield/src/G4Mag_EqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_EqRhs.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mag_EqRhs.cc,v 1.10 2003/11/05 16:33:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // This is the standard right-hand side for equation of motion // in a pure Magnetic Field . diff --git a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc index ad1097996b..bc66bd9ebc 100644 --- a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mag_SpinEqRhs.cc,v 1.11 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // 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/G4Mag_UsualEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc index 792b45ab1b..4f85274e41 100644 --- a/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mag_UsualEqRhs.cc,v 1.11 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // This is the 'standard' right-hand side for the equation of motion diff --git a/source/geometry/magneticfield/src/G4MagneticField.cc b/source/geometry/magneticfield/src/G4MagneticField.cc index a8ca8a6c2d..65e694e25c 100644 --- a/source/geometry/magneticfield/src/G4MagneticField.cc +++ b/source/geometry/magneticfield/src/G4MagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagneticField.cc,v 1.2 2003/11/05 10:40:59 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc b/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc index ec0a44ba58..9a9f3671d1 100644 --- a/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc +++ b/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc @@ -22,7 +22,7 @@ // // // $Id: G4QuadrupoleMagField.cc,v 1.3 2003/10/31 14:35:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4RKG3_Stepper.cc b/source/geometry/magneticfield/src/G4RKG3_Stepper.cc index daaf871072..7d528fa5b9 100644 --- a/source/geometry/magneticfield/src/G4RKG3_Stepper.cc +++ b/source/geometry/magneticfield/src/G4RKG3_Stepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4RKG3_Stepper.cc,v 1.9 2003/10/31 14:35:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4SimpleHeum.cc b/source/geometry/magneticfield/src/G4SimpleHeum.cc index 8a69075007..e73c929f4b 100644 --- a/source/geometry/magneticfield/src/G4SimpleHeum.cc +++ b/source/geometry/magneticfield/src/G4SimpleHeum.cc @@ -22,7 +22,7 @@ // // // $Id: G4SimpleHeum.cc,v 1.7 2003/11/05 16:31:49 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Simple Heum: // x_1 = x_0 + h * diff --git a/source/geometry/magneticfield/src/G4SimpleRunge.cc b/source/geometry/magneticfield/src/G4SimpleRunge.cc index 4e1d365ba0..9a7d163df1 100644 --- a/source/geometry/magneticfield/src/G4SimpleRunge.cc +++ b/source/geometry/magneticfield/src/G4SimpleRunge.cc @@ -22,7 +22,7 @@ // // // $Id: G4SimpleRunge.cc,v 1.9 2003/11/05 16:31:49 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Simple Runge: // diff --git a/source/geometry/magneticfield/src/G4UniformElectricField.cc b/source/geometry/magneticfield/src/G4UniformElectricField.cc index 5a71d2475f..cf7ba28439 100644 --- a/source/geometry/magneticfield/src/G4UniformElectricField.cc +++ b/source/geometry/magneticfield/src/G4UniformElectricField.cc @@ -22,7 +22,7 @@ // // // $Id: G4UniformElectricField.cc,v 1.11 2004/12/02 09:55:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/geometry/magneticfield/src/G4UniformMagField.cc b/source/geometry/magneticfield/src/G4UniformMagField.cc index e0c261dc7f..238a95f2b7 100644 --- a/source/geometry/magneticfield/src/G4UniformMagField.cc +++ b/source/geometry/magneticfield/src/G4UniformMagField.cc @@ -22,7 +22,7 @@ // // // $Id: G4UniformMagField.cc,v 1.10 2004/12/02 09:55:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class for creation of uniform Magnetic Field diff --git a/source/geometry/management/History b/source/geometry/management/History index 6c25837a32..903f32c121 100644 --- a/source/geometry/management/History +++ b/source/geometry/management/History @@ -1,4 +1,4 @@ -$Id: History,v 1.78 2004/12/02 09:34:33 gcosmo Exp $ +$Id: History,v 1.89 2005/05/25 14:58:11 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,43 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 25, 2005 G.Cosmo geommng-V07-00-04 +- Fixed problem with previous tag, where version of G4LogicalVolume.cc was + not correct and untagged. +- G4LogicalVolume::SetVisAttributes(const G4VisAttributes& VA): now creating + a copy of 'VA' on the heap. Temporary solution, until a proper 'store' for + visualization attributes will be implemented to take care of the memory + management. + +May 23, 2005 G.Cosmo geommng-V07-00-03 +- Modified comments in G4VSolid and G4BlockingList to overcome a limitation in + the scripts for the generation of the Software Reference Manual. + +Apr 13, 2005 G.Cosmo geommng-V07-00-02 +- Extended signatures for OpenGeometry() and CloseGeometry() to consider local + optimisation of a subtree of volumes. Voxelisation can now apply to just a + specific subtree if a physical volume is specified. + +Apr 02, 2005 M.Asai geommng-V07-00-01 +- Added protection against NULL material pointer for volumes belonging + to the tracking geometry in G4Region scanning. + Addresses problem report #735. + +Mar 23, 2005 J.Allison +- Added test for Number-Of-Rotation-Steps in G4ReflectedSolid::GetPolyhedron(). + Requires tag "greps-V07-00-02". + +Mar 22, 2005 J.Allison +- G4ReflectedSolid: correction: changed AddThis to AddSolid. + +Mar 02, 2005 G.Cosmo geommng-V07-00-00 +- Added optional boolean argument 'propagate' to GetMass() to avoid + propagation of computation of masses to the daughter volumes (courtesy + of G.Santin). Propagation to daughters is done by default. + +Feb 18, 2005 M.Asai +- Added G4UserLimits pointer to G4Region and added access from G4LogicalVolume. + Dec 02, 2004 G.Cosmo geommng-V06-02-08 - Implemented migration to for standard mathematical functions. diff --git a/source/geometry/management/include/G4AffineTransform.hh b/source/geometry/management/include/G4AffineTransform.hh index a24edc54d1..1fd4f775cb 100644 --- a/source/geometry/management/include/G4AffineTransform.hh +++ b/source/geometry/management/include/G4AffineTransform.hh @@ -22,7 +22,7 @@ // // // $Id: G4AffineTransform.hh,v 1.5 2003/11/02 14:01:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4AffineTransform diff --git a/source/geometry/management/include/G4AffineTransform.icc b/source/geometry/management/include/G4AffineTransform.icc index e33894da57..6d25262dba 100644 --- a/source/geometry/management/include/G4AffineTransform.icc +++ b/source/geometry/management/include/G4AffineTransform.icc @@ -22,7 +22,7 @@ // // // $Id: G4AffineTransform.icc,v 1.7 2003/11/02 14:01:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4AffineTransformation Inline implementation diff --git a/source/geometry/management/include/G4AssemblyTriplet.hh b/source/geometry/management/include/G4AssemblyTriplet.hh index 97de9377b1..9aadc0a5e4 100644 --- a/source/geometry/management/include/G4AssemblyTriplet.hh +++ b/source/geometry/management/include/G4AssemblyTriplet.hh @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyTriplet.hh,v 1.6 2003/11/02 14:01:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4AssemblyTriplet diff --git a/source/geometry/management/include/G4AssemblyTriplet.icc b/source/geometry/management/include/G4AssemblyTriplet.icc index df103aa64c..1a08284f74 100644 --- a/source/geometry/management/include/G4AssemblyTriplet.icc +++ b/source/geometry/management/include/G4AssemblyTriplet.icc @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyTriplet.icc,v 1.5 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4AssemblyTriplet - inline implementation diff --git a/source/geometry/management/include/G4BlockingList.hh b/source/geometry/management/include/G4BlockingList.hh index bb82f349a4..3905c83f06 100644 --- a/source/geometry/management/include/G4BlockingList.hh +++ b/source/geometry/management/include/G4BlockingList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BlockingList.hh,v 1.2 2003/11/02 14:01:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4BlockingList.hh,v 1.3 2005/05/23 07:58:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4BlockingList // @@ -86,7 +86,7 @@ class G4BlockingList G4bool IsBlocked(const G4int v) const; // Return true if the volume number v is blocked, else false. - // Requires: 0<=v & stats, G4double totalCpuTime ); static G4GeometryManager* fgInstance; diff --git a/source/geometry/management/include/G4IdentityTrajectoryFilter.hh b/source/geometry/management/include/G4IdentityTrajectoryFilter.hh index f3af4c0ace..0de00d8ae6 100644 --- a/source/geometry/management/include/G4IdentityTrajectoryFilter.hh +++ b/source/geometry/management/include/G4IdentityTrajectoryFilter.hh @@ -22,7 +22,7 @@ // // // $Id: G4IdentityTrajectoryFilter.hh,v 1.2 2003/11/02 14:01:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class GIdentityTrajectoryFilter diff --git a/source/geometry/management/include/G4LogicalSurface.hh b/source/geometry/management/include/G4LogicalSurface.hh index 8953243f08..576acf0e30 100644 --- a/source/geometry/management/include/G4LogicalSurface.hh +++ b/source/geometry/management/include/G4LogicalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSurface.hh,v 1.9 2003/12/01 14:41:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //////////////////////////////////////////////////////////////////////// // Class G4LogicalSurface diff --git a/source/geometry/management/include/G4LogicalSurface.icc b/source/geometry/management/include/G4LogicalSurface.icc index 2fc149c1c6..8697b3a088 100644 --- a/source/geometry/management/include/G4LogicalSurface.icc +++ b/source/geometry/management/include/G4LogicalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSurface.icc,v 1.8 2003/12/01 14:41:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //////////////////////////////////////////////////////////////////////// // Surface Class Inline Methods diff --git a/source/geometry/management/include/G4LogicalVolume.hh b/source/geometry/management/include/G4LogicalVolume.hh index bd6d378792..3cdb2c0c28 100644 --- a/source/geometry/management/include/G4LogicalVolume.hh +++ b/source/geometry/management/include/G4LogicalVolume.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.hh,v 1.19 2004/11/13 17:22:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4LogicalVolume.hh,v 1.23 2005/05/25 14:57:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4LogicalVolume @@ -33,7 +33,7 @@ // Logical volumes are named, and may have daughters ascribed to them. // They are responsible for retrieval of the physical and tracking attributes // of the physical volume that it represents: solid, material, magnetic field, -// and optionally, user limits, sensitive detectors. +// and optionally, user limits, sensitive detectors, regions, biasing weights. // // Get and Set functionality is provided for all attributes, but note that // most set functions should not be used when the geometry is `closed'. @@ -43,7 +43,7 @@ // On construction, solid, material and name must be specified. // // Daughters are ascribed and managed by means of a simple -// GetNoDaughters,Get&SetDaughter(n),AddDaughter interface. +// GetNoDaughters,Get/SetDaughter(n),AddDaughter interface. // // Smart voxels as used for tracking optimisation. They're also an attribute. // @@ -92,6 +92,7 @@ // - Weight used in the event biasing technique. // History: +// 12.11.04 G.Cosmo: Added GetMass() method for computing mass of the tree // 24.09.02 G.Cosmo: Added flags and accessors for region cuts handling // 17.05.02 G.Cosmo: Added IsToOptimise() method and related flag // 18.04.01 G.Cosmo: Migrated to STL vector @@ -189,17 +190,21 @@ class G4LogicalVolume // Sets material and corresponding MaterialCutsCouple. // This method is invoked by G4Navigator while it is navigating through // material parameterization. - G4double GetMass(G4bool forced=false, G4Material* parMaterial=0); + G4double GetMass(G4bool forced=false, G4bool propagate=true, + G4Material* parMaterial=0); // Returns the mass of the logical volume tree computed from the // estimated geometrical volume of each solid and material associated - // to the logical volume and its daughters. + // to the logical volume and (by default) to its daughters. // NOTE: the computation may require a considerable amount of time, // depending from the complexity of the geometry tree. // The returned value is cached and can be used for successive // calls (default), unless recomputation is forced by providing // 'true' for the boolean argument in input. Computation should // be forced if the geometry setup has changed after the previous - // call. An optional argument to specify a material is provided. + // call. By setting the 'propagate' boolean flag to 'false' the + // method returns the mass of the present logical volume only + // (subtracted for the volume occupied by the daughter volumes). + // An optional argument to specify a material is also provided. inline G4FieldManager* GetFieldManager() const; // Gets current FieldManager. @@ -258,8 +263,9 @@ class G4LogicalVolume inline const G4VisAttributes* GetVisAttributes () const; inline void SetVisAttributes (const G4VisAttributes* pVA); - inline void SetVisAttributes (const G4VisAttributes& VA); - // Gets and sets visualization attributes. + void SetVisAttributes (const G4VisAttributes& VA); + // Gets and sets visualization attributes. A copy of 'VA' on the heap + // will be made in the case the call with a const reference is used. inline void BecomeEnvelopeForFastSimulation(G4FastSimulationManager* ); // Makes this an Envelope for given FastSimulationManager. diff --git a/source/geometry/management/include/G4LogicalVolume.icc b/source/geometry/management/include/G4LogicalVolume.icc index f32c278c61..425d7ff86a 100644 --- a/source/geometry/management/include/G4LogicalVolume.icc +++ b/source/geometry/management/include/G4LogicalVolume.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.icc,v 1.19 2004/11/16 13:43:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4LogicalVolume.icc,v 1.21 2005/05/22 16:41:57 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4LogicalVolume Inline Implementation file @@ -288,7 +288,9 @@ void G4LogicalVolume::SetSensitiveDetector(G4VSensitiveDetector* pSDetector) inline G4UserLimits* G4LogicalVolume::GetUserLimits() const { - return fUserLimits; + if(fUserLimits) return fUserLimits; + if(fRegion) return fRegion->GetUserLimits(); + return 0; } // ******************************************************************** @@ -473,12 +475,6 @@ void G4LogicalVolume::SetVisAttributes (const G4VisAttributes* pVA) fVisAttributes = pVA; } -inline -void G4LogicalVolume::SetVisAttributes (const G4VisAttributes& VA) -{ - fVisAttributes = &VA; -} - // ******************************************************************** // BecomeEnvelopeForFastSimulation // ******************************************************************** diff --git a/source/geometry/management/include/G4LogicalVolumeStore.hh b/source/geometry/management/include/G4LogicalVolumeStore.hh index f79c66f6b4..63a922f300 100644 --- a/source/geometry/management/include/G4LogicalVolumeStore.hh +++ b/source/geometry/management/include/G4LogicalVolumeStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolumeStore.hh,v 1.10 2004/09/02 07:49:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4LogicalVolumeStore // diff --git a/source/geometry/management/include/G4PhysicalVolumeStore.hh b/source/geometry/management/include/G4PhysicalVolumeStore.hh index d0d3efb084..53b627a6ab 100644 --- a/source/geometry/management/include/G4PhysicalVolumeStore.hh +++ b/source/geometry/management/include/G4PhysicalVolumeStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeStore.hh,v 1.12 2004/09/02 07:49:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4PhysicalVolume // diff --git a/source/geometry/management/include/G4ReflectedSolid.hh b/source/geometry/management/include/G4ReflectedSolid.hh index ae169a1ddc..1c7963d485 100644 --- a/source/geometry/management/include/G4ReflectedSolid.hh +++ b/source/geometry/management/include/G4ReflectedSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReflectedSolid.hh,v 1.2 2004/10/10 10:15:09 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ReflectedSolid diff --git a/source/geometry/management/include/G4Region.hh b/source/geometry/management/include/G4Region.hh index fdf8a9e179..da6eca9b6d 100644 --- a/source/geometry/management/include/G4Region.hh +++ b/source/geometry/management/include/G4Region.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Region.hh,v 1.9 2004/09/28 14:16:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4Region.hh,v 1.11 2005/03/02 08:24:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4Region // @@ -46,6 +46,7 @@ class G4LogicalVolume; class G4Material; class G4VUserRegionInformation; class G4MaterialCutsCouple; +class G4UserLimits; #include #include @@ -108,17 +109,23 @@ class G4Region // Scans recursively the 'lv' logical volume tree, retrieves // and places all materials in the list if becoming a region. - void SetUserInformation(G4VUserRegionInformation* ui); - G4VUserRegionInformation* GetUserInformation() const; + inline void SetUserInformation(G4VUserRegionInformation* ui); + inline G4VUserRegionInformation* GetUserInformation() const; // Set and Get methods for user information. - void ClearMap(); + inline void SetUserLimits(G4UserLimits* ul); + inline G4UserLimits* GetUserLimits() const; + // Set and Get methodf for userL-limits associated to a region. + // Once user-limits are set, it will propagate to daughter volumes. + + inline void ClearMap(); // Reset G4MaterialCoupleMap - void RegisterMaterialCouplePair(G4Material* mat, G4MaterialCutsCouple*); + inline void RegisterMaterialCouplePair(G4Material* mat, + G4MaterialCutsCouple* couple); // Method invoked by G4ProductionCutsTable to register the pair. - G4MaterialCutsCouple* FindCouple(G4Material* mat); + inline G4MaterialCutsCouple* FindCouple(G4Material* mat); // Find a G4MaterialCutsCouple which corresponds to the material // in this region. @@ -140,6 +147,7 @@ class G4Region G4ProductionCuts* fCut; G4VUserRegionInformation* fUserInfo; + G4UserLimits* fUserLimits; }; #include "G4Region.icc" diff --git a/source/geometry/management/include/G4Region.icc b/source/geometry/management/include/G4Region.icc index a682e688ed..3f82122c4b 100644 --- a/source/geometry/management/include/G4Region.icc +++ b/source/geometry/management/include/G4Region.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Region.icc,v 1.8 2004/09/28 14:16:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4Region.icc,v 1.10 2005/03/02 08:24:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4Region Inline Implementation file @@ -166,6 +166,26 @@ G4VUserRegionInformation* G4Region::GetUserInformation() const return fUserInfo; } +// ******************************************************************** +// SetUserLimits +// ******************************************************************** +// +inline +void G4Region::SetUserLimits(G4UserLimits* ul) +{ + fUserLimits = ul; +} + +// ******************************************************************** +// GetUserLimits +// ******************************************************************** +// +inline +G4UserLimits* G4Region::GetUserLimits() const +{ + return fUserLimits; +} + // ******************************************************************** // ClearMap // ******************************************************************** @@ -204,4 +224,3 @@ G4MaterialCutsCouple* G4Region::FindCouple(G4Material* mat) if(c!=fMaterialCoupleMap.end()) couple = (*c).second; return couple; } - diff --git a/source/geometry/management/include/G4RegionStore.hh b/source/geometry/management/include/G4RegionStore.hh index 1ac45e1ea4..2d290c1ee8 100644 --- a/source/geometry/management/include/G4RegionStore.hh +++ b/source/geometry/management/include/G4RegionStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4RegionStore.hh,v 1.6 2004/09/02 07:49:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4RegionStore // diff --git a/source/geometry/management/include/G4SmartVoxelHeader.hh b/source/geometry/management/include/G4SmartVoxelHeader.hh index 7f647b310c..817e28191c 100644 --- a/source/geometry/management/include/G4SmartVoxelHeader.hh +++ b/source/geometry/management/include/G4SmartVoxelHeader.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelHeader.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4SmartVoxelHeader // diff --git a/source/geometry/management/include/G4SmartVoxelHeader.icc b/source/geometry/management/include/G4SmartVoxelHeader.icc index 1e69c00263..ff1e811e36 100644 --- a/source/geometry/management/include/G4SmartVoxelHeader.icc +++ b/source/geometry/management/include/G4SmartVoxelHeader.icc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelHeader.icc,v 1.5 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4SmartVoxelHeader Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelNode.hh b/source/geometry/management/include/G4SmartVoxelNode.hh index 1ec6858000..a8a0e6d97b 100644 --- a/source/geometry/management/include/G4SmartVoxelNode.hh +++ b/source/geometry/management/include/G4SmartVoxelNode.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelNode.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4SmartVoxelNode // diff --git a/source/geometry/management/include/G4SmartVoxelNode.icc b/source/geometry/management/include/G4SmartVoxelNode.icc index 409714f290..9902f5a5d6 100644 --- a/source/geometry/management/include/G4SmartVoxelNode.icc +++ b/source/geometry/management/include/G4SmartVoxelNode.icc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelNode.icc,v 1.4 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4SmartVoxelNode Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelProxy.hh b/source/geometry/management/include/G4SmartVoxelProxy.hh index 1ca1c44a12..cec3663b64 100644 --- a/source/geometry/management/include/G4SmartVoxelProxy.hh +++ b/source/geometry/management/include/G4SmartVoxelProxy.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelProxy.hh,v 1.7 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4SmartVoxelProxy // diff --git a/source/geometry/management/include/G4SmartVoxelProxy.icc b/source/geometry/management/include/G4SmartVoxelProxy.icc index 01d5167ec4..f02a98b1a0 100644 --- a/source/geometry/management/include/G4SmartVoxelProxy.icc +++ b/source/geometry/management/include/G4SmartVoxelProxy.icc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelProxy.icc,v 1.3 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4SmartVoxelProxy Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelStat.hh b/source/geometry/management/include/G4SmartVoxelStat.hh index 225c613d4f..0048d7dd13 100644 --- a/source/geometry/management/include/G4SmartVoxelStat.hh +++ b/source/geometry/management/include/G4SmartVoxelStat.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4SmartVoxelStat.hh,v 1.3 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/management/include/G4SolidStore.hh b/source/geometry/management/include/G4SolidStore.hh index f9c5c53419..c17febf54f 100644 --- a/source/geometry/management/include/G4SolidStore.hh +++ b/source/geometry/management/include/G4SolidStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4SolidStore.hh,v 1.10 2004/09/02 07:49:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4SolidStore // diff --git a/source/geometry/management/include/G4TouchableHandle.hh b/source/geometry/management/include/G4TouchableHandle.hh index f01b914c0e..2ee331e0f3 100644 --- a/source/geometry/management/include/G4TouchableHandle.hh +++ b/source/geometry/management/include/G4TouchableHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4TouchableHandle.hh,v 1.5 2001/11/06 17:06:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class G4TouchableHandle // diff --git a/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh b/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh index d1f211c699..2b07a305a2 100644 --- a/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh +++ b/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCurvedTrajectoryFilter.hh,v 1.2 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4VCurevedTrajectoryFilter diff --git a/source/geometry/management/include/G4VPVDivisionFactory.hh b/source/geometry/management/include/G4VPVDivisionFactory.hh index 7b88dd1992..93d963084f 100644 --- a/source/geometry/management/include/G4VPVDivisionFactory.hh +++ b/source/geometry/management/include/G4VPVDivisionFactory.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPVDivisionFactory.hh,v 1.1 2004/05/13 14:53:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4VPVDivisionFactory diff --git a/source/geometry/management/include/G4VPVParameterisation.hh b/source/geometry/management/include/G4VPVParameterisation.hh index 63f09f0271..155855ed81 100644 --- a/source/geometry/management/include/G4VPVParameterisation.hh +++ b/source/geometry/management/include/G4VPVParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPVParameterisation.hh,v 1.6 2003/11/02 14:00:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4VPVParamterisation // diff --git a/source/geometry/management/include/G4VPhysicalVolume.hh b/source/geometry/management/include/G4VPhysicalVolume.hh index 39fe5d7838..85e0a65c51 100644 --- a/source/geometry/management/include/G4VPhysicalVolume.hh +++ b/source/geometry/management/include/G4VPhysicalVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPhysicalVolume.hh,v 1.10 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4VPhysicalVolume diff --git a/source/geometry/management/include/G4VPhysicalVolume.icc b/source/geometry/management/include/G4VPhysicalVolume.icc index 6493670f3e..e940f85631 100644 --- a/source/geometry/management/include/G4VPhysicalVolume.icc +++ b/source/geometry/management/include/G4VPhysicalVolume.icc @@ -22,7 +22,7 @@ // // // $Id: G4VPhysicalVolume.icc,v 1.8 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4VPhysicalVolume Inline Implementation diff --git a/source/geometry/management/include/G4VSolid.hh b/source/geometry/management/include/G4VSolid.hh index 612bb92375..25b7ab3ea3 100644 --- a/source/geometry/management/include/G4VSolid.hh +++ b/source/geometry/management/include/G4VSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSolid.hh,v 1.18 2004/10/13 13:06:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VSolid.hh,v 1.19 2005/05/23 07:52:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4VSolid @@ -114,7 +114,7 @@ class G4VSolid virtual EInside Inside(const G4ThreeVector& p) const = 0; // Returns kOutside if the point at offset p is outside the shapes - // boundaries plus Tolerance/2, kSurface if the point is <=Tolerance/2 + // boundaries plus Tolerance/2, kSurface if the point is <= Tolerance/2 // from a surface, otherwise kInside. virtual G4ThreeVector SurfaceNormal(const G4ThreeVector& p) const = 0; @@ -140,7 +140,7 @@ class G4VSolid G4ThreeVector *n=0) const = 0; // Return the distance along the normalised vector v to the shape, // from a point at an offset p inside or on the surface of the shape. - // Intersections with surfaces, when the point is stats; - if (verbose) allTimer.Start(); + if (verbose) { allTimer.Start(); } - G4LogicalVolumeStore *Store; - G4LogicalVolume *volume; - G4SmartVoxelHeader *head; - G4int nVolumes, n; - Store=G4LogicalVolumeStore::GetInstance(); - nVolumes=Store->size(); + G4LogicalVolumeStore* Store = G4LogicalVolumeStore::GetInstance(); + G4LogicalVolume* volume; + G4SmartVoxelHeader* head; - for (n=0; nsize(); n++) { if (verbose) timer.Start(); volume=(*Store)[n]; @@ -142,11 +157,8 @@ void G4GeometryManager::BuildOptimisations(G4bool allOpts, G4bool verbose) // delete before replacement // head = volume->GetVoxelHeader(); - if (head) - { - delete head; - volume->SetVoxelHeader(0); - } + delete head; + volume->SetVoxelHeader(0); if ( (volume->IsToOptimise()) && (volume->GetNoDaughters()>=kMinVoxelVolumesLevel1&&allOpts) || ( (volume->GetNoDaughters()==1) @@ -164,9 +176,11 @@ void G4GeometryManager::BuildOptimisations(G4bool allOpts, G4bool verbose) } else { - G4cerr << "ERROR - Allocation of new VoxelHeader failed." << G4endl; + G4cerr << "ERROR - Allocation of new VoxelHeader" << G4endl + << " for volume " << volume->GetName() << " failed." + << G4endl; G4Exception("G4GeometryManager::BuildOptimisations()", "FatalError", - FatalException, "VoxelHeader allocation error."); + FatalException, "VoxelHeader allocation error."); } if (verbose) { @@ -194,31 +208,99 @@ void G4GeometryManager::BuildOptimisations(G4bool allOpts, G4bool verbose) } } +// *************************************************************************** +// Creates optimisation info for the specified volumes subtree. +// *************************************************************************** +// +void G4GeometryManager::BuildOptimisations(G4bool allOpts, + G4VPhysicalVolume* pVolume) +{ + if (!pVolume) { return; } + + // Retrieve the mother logical volume, if not NULL, + // otherwise apply global optimisation for the world volume + // + G4LogicalVolume* tVolume = pVolume->GetMotherLogical(); + if (!tVolume) { return BuildOptimisations(allOpts, false); } + + G4SmartVoxelHeader* head = tVolume->GetVoxelHeader(); + delete head; + tVolume->SetVoxelHeader(0); + if ( (tVolume->IsToOptimise()) + && (tVolume->GetNoDaughters()>=kMinVoxelVolumesLevel1&&allOpts) + || ( (tVolume->GetNoDaughters()==1) + && (tVolume->GetDaughter(0)->IsReplicated()==true) ) ) + { + head = new G4SmartVoxelHeader(tVolume); + if (head) + { + tVolume->SetVoxelHeader(head); + } + else + { + G4cerr << "ERROR - Allocation of new VoxelHeader" << G4endl + << " for volume " << tVolume->GetName() << " failed." + << G4endl; + G4Exception("G4GeometryManager::BuildOptimisations()", "FatalError", + FatalException, "VoxelHeader allocation error."); + } + } + else + { + // Don't create voxels for this node +#ifdef G4GEOMETRY_VOXELDEBUG + G4cout << "**** G4GeometryManager::BuildOptimisations" << G4endl + << " Skipping logical volume name = " << volume->GetName() + << G4endl; +#endif + } + + // Scan recursively the associated logical volume tree + // + tVolume = pVolume->GetLogicalVolume(); + if (tVolume->GetNoDaughters()) { BuildOptimisations(allOpts, tVolume->GetDaughter(0)); } +} + // *************************************************************************** // Removes all optimisation info. -// Loops over all logical volumes, deleting non-null voxels pointers. +// Loops over all logical volumes, deleting non-null voxels pointers, // *************************************************************************** // void G4GeometryManager::DeleteOptimisations() { - G4LogicalVolumeStore* Store=G4LogicalVolumeStore::GetInstance(); - G4LogicalVolume* volume; - G4SmartVoxelHeader* head; - G4int nVolumes, n; - nVolumes = Store->size(); - - for (n=0; nsize(); n++) { - volume=(*Store)[n]; - head=volume->GetVoxelHeader(); - if (head) - { - delete head; - volume->SetVoxelHeader(0); - } + tVolume=(*Store)[n]; + delete tVolume->GetVoxelHeader(); + tVolume->SetVoxelHeader(0); } } +// *************************************************************************** +// Removes optimisation info for the specified subtree. +// Scans recursively all daughter volumes, deleting non-null voxels pointers. +// *************************************************************************** +// +void G4GeometryManager::DeleteOptimisations(G4VPhysicalVolume* pVolume) +{ + if (!pVolume) { return; } + + // Retrieve the mother logical volume, if not NULL, + // otherwise global deletion to world volume. + // + G4LogicalVolume* tVolume = pVolume->GetMotherLogical(); + if (!tVolume) { return DeleteOptimisations(); } + delete tVolume->GetVoxelHeader(); + tVolume->SetVoxelHeader(0); + + // Scan recursively the associated logical volume tree + // + tVolume = pVolume->GetLogicalVolume(); + if (tVolume->GetNoDaughters()) { DeleteOptimisations(tVolume->GetDaughter(0)); } +} + // *************************************************************************** // Reports statistics on voxel optimisation when closing geometry. // *************************************************************************** @@ -236,7 +318,7 @@ G4GeometryManager::ReportVoxelStats( std::vector & stats, G4int i, nStat = stats.size(); G4long totalMemory = 0; - for( i=0;i & stats, G4double system = stats[i].GetSysTime(); G4double perc = 0.0; - if (system < 0) system = 0.0; + if (system < 0) { system = 0.0; } if ((total < 0) || (totalCpuTime < perMillion)) - total = 0; + { total = 0; } else - perc = total*100/totalCpuTime; + { perc = total*100/totalCpuTime; } G4cout << std::setprecision(2) << std::setiosflags(std::ios::fixed|std::ios::right) @@ -302,7 +384,7 @@ G4GeometryManager::ReportVoxelStats( std::vector & stats, { G4long memory = stats[i].GetMemoryUse(); G4double totTime = stats[i].GetTotalTime(); - if (totTime < 0) totTime = 0.0; + if (totTime < 0) { totTime = 0.0; } G4cout << std::setprecision(2) << std::setiosflags(std::ios::fixed|std::ios::right) diff --git a/source/geometry/management/src/G4IdentityTrajectoryFilter.cc b/source/geometry/management/src/G4IdentityTrajectoryFilter.cc index c10c279fc5..292e3383c9 100644 --- a/source/geometry/management/src/G4IdentityTrajectoryFilter.cc +++ b/source/geometry/management/src/G4IdentityTrajectoryFilter.cc @@ -22,7 +22,7 @@ // // // $Id: G4IdentityTrajectoryFilter.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ------------------------------------------------------------------------ diff --git a/source/geometry/management/src/G4LogicalVolume.cc b/source/geometry/management/src/G4LogicalVolume.cc index c520cdb2b2..ccc02d2baf 100644 --- a/source/geometry/management/src/G4LogicalVolume.cc +++ b/source/geometry/management/src/G4LogicalVolume.cc @@ -21,13 +21,14 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.cc,v 1.22 2004/11/15 14:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4LogicalVolume.cc,v 1.28 2005/05/25 14:57:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4LogicalVolume Implementation // // History: +// 01.03.05 G.Santin: Added flag for optional propagation of GetMass() // 17.05.02 G.Cosmo: Added flag for optional optimisation // 12.02.99 S.Giani: Default initialization of voxelization quality // 04.08.97 P.M.DeFreitas: Added methods for parameterised simulation @@ -40,6 +41,7 @@ #include "G4VSolid.hh" #include "G4Material.hh" #include "G4VPVParameterisation.hh" +#include "G4VisAttributes.hh" #include "G4UnitsTable.hh" @@ -269,11 +271,16 @@ G4int G4LogicalVolume::TotalVolumeEntities() const // calls (default), unless recomputation is forced by providing // 'true' for the boolean argument in input. Computation should // be forced if the geometry setup has changed after the previous -// call. The extra argument 'parMaterial' is internally used to +// call. By setting the 'propagate' boolean flag to 'false' the +// method returns the mass of the present logical volume only +// (subtracted for the volume occupied by the daughter volumes). +// The extra argument 'parMaterial' is internally used to // consider cases of geometrical parameterisations by material. // ******************************************************************** // -G4double G4LogicalVolume::GetMass(G4bool forced, G4Material* parMaterial) +G4double G4LogicalVolume::GetMass(G4bool forced, + G4bool propagate, + G4Material* parMaterial) { // Return the cached non-zero value, if not forced // @@ -303,7 +310,8 @@ G4double G4LogicalVolume::GetMass(G4bool forced, G4Material* parMaterial) fMass = fSolid->GetCubicVolume() * globalDensity; // For each daughter in the tree, subtract the mass occupied - // and add the real daughter's one computed recursively + // and if required by the propagate flag, add the real daughter's + // one computed recursively for (G4PhysicalVolumeList::const_iterator itDau = fDaughters.begin(); itDau != fDaughters.end(); itDau++) @@ -335,12 +343,21 @@ G4double G4LogicalVolume::GetMass(G4bool forced, G4Material* parMaterial) } subMass = daughterSolid->GetCubicVolume() * globalDensity; - // Subtract the daughter's portion for the mass and add the real - // daughter's mass computed recursively + // Subtract the daughter's portion for the mass and, if required, + // add the real daughter's mass computed recursively // - fMass = fMass - subMass + logDaughter->GetMass(true, daughterMaterial); + fMass -= subMass; + if (propagate) + { + fMass += logDaughter->GetMass(true, true, daughterMaterial); + } } } return fMass; } + +void G4LogicalVolume::SetVisAttributes (const G4VisAttributes& VA) +{ + fVisAttributes = new G4VisAttributes(VA); +} diff --git a/source/geometry/management/src/G4LogicalVolumeStore.cc b/source/geometry/management/src/G4LogicalVolumeStore.cc index eda3c971e2..75fdc52c3b 100644 --- a/source/geometry/management/src/G4LogicalVolumeStore.cc +++ b/source/geometry/management/src/G4LogicalVolumeStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolumeStore.cc,v 1.14 2004/09/03 08:17:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4LogicalVolumeStore // diff --git a/source/geometry/management/src/G4PhysicalVolumeStore.cc b/source/geometry/management/src/G4PhysicalVolumeStore.cc index b8b42d993c..7214bca3ad 100644 --- a/source/geometry/management/src/G4PhysicalVolumeStore.cc +++ b/source/geometry/management/src/G4PhysicalVolumeStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeStore.cc,v 1.15 2004/09/03 08:17:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4PhysicalVolumeStore // diff --git a/source/geometry/management/src/G4ReflectedSolid.cc b/source/geometry/management/src/G4ReflectedSolid.cc index a00c745877..a257209701 100644 --- a/source/geometry/management/src/G4ReflectedSolid.cc +++ b/source/geometry/management/src/G4ReflectedSolid.cc @@ -21,9 +21,9 @@ // ******************************************************************** // // -// $Id: G4ReflectedSolid.cc,v 1.3 2004/10/13 13:06:51 gcosmo Exp $ +// $Id: G4ReflectedSolid.cc,v 1.5 2005/03/23 17:16:31 allison Exp $ // -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Implementation for G4ReflectedSolid class for boolean // operations between other solids @@ -83,6 +83,7 @@ G4ReflectedSolid::~G4ReflectedSolid() delete fPtrTransform3D; fPtrTransform3D=0; delete fDirectTransform3D; fDirectTransform3D=0; } + delete fpPolyhedron; } G4GeometryType G4ReflectedSolid::GetEntityType() const @@ -524,7 +525,7 @@ std::ostream& G4ReflectedSolid::StreamInfo(std::ostream& os) const void G4ReflectedSolid::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } //////////////////////////////////////////////////// @@ -559,9 +560,12 @@ G4ReflectedSolid::CreateNURBS () const G4Polyhedron* G4ReflectedSolid::GetPolyhedron () const { - if (!fpPolyhedron) - { - fpPolyhedron = CreatePolyhedron (); - } + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron (); + } return fpPolyhedron; } diff --git a/source/geometry/management/src/G4Region.cc b/source/geometry/management/src/G4Region.cc index af9ee9ce61..b8cc5e2fe5 100644 --- a/source/geometry/management/src/G4Region.cc +++ b/source/geometry/management/src/G4Region.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Region.cc,v 1.11 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4Region.cc,v 1.14 2005/04/04 09:28:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4Region Implementation @@ -42,7 +42,7 @@ // ******************************************************************* // G4Region::G4Region(const G4String& pName) - : fName(pName), fRegionMod(true), fCut(0), fUserInfo(0) + : fName(pName), fRegionMod(true), fCut(0), fUserInfo(0), fUserLimits(0) { G4RegionStore* rStore = G4RegionStore::GetInstance(); if (rStore->GetRegion(pName,false)) @@ -87,6 +87,16 @@ void G4Region::ScanVolumeTree(G4LogicalVolume* lv, G4bool region) G4Region* currentRegion = 0; size_t noDaughters = lv->GetNoDaughters(); G4Material* volMat = lv->GetMaterial(); + if(!volMat) + { + G4String errmsg = "Logical volume <"; + errmsg += lv->GetName(); + errmsg += "> does not have a valid material pointer.\n"; + errmsg += "A logical volume belonging to the (tracking) world volume "; + errmsg += "must have a valid material.\nCheck your geometry construction."; + G4Exception("G4Region::ScanVolumeTree()", "SetupError", + FatalException, errmsg); + } G4MaterialList::iterator pos; if (region) { @@ -119,6 +129,16 @@ void G4Region::ScanVolumeTree(G4LogicalVolume* lv, G4bool region) for (register size_t rep=0; repComputeMaterial(rep, daughterPVol); + if(!volMat) + { + G4String errmsg = "The parameterisation for the physical volume <"; + errmsg += daughterPVol->GetName(); + errmsg += ">\n does not return a valid material pointer.\n"; + errmsg += "A volume belonging to the (tracking) world volume must have "; + errmsg += "a valid material.\nCheck your parameterisation."; + G4Exception("G4Region::ScanVolumeTree()", + "SetupError", FatalException, errmsg); + } pos = std::find(fMaterials.begin(),fMaterials.end(),volMat); if (pos == fMaterials.end()) { diff --git a/source/geometry/management/src/G4RegionStore.cc b/source/geometry/management/src/G4RegionStore.cc index 47c7dac9e9..165201bce1 100644 --- a/source/geometry/management/src/G4RegionStore.cc +++ b/source/geometry/management/src/G4RegionStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4RegionStore.cc,v 1.8 2004/09/03 08:17:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4RegionStore // diff --git a/source/geometry/management/src/G4SmartVoxelHeader.cc b/source/geometry/management/src/G4SmartVoxelHeader.cc index ea5f309789..0d1f72f9eb 100644 --- a/source/geometry/management/src/G4SmartVoxelHeader.cc +++ b/source/geometry/management/src/G4SmartVoxelHeader.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelHeader.cc,v 1.25 2004/12/02 09:31:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4SmartVoxelHeader.cc,v 1.26 2005/04/13 15:53:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4SmartVoxelHeader @@ -868,8 +868,8 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, G4cerr << "PANIC! - G4SmartVoxelHeader::BuildNodes()" << G4endl << " Daughter physical volume " << pDaughter->GetName() << G4endl - << " is entirely outside mother logical volume " - << pVolume->GetName() << " !!" << G4endl; + << " is entirely outside mother logical volume " + << pVolume->GetName() << " !!" << G4endl; G4Exception("G4SmartVoxelHeader::BuildNodes()", "InvalidSetup", FatalException, "Overlapping daughter with mother volume."); } @@ -1307,7 +1307,7 @@ std::ostream& operator << (std::ostream& s, const G4SmartVoxelHeader& h) for (G4int j=0; jGetNode()->GetNoContained(); j++) { s << " " << h.fslices[i]->GetNode()->GetVolume(j); - } + } s << " }" << G4endl; collectNode = h.fslices[i]; collectNodeNo = i; diff --git a/source/geometry/management/src/G4SmartVoxelNode.cc b/source/geometry/management/src/G4SmartVoxelNode.cc index 53edf3cd53..bd13d8d0b7 100644 --- a/source/geometry/management/src/G4SmartVoxelNode.cc +++ b/source/geometry/management/src/G4SmartVoxelNode.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelNode.cc,v 1.5 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class G4SmartVoxelNode // diff --git a/source/geometry/management/src/G4SmartVoxelProxy.cc b/source/geometry/management/src/G4SmartVoxelProxy.cc index ece5ee8868..19b3b2e3f6 100644 --- a/source/geometry/management/src/G4SmartVoxelProxy.cc +++ b/source/geometry/management/src/G4SmartVoxelProxy.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelProxy.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class G4SmartVoxelProxy // diff --git a/source/geometry/management/src/G4SmartVoxelStat.cc b/source/geometry/management/src/G4SmartVoxelStat.cc index c1d00222ed..15028a9be0 100644 --- a/source/geometry/management/src/G4SmartVoxelStat.cc +++ b/source/geometry/management/src/G4SmartVoxelStat.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelStat.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/management/src/G4SolidStore.cc b/source/geometry/management/src/G4SolidStore.cc index 554b2add28..80ba77e53d 100644 --- a/source/geometry/management/src/G4SolidStore.cc +++ b/source/geometry/management/src/G4SolidStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4SolidStore.cc,v 1.13 2004/09/03 08:17:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4SolidStore // diff --git a/source/geometry/management/src/G4VCurvedTrajectoryFilter.cc b/source/geometry/management/src/G4VCurvedTrajectoryFilter.cc index 2742dbec2e..84e0edc963 100644 --- a/source/geometry/management/src/G4VCurvedTrajectoryFilter.cc +++ b/source/geometry/management/src/G4VCurvedTrajectoryFilter.cc @@ -22,7 +22,7 @@ // // // $Id: G4VCurvedTrajectoryFilter.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // -------------------------------------------------------------------- #include "G4VCurvedTrajectoryFilter.hh" diff --git a/source/geometry/management/src/G4VPVDivisionFactory.cc b/source/geometry/management/src/G4VPVDivisionFactory.cc index e6cfb621c2..9285d7a92a 100644 --- a/source/geometry/management/src/G4VPVDivisionFactory.cc +++ b/source/geometry/management/src/G4VPVDivisionFactory.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPVDivisionFactory.cc,v 1.1 2004/05/13 14:53:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4VPVDivisionFactory Implementation file // diff --git a/source/geometry/management/src/G4VPVParameterisation.cc b/source/geometry/management/src/G4VPVParameterisation.cc index 13bb12305a..a408388c2c 100644 --- a/source/geometry/management/src/G4VPVParameterisation.cc +++ b/source/geometry/management/src/G4VPVParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPVParameterisation.cc,v 1.4 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Default implementations for Parameterisations that do not // parameterise solid and/or material. diff --git a/source/geometry/management/src/G4VPhysicalVolume.cc b/source/geometry/management/src/G4VPhysicalVolume.cc index 2ba1bd6373..2de7ac86bb 100644 --- a/source/geometry/management/src/G4VPhysicalVolume.cc +++ b/source/geometry/management/src/G4VPhysicalVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPhysicalVolume.cc,v 1.9 2003/11/02 14:01:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4VPhysicalVolume Implementation diff --git a/source/geometry/management/src/G4VSolid.cc b/source/geometry/management/src/G4VSolid.cc index 6a42f905df..f839a78dc9 100644 --- a/source/geometry/management/src/G4VSolid.cc +++ b/source/geometry/management/src/G4VSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4VSolid.cc,v 1.25 2004/10/10 10:15:27 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4VSolid // diff --git a/source/geometry/management/src/G4VStoreNotifier.cc b/source/geometry/management/src/G4VStoreNotifier.cc index d96bc1609b..aae385a64a 100644 --- a/source/geometry/management/src/G4VStoreNotifier.cc +++ b/source/geometry/management/src/G4VStoreNotifier.cc @@ -22,7 +22,7 @@ // // // $Id: G4VStoreNotifier.cc,v 1.1 2004/09/02 07:48:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VStoreNotifier // diff --git a/source/geometry/management/src/G4VoxelLimits.cc b/source/geometry/management/src/G4VoxelLimits.cc index bdc89b06cd..4948669c56 100644 --- a/source/geometry/management/src/G4VoxelLimits.cc +++ b/source/geometry/management/src/G4VoxelLimits.cc @@ -22,7 +22,7 @@ // // // $Id: G4VoxelLimits.cc,v 1.10 2004/12/02 09:31:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4VoxelLimits // diff --git a/source/geometry/navigation/include/G4AuxiliaryNavServices.hh b/source/geometry/navigation/include/G4AuxiliaryNavServices.hh index 9bb4b9397d..b353ecbe63 100644 --- a/source/geometry/navigation/include/G4AuxiliaryNavServices.hh +++ b/source/geometry/navigation/include/G4AuxiliaryNavServices.hh @@ -22,7 +22,7 @@ // // // $Id: G4AuxiliaryNavServices.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4NormalNavigation diff --git a/source/geometry/navigation/include/G4AuxiliaryNavServices.icc b/source/geometry/navigation/include/G4AuxiliaryNavServices.icc index 194b46d4b1..e159b29aa5 100644 --- a/source/geometry/navigation/include/G4AuxiliaryNavServices.icc +++ b/source/geometry/navigation/include/G4AuxiliaryNavServices.icc @@ -22,7 +22,7 @@ // // // $Id: G4AuxiliaryNavServices.icc,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4AuxiliaryNavServices Inline implementation diff --git a/source/geometry/navigation/include/G4DrawVoxels.hh b/source/geometry/navigation/include/G4DrawVoxels.hh index e0bfd088bb..101008adcc 100644 --- a/source/geometry/navigation/include/G4DrawVoxels.hh +++ b/source/geometry/navigation/include/G4DrawVoxels.hh @@ -22,7 +22,7 @@ // // // $Id: G4DrawVoxels.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4DrawVoxels diff --git a/source/geometry/navigation/include/G4GeomTestErrorList.hh b/source/geometry/navigation/include/G4GeomTestErrorList.hh index 4923729571..5030b9538e 100644 --- a/source/geometry/navigation/include/G4GeomTestErrorList.hh +++ b/source/geometry/navigation/include/G4GeomTestErrorList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestErrorList.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestLogger.hh b/source/geometry/navigation/include/G4GeomTestLogger.hh index 6a047915c4..6668da3a83 100644 --- a/source/geometry/navigation/include/G4GeomTestLogger.hh +++ b/source/geometry/navigation/include/G4GeomTestLogger.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestLogger.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestOverlapList.hh b/source/geometry/navigation/include/G4GeomTestOverlapList.hh index 01694e27e0..3245a7c9a1 100644 --- a/source/geometry/navigation/include/G4GeomTestOverlapList.hh +++ b/source/geometry/navigation/include/G4GeomTestOverlapList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOverlapList.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestOvershootList.hh b/source/geometry/navigation/include/G4GeomTestOvershootList.hh index 776ef8a9a0..67d97ba159 100644 --- a/source/geometry/navigation/include/G4GeomTestOvershootList.hh +++ b/source/geometry/navigation/include/G4GeomTestOvershootList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOvershootList.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestPoint.hh b/source/geometry/navigation/include/G4GeomTestPoint.hh index 0085927d1d..0fe15a7df2 100644 --- a/source/geometry/navigation/include/G4GeomTestPoint.hh +++ b/source/geometry/navigation/include/G4GeomTestPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestPoint.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestSegment.hh b/source/geometry/navigation/include/G4GeomTestSegment.hh index 29d7972b23..5fa9b044fb 100644 --- a/source/geometry/navigation/include/G4GeomTestSegment.hh +++ b/source/geometry/navigation/include/G4GeomTestSegment.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestSegment.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestStreamLogger.hh b/source/geometry/navigation/include/G4GeomTestStreamLogger.hh index 5eb561734c..bfa60820bb 100644 --- a/source/geometry/navigation/include/G4GeomTestStreamLogger.hh +++ b/source/geometry/navigation/include/G4GeomTestStreamLogger.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestStreamLogger.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestVolPoint.hh b/source/geometry/navigation/include/G4GeomTestVolPoint.hh index cbd69d22cb..802b89c01c 100644 --- a/source/geometry/navigation/include/G4GeomTestVolPoint.hh +++ b/source/geometry/navigation/include/G4GeomTestVolPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolPoint.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestVolume.hh b/source/geometry/navigation/include/G4GeomTestVolume.hh index d20c90b0ac..ed787a3bfc 100644 --- a/source/geometry/navigation/include/G4GeomTestVolume.hh +++ b/source/geometry/navigation/include/G4GeomTestVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolume.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeometryMessenger.hh b/source/geometry/navigation/include/G4GeometryMessenger.hh index c10ec0d3c7..dec32ca3c7 100644 --- a/source/geometry/navigation/include/G4GeometryMessenger.hh +++ b/source/geometry/navigation/include/G4GeometryMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryMessenger.hh,v 1.3 2004/03/10 18:21:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4Navigator.hh b/source/geometry/navigation/include/G4Navigator.hh index bbd5e61268..11911379d5 100644 --- a/source/geometry/navigation/include/G4Navigator.hh +++ b/source/geometry/navigation/include/G4Navigator.hh @@ -22,7 +22,7 @@ // // // $Id: G4Navigator.hh,v 1.10 2004/11/24 08:27:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4Navigator diff --git a/source/geometry/navigation/include/G4Navigator.icc b/source/geometry/navigation/include/G4Navigator.icc index bd0e1d321b..3ca56dc23f 100644 --- a/source/geometry/navigation/include/G4Navigator.icc +++ b/source/geometry/navigation/include/G4Navigator.icc @@ -22,7 +22,7 @@ // // // $Id: G4Navigator.icc,v 1.7 2004/11/24 08:27:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4Navigator Inline implementation diff --git a/source/geometry/navigation/include/G4NormalNavigation.hh b/source/geometry/navigation/include/G4NormalNavigation.hh index 75fec1f005..e039569b20 100644 --- a/source/geometry/navigation/include/G4NormalNavigation.hh +++ b/source/geometry/navigation/include/G4NormalNavigation.hh @@ -22,7 +22,7 @@ // // // $Id: G4NormalNavigation.hh,v 1.3 2004/03/10 18:21:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4NormalNavigation diff --git a/source/geometry/navigation/include/G4NormalNavigation.icc b/source/geometry/navigation/include/G4NormalNavigation.icc index 764bc966d5..9e5c1bce48 100644 --- a/source/geometry/navigation/include/G4NormalNavigation.icc +++ b/source/geometry/navigation/include/G4NormalNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4NormalNavigation.icc,v 1.3 2004/03/10 18:21:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4NormalNavigation Inline Implementation diff --git a/source/geometry/navigation/include/G4ParameterisedNavigation.hh b/source/geometry/navigation/include/G4ParameterisedNavigation.hh index f8ad1bb68f..54a5293312 100644 --- a/source/geometry/navigation/include/G4ParameterisedNavigation.hh +++ b/source/geometry/navigation/include/G4ParameterisedNavigation.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisedNavigation.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ParameterisedNavigation diff --git a/source/geometry/navigation/include/G4ParameterisedNavigation.icc b/source/geometry/navigation/include/G4ParameterisedNavigation.icc index c3f9a6a7ef..dc60eb3820 100644 --- a/source/geometry/navigation/include/G4ParameterisedNavigation.icc +++ b/source/geometry/navigation/include/G4ParameterisedNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisedNavigation.icc,v 1.3 2004/09/26 01:18:17 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ParameterisedNavigation Inline implementation diff --git a/source/geometry/navigation/include/G4PropagatorInField.hh b/source/geometry/navigation/include/G4PropagatorInField.hh index 0471ca15e1..5cf04274be 100644 --- a/source/geometry/navigation/include/G4PropagatorInField.hh +++ b/source/geometry/navigation/include/G4PropagatorInField.hh @@ -22,7 +22,7 @@ // // // $Id: G4PropagatorInField.hh,v 1.8 2004/02/09 12:00:29 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4PropagatorInField // diff --git a/source/geometry/navigation/include/G4PropagatorInField.icc b/source/geometry/navigation/include/G4PropagatorInField.icc index a36aac1b4d..664d6901d5 100644 --- a/source/geometry/navigation/include/G4PropagatorInField.icc +++ b/source/geometry/navigation/include/G4PropagatorInField.icc @@ -22,7 +22,7 @@ // // // $Id: G4PropagatorInField.icc,v 1.7 2004/02/09 12:00:12 japost Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------------------ diff --git a/source/geometry/navigation/include/G4ReplicaNavigation.hh b/source/geometry/navigation/include/G4ReplicaNavigation.hh index 8fe7a146dc..b9c2786ef4 100644 --- a/source/geometry/navigation/include/G4ReplicaNavigation.hh +++ b/source/geometry/navigation/include/G4ReplicaNavigation.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReplicaNavigation.hh,v 1.3 2004/03/10 18:21:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ReplicaNavigation diff --git a/source/geometry/navigation/include/G4ReplicaNavigation.icc b/source/geometry/navigation/include/G4ReplicaNavigation.icc index 263f6526c1..aac322a82b 100644 --- a/source/geometry/navigation/include/G4ReplicaNavigation.icc +++ b/source/geometry/navigation/include/G4ReplicaNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4ReplicaNavigation.icc,v 1.4 2004/12/10 16:20:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ReplicaNavigation Inline implementation diff --git a/source/geometry/navigation/include/G4TransportationManager.hh b/source/geometry/navigation/include/G4TransportationManager.hh index 5619c414af..4090a022e2 100644 --- a/source/geometry/navigation/include/G4TransportationManager.hh +++ b/source/geometry/navigation/include/G4TransportationManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4TransportationManager.hh,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4TransportationManager // diff --git a/source/geometry/navigation/include/G4TransportationManager.icc b/source/geometry/navigation/include/G4TransportationManager.icc index 3e2dea1a1b..ad1c52a050 100644 --- a/source/geometry/navigation/include/G4TransportationManager.icc +++ b/source/geometry/navigation/include/G4TransportationManager.icc @@ -22,7 +22,7 @@ // // // $Id: G4TransportationManager.icc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // ------------------------------------------------------------ // GEANT 4 inlined function members implementation // ------------------------------------------------------------ diff --git a/source/geometry/navigation/include/G4VoxelNavigation.hh b/source/geometry/navigation/include/G4VoxelNavigation.hh index aaf5546701..d4ba41046d 100644 --- a/source/geometry/navigation/include/G4VoxelNavigation.hh +++ b/source/geometry/navigation/include/G4VoxelNavigation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VoxelNavigation.hh,v 1.3 2004/03/10 18:21:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4VoxelNavigation diff --git a/source/geometry/navigation/include/G4VoxelNavigation.icc b/source/geometry/navigation/include/G4VoxelNavigation.icc index 60675c69f0..4e28a2b3a3 100644 --- a/source/geometry/navigation/include/G4VoxelNavigation.icc +++ b/source/geometry/navigation/include/G4VoxelNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4VoxelNavigation.icc,v 1.3 2004/03/10 18:21:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4VoxelNavigation Inline implementation diff --git a/source/geometry/navigation/src/G4AuxiliaryNavServices.cc b/source/geometry/navigation/src/G4AuxiliaryNavServices.cc index c35547cb9b..74fd22c7fd 100644 --- a/source/geometry/navigation/src/G4AuxiliaryNavServices.cc +++ b/source/geometry/navigation/src/G4AuxiliaryNavServices.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4AuxiliaryNavServices.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/navigation/src/G4DrawVoxels.cc b/source/geometry/navigation/src/G4DrawVoxels.cc index 271e03ccd6..d08a2ee5d8 100644 --- a/source/geometry/navigation/src/G4DrawVoxels.cc +++ b/source/geometry/navigation/src/G4DrawVoxels.cc @@ -22,7 +22,7 @@ // // // $Id: G4DrawVoxels.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4DrawVoxels diff --git a/source/geometry/navigation/src/G4GeomTestErrorList.cc b/source/geometry/navigation/src/G4GeomTestErrorList.cc index 49532bd2c0..034fb8598a 100644 --- a/source/geometry/navigation/src/G4GeomTestErrorList.cc +++ b/source/geometry/navigation/src/G4GeomTestErrorList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestErrorList.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestOverlapList.cc b/source/geometry/navigation/src/G4GeomTestOverlapList.cc index 48ec248e01..81b395580e 100644 --- a/source/geometry/navigation/src/G4GeomTestOverlapList.cc +++ b/source/geometry/navigation/src/G4GeomTestOverlapList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOverlapList.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestOvershootList.cc b/source/geometry/navigation/src/G4GeomTestOvershootList.cc index 0ff00be68a..7fccbadd1c 100644 --- a/source/geometry/navigation/src/G4GeomTestOvershootList.cc +++ b/source/geometry/navigation/src/G4GeomTestOvershootList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOvershootList.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestPoint.cc b/source/geometry/navigation/src/G4GeomTestPoint.cc index 150a1155a5..d5e5a50c4d 100644 --- a/source/geometry/navigation/src/G4GeomTestPoint.cc +++ b/source/geometry/navigation/src/G4GeomTestPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestPoint.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestSegment.cc b/source/geometry/navigation/src/G4GeomTestSegment.cc index 5cfe21e519..3c6112471e 100644 --- a/source/geometry/navigation/src/G4GeomTestSegment.cc +++ b/source/geometry/navigation/src/G4GeomTestSegment.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestSegment.cc,v 1.4 2004/09/02 14:44:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestStreamLogger.cc b/source/geometry/navigation/src/G4GeomTestStreamLogger.cc index 5af0dd18b9..fd42377d8b 100644 --- a/source/geometry/navigation/src/G4GeomTestStreamLogger.cc +++ b/source/geometry/navigation/src/G4GeomTestStreamLogger.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestStreamLogger.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestVolPoint.cc b/source/geometry/navigation/src/G4GeomTestVolPoint.cc index a950ec8928..9b8d544aa9 100644 --- a/source/geometry/navigation/src/G4GeomTestVolPoint.cc +++ b/source/geometry/navigation/src/G4GeomTestVolPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolPoint.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestVolume.cc b/source/geometry/navigation/src/G4GeomTestVolume.cc index d07702994e..8b56a2bdff 100644 --- a/source/geometry/navigation/src/G4GeomTestVolume.cc +++ b/source/geometry/navigation/src/G4GeomTestVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolume.cc,v 1.4 2004/12/02 09:31:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeometryMessenger.cc b/source/geometry/navigation/src/G4GeometryMessenger.cc index 6f584009f5..70f94da18c 100644 --- a/source/geometry/navigation/src/G4GeometryMessenger.cc +++ b/source/geometry/navigation/src/G4GeometryMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryMessenger.cc,v 1.4 2004/03/11 13:09:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4NormalNavigation.cc b/source/geometry/navigation/src/G4NormalNavigation.cc index 5817d8fb1f..ad083840e6 100644 --- a/source/geometry/navigation/src/G4NormalNavigation.cc +++ b/source/geometry/navigation/src/G4NormalNavigation.cc @@ -22,7 +22,7 @@ // // // $Id: G4NormalNavigation.cc,v 1.7 2004/09/10 15:38:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4NormalNavigation Implementation diff --git a/source/geometry/navigation/src/G4ParameterisedNavigation.cc b/source/geometry/navigation/src/G4ParameterisedNavigation.cc index 7225031c1c..2e58cab942 100644 --- a/source/geometry/navigation/src/G4ParameterisedNavigation.cc +++ b/source/geometry/navigation/src/G4ParameterisedNavigation.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisedNavigation.cc,v 1.4 2004/09/10 15:38:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ParameterisedNavigation Implementation diff --git a/source/geometry/navigation/src/G4PropagatorInField.cc b/source/geometry/navigation/src/G4PropagatorInField.cc index 339b5408bf..ab2a152604 100644 --- a/source/geometry/navigation/src/G4PropagatorInField.cc +++ b/source/geometry/navigation/src/G4PropagatorInField.cc @@ -22,7 +22,7 @@ // // // $Id: G4PropagatorInField.cc,v 1.20 2004/12/02 09:31:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // This class implements an algorithm to track a particle in a diff --git a/source/geometry/navigation/src/G4ReplicaNavigation.cc b/source/geometry/navigation/src/G4ReplicaNavigation.cc index 14dd845d7e..8c2bcc4e14 100644 --- a/source/geometry/navigation/src/G4ReplicaNavigation.cc +++ b/source/geometry/navigation/src/G4ReplicaNavigation.cc @@ -22,7 +22,7 @@ // // // $Id: G4ReplicaNavigation.cc,v 1.10 2004/12/10 16:20:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ReplicaNavigation Implementation diff --git a/source/geometry/navigation/src/G4TransportationManager.cc b/source/geometry/navigation/src/G4TransportationManager.cc index b3d5cfc966..58b7510191 100644 --- a/source/geometry/navigation/src/G4TransportationManager.cc +++ b/source/geometry/navigation/src/G4TransportationManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4TransportationManager.cc,v 1.4 2003/12/05 17:08:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4TransportationManager diff --git a/source/geometry/navigation/src/G4VoxelNavigation.cc b/source/geometry/navigation/src/G4VoxelNavigation.cc index d8703cbd12..9573f8542a 100644 --- a/source/geometry/navigation/src/G4VoxelNavigation.cc +++ b/source/geometry/navigation/src/G4VoxelNavigation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VoxelNavigation.cc,v 1.5 2004/09/10 15:38:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4VoxelNavigation Implementation diff --git a/source/geometry/solids/BREPS/History b/source/geometry/solids/BREPS/History index 2d364ad7a5..3211e5dd66 100644 --- a/source/geometry/solids/BREPS/History +++ b/source/geometry/solids/BREPS/History @@ -1,4 +1,4 @@ -$Id: History,v 1.56 2004/10/10 10:56:26 johna Exp $ +$Id: History,v 1.59 2005/04/04 09:39:19 gcosmo Exp $ ---------------------------------------------------------------------------- ========================================================= @@ -17,6 +17,14 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +23/03/2005 : J.Allison breps-V07-00-01 +- Added test for Number-Of-Rotation-Steps in G4BREPSolid::GetPolyhedron(). + Requires tag "greps-V07-00-02". + +03/03/2005 : J.Allison breps-V07-00-00 +- Changed AddThis() with AddSolid() for all solids in DescribeYourselfTo() + implementation for G4BREPSolid and G4BREPSolidOpenPCone. + 10/10/2004 : J.Allison breps-V06-02-02 - Added GetPolyhedron, a smart access function that creates a G4Polyhedron on request and stores for future access. A null pointer means "not diff --git a/source/geometry/solids/BREPS/include/G4Assembly.hh b/source/geometry/solids/BREPS/include/G4Assembly.hh index 703a361d47..3ef07146bd 100644 --- a/source/geometry/solids/BREPS/include/G4Assembly.hh +++ b/source/geometry/solids/BREPS/include/G4Assembly.hh @@ -22,7 +22,7 @@ // // // $Id: G4Assembly.hh,v 1.9 2003/06/16 16:52:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Assembly diff --git a/source/geometry/solids/BREPS/include/G4Assembly.icc b/source/geometry/solids/BREPS/include/G4Assembly.icc index e84e4139d0..c27153342b 100644 --- a/source/geometry/solids/BREPS/include/G4Assembly.icc +++ b/source/geometry/solids/BREPS/include/G4Assembly.icc @@ -22,7 +22,7 @@ // // // $Id: G4Assembly.icc,v 1.3 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh index 55e8eb5a06..86f9929a32 100644 --- a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh +++ b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Axis2Placement3D.hh,v 1.4 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Axis2Placement3D diff --git a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc index 297a77de1f..3739718dab 100644 --- a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc +++ b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc @@ -22,7 +22,7 @@ // // // $Id: G4Axis2Placement3D.icc,v 1.7 2001/07/20 11:52:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BREPSolid.hh b/source/geometry/solids/BREPS/include/G4BREPSolid.hh index a19af2ae4f..e8298f3414 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolid.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolid.hh,v 1.14 2004/10/10 10:56:31 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolid diff --git a/source/geometry/solids/BREPS/include/G4BREPSolid.icc b/source/geometry/solids/BREPS/include/G4BREPSolid.icc index 83b0da475a..0f34a38e93 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolid.icc +++ b/source/geometry/solids/BREPS/include/G4BREPSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolid.icc,v 1.6 2004/09/22 09:52:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh b/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh index d240f7eeff..e829583e30 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidBox.hh,v 1.7 2003/06/16 16:52:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidBox diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh index 0b10030ebe..94fb49a027 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidCone.hh,v 1.9 2003/06/16 16:52:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidCone diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh b/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh index 1760397825..e8838dc5e6 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidCylinder.hh,v 1.8 2003/06/16 16:52:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidCylinder diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh index 941e0e52cd..ff7b4b8319 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidOpenPCone.hh,v 1.7 2003/06/16 16:52:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidOpenPCone diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh index a927a7ba0d..2cb88a383c 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidPCone.hh,v 1.12 2003/06/16 16:52:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidPCone diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh b/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh index e19e374578..4dcad1f58a 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidPolyhedra.hh,v 1.12 2003/06/16 16:52:28 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidPolyhedra diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh b/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh index 1a09601db8..9c9ad18004 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidSphere.hh,v 1.9 2003/06/16 16:52:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidSphere diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh b/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh index ee27000d93..3cde31003e 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidTorus.hh,v 1.8 2003/06/16 16:52:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidTorus diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurve.hh b/source/geometry/solids/BREPS/include/G4BSplineCurve.hh index 80ce11d87b..937b88df8f 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineCurve.hh +++ b/source/geometry/solids/BREPS/include/G4BSplineCurve.hh @@ -22,7 +22,7 @@ // // // $Id: G4BSplineCurve.hh,v 1.11 2003/06/16 16:52:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurve diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurve.icc b/source/geometry/solids/BREPS/include/G4BSplineCurve.icc index 9f3a37fd55..4a9dff2a39 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineCurve.icc +++ b/source/geometry/solids/BREPS/include/G4BSplineCurve.icc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineCurve.icc,v 1.6 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh b/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh index fab6df510e..0c9e5f8035 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh +++ b/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh @@ -22,7 +22,7 @@ // // // $Id: G4BSplineCurveWithKnots.hh,v 1.4 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurveWithKnots diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurface.hh b/source/geometry/solids/BREPS/include/G4BSplineSurface.hh index 383ecd7cd2..9059c89874 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineSurface.hh +++ b/source/geometry/solids/BREPS/include/G4BSplineSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4BSplineSurface.hh,v 1.10 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurface diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurface.icc b/source/geometry/solids/BREPS/include/G4BSplineSurface.icc index 1baf47e714..1a01233e3c 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineSurface.icc +++ b/source/geometry/solids/BREPS/include/G4BSplineSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineSurface.icc,v 1.5 2003/03/28 13:11:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh b/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh index af4272a8af..75cefa8f12 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh +++ b/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh @@ -22,7 +22,7 @@ // // // $Id: G4BSplineSurfaceWithKnots.hh,v 1.3 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurfaceWithKnots diff --git a/source/geometry/solids/BREPS/include/G4BezierSurface.hh b/source/geometry/solids/BREPS/include/G4BezierSurface.hh index eeae6aece9..ea7b9cb3f9 100644 --- a/source/geometry/solids/BREPS/include/G4BezierSurface.hh +++ b/source/geometry/solids/BREPS/include/G4BezierSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4BezierSurface.hh,v 1.6 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BezierSurface diff --git a/source/geometry/solids/BREPS/include/G4BezierSurface.icc b/source/geometry/solids/BREPS/include/G4BezierSurface.icc index 9fc833531d..bc94fca5d0 100644 --- a/source/geometry/solids/BREPS/include/G4BezierSurface.icc +++ b/source/geometry/solids/BREPS/include/G4BezierSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4BezierSurface.icc,v 1.3 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh b/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh index 384bf80d39..198cd7f862 100644 --- a/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh +++ b/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4BoundingBox3D.hh,v 1.5 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BoundingBox3D diff --git a/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc b/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc index 102166b24b..575b9be4ec 100644 --- a/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc +++ b/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc @@ -22,7 +22,7 @@ // // // $Id: G4BoundingBox3D.icc,v 1.3 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CircularCurve.hh b/source/geometry/solids/BREPS/include/G4CircularCurve.hh index f15c763f35..b5cc295c16 100644 --- a/source/geometry/solids/BREPS/include/G4CircularCurve.hh +++ b/source/geometry/solids/BREPS/include/G4CircularCurve.hh @@ -22,7 +22,7 @@ // // // $Id: G4CircularCurve.hh,v 1.7 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CircularCurve diff --git a/source/geometry/solids/BREPS/include/G4CircularCurve.icc b/source/geometry/solids/BREPS/include/G4CircularCurve.icc index 2cf1cca436..f663a40523 100644 --- a/source/geometry/solids/BREPS/include/G4CircularCurve.icc +++ b/source/geometry/solids/BREPS/include/G4CircularCurve.icc @@ -22,7 +22,7 @@ // // // $Id: G4CircularCurve.icc,v 1.5 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CompositeCurve.hh b/source/geometry/solids/BREPS/include/G4CompositeCurve.hh index 80de00255d..b8892e860a 100644 --- a/source/geometry/solids/BREPS/include/G4CompositeCurve.hh +++ b/source/geometry/solids/BREPS/include/G4CompositeCurve.hh @@ -22,7 +22,7 @@ // // // $Id: G4CompositeCurve.hh,v 1.6 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CompositeCurve diff --git a/source/geometry/solids/BREPS/include/G4CompositeCurve.icc b/source/geometry/solids/BREPS/include/G4CompositeCurve.icc index 52057f0661..c5b72a7c9f 100644 --- a/source/geometry/solids/BREPS/include/G4CompositeCurve.icc +++ b/source/geometry/solids/BREPS/include/G4CompositeCurve.icc @@ -22,7 +22,7 @@ // // // $Id: G4CompositeCurve.icc,v 1.4 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Conic.hh b/source/geometry/solids/BREPS/include/G4Conic.hh index f0df9964d6..461cfa5b4b 100644 --- a/source/geometry/solids/BREPS/include/G4Conic.hh +++ b/source/geometry/solids/BREPS/include/G4Conic.hh @@ -22,7 +22,7 @@ // // // $Id: G4Conic.hh,v 1.6 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Conic diff --git a/source/geometry/solids/BREPS/include/G4Conic.icc b/source/geometry/solids/BREPS/include/G4Conic.icc index 3022c31986..8906fd2922 100644 --- a/source/geometry/solids/BREPS/include/G4Conic.icc +++ b/source/geometry/solids/BREPS/include/G4Conic.icc @@ -22,7 +22,7 @@ // // // $Id: G4Conic.icc,v 1.3 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ConicalSurface.hh b/source/geometry/solids/BREPS/include/G4ConicalSurface.hh index f8ccfa1ec1..5f217b39e9 100644 --- a/source/geometry/solids/BREPS/include/G4ConicalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4ConicalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4ConicalSurface.hh,v 1.9 2003/06/16 16:52:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ConicalSurface diff --git a/source/geometry/solids/BREPS/include/G4ConicalSurface.icc b/source/geometry/solids/BREPS/include/G4ConicalSurface.icc index 3bc9e71bb4..76af2601ff 100644 --- a/source/geometry/solids/BREPS/include/G4ConicalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4ConicalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4ConicalSurface.icc,v 1.3 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ControlPoints.hh b/source/geometry/solids/BREPS/include/G4ControlPoints.hh index 05a6353867..3a9dc10e07 100644 --- a/source/geometry/solids/BREPS/include/G4ControlPoints.hh +++ b/source/geometry/solids/BREPS/include/G4ControlPoints.hh @@ -22,7 +22,7 @@ // // // $Id: G4ControlPoints.hh,v 1.6 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ControlPoints diff --git a/source/geometry/solids/BREPS/include/G4ControlPoints.icc b/source/geometry/solids/BREPS/include/G4ControlPoints.icc index 72c69a0489..e1349e3562 100644 --- a/source/geometry/solids/BREPS/include/G4ControlPoints.icc +++ b/source/geometry/solids/BREPS/include/G4ControlPoints.icc @@ -22,7 +22,7 @@ // // // $Id: G4ControlPoints.icc,v 1.2 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ConvexHull.hh b/source/geometry/solids/BREPS/include/G4ConvexHull.hh index 933ebb7517..8c80c867d1 100644 --- a/source/geometry/solids/BREPS/include/G4ConvexHull.hh +++ b/source/geometry/solids/BREPS/include/G4ConvexHull.hh @@ -22,7 +22,7 @@ // // // $Id: G4ConvexHull.hh,v 1.6 2002/02/26 11:16:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ConvexHull diff --git a/source/geometry/solids/BREPS/include/G4Curve.hh b/source/geometry/solids/BREPS/include/G4Curve.hh index b1be458c67..49b2c908ea 100644 --- a/source/geometry/solids/BREPS/include/G4Curve.hh +++ b/source/geometry/solids/BREPS/include/G4Curve.hh @@ -22,7 +22,7 @@ // // // $Id: G4Curve.hh,v 1.8 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Curve diff --git a/source/geometry/solids/BREPS/include/G4Curve.icc b/source/geometry/solids/BREPS/include/G4Curve.icc index 8841313246..7f555ce534 100644 --- a/source/geometry/solids/BREPS/include/G4Curve.icc +++ b/source/geometry/solids/BREPS/include/G4Curve.icc @@ -22,7 +22,7 @@ // // // $Id: G4Curve.icc,v 1.6 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurvePoint.hh b/source/geometry/solids/BREPS/include/G4CurvePoint.hh index 85237e31c0..d65a88b7f3 100644 --- a/source/geometry/solids/BREPS/include/G4CurvePoint.hh +++ b/source/geometry/solids/BREPS/include/G4CurvePoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4CurvePoint.hh,v 1.5 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CurvePoint diff --git a/source/geometry/solids/BREPS/include/G4CurvePoint.icc b/source/geometry/solids/BREPS/include/G4CurvePoint.icc index b1aba08fb6..d7ee29b3e8 100644 --- a/source/geometry/solids/BREPS/include/G4CurvePoint.icc +++ b/source/geometry/solids/BREPS/include/G4CurvePoint.icc @@ -22,7 +22,7 @@ // // // $Id: G4CurvePoint.icc,v 1.3 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh index 206d7e0b7b..e6cfe97dd8 100644 --- a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh +++ b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh @@ -22,7 +22,7 @@ // // // $Id: G4CurveRayIntersection.hh,v 1.4 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CurveRayIntersection diff --git a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc index b353a9caca..06f1925994 100644 --- a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc +++ b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc @@ -22,7 +22,7 @@ // // // $Id: G4CurveRayIntersection.icc,v 1.3 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurveVector.hh b/source/geometry/solids/BREPS/include/G4CurveVector.hh index 478143698e..4cc8a84b8a 100644 --- a/source/geometry/solids/BREPS/include/G4CurveVector.hh +++ b/source/geometry/solids/BREPS/include/G4CurveVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4CurveVector.hh,v 1.6 2003/06/16 16:52:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CurveVector diff --git a/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh b/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh index 76b9823b35..1b7ff4eb31 100644 --- a/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4CylindricalSurface.hh,v 1.9 2003/06/16 16:52:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4CylindricalSurface diff --git a/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc b/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc index 0dd3c68c29..126cf5a766 100644 --- a/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4CylindricalSurface.icc,v 1.3 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Ellipse.hh b/source/geometry/solids/BREPS/include/G4Ellipse.hh index 0f8deb59b2..d2b20f17c1 100644 --- a/source/geometry/solids/BREPS/include/G4Ellipse.hh +++ b/source/geometry/solids/BREPS/include/G4Ellipse.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ellipse.hh,v 1.8 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Ellipse diff --git a/source/geometry/solids/BREPS/include/G4Ellipse.icc b/source/geometry/solids/BREPS/include/G4Ellipse.icc index 57ad3999aa..08daafb8bc 100644 --- a/source/geometry/solids/BREPS/include/G4Ellipse.icc +++ b/source/geometry/solids/BREPS/include/G4Ellipse.icc @@ -22,7 +22,7 @@ // // // $Id: G4Ellipse.icc,v 1.7 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FConicalSurface.hh b/source/geometry/solids/BREPS/include/G4FConicalSurface.hh index a8c9bb3b51..1f394f81fb 100644 --- a/source/geometry/solids/BREPS/include/G4FConicalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4FConicalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4FConicalSurface.hh,v 1.12 2003/06/16 16:52:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4FConicalSurface diff --git a/source/geometry/solids/BREPS/include/G4FConicalSurface.icc b/source/geometry/solids/BREPS/include/G4FConicalSurface.icc index a735571043..9a610057b6 100644 --- a/source/geometry/solids/BREPS/include/G4FConicalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4FConicalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4FConicalSurface.icc,v 1.3 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh index c16b0fd873..9cf8a84739 100644 --- a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4FCylindricalSurface.hh,v 1.12 2003/06/16 16:52:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4FCylindricalSurface diff --git a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc index a9241c2db1..95b9a51b75 100644 --- a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4FCylindricalSurface.icc,v 1.3 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FPlane.hh b/source/geometry/solids/BREPS/include/G4FPlane.hh index 794b100f91..bed60e4c09 100644 --- a/source/geometry/solids/BREPS/include/G4FPlane.hh +++ b/source/geometry/solids/BREPS/include/G4FPlane.hh @@ -22,7 +22,7 @@ // // // $Id: G4FPlane.hh,v 1.12 2002/01/28 16:38:40 radoone Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4FPlane diff --git a/source/geometry/solids/BREPS/include/G4FPlane.icc b/source/geometry/solids/BREPS/include/G4FPlane.icc index 72b7a24bdc..2e3bea94ac 100644 --- a/source/geometry/solids/BREPS/include/G4FPlane.icc +++ b/source/geometry/solids/BREPS/include/G4FPlane.icc @@ -22,7 +22,7 @@ // // // $Id: G4FPlane.icc,v 1.5 2003/03/28 13:11:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Globals.hh b/source/geometry/solids/BREPS/include/G4Globals.hh index 8e2179c2fb..69af308927 100644 --- a/source/geometry/solids/BREPS/include/G4Globals.hh +++ b/source/geometry/solids/BREPS/include/G4Globals.hh @@ -22,7 +22,7 @@ // // // $Id: G4Globals.hh,v 1.4 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Author: A.Breakstone // Adaptation: J.Sulkimo, P.Urban. diff --git a/source/geometry/solids/BREPS/include/G4Hyperbola.hh b/source/geometry/solids/BREPS/include/G4Hyperbola.hh index 5a91147902..f2a2390fbe 100644 --- a/source/geometry/solids/BREPS/include/G4Hyperbola.hh +++ b/source/geometry/solids/BREPS/include/G4Hyperbola.hh @@ -22,7 +22,7 @@ // // // $Id: G4Hyperbola.hh,v 1.8 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Hyperbola diff --git a/source/geometry/solids/BREPS/include/G4Hyperbola.icc b/source/geometry/solids/BREPS/include/G4Hyperbola.icc index 973b9cd04c..769a26885e 100644 --- a/source/geometry/solids/BREPS/include/G4Hyperbola.icc +++ b/source/geometry/solids/BREPS/include/G4Hyperbola.icc @@ -22,7 +22,7 @@ // // // $Id: G4Hyperbola.icc,v 1.8 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4KnotVector.hh b/source/geometry/solids/BREPS/include/G4KnotVector.hh index a84d21dd6f..cd776872a0 100644 --- a/source/geometry/solids/BREPS/include/G4KnotVector.hh +++ b/source/geometry/solids/BREPS/include/G4KnotVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4KnotVector.hh,v 1.8 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4KnotVector diff --git a/source/geometry/solids/BREPS/include/G4KnotVector.icc b/source/geometry/solids/BREPS/include/G4KnotVector.icc index 293900dd34..b5e23ce16b 100644 --- a/source/geometry/solids/BREPS/include/G4KnotVector.icc +++ b/source/geometry/solids/BREPS/include/G4KnotVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4KnotVector.icc,v 1.4 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Line.hh b/source/geometry/solids/BREPS/include/G4Line.hh index 05532b1ce8..a7eb5871b0 100644 --- a/source/geometry/solids/BREPS/include/G4Line.hh +++ b/source/geometry/solids/BREPS/include/G4Line.hh @@ -22,7 +22,7 @@ // // // $Id: G4Line.hh,v 1.7 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Line diff --git a/source/geometry/solids/BREPS/include/G4Line.icc b/source/geometry/solids/BREPS/include/G4Line.icc index 6273436b5e..47c85a53cc 100644 --- a/source/geometry/solids/BREPS/include/G4Line.icc +++ b/source/geometry/solids/BREPS/include/G4Line.icc @@ -22,7 +22,7 @@ // // // $Id: G4Line.icc,v 1.8 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4OsloMatrix.hh b/source/geometry/solids/BREPS/include/G4OsloMatrix.hh index 94c0b4f4f1..dcf3110031 100644 --- a/source/geometry/solids/BREPS/include/G4OsloMatrix.hh +++ b/source/geometry/solids/BREPS/include/G4OsloMatrix.hh @@ -22,7 +22,7 @@ // // // $Id: G4OsloMatrix.hh,v 1.5 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4OsloMatrix diff --git a/source/geometry/solids/BREPS/include/G4OsloMatrix.icc b/source/geometry/solids/BREPS/include/G4OsloMatrix.icc index e3eaca0121..638414685e 100644 --- a/source/geometry/solids/BREPS/include/G4OsloMatrix.icc +++ b/source/geometry/solids/BREPS/include/G4OsloMatrix.icc @@ -22,7 +22,7 @@ // // // $Id: G4OsloMatrix.icc,v 1.3 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Parabola.hh b/source/geometry/solids/BREPS/include/G4Parabola.hh index 0fea876d98..e5d49e7f4c 100644 --- a/source/geometry/solids/BREPS/include/G4Parabola.hh +++ b/source/geometry/solids/BREPS/include/G4Parabola.hh @@ -22,7 +22,7 @@ // // // $Id: G4Parabola.hh,v 1.8 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Parabola diff --git a/source/geometry/solids/BREPS/include/G4Parabola.icc b/source/geometry/solids/BREPS/include/G4Parabola.icc index 11c76ab08c..d687d7a525 100644 --- a/source/geometry/solids/BREPS/include/G4Parabola.icc +++ b/source/geometry/solids/BREPS/include/G4Parabola.icc @@ -22,7 +22,7 @@ // // // $Id: G4Parabola.icc,v 1.7 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4PlacedSolid.hh b/source/geometry/solids/BREPS/include/G4PlacedSolid.hh index 4c95dd7dd2..10d4cacf65 100644 --- a/source/geometry/solids/BREPS/include/G4PlacedSolid.hh +++ b/source/geometry/solids/BREPS/include/G4PlacedSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlacedSolid.hh,v 1.9 2003/06/16 16:52:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4PlacedSolid diff --git a/source/geometry/solids/BREPS/include/G4PlacedSolid.icc b/source/geometry/solids/BREPS/include/G4PlacedSolid.icc index 1b8e9ee0a1..77a9708c40 100644 --- a/source/geometry/solids/BREPS/include/G4PlacedSolid.icc +++ b/source/geometry/solids/BREPS/include/G4PlacedSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4PlacedSolid.icc,v 1.7 2003/06/16 16:52:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4PlacementVector.hh b/source/geometry/solids/BREPS/include/G4PlacementVector.hh index 17f5c124f7..bb823a9999 100644 --- a/source/geometry/solids/BREPS/include/G4PlacementVector.hh +++ b/source/geometry/solids/BREPS/include/G4PlacementVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlacementVector.hh,v 1.6 2003/06/16 16:52:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4PlacementVector diff --git a/source/geometry/solids/BREPS/include/G4Plane.hh b/source/geometry/solids/BREPS/include/G4Plane.hh index 610235c7a1..2b0d2940bb 100644 --- a/source/geometry/solids/BREPS/include/G4Plane.hh +++ b/source/geometry/solids/BREPS/include/G4Plane.hh @@ -22,7 +22,7 @@ // // // $Id: G4Plane.hh,v 1.5 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Plane diff --git a/source/geometry/solids/BREPS/include/G4Point3DVector.hh b/source/geometry/solids/BREPS/include/G4Point3DVector.hh index c9c707e4d4..f42d86e717 100644 --- a/source/geometry/solids/BREPS/include/G4Point3DVector.hh +++ b/source/geometry/solids/BREPS/include/G4Point3DVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4Point3DVector.hh,v 1.7 2003/06/16 16:52:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Point3DVector diff --git a/source/geometry/solids/BREPS/include/G4PointRat.hh b/source/geometry/solids/BREPS/include/G4PointRat.hh index 2c735707f4..e3c7e4a597 100644 --- a/source/geometry/solids/BREPS/include/G4PointRat.hh +++ b/source/geometry/solids/BREPS/include/G4PointRat.hh @@ -22,7 +22,7 @@ // // // $Id: G4PointRat.hh,v 1.9 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4PointRat diff --git a/source/geometry/solids/BREPS/include/G4PointRat.icc b/source/geometry/solids/BREPS/include/G4PointRat.icc index 752d72f19e..9ee95a8503 100644 --- a/source/geometry/solids/BREPS/include/G4PointRat.icc +++ b/source/geometry/solids/BREPS/include/G4PointRat.icc @@ -22,7 +22,7 @@ // // // $Id: G4PointRat.icc,v 1.3 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh b/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh index d0f56a2140..e99b231336 100644 --- a/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh +++ b/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProjectedSurface.hh,v 1.6 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ProjectedSurface diff --git a/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc b/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc index ee5cb350fb..f27bc109eb 100644 --- a/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc +++ b/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4ProjectedSurface.icc,v 1.4 2003/03/28 13:11:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Ray.hh b/source/geometry/solids/BREPS/include/G4Ray.hh index 229b3de957..b3446324aa 100644 --- a/source/geometry/solids/BREPS/include/G4Ray.hh +++ b/source/geometry/solids/BREPS/include/G4Ray.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ray.hh,v 1.8 2003/03/28 13:11:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Ray diff --git a/source/geometry/solids/BREPS/include/G4Ray.icc b/source/geometry/solids/BREPS/include/G4Ray.icc index 6b2e0b5792..ca434ec1dd 100644 --- a/source/geometry/solids/BREPS/include/G4Ray.icc +++ b/source/geometry/solids/BREPS/include/G4Ray.icc @@ -22,7 +22,7 @@ // // // $Id: G4Ray.icc,v 1.6 2002/11/21 16:52:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh b/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh index 034baa3b88..0fe39c031f 100644 --- a/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh +++ b/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4RectangularTrimmedSurface.hh,v 1.7 2001/07/11 09:59:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4BezierSurface diff --git a/source/geometry/solids/BREPS/include/G4STEPEntity.hh b/source/geometry/solids/BREPS/include/G4STEPEntity.hh index 770872e876..03afdd9d89 100644 --- a/source/geometry/solids/BREPS/include/G4STEPEntity.hh +++ b/source/geometry/solids/BREPS/include/G4STEPEntity.hh @@ -22,7 +22,7 @@ // // // $Id: G4STEPEntity.hh,v 1.6 2001/07/11 09:59:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4STEPEntity diff --git a/source/geometry/solids/BREPS/include/G4Sort.hh b/source/geometry/solids/BREPS/include/G4Sort.hh index 8d1ca13e09..15e89e06bf 100644 --- a/source/geometry/solids/BREPS/include/G4Sort.hh +++ b/source/geometry/solids/BREPS/include/G4Sort.hh @@ -22,7 +22,7 @@ // // // $Id: G4Sort.hh,v 1.4 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/source/geometry/solids/BREPS/include/G4SphericalSurface.hh b/source/geometry/solids/BREPS/include/G4SphericalSurface.hh index c7c30f1791..4ddf1384be 100644 --- a/source/geometry/solids/BREPS/include/G4SphericalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4SphericalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4SphericalSurface.hh,v 1.9 2003/06/16 16:52:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4SphericalSurface diff --git a/source/geometry/solids/BREPS/include/G4SphericalSurface.icc b/source/geometry/solids/BREPS/include/G4SphericalSurface.icc index 01b410a4da..665ab70501 100644 --- a/source/geometry/solids/BREPS/include/G4SphericalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4SphericalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4SphericalSurface.icc,v 1.3 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Surface.hh b/source/geometry/solids/BREPS/include/G4Surface.hh index a234c0c8e5..aea6a3fc42 100644 --- a/source/geometry/solids/BREPS/include/G4Surface.hh +++ b/source/geometry/solids/BREPS/include/G4Surface.hh @@ -22,7 +22,7 @@ // // // $Id: G4Surface.hh,v 1.8 2002/11/21 16:52:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4Surface diff --git a/source/geometry/solids/BREPS/include/G4Surface.icc b/source/geometry/solids/BREPS/include/G4Surface.icc index 55a605a2d1..c01edac515 100644 --- a/source/geometry/solids/BREPS/include/G4Surface.icc +++ b/source/geometry/solids/BREPS/include/G4Surface.icc @@ -22,7 +22,7 @@ // // // $Id: G4Surface.icc,v 1.4 2002/11/21 16:52:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh index d423215c56..1c5375a893 100644 --- a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh +++ b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceBoundary.hh,v 1.6 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4SurfaceBoundary diff --git a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc index 6439192a5e..942f470f96 100644 --- a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc +++ b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceBoundary.icc,v 1.4 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4SurfaceList.hh b/source/geometry/solids/BREPS/include/G4SurfaceList.hh index 084c3f0579..bcb2ce68e4 100644 --- a/source/geometry/solids/BREPS/include/G4SurfaceList.hh +++ b/source/geometry/solids/BREPS/include/G4SurfaceList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceList.hh,v 1.5 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4SurfaceList diff --git a/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh b/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh index b1c4efac35..c632a38e33 100644 --- a/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh +++ b/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceOfLinearExtrusion.hh,v 1.4 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4SurfaceOfLinearExtrusion diff --git a/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh b/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh index d6053b9e72..a372628125 100644 --- a/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh +++ b/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceOfRevolution.hh,v 1.4 2001/07/11 09:59:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4SurfaceOfRevolution diff --git a/source/geometry/solids/BREPS/include/G4ThreeMat.hh b/source/geometry/solids/BREPS/include/G4ThreeMat.hh index 7a9426ac79..029e877dc2 100644 --- a/source/geometry/solids/BREPS/include/G4ThreeMat.hh +++ b/source/geometry/solids/BREPS/include/G4ThreeMat.hh @@ -22,7 +22,7 @@ // // // $Id: G4ThreeMat.hh,v 1.9 2003/06/16 16:52:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ThreeMat diff --git a/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh b/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh index cff27ea7cd..46d9c010e1 100644 --- a/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4ToroidalSurface.hh,v 1.6 2001/07/11 09:59:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4ToroidalSurface diff --git a/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc b/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc index 1bd1cb1257..dce2309df0 100644 --- a/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4ToroidalSurface.icc,v 1.3 2001/07/11 09:59:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4UVHit.hh b/source/geometry/solids/BREPS/include/G4UVHit.hh index 8859031976..fa53136feb 100644 --- a/source/geometry/solids/BREPS/include/G4UVHit.hh +++ b/source/geometry/solids/BREPS/include/G4UVHit.hh @@ -22,7 +22,7 @@ // // // $Id: G4UVHit.hh,v 1.6 2001/07/11 09:59:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // Class G4UVHit diff --git a/source/geometry/solids/BREPS/src/G4Assembly.cc b/source/geometry/solids/BREPS/src/G4Assembly.cc index 65f8c1ef8d..df268e4772 100644 --- a/source/geometry/solids/BREPS/src/G4Assembly.cc +++ b/source/geometry/solids/BREPS/src/G4Assembly.cc @@ -22,7 +22,7 @@ // // // $Id: G4Assembly.cc,v 1.5 2001/07/11 09:59:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc b/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc index f6a816cd17..d655940fff 100644 --- a/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc +++ b/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc @@ -22,7 +22,7 @@ // // // $Id: G4Axis2Placement3D.cc,v 1.7 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolid.cc b/source/geometry/solids/BREPS/src/G4BREPSolid.cc index 011387ce0b..695a08cf9f 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolid.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolid.cc,v 1.31 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4BREPSolid.cc,v 1.33 2005/03/23 17:16:31 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -83,6 +83,8 @@ G4BREPSolid::~G4BREPSolid() if( nb_of_surfaces > 0 && SurfaceVec != 0 ) delete [] SurfaceVec; + + delete fpPolyhedron; } void G4BREPSolid::Initialize() @@ -1036,7 +1038,7 @@ G4double G4BREPSolid::DistanceToOut(const G4ThreeVector& Pt)const void G4BREPSolid::DescribeYourselfTo (G4VGraphicsScene& scene) const { - scene.AddThis (*this); + scene.AddSolid (*this); } G4Polyhedron* G4BREPSolid::CreatePolyhedron () const @@ -1446,9 +1448,12 @@ std::ostream& G4BREPSolid::StreamInfo(std::ostream& os) const G4Polyhedron* G4BREPSolid::GetPolyhedron () const { - if (!fpPolyhedron) - { - fpPolyhedron = CreatePolyhedron(); - } + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } return fpPolyhedron; } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc b/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc index fa4bd6a1d8..a3f9b42567 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidBox.cc,v 1.8 2003/06/16 16:52:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc index 50d01c1db7..5a1c450c9b 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BREPSolidCone.cc,v 1.13 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc b/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc index cb0a372f0a..c3f98fb7c4 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BREPSolidCylinder.cc,v 1.9 2003/06/16 16:52:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc index 4930dd6228..0fe6ba693c 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidOpenPCone.cc,v 1.8 2003/06/16 16:52:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4BREPSolidOpenPCone.cc,v 1.9 2005/03/03 16:06:06 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -78,7 +78,7 @@ G4BREPSolidOpenPCone::~G4BREPSolidOpenPCone() void G4BREPSolidOpenPCone::DescribeYourselfTo (G4VGraphicsScene& scene) const { - scene.AddThis ( *this ); + scene.AddSolid ( *this ); } // Streams solid contents to output stream. diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc index 9873ce3b9f..0955305690 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BREPSolidPCone.cc,v 1.35 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc b/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc index dad8b5283e..a8082595f1 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BREPSolidPolyhedra.cc,v 1.28 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc b/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc index 8d0968fc9a..388ee489f3 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidSphere.cc,v 1.9 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc b/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc index 6331563d8a..95845620bd 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidTorus.cc,v 1.7 2003/06/16 16:52:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineCurve.cc b/source/geometry/solids/BREPS/src/G4BSplineCurve.cc index 4e7346dad8..d432911eb1 100644 --- a/source/geometry/solids/BREPS/src/G4BSplineCurve.cc +++ b/source/geometry/solids/BREPS/src/G4BSplineCurve.cc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineCurve.cc,v 1.11 2003/10/28 13:42:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc b/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc index ba0e8f2f82..7ff5c87b5b 100644 --- a/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc +++ b/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineCurveWithKnots.cc,v 1.4 2001/07/11 09:59:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineSurface.cc b/source/geometry/solids/BREPS/src/G4BSplineSurface.cc index 1aa38545cd..e5a87403fc 100644 --- a/source/geometry/solids/BREPS/src/G4BSplineSurface.cc +++ b/source/geometry/solids/BREPS/src/G4BSplineSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineSurface.cc,v 1.13 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc b/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc index 1bd9d4dc4d..0335097ae6 100644 --- a/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc +++ b/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineSurfaceWithKnots.cc,v 1.3 2001/07/11 09:59:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BezierSurface.cc b/source/geometry/solids/BREPS/src/G4BezierSurface.cc index c42179c501..4720013b38 100644 --- a/source/geometry/solids/BREPS/src/G4BezierSurface.cc +++ b/source/geometry/solids/BREPS/src/G4BezierSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4BezierSurface.cc,v 1.8 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc b/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc index 9e40dd559c..293e037fb4 100644 --- a/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc +++ b/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc @@ -22,7 +22,7 @@ // // // $Id: G4BoundingBox3D.cc,v 1.9 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CircularCurve.cc b/source/geometry/solids/BREPS/src/G4CircularCurve.cc index 017480f146..9668ffa181 100644 --- a/source/geometry/solids/BREPS/src/G4CircularCurve.cc +++ b/source/geometry/solids/BREPS/src/G4CircularCurve.cc @@ -22,7 +22,7 @@ // // // $Id: G4CircularCurve.cc,v 1.9 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CompositeCurve.cc b/source/geometry/solids/BREPS/src/G4CompositeCurve.cc index 61a3185222..25f12f176f 100644 --- a/source/geometry/solids/BREPS/src/G4CompositeCurve.cc +++ b/source/geometry/solids/BREPS/src/G4CompositeCurve.cc @@ -22,7 +22,7 @@ // // // $Id: G4CompositeCurve.cc,v 1.12 2003/10/28 13:42:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Conic.cc b/source/geometry/solids/BREPS/src/G4Conic.cc index 1dd028f948..c8d1bba40b 100644 --- a/source/geometry/solids/BREPS/src/G4Conic.cc +++ b/source/geometry/solids/BREPS/src/G4Conic.cc @@ -22,7 +22,7 @@ // // // $Id: G4Conic.cc,v 1.7 2003/03/28 13:11:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ConicalSurface.cc b/source/geometry/solids/BREPS/src/G4ConicalSurface.cc index 64a1920665..94ad96067e 100644 --- a/source/geometry/solids/BREPS/src/G4ConicalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4ConicalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4ConicalSurface.cc,v 1.10 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ControlPoints.cc b/source/geometry/solids/BREPS/src/G4ControlPoints.cc index da8cc01dec..10a6029d25 100644 --- a/source/geometry/solids/BREPS/src/G4ControlPoints.cc +++ b/source/geometry/solids/BREPS/src/G4ControlPoints.cc @@ -22,7 +22,7 @@ // // // $Id: G4ControlPoints.cc,v 1.7 2003/03/28 13:11:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Curve.cc b/source/geometry/solids/BREPS/src/G4Curve.cc index c5970f0447..795599828d 100644 --- a/source/geometry/solids/BREPS/src/G4Curve.cc +++ b/source/geometry/solids/BREPS/src/G4Curve.cc @@ -22,7 +22,7 @@ // // // $Id: G4Curve.cc,v 1.6 2001/07/11 09:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CurvePoint.cc b/source/geometry/solids/BREPS/src/G4CurvePoint.cc index 65aeafb6c7..69687fdf7c 100644 --- a/source/geometry/solids/BREPS/src/G4CurvePoint.cc +++ b/source/geometry/solids/BREPS/src/G4CurvePoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4CurvePoint.cc,v 1.4 2001/07/11 09:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc b/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc index 175dc4a3c4..09ebd17799 100644 --- a/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc +++ b/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc @@ -22,7 +22,7 @@ // // // $Id: G4CurveRayIntersection.cc,v 1.5 2003/03/28 13:11:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc b/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc index 5f6198ea5b..70d8d70b23 100644 --- a/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4CylindricalSurface.cc,v 1.7 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Ellipse.cc b/source/geometry/solids/BREPS/src/G4Ellipse.cc index 41f302f960..6c6b6160df 100644 --- a/source/geometry/solids/BREPS/src/G4Ellipse.cc +++ b/source/geometry/solids/BREPS/src/G4Ellipse.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ellipse.cc,v 1.10 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FConicalSurface.cc b/source/geometry/solids/BREPS/src/G4FConicalSurface.cc index 5b7b98f815..04fdfc0bcc 100644 --- a/source/geometry/solids/BREPS/src/G4FConicalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4FConicalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4FConicalSurface.cc,v 1.18 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc b/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc index 2bef338d29..f678bccd3b 100644 --- a/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4FCylindricalSurface.cc,v 1.15 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FPlane.cc b/source/geometry/solids/BREPS/src/G4FPlane.cc index 8f2fb65a51..564062dd79 100644 --- a/source/geometry/solids/BREPS/src/G4FPlane.cc +++ b/source/geometry/solids/BREPS/src/G4FPlane.cc @@ -22,7 +22,7 @@ // // // $Id: G4FPlane.cc,v 1.15 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Hyperbola.cc b/source/geometry/solids/BREPS/src/G4Hyperbola.cc index bcfa62dab9..3971634fb3 100644 --- a/source/geometry/solids/BREPS/src/G4Hyperbola.cc +++ b/source/geometry/solids/BREPS/src/G4Hyperbola.cc @@ -22,7 +22,7 @@ // // // $Id: G4Hyperbola.cc,v 1.10 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4KnotVector.cc b/source/geometry/solids/BREPS/src/G4KnotVector.cc index 60fb44efc6..a9452f2d97 100644 --- a/source/geometry/solids/BREPS/src/G4KnotVector.cc +++ b/source/geometry/solids/BREPS/src/G4KnotVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4KnotVector.cc,v 1.7 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Line.cc b/source/geometry/solids/BREPS/src/G4Line.cc index 6cb550c93d..4ed2939844 100644 --- a/source/geometry/solids/BREPS/src/G4Line.cc +++ b/source/geometry/solids/BREPS/src/G4Line.cc @@ -22,7 +22,7 @@ // // // $Id: G4Line.cc,v 1.9 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4OsloMatrix.cc b/source/geometry/solids/BREPS/src/G4OsloMatrix.cc index 084b11c948..1c88e7ac86 100644 --- a/source/geometry/solids/BREPS/src/G4OsloMatrix.cc +++ b/source/geometry/solids/BREPS/src/G4OsloMatrix.cc @@ -22,7 +22,7 @@ // // // $Id: G4OsloMatrix.cc,v 1.5 2001/07/11 09:59:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Parabola.cc b/source/geometry/solids/BREPS/src/G4Parabola.cc index 54a657d0d3..75b6200398 100644 --- a/source/geometry/solids/BREPS/src/G4Parabola.cc +++ b/source/geometry/solids/BREPS/src/G4Parabola.cc @@ -22,7 +22,7 @@ // // // $Id: G4Parabola.cc,v 1.7 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4PlacedSolid.cc b/source/geometry/solids/BREPS/src/G4PlacedSolid.cc index 344f951186..beba575288 100644 --- a/source/geometry/solids/BREPS/src/G4PlacedSolid.cc +++ b/source/geometry/solids/BREPS/src/G4PlacedSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4PlacedSolid.cc,v 1.4 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4PointRat.cc b/source/geometry/solids/BREPS/src/G4PointRat.cc index cb1de038b4..c3c10d0b23 100644 --- a/source/geometry/solids/BREPS/src/G4PointRat.cc +++ b/source/geometry/solids/BREPS/src/G4PointRat.cc @@ -22,7 +22,7 @@ // // // $Id: G4PointRat.cc,v 1.5 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc b/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc index 2cc1827028..83c83e5fc2 100644 --- a/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc +++ b/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProjectedSurface.cc,v 1.10 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Ray.cc b/source/geometry/solids/BREPS/src/G4Ray.cc index 644670510d..d1900093ae 100644 --- a/source/geometry/solids/BREPS/src/G4Ray.cc +++ b/source/geometry/solids/BREPS/src/G4Ray.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ray.cc,v 1.10 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc b/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc index 109bbfd1fb..8f9c038354 100644 --- a/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc +++ b/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4RectangularTrimmedSurface.cc,v 1.6 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Sort.cc b/source/geometry/solids/BREPS/src/G4Sort.cc index f60739f424..2ac1bc2a98 100644 --- a/source/geometry/solids/BREPS/src/G4Sort.cc +++ b/source/geometry/solids/BREPS/src/G4Sort.cc @@ -22,7 +22,7 @@ // // // $Id: G4Sort.cc,v 1.4 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 source file diff --git a/source/geometry/solids/BREPS/src/G4SphericalSurface.cc b/source/geometry/solids/BREPS/src/G4SphericalSurface.cc index 5870d4646c..6489168670 100644 --- a/source/geometry/solids/BREPS/src/G4SphericalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4SphericalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4SphericalSurface.cc,v 1.9 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Surface.cc b/source/geometry/solids/BREPS/src/G4Surface.cc index 759f43e150..464d2477bf 100644 --- a/source/geometry/solids/BREPS/src/G4Surface.cc +++ b/source/geometry/solids/BREPS/src/G4Surface.cc @@ -22,7 +22,7 @@ // // // $Id: G4Surface.cc,v 1.14 2004/12/02 09:31:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc b/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc index f9d871fa02..78eaaa971a 100644 --- a/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc +++ b/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceBoundary.cc,v 1.13 2004/12/02 09:31:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceList.cc b/source/geometry/solids/BREPS/src/G4SurfaceList.cc index ac698b1c5a..59fdba6989 100644 --- a/source/geometry/solids/BREPS/src/G4SurfaceList.cc +++ b/source/geometry/solids/BREPS/src/G4SurfaceList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceList.cc,v 1.6 2001/07/11 09:59:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc b/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc index 8be821d595..840e53f331 100644 --- a/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc +++ b/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceOfLinearExtrusion.cc,v 1.3 2001/07/11 09:59:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc b/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc index 0a216ae51d..ca0a7b0070 100644 --- a/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc +++ b/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc @@ -25,7 +25,7 @@ // and all its terms. // // $Id: G4SurfaceOfRevolution.cc,v 1.3 2001/07/11 09:59:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ThreeMat.cc b/source/geometry/solids/BREPS/src/G4ThreeMat.cc index d3de62394b..01117a4fbf 100644 --- a/source/geometry/solids/BREPS/src/G4ThreeMat.cc +++ b/source/geometry/solids/BREPS/src/G4ThreeMat.cc @@ -22,7 +22,7 @@ // // // $Id: G4ThreeMat.cc,v 1.7 2003/06/16 16:53:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc b/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc index 12f2f13f3a..b8ad70fd20 100644 --- a/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4ToroidalSurface.cc,v 1.9 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/Boolean/GNUmakefile b/source/geometry/solids/Boolean/GNUmakefile index ba01d073ac..b22d2d3374 100644 --- a/source/geometry/solids/Boolean/GNUmakefile +++ b/source/geometry/solids/Boolean/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2004/06/11 14:17:17 gcosmo Exp $ +# $Id: GNUmakefile,v 1.6 2005/05/09 13:44:58 gcosmo Exp $ # ---------------------------------------------------------------- # GNUmakefile for geometry/CSG library. Gabriele Cosmo, 16/11/96. # ---------------------------------------------------------------- diff --git a/source/geometry/solids/Boolean/History b/source/geometry/solids/Boolean/History index 3dc3e913be..c6c31c8637 100644 --- a/source/geometry/solids/Boolean/History +++ b/source/geometry/solids/Boolean/History @@ -1,5 +1,5 @@ -$Id: History,v 1.48 2004/10/10 10:50:44 johna Exp $ +$Id: History,v 1.52 2005/05/09 13:46:03 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,34 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + May 04, 2005 V.Grichine geom-bool-V07-00-03 + - Make the new implementation of Inside() with surface-normal for + edges/vertices the deafult one. + Removed G4NEW_SURF_NORMAL compilation flag. + + Mar 23, 2005 J.Allison geom-bool-V07-00-02 + - Added test for Number-Of-Rotation-Steps in GetPolyhedron() + for G4DisplacedSolid and G4BooleanSolid. Requires tag "greps-V07-00-02". + + Mar 10, 2005 V.Grichine geom-bool-V07-00-01 + - Modified Inside(p) G4SubtractionSolid and G4UnionSolid, to fix + inconsistency for non-zero sum of surface-normals. + Available only through activation of G4NEW_SURF_NORMAL compilation flag. + - Updated unit tests. + + Mar 03, 2005 J.Allison + - Changed AddThis() to AddSolid() in the concrete implementations of + DescribeYourselfTo(G4VGraphicsScene&) for all solids. Use the + newly available CreatePolyhedron() for components of Boolean + solids, instead of GetPolyhedron(). + + Feb 22, 2005 V.Grichine geom-bool-V07-00-00 + - Fix in G4IntersectionSolid::DistanceToIn(p,v) to allow for correct + simmetrical treatment of the solids' intersection. Algorithm reviewed + as proposed by D.Bazzacco in problem report #723. + - New unit test testBoolSurfaceInOut.cc for checking dIn-dOut and AB, + BA booleans on surface. + Oct 10, 2004 J.Allison geom-bool-V06-02-01 - Added GetPolyhedron, a smart access function that creates a G4Polyhedron on request and stores for future access. A null pointer means "not diff --git a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh index 000c7855e7..ed42c97d1c 100644 --- a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh +++ b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4BooleanSolid.hh,v 1.11 2004/10/10 10:50:46 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4BooleanSolid diff --git a/source/geometry/solids/Boolean/include/G4BooleanSolid.icc b/source/geometry/solids/Boolean/include/G4BooleanSolid.icc index 0645016002..ecd1f0fd9d 100644 --- a/source/geometry/solids/Boolean/include/G4BooleanSolid.icc +++ b/source/geometry/solids/Boolean/include/G4BooleanSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4BooleanSolid.icc,v 1.1 2004/09/22 09:27:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh b/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh index 08c42511a1..cdf7bb3497 100644 --- a/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh +++ b/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4DisplacedSolid.hh,v 1.16 2004/10/10 10:50:48 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4DisplacedSolid diff --git a/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh b/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh index 0f35fca569..90b705e5ca 100644 --- a/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4IntersectionSolid.hh,v 1.7 2003/11/03 17:48:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4IntersectionSolid diff --git a/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh b/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh index 5d855f0c38..312a3e9774 100644 --- a/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4SubtractionSolid.hh,v 1.7 2003/11/03 17:48:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4SubtractionSolid diff --git a/source/geometry/solids/Boolean/include/G4UnionSolid.hh b/source/geometry/solids/Boolean/include/G4UnionSolid.hh index 74a452122f..d1b68cdffc 100644 --- a/source/geometry/solids/Boolean/include/G4UnionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4UnionSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnionSolid.hh,v 1.8 2003/11/03 17:48:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4UnionSolid diff --git a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc index d3a26ad19a..021b9702db 100644 --- a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc +++ b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BooleanSolid.cc,v 1.14 2004/10/13 13:19:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4BooleanSolid.cc,v 1.16 2005/04/04 09:44:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Implementation for the abstract base class for solids created by boolean // operations between other solids @@ -35,6 +35,7 @@ #include "G4BooleanSolid.hh" #include "G4VSolid.hh" +#include "G4Polyhedron.hh" ////////////////////////////////////////////////////////////////// // @@ -91,6 +92,7 @@ G4BooleanSolid::~G4BooleanSolid() { ((G4DisplacedSolid*)fPtrSolidB)->CleanTransformations(); } + delete fpPolyhedron; } /////////////////////////////////////////////////////////////// @@ -171,9 +173,12 @@ std::ostream& G4BooleanSolid::StreamInfo(std::ostream& os) const G4Polyhedron* G4BooleanSolid::GetPolyhedron () const { - if (!fpPolyhedron) - { - fpPolyhedron = CreatePolyhedron(); - } + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } return fpPolyhedron; } diff --git a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc index 00eae8acc9..36fd711a96 100644 --- a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc +++ b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DisplacedSolid.cc,v 1.21 2004/10/13 13:19:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4DisplacedSolid.cc,v 1.23 2005/03/23 17:16:31 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Implementation for G4DisplacedSolid class for boolean // operations between other solids @@ -103,6 +103,7 @@ G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, G4DisplacedSolid::~G4DisplacedSolid() { CleanTransformations(); + delete fpPolyhedron; } G4GeometryType G4DisplacedSolid::GetEntityType() const @@ -361,7 +362,7 @@ std::ostream& G4DisplacedSolid::StreamInfo(std::ostream& os) const void G4DisplacedSolid::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } //////////////////////////////////////////////////// @@ -395,9 +396,12 @@ G4DisplacedSolid::CreateNURBS () const G4Polyhedron* G4DisplacedSolid::GetPolyhedron () const { - if (!fpPolyhedron) - { - fpPolyhedron = CreatePolyhedron(); - } + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } return fpPolyhedron; } diff --git a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc index 2945ecc44f..66a6c4fd31 100644 --- a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc @@ -21,17 +21,19 @@ // ******************************************************************** // // -// $Id: G4IntersectionSolid.cc,v 1.21 2003/11/03 17:48:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4IntersectionSolid.cc,v 1.24 2005/03/03 16:04:14 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Implementation of methods for the class G4IntersectionSolid // // History: // -// 12.09.98 V.Grichine: first implementation -// 29.07.99 V.Grichine: modifications in DistanceToIn(p,v) -// 16.03.01 V.Grichine: modifications in CalculateExtent() and Inside() +// 17.02.05 V.Grichine: bug was fixed in DistanceToIn(p,v) based on algorithm +// proposed by Dino Bazzacco // 29.05.01 V.Grichine: bug was fixed in DistanceToIn(p,v) +// 16.03.01 V.Grichine: modifications in CalculateExtent() and Inside() +// 29.07.99 V.Grichine: modifications in DistanceToIn(p,v) +// 12.09.98 V.Grichine: first implementation // // -------------------------------------------------------------------- @@ -218,7 +220,7 @@ G4double G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p, const G4ThreeVector& v ) const { - G4double dist = 0.0, disTmp = 0.0 ; + G4double dist = 0.0; if( Inside(p) == kInside ) { #ifdef G4BOOLDEBUG @@ -234,146 +236,77 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p, G4cerr << " v = " << v << G4endl; #endif } - else + else // if( Inside(p) == kSurface ) { - if( fPtrSolidA->Inside(p) != kOutside ) + EInside wA = fPtrSolidA->Inside(p); + EInside wB = fPtrSolidB->Inside(p); + + G4ThreeVector pA = p, pB = p; + G4double dA = 0., dA1=0., dA2=0.; + G4double dB = 0., dB1=0., dB2=0.; + G4bool doA = true, doB = true; + + while(true) { - do + if(doA) { - if( fPtrSolidB->Inside(p+dist*v) == kInside ) + // find next valid range for A + + dA1 = 0.; + + if( wA != kInside ) { - disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v) ; + dA1 = fPtrSolidA->DistanceToIn(pA, v); + + if( dA1 == kInfinity ) return kInfinity; + + pA += dA1*v; } - else - { - disTmp = fPtrSolidB->DistanceToIn(p+dist*v,v) ; - } - if( disTmp != kInfinity ) - { - dist += disTmp ; - if(Inside(p+dist*v) == kOutside ) - { - if( fPtrSolidA->Inside(p+dist*v) == kInside ) - { - disTmp = fPtrSolidA->DistanceToOut(p+dist*v,v) ; - } - else - { - disTmp = fPtrSolidA->DistanceToIn(p+dist*v,v) ; - } - if( disTmp != kInfinity ) - { - dist += disTmp ; - } - else - { - return kInfinity ; - } - } - else - { - break ; - } - } - else - { - return kInfinity ; - } + dA2 = dA1 + fPtrSolidA->DistanceToOut(pA, v); } - while( Inside(p+dist*v) == kOutside ) ; - // while( fPtrSolidB->Inside(p) != kOutside ) ; - } - else if( fPtrSolidB->Inside(p) != kOutside ) - { - do + dA1 += dA; + dA2 += dA; + + if(doB) { - if( fPtrSolidA->Inside(p+dist*v) == kInside ) + // find next valid range for B + + dB1 = 0.; + if(wB != kInside) { - disTmp = fPtrSolidA->DistanceToOut(p+dist*v,v) ; + dB1 = fPtrSolidB->DistanceToIn(pB, v); + + if(dB1 == kInfinity) return kInfinity; + + pB += dB1*v; } - else - { - disTmp = fPtrSolidA->DistanceToIn(p+dist*v,v) ; - } - if( disTmp != kInfinity ) - { - dist += disTmp ; - if(Inside(p+dist*v) == kOutside ) - { - if( fPtrSolidB->Inside(p+dist*v) == kInside ) - { - disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v) ; - } - else - { - disTmp = fPtrSolidB->DistanceToIn(p+dist*v,v) ; - } - if( disTmp != kInfinity ) - { - dist += disTmp ; - } - else - { - return kInfinity ; - } - } - else - { - break ; - } - } - else - { - return kInfinity ; - } + dB2 = dB1 + fPtrSolidB->DistanceToOut(pB, v); } - while( Inside(p+dist*v) == kOutside ) ; - } - else - { - do + dB1 += dB; + dB2 += dB; + + // check if they overlap + + if( dA1 < dB1 ) { - if( fPtrSolidB->Inside(p+dist*v) == kInside ) - { - disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v) ; - } - else - { - disTmp = fPtrSolidB->DistanceToIn(p+dist*v,v) ; - } - if( disTmp != kInfinity ) - { - dist += disTmp ; - if(Inside(p+dist*v) == kOutside ) - { - if( fPtrSolidA->Inside(p+dist*v) == kInside ) - { - disTmp = fPtrSolidA->DistanceToOut(p+dist*v,v) ; - } - else - { - disTmp = fPtrSolidA->DistanceToIn(p+dist*v,v) ; - } - if( disTmp != kInfinity ) - { - dist += disTmp ; - } - else - { - return kInfinity ; - } - } - else - { - break ; - } - } - else - { - return kInfinity ; - } + if( dB1 < dA2 ) return dB1; + + dA = dA2; + pA = p + dA*v; // continue from here + wA = kSurface; + doA = true; + doB = false; + } + else + { + if( dA1 < dB2 ) return dA1; + + dB = dB2; + pB = p + dB*v; // continue from here + wB = kSurface; + doB = true; + doA = false; } - while( Inside(p+dist*v) == kOutside ) ; } } return dist ; @@ -535,7 +468,7 @@ G4GeometryType G4IntersectionSolid::GetEntityType() const void G4IntersectionSolid::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } //////////////////////////////////////////////////// @@ -545,11 +478,9 @@ G4IntersectionSolid::DescribeYourselfTo ( G4VGraphicsScene& scene ) const G4Polyhedron* G4IntersectionSolid::CreatePolyhedron () const { - G4Polyhedron* pA = fPtrSolidA->CreatePolyhedron(); - G4Polyhedron* pB = fPtrSolidB->CreatePolyhedron(); + G4Polyhedron* pA = fPtrSolidA->GetPolyhedron(); + G4Polyhedron* pB = fPtrSolidB->GetPolyhedron(); G4Polyhedron* resultant = new G4Polyhedron (pA->intersect(*pB)); - delete pB; - delete pA; return resultant; } diff --git a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc index 145e835b18..4a639ef609 100644 --- a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SubtractionSolid.cc,v 1.21 2004/02/27 08:38:09 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4SubtractionSolid.cc,v 1.25 2005/05/09 13:44:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -116,8 +116,8 @@ G4SubtractionSolid::CalculateExtent( const EAxis pAxis, EInside G4SubtractionSolid::Inside( const G4ThreeVector& p ) const { - EInside positionA = fPtrSolidA->Inside(p) ; - EInside positionB = fPtrSolidB->Inside(p) ; + EInside positionA = fPtrSolidA->Inside(p); + EInside positionB = fPtrSolidB->Inside(p); if(positionA == kInside && positionB == kOutside) { @@ -125,16 +125,13 @@ EInside G4SubtractionSolid::Inside( const G4ThreeVector& p ) const } else { - if((positionA == kInside && positionB == kSurface) || - (positionB == kOutside && positionA == kSurface) || - (positionA == kSurface && positionB == kSurface) ) - { - return kSurface ; - } - else - { - return kOutside ; - } + if(( positionA == kInside && positionB == kSurface) || + ( positionB == kOutside && positionA == kSurface) || + ( positionA == kSurface && positionB == kSurface && + ( fPtrSolidA->SurfaceNormal(p) - + fPtrSolidB->SurfaceNormal(p) ).mag2() > + 1000*kRadTolerance ) ) return kSurface; + else return kOutside; } } @@ -432,7 +429,7 @@ G4SubtractionSolid::ComputeDimensions( G4VPVParameterisation*, void G4SubtractionSolid::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } //////////////////////////////////////////////////// @@ -442,11 +439,9 @@ G4SubtractionSolid::DescribeYourselfTo ( G4VGraphicsScene& scene ) const G4Polyhedron* G4SubtractionSolid::CreatePolyhedron () const { - G4Polyhedron* pA = fPtrSolidA->CreatePolyhedron(); - G4Polyhedron* pB = fPtrSolidB->CreatePolyhedron(); + G4Polyhedron* pA = fPtrSolidA->GetPolyhedron(); + G4Polyhedron* pB = fPtrSolidB->GetPolyhedron(); G4Polyhedron* resultant = new G4Polyhedron (pA->subtract(*pB)); - delete pB; - delete pA; return resultant; } diff --git a/source/geometry/solids/Boolean/src/G4UnionSolid.cc b/source/geometry/solids/Boolean/src/G4UnionSolid.cc index 079f0928c5..334bbc22fd 100644 --- a/source/geometry/solids/Boolean/src/G4UnionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4UnionSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnionSolid.cc,v 1.25 2004/02/27 08:38:09 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4UnionSolid.cc,v 1.29 2005/05/09 13:44:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -130,25 +130,20 @@ G4UnionSolid::CalculateExtent( const EAxis pAxis, EInside G4UnionSolid::Inside( const G4ThreeVector& p ) const { - EInside positionA = fPtrSolidA->Inside(p) ; - EInside positionB = fPtrSolidB->Inside(p) ; - - if( positionA == kInside || positionB == kInside ) - { - return kInside ; - } + EInside positionA = fPtrSolidA->Inside(p); + EInside positionB = fPtrSolidB->Inside(p); + + if( positionA == kInside || positionB == kInside || + ( positionA == kSurface && positionB == kSurface && + ( fPtrSolidA->SurfaceNormal(p) + + fPtrSolidB->SurfaceNormal(p) ).mag2() < + 1000*kRadTolerance ) ) return kInside; else { - if((positionA != kInside && positionB == kSurface) || - (positionB != kInside && positionA == kSurface) || - (positionA == kSurface && positionB == kSurface) ) - { - return kSurface ; - } - else - { - return kOutside ; - } + if( ( positionA != kInside && positionB == kSurface ) || + ( positionB != kInside && positionA == kSurface ) || + ( positionA == kSurface && positionB == kSurface ) ) return kSurface; + else return kOutside; } } @@ -428,7 +423,7 @@ G4UnionSolid::ComputeDimensions( G4VPVParameterisation*, void G4UnionSolid::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } //////////////////////////////////////////////////// @@ -438,11 +433,9 @@ G4UnionSolid::DescribeYourselfTo ( G4VGraphicsScene& scene ) const G4Polyhedron* G4UnionSolid::CreatePolyhedron () const { - G4Polyhedron* pA = fPtrSolidA->CreatePolyhedron(); - G4Polyhedron* pB = fPtrSolidB->CreatePolyhedron(); + G4Polyhedron* pA = fPtrSolidA->GetPolyhedron(); + G4Polyhedron* pB = fPtrSolidB->GetPolyhedron(); G4Polyhedron* resultant = new G4Polyhedron (pA->add(*pB)); - delete pB; - delete pA; return resultant; } diff --git a/source/geometry/solids/CSG/GNUmakefile b/source/geometry/solids/CSG/GNUmakefile index c3ce5557a3..2af722371b 100644 --- a/source/geometry/solids/CSG/GNUmakefile +++ b/source/geometry/solids/CSG/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2004/06/11 14:17:17 gcosmo Exp $ +# $Id: GNUmakefile,v 1.7 2005/05/09 13:47:24 gcosmo Exp $ # ---------------------------------------------------------------- # GNUmakefile for geometry/CSG library. Gabriele Cosmo, 16/11/96. # ---------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/History b/source/geometry/solids/CSG/History index bd5a217f5c..1d2f9952b0 100644 --- a/source/geometry/solids/CSG/History +++ b/source/geometry/solids/CSG/History @@ -1,4 +1,4 @@ -$Id: History,v 1.70 2004/11/15 15:12:25 gcosmo Exp $ +$Id: History,v 1.83 2005/06/08 16:14:41 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,60 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jun 8, 2005 V.Grichine geom-csg-V07-00-09 +- Keep old specification for SurfaceNormal() to treat usage of the + function for points not at the surface. + +Jun 6, 2005 V.Grichine geom-csg-V07-00-08 +- Correction to SurfaceNormal() for G4Cons, G4Sphere, G4Torus, G4Tubs + for properly handling location on z-axis and in the frame origin. + Fixed bug in G4Cons::SurfaceNormal(p) for normals returned from + rmax and rmin. +- Moved debug printouts for surface-normals to G4CSGDEBUG. +- Cleared compilation warnings in unit tests and updates. + +May 27, 2005 J.Allison geom-csg-V07-00-07 +- Fixed polyhedron representation of G4Torus. + +May 26, 2005 G.Cosmo geom-csg-V07-00-06 +- G4Box.cc: restored call to AddSolid() and replaced old AddThis() in + DescribeYourselfTo(). + +May 11, 2005 V.Grichine geom-csg-V07-00-05 +- G4Para: bug fixed in SurfaceNormal(p) for x-distance, to be now in + accordance with the surface selection using Inside(p). +- Updated unit test testSurfaceNormal.cc. + +May 09, 2005 V.Grichine geom-csg-V07-00-04 +- Updated implementation of SurfaceNormal(p) to get consistence with + Inside(p) functions for the treatment of phi/theta surfaces. + They are treated now in both functions in terms of kAngTolerance. + The reason is that historically SurfaceNormal(p) was using only + kCarTolerance for estimation of shortest distance to a surface. Now, + following the new updated specification, the surface selection is made + according to Inside(p) approach (as kSurface is selected), i.e. - for + phi/theta surfaces in terms of kAngTolerance. + +Apr 26, 2005 V.Grichine, J.Apostolakis +- Simplified and revised the new implementation for SurfaceNormal(p) + with edges/vertices and made becoming the default one for all solids. + +Apr 20, 2005 V.Grichine geom-csg-V07-00-03 +- G4Trap: fix in p.x() centering to sum over all vertices. + +Mar 23, 2005 J.Allison geom-csg-V07-00-02 +- Added test for Number-Of-Rotation-Steps in G4CSGSolid::GetPolyhedron(). + Requires tag "greps-V07-00-02". + +Mar 03, 2005 J.Allison geom-csg-V07-00-01 +- Changed AddThis() with AddSolid() for all solids in DescribeYourselfTo() + implementation. + +Dec 02, 2004 V.Grichine geom-csg-V07-00-00 +- New alternative implementation of SurfaceNormal(p) with edges/vertices + for G4Box, G4Para, G4Trap, G4Trd. Old implementation is still the default. + Can be activated by setting G4NEW_SURF_NORMAL variable before compilation. + Nov 15, 2004 V.Grichine geom-csg-V06-02-06 - G4Trap: added check for X-centering for constructor by verteces. Fixes problem report #687. diff --git a/source/geometry/solids/CSG/include/G4Box.hh b/source/geometry/solids/CSG/include/G4Box.hh index 4c090bc664..0a37e31951 100644 --- a/source/geometry/solids/CSG/include/G4Box.hh +++ b/source/geometry/solids/CSG/include/G4Box.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Box.hh,v 1.11 2004/09/08 15:13:50 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4Box.hh,v 1.14 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -102,6 +102,8 @@ class G4Box : public G4CSGSolid G4GeometryType GetEntityType() const; + G4ThreeVector GetPointOnSurface() const; + std::ostream& StreamInfo(std::ostream& os) const; // Functions for visualization @@ -123,6 +125,12 @@ class G4Box : public G4CSGSolid enum ESide {kUndefined,kPX,kMX,kPY,kMY,kPZ,kMZ}; // Codes for faces (kPX=plus x face,kMY= minus y face etc) + private: + + G4ThreeVector ApproxSurfaceNormal( const G4ThreeVector& p) const; + // Algorithm for SurfaceNormal() following the original + // specification for points not on the surface + private: G4double fDx,fDy,fDz; diff --git a/source/geometry/solids/CSG/include/G4Box.icc b/source/geometry/solids/CSG/include/G4Box.icc index 229d2b280d..c8272a82a5 100644 --- a/source/geometry/solids/CSG/include/G4Box.icc +++ b/source/geometry/solids/CSG/include/G4Box.icc @@ -22,7 +22,7 @@ // // // $Id: G4Box.icc,v 1.2 2004/09/08 15:13:51 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4CSGSolid.hh b/source/geometry/solids/CSG/include/G4CSGSolid.hh index 1d4070df50..6c4ba4481b 100644 --- a/source/geometry/solids/CSG/include/G4CSGSolid.hh +++ b/source/geometry/solids/CSG/include/G4CSGSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4CSGSolid.hh,v 1.9 2004/10/10 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Cons.hh b/source/geometry/solids/CSG/include/G4Cons.hh index 1da72b1741..c84a7c1abc 100644 --- a/source/geometry/solids/CSG/include/G4Cons.hh +++ b/source/geometry/solids/CSG/include/G4Cons.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Cons.hh,v 1.11 2004/12/10 16:22:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4Cons.hh,v 1.13 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -163,6 +163,12 @@ class G4Cons : public G4CSGSolid enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNZ}; + private: + + G4ThreeVector ApproxSurfaceNormal(const G4ThreeVector& p) const; + // Algorithm for SurfaceNormal() following the original + // specification for points not on the surface + private: G4double fRmin1,fRmin2, diff --git a/source/geometry/solids/CSG/include/G4Cons.icc b/source/geometry/solids/CSG/include/G4Cons.icc index ab92b6677d..782e942147 100644 --- a/source/geometry/solids/CSG/include/G4Cons.icc +++ b/source/geometry/solids/CSG/include/G4Cons.icc @@ -22,7 +22,7 @@ // // // $Id: G4Cons.icc,v 1.4 2004/10/10 10:44:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Orb.hh b/source/geometry/solids/CSG/include/G4Orb.hh index eea8b87a4f..9edc69b369 100644 --- a/source/geometry/solids/CSG/include/G4Orb.hh +++ b/source/geometry/solids/CSG/include/G4Orb.hh @@ -22,7 +22,7 @@ // // // $Id: G4Orb.hh,v 1.6 2004/09/22 08:25:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Orb.icc b/source/geometry/solids/CSG/include/G4Orb.icc index e9fd269930..db562be853 100644 --- a/source/geometry/solids/CSG/include/G4Orb.icc +++ b/source/geometry/solids/CSG/include/G4Orb.icc @@ -22,7 +22,7 @@ // // // $Id: G4Orb.icc,v 1.2 2004/10/10 10:44:16 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Para.hh b/source/geometry/solids/CSG/include/G4Para.hh index 944ae102b5..56be7d374a 100644 --- a/source/geometry/solids/CSG/include/G4Para.hh +++ b/source/geometry/solids/CSG/include/G4Para.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Para.hh,v 1.10 2004/09/13 16:26:53 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4Para.hh,v 1.13 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -131,6 +131,8 @@ class G4Para : public G4CSGSolid G4GeometryType GetEntityType() const; + G4ThreeVector GetPointOnSurface() const; + std::ostream& StreamInfo(std::ostream& os) const; // Visualisation functions @@ -146,6 +148,12 @@ class G4Para : public G4CSGSolid private: + G4ThreeVector ApproxSurfaceNormal( const G4ThreeVector& p) const; + // Algorithm for SurfaceNormal() following the original + // specification for points not on the surface + + private: + G4double fDx,fDy,fDz; G4double fTalpha,fTthetaCphi,fTthetaSphi; }; diff --git a/source/geometry/solids/CSG/include/G4Para.icc b/source/geometry/solids/CSG/include/G4Para.icc index c03e084e2a..53d5974a43 100644 --- a/source/geometry/solids/CSG/include/G4Para.icc +++ b/source/geometry/solids/CSG/include/G4Para.icc @@ -22,7 +22,7 @@ // // // $Id: G4Para.icc,v 1.5 2004/12/02 09:31:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Sphere.hh b/source/geometry/solids/CSG/include/G4Sphere.hh index 31b97fe8f6..7200b21408 100644 --- a/source/geometry/solids/CSG/include/G4Sphere.hh +++ b/source/geometry/solids/CSG/include/G4Sphere.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Sphere.hh,v 1.12 2004/12/10 16:22:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4Sphere.hh,v 1.14 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -164,12 +164,18 @@ class G4Sphere : public G4CSGSolid enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNSTheta,kNETheta}; + private: + + G4ThreeVector ApproxSurfaceNormal( const G4ThreeVector& p) const; + // Algorithm for SurfaceNormal() following the original + // specification for points not on the surface + private: G4double fRmin,fRmax, fSPhi,fDPhi, fSTheta,fDTheta; - G4double fEpsilon; + G4double fEpsilon; }; #include "G4Sphere.icc" diff --git a/source/geometry/solids/CSG/include/G4Sphere.icc b/source/geometry/solids/CSG/include/G4Sphere.icc index 100f133a98..377e042afb 100644 --- a/source/geometry/solids/CSG/include/G4Sphere.icc +++ b/source/geometry/solids/CSG/include/G4Sphere.icc @@ -22,7 +22,7 @@ // // // $Id: G4Sphere.icc,v 1.5 2004/12/02 09:31:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Torus.hh b/source/geometry/solids/CSG/include/G4Torus.hh index 65b7362fd8..9d7dd1b5ea 100644 --- a/source/geometry/solids/CSG/include/G4Torus.hh +++ b/source/geometry/solids/CSG/include/G4Torus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Torus.hh,v 1.16 2004/09/08 15:13:51 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4Torus.hh,v 1.19 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -169,6 +169,8 @@ class G4Torus : public G4CSGSolid const G4ThreeVector& v, G4bool IsDistanceToIn) const; + G4double SolveNumericJT(G4double c[]) const; + G4ThreeVectorList* CreateRotatedVertices(const G4AffineTransform& pTransform, G4int& noPolygonVertices) const; @@ -185,6 +187,10 @@ class G4Torus : public G4CSGSolid private: + G4ThreeVector ApproxSurfaceNormal( const G4ThreeVector& p) const; + // Algorithm for SurfaceNormal() following the original + // specification for points not on the surface + inline G4double TorusEquation (G4double x, G4double y, G4double z, G4double R0, G4double R1) const; inline G4double TorusDerivativeX (G4double x, G4double y, G4double z, diff --git a/source/geometry/solids/CSG/include/G4Torus.icc b/source/geometry/solids/CSG/include/G4Torus.icc index f758ec6449..8a73df816f 100644 --- a/source/geometry/solids/CSG/include/G4Torus.icc +++ b/source/geometry/solids/CSG/include/G4Torus.icc @@ -22,7 +22,7 @@ // // // $Id: G4Torus.icc,v 1.2 2004/09/08 15:13:51 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Trap.hh b/source/geometry/solids/CSG/include/G4Trap.hh index 32eda30e75..b83ecec743 100644 --- a/source/geometry/solids/CSG/include/G4Trap.hh +++ b/source/geometry/solids/CSG/include/G4Trap.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trap.hh,v 1.10 2004/12/02 09:31:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4Trap.hh,v 1.12 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -235,6 +235,12 @@ class G4Trap : public G4CSGSolid // Creates the List of transformed vertices in the format required // for G4CSGSolid:: ClipCrossSection and ClipBetweenSections + private: + + G4ThreeVector ApproxSurfaceNormal( const G4ThreeVector& p ) const; + // Algorithm for SurfaceNormal() following the original + // specification for points not on the surface + private: G4double fDz,fTthetaCphi,fTthetaSphi; diff --git a/source/geometry/solids/CSG/include/G4Trap.icc b/source/geometry/solids/CSG/include/G4Trap.icc index cd529ea564..a5f733e5b0 100644 --- a/source/geometry/solids/CSG/include/G4Trap.icc +++ b/source/geometry/solids/CSG/include/G4Trap.icc @@ -22,7 +22,7 @@ // // // $Id: G4Trap.icc,v 1.4 2004/12/02 09:31:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Trd.hh b/source/geometry/solids/CSG/include/G4Trd.hh index 2582b518ee..0d317957a9 100644 --- a/source/geometry/solids/CSG/include/G4Trd.hh +++ b/source/geometry/solids/CSG/include/G4Trd.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trd.hh,v 1.10 2004/09/13 16:26:53 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4Trd.hh,v 1.13 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -127,6 +127,8 @@ class G4Trd : public G4CSGSolid G4GeometryType GetEntityType() const; + G4ThreeVector GetPointOnSurface() const; + std::ostream& StreamInfo( std::ostream& os ) const; // Visualisation functions @@ -135,6 +137,8 @@ class G4Trd : public G4CSGSolid G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; + + protected: // without description G4ThreeVectorList* @@ -149,6 +153,11 @@ class G4Trd : public G4CSGSolid enum ESide {kUndefined, kPX,kMX,kPY,kMY,kPZ,kMZ}; + private: + + G4ThreeVector ApproxSurfaceNormal( const G4ThreeVector& p ) const; + // Algorithm for SurfaceNormal() following the original + // specification for points not on the surface }; #include "G4Trd.icc" diff --git a/source/geometry/solids/CSG/include/G4Trd.icc b/source/geometry/solids/CSG/include/G4Trd.icc index d40186355b..9b8c33f6a1 100644 --- a/source/geometry/solids/CSG/include/G4Trd.icc +++ b/source/geometry/solids/CSG/include/G4Trd.icc @@ -22,7 +22,7 @@ // // // $Id: G4Trd.icc,v 1.4 2004/10/10 10:44:19 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Tubs.hh b/source/geometry/solids/CSG/include/G4Tubs.hh index aa8e6f38e3..b62eb8ea3c 100644 --- a/source/geometry/solids/CSG/include/G4Tubs.hh +++ b/source/geometry/solids/CSG/include/G4Tubs.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Tubs.hh,v 1.9 2004/09/08 15:13:52 grichine Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4Tubs.hh,v 1.11 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -162,6 +162,11 @@ class G4Tubs : public G4CSGSolid enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNZ}; + private: + + G4ThreeVector ApproxSurfaceNormal( const G4ThreeVector& p ) const; + // Algorithm for SurfaceNormal() following the original + // specification for points not on the surface }; #include "G4Tubs.icc" diff --git a/source/geometry/solids/CSG/include/G4Tubs.icc b/source/geometry/solids/CSG/include/G4Tubs.icc index dc68fc1afb..209dc771ba 100644 --- a/source/geometry/solids/CSG/include/G4Tubs.icc +++ b/source/geometry/solids/CSG/include/G4Tubs.icc @@ -22,7 +22,7 @@ // // // $Id: G4Tubs.icc,v 1.4 2004/10/10 10:44:19 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/src/G4Box.cc b/source/geometry/solids/CSG/src/G4Box.cc index 1e0a9e1352..dec370d467 100644 --- a/source/geometry/solids/CSG/src/G4Box.cc +++ b/source/geometry/solids/CSG/src/G4Box.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Box.cc,v 1.28.2.1 2004/12/02 09:30:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4Box.cc,v 1.39 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // @@ -41,6 +41,7 @@ #include "G4VoxelLimits.hh" #include "G4AffineTransform.hh" +#include "Randomize.hh" #include "G4VPVParameterisation.hh" @@ -379,6 +380,100 @@ G4ThreeVector G4Box::SurfaceNormal( const G4ThreeVector& p) const disty = std::fabs(std::fabs(p.y()) - fDy) ; distz = std::fabs(std::fabs(p.z()) - fDz) ; + // New code for particle on surface including edges and corners with specific + // normals + + const G4double delta = 0.5*kCarTolerance; + const G4ThreeVector nX = G4ThreeVector( 1.0, 0,0 ); + const G4ThreeVector nmX = G4ThreeVector(-1.0, 0,0 ); + const G4ThreeVector nY = G4ThreeVector( 0, 1.0,0 ); + const G4ThreeVector nmY = G4ThreeVector( 0,-1.0,0 ); + const G4ThreeVector nZ = G4ThreeVector( 0, 0, 1.0); + const G4ThreeVector nmZ = G4ThreeVector( 0, 0,- 1.0); + + G4ThreeVector normX(0.,0.,0.), normY(0.,0.,0.), normZ(0.,0.,0.); + G4ThreeVector sumnorm(0., 0., 0.); + G4int noSurfaces=0; + + if (distx <= delta) // on X/mX surface and around + { + noSurfaces ++; + if ( p.x() >= 0.){ // on +X surface + normX= nX ; // G4ThreeVector( 1.0, 0., 0. ); + }else{ + normX= nmX; // G4ThreeVector(-1.0, 0., 0. ); + } + sumnorm= normX; + } + + if (disty <= delta) // on one of the +Y or -Y surfaces + { + noSurfaces ++; + if ( p.y() >= 0.){ // on +Y surface + normY= nY; + }else{ + normY = nmY; + } + sumnorm += normY; + } + + if (distz <= delta) // on one of the +Z or -Z surfaces + { + noSurfaces ++; + if ( p.z() >= 0.){ // on +Z surface + normZ= nZ; + }else{ + normZ = nmZ; + } + sumnorm += normZ; + } + + // sumnorm= normX + normY + normZ; + const G4double invSqrt2 = 1.0 / std::sqrt( 2.0); + const G4double invSqrt3 = 1.0 / std::sqrt( 3.0); + + norm= G4ThreeVector( 0., 0., 0.); + if( noSurfaces > 0 ) + { + if( noSurfaces == 1 ){ + norm= sumnorm; + }else{ + // norm = sumnorm . unit(); + if( noSurfaces == 2 ) { + // 2 surfaces -> on edge + norm = invSqrt2 * sumnorm; + } else { + // 3 surfaces (on corner) + norm = invSqrt3 * sumnorm; + } + } + }else{ +#ifdef G4CSGDEBUG + G4Exception("G4Box::SurfaceNormal(p)", "Notification", JustWarning, + "Point p is not on surface !?" ); +#endif + norm = ApproxSurfaceNormal(p); + } + + return norm; +} + +////////////////////////////////////////////////////////////////////////// +// +// Algorithm for SurfaceNormal() following the original specification +// for points not on the surface + +G4ThreeVector G4Box::ApproxSurfaceNormal( const G4ThreeVector& p ) const +{ + G4double distx, disty, distz ; + G4ThreeVector norm ; + + // Calculate distances as if in 1st octant + + distx = std::fabs(std::fabs(p.x()) - fDx) ; + disty = std::fabs(std::fabs(p.y()) - fDy) ; + distz = std::fabs(std::fabs(p.z()) - fDz) ; + if ( distx <= disty ) { if ( distx <= distz ) // Closest to X @@ -853,7 +948,7 @@ std::ostream& G4Box::StreamInfo(std::ostream& os) const void G4Box::DescribeYourselfTo (G4VGraphicsScene& scene) const { - scene.AddThis (*this); + scene.AddSolid (*this); } G4VisExtent G4Box::GetExtent() const @@ -870,3 +965,43 @@ G4NURBS* G4Box::CreateNURBS () const { return new G4NURBSbox (fDx, fDy, fDz); } + +///////////////////////////////////////////////////////////////////////////// +// +// Return a point (G4ThreeVector) randomly and uniformly selected on the solid surface + +G4ThreeVector G4Box::GetPointOnSurface() const +{ + G4double px, py, pz, select, sumS; + G4double Sxy = fDx*fDy, Sxz = fDx*fDz, Syz = fDy*fDz; + + sumS = Sxy + Sxz + Syz; + select = sumS*G4UniformRand(); + + if( select < Sxy ) + { + px = -fDx +2*fDx*G4UniformRand(); + py = -fDy +2*fDy*G4UniformRand(); + + if(G4UniformRand() > 0.5) pz = fDz; + else pz = -fDz; + } + else if ( ( select - Sxy ) < Sxz ) + { + px = -fDx +2*fDx*G4UniformRand(); + pz = -fDz +2*fDz*G4UniformRand(); + + if(G4UniformRand() > 0.5) py = fDy; + else py = -fDy; + } + else + { + py = -fDy +2*fDy*G4UniformRand(); + pz = -fDz +2*fDz*G4UniformRand(); + + if(G4UniformRand() > 0.5) px = fDx; + else px = -fDx; + } + return G4ThreeVector(px,py,pz); +} + diff --git a/source/geometry/solids/CSG/src/G4CSGSolid.cc b/source/geometry/solids/CSG/src/G4CSGSolid.cc index ff8eb8cca9..c49678d716 100644 --- a/source/geometry/solids/CSG/src/G4CSGSolid.cc +++ b/source/geometry/solids/CSG/src/G4CSGSolid.cc @@ -21,13 +21,15 @@ // ******************************************************************** // // -// $Id: G4CSGSolid.cc,v 1.9 2004/10/13 13:14:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4CSGSolid.cc,v 1.10 2005/03/23 17:16:31 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- #include "G4CSGSolid.hh" +#include "G4Polyhedron.hh" + // Constructor // - Base class constructor @@ -38,6 +40,7 @@ G4CSGSolid::G4CSGSolid(const G4String& name) : G4CSGSolid::~G4CSGSolid() { + delete fpPolyhedron; } std::ostream& G4CSGSolid::StreamInfo(std::ostream& os) const @@ -55,9 +58,12 @@ std::ostream& G4CSGSolid::StreamInfo(std::ostream& os) const G4Polyhedron* G4CSGSolid::GetPolyhedron () const { - if (!fpPolyhedron) - { - fpPolyhedron = CreatePolyhedron(); - } + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } return fpPolyhedron; } diff --git a/source/geometry/solids/CSG/src/G4Cons.cc b/source/geometry/solids/CSG/src/G4Cons.cc index 9267c53540..5a9599072e 100644 --- a/source/geometry/solids/CSG/src/G4Cons.cc +++ b/source/geometry/solids/CSG/src/G4Cons.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Cons.cc,v 1.34 2004/12/10 16:22:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4Cons.cc,v 1.44 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4Cons // @@ -30,6 +30,7 @@ // // History: // +// 03.05.05 V.Grichine: SurfaceNormal(p) according to J. Apostolakis proposal // 26.07.04 V.Grichine: bugs fixed in Distance ToIn(p,v):dIn=dOut=0 in 3/10^8 // 23.01.04 V.Grichine: bugs fixed in Distance ToIn(p,v) // 26.06.02 V.Grichine: bugs fixed in Distance ToIn(p,v) @@ -439,6 +440,107 @@ G4bool G4Cons::CalculateExtent( const EAxis pAxis, // - unsafe if point close to z axis a rmin=0 - no explicit checks G4ThreeVector G4Cons::SurfaceNormal( const G4ThreeVector& p) const +{ + G4int noSurfaces = 0; + G4double rho, pPhi; + G4double distZ, distRMin, distRMax; + G4double distSPhi = kInfinity, distEPhi = kInfinity; + G4double tanRMin, secRMin, pRMin, widRMin; + G4double tanRMax, secRMax, pRMax, widRMax; + G4double delta = 0.5*kCarTolerance, dAngle = 0.5*kAngTolerance; + + G4ThreeVector norm, sumnorm(0.,0.,0.), nZ = G4ThreeVector(0.,0.,1.0); + G4ThreeVector nR, nr(0.,0.,0.), nPs, nPe; + + distZ = std::fabs(std::fabs(p.z()) - fDz); + rho = std::sqrt(p.x()*p.x() + p.y()*p.y()); + + tanRMin = (fRmin2 - fRmin1)*0.5/fDz; + secRMin = std::sqrt(1 + tanRMin*tanRMin); + pRMin = rho - p.z()*tanRMin; + widRMin = fRmin2 - fDz*tanRMin; + distRMin = std::fabs(pRMin - widRMin)/secRMin; + + tanRMax = (fRmax2 - fRmax1)*0.5/fDz; + secRMax = std::sqrt(1+tanRMax*tanRMax); + pRMax = rho - p.z()*tanRMax; + widRMax = fRmax2 - fDz*tanRMax; + distRMax = std::fabs(pRMax - widRMax)/secRMax; + + if (fDPhi < twopi) // && rho ) // Protected against (0,0,z) + { + if ( rho ) + { + pPhi = std::atan2(p.y(),p.x()); + + if(pPhi < fSPhi-delta) pPhi += twopi; + else if(pPhi > fSPhi+fDPhi+delta) pPhi -= twopi; + + distSPhi = std::fabs( pPhi - fSPhi ); + distEPhi = std::fabs(pPhi - fSPhi - fDPhi); + } + else if( !(fRmin1) || !(fRmin2) ) + { + distSPhi = 0.; + distEPhi = 0.; + } + nPs = G4ThreeVector(std::sin(fSPhi),-std::cos(fSPhi),0); + nPe = G4ThreeVector(-std::sin(fSPhi+fDPhi),std::cos(fSPhi+fDPhi),0); + } + if ( rho > delta ) + { + nR = G4ThreeVector(p.x()/rho/secRMax,p.y()/rho/secRMax,-tanRMax/secRMax); + if (fRmin1 || fRmin2) nr = G4ThreeVector(-p.x()/rho/secRMin,-p.y()/rho/secRMin,tanRMin/secRMin); + } + + if( distRMax <= delta ) + { + noSurfaces ++; + sumnorm += nR; + } + if( (fRmin1 || fRmin2) && distRMin <= delta ) + { + noSurfaces ++; + sumnorm += nr; + } + if( fDPhi < twopi ) + { + if (distSPhi <= dAngle) + { + noSurfaces ++; + sumnorm += nPs; + } + if (distEPhi <= dAngle) + { + noSurfaces ++; + sumnorm += nPe; + } + } + if (distZ <= delta) + { + noSurfaces ++; + if ( p.z() >= 0.) sumnorm += nZ; + else sumnorm -= nZ; + } + if ( noSurfaces == 0 ) + { +#ifdef G4CSGDEBUG + G4Exception("G4Cons::SurfaceNormal(p)", "Notification", JustWarning, + "Point p is not on surface !?" ); +#endif + norm = ApproxSurfaceNormal(p); + } + else if ( noSurfaces == 1 ) norm = sumnorm; + else norm = sumnorm.unit(); + return norm ; +} + +////////////////////////////////////////////////////////////////////////////////// +// +// Algorithm for SurfaceNormal() following the original specification +// for points not on the surface + +G4ThreeVector G4Cons::ApproxSurfaceNormal( const G4ThreeVector& p ) const { ENorm side ; G4ThreeVector norm ; @@ -532,7 +634,7 @@ G4ThreeVector G4Cons::SurfaceNormal( const G4ThreeVector& p) const break ; default: DumpInfo(); - G4Exception("G4Cons::SurfaceNormal()", "Notification", JustWarning, + G4Exception("G4Cons::ApproxSurfaceNormal()", "Notification", JustWarning, "Undefined side for valid surface normal to solid.") ; break ; } @@ -810,11 +912,11 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, if ( t3 > (rin + kRadTolerance*0.5*secRMin)* (rin + kRadTolerance*0.5*secRMin) && - nt2 < 0 && - d >= 0 && - // nt2 < -kCarTolerance*secRMax/2/fDz && + nt2 < 0 && + d >= 0 && + // nt2 < -kCarTolerance*secRMax/2/fDz && // t2 < std::sqrt(t3)*v.z()*tanRMax && - // d > kCarTolerance*secRMax*(rout-b*tanRMax*v.z())/nt1 && + // d > kCarTolerance*secRMax*(rout-b*tanRMax*v.z())/nt1 && std::fabs(p.z()) <= tolIDz ) { // Inside cones, delta r -ve, inside z extent @@ -2124,7 +2226,7 @@ std::ostream& G4Cons::StreamInfo(std::ostream& os) const void G4Cons::DescribeYourselfTo (G4VGraphicsScene& scene) const { - scene.AddThis (*this); + scene.AddSolid (*this); } G4Polyhedron* G4Cons::CreatePolyhedron () const @@ -2137,7 +2239,3 @@ G4NURBS* G4Cons::CreateNURBS () const G4double RMax = (fRmax2 >= fRmax1) ? fRmax2 : fRmax1 ; return new G4NURBSbox (RMax, RMax, fDz); // Box for now!!! } - -// -// -/////////////////////////////// End of G4Cons.cc file ////////////////////// diff --git a/source/geometry/solids/CSG/src/G4Orb.cc b/source/geometry/solids/CSG/src/G4Orb.cc index 3c6ce8bae8..06d18f6913 100644 --- a/source/geometry/solids/CSG/src/G4Orb.cc +++ b/source/geometry/solids/CSG/src/G4Orb.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4Orb.cc,v 1.15 2004/12/02 09:31:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4Orb.cc,v 1.19 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4Orb // @@ -309,8 +309,10 @@ G4ThreeVector G4Orb::SurfaceNormal( const G4ThreeVector& p ) const break; default: DumpInfo(); +#ifdef G4CSGDEBUG G4Exception("G4Orb::SurfaceNormal()", "Notification", JustWarning, "Undefined side for valid surface normal to solid."); +#endif break; } @@ -468,7 +470,7 @@ G4double G4Orb::DistanceToOut( const G4ThreeVector& p, d2 = pDotV3d*pDotV3d - c; if( ( c > -fRmaxTolerance*fRmax) && // on tolerant surface - ( ( pDotV3d >= 0 ) || ( d2 < 0 )) ) // leaving outside from Rmax + ( ( pDotV3d >= 0 ) || ( d2 < 0 )) ) // leaving outside from Rmax // not re-entering { if(calcNorm) @@ -599,7 +601,7 @@ std::ostream& G4Orb::StreamInfo( std::ostream& os ) const void G4Orb::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } G4Polyhedron* G4Orb::CreatePolyhedron () const diff --git a/source/geometry/solids/CSG/src/G4Para.cc b/source/geometry/solids/CSG/src/G4Para.cc index ecda92edea..5195adfa61 100644 --- a/source/geometry/solids/CSG/src/G4Para.cc +++ b/source/geometry/solids/CSG/src/G4Para.cc @@ -21,24 +21,31 @@ // ******************************************************************** // // -// $Id: G4Para.cc,v 1.22.2.1 2004/12/02 09:30:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4Para.cc,v 1.33 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4Para // // Implementation for G4Para class // // History: -// 21.03.95 P.Kent: Modified for `tolerant' geom -// 31.10.96 V.Grichine: Modifications according G4Box/Tubs before to commit -// 18.11.99 V.Grichine: kUndef was added to ESide +// +// 28.04.05 V.Grichine: new SurfaceNormal according to J. Apostolakis proposal +// 26.04.05 V.Grichine: new SurfaceNormal is default +// 30.11.04 V.Grichine: modifications in SurfaceNormal for edges/vertices and in +// constructor with vertices // 14.02.02 V.Grichine: bug fixed in Inside according to proposal of D.Wright -// -------------------------------------------------------------------- +// 18.11.99 V.Grichine: kUndef was added to ESide +// 31.10.96 V.Grichine: Modifications according G4Box/Tubs before to commit +// 21.03.95 P.Kent: Modified for `tolerant' geom +// +//////////////////////////////////////////////////////////////////////////// #include "G4Para.hh" #include "G4VoxelLimits.hh" #include "G4AffineTransform.hh" +#include "Randomize.hh" #include "G4VPVParameterisation.hh" @@ -62,14 +69,14 @@ enum ENSide {kNZ,kNX,kNY}; void G4Para::SetAllParameters( G4double pDx, G4double pDy, G4double pDz, G4double pAlpha, G4double pTheta, G4double pPhi ) { - if (pDx>0&&pDy>0&&pDz>0) + if ( pDx > 0 && pDy > 0 && pDz > 0 ) { - fDx=pDx; - fDy=pDy; - fDz=pDz; - fTalpha=std::tan(pAlpha); - fTthetaCphi=std::tan(pTheta)*std::cos(pPhi); - fTthetaSphi=std::tan(pTheta)*std::sin(pPhi); + fDx = pDx; + fDy = pDy; + fDz = pDz; + fTalpha = std::tan(pAlpha); + fTthetaCphi = std::tan(pTheta)*std::cos(pPhi); + fTthetaSphi = std::tan(pTheta)*std::sin(pPhi); } else { @@ -117,11 +124,12 @@ G4Para::G4Para( const G4String& pName, { if ( pt[0].z()<0 && pt[0].z()==pt[1].z() && pt[0].z()==pt[2].z() && pt[0].z()==pt[3].z() && pt[4].z()>0 && pt[4].z()==pt[5].z() && - pt[4].z()==pt[6].z() && pt[4].z()==pt[7].z() && - (pt[0].z()+pt[4].z())==0 && - pt[0].y()==pt[1].y() && pt[2].y()==pt[3].y() && - pt[4].y()==pt[5].y() && pt[6].y()==pt[7].y() && - (pt[0].y()+pt[2].y()+pt[4].y()+pt[6].y())==0 ) + pt[4].z()==pt[6].z() && pt[4].z()==pt[7].z() && + (pt[0].z()+pt[4].z())==0 && + pt[0].y()==pt[1].y() && pt[2].y()==pt[3].y() && + pt[4].y()==pt[5].y() && pt[6].y()==pt[7].y() && + ( pt[0].y() + pt[2].y() + pt[4].y() + pt[6].y() ) == 0 && + ( pt[0].x() + pt[1].x() + pt[4].x() + pt[5].x() ) == 0) { fDz = (pt[7]).z() ; @@ -431,6 +439,78 @@ EInside G4Para::Inside( const G4ThreeVector& p ) const // If 2+ sides equidistant, first side's normal returned (arbitrarily) G4ThreeVector G4Para::SurfaceNormal( const G4ThreeVector& p ) const +{ + G4ThreeVector norm, sumnorm(0.,0.,0.); + G4int noSurfaces = 0; + G4double distx,disty,distz; + G4double newpx,newpy,xshift; + G4double calpha,salpha; // Sin/Cos(alpha) - needed to recalc G4Parameter + G4double tntheta,cosntheta; // tan and cos of normal's theta component + G4double ycomp; + G4double delta = 0.5*kCarTolerance; + + newpx = p.x()-fTthetaCphi*p.z(); + newpy = p.y()-fTthetaSphi*p.z(); + + calpha = 1/std::sqrt(1+fTalpha*fTalpha); + if (fTalpha) salpha = -calpha/fTalpha; // NOTE: actually use MINUS std::sin(alpha) + else salpha = 0.; + + // xshift = newpx*calpha+newpy*salpha; + xshift = newpx - newpy*fTalpha; + + // distx = std::fabs(std::fabs(xshift)-fDx*calpha); + distx = std::fabs(std::fabs(xshift)-fDx); + disty = std::fabs(std::fabs(newpy)-fDy); + distz = std::fabs(std::fabs(p.z())-fDz); + + tntheta = fTthetaCphi*calpha + fTthetaSphi*salpha; + cosntheta = 1/std::sqrt(1+tntheta*tntheta); + ycomp = 1/std::sqrt(1+fTthetaSphi*fTthetaSphi); + + G4ThreeVector nX = G4ThreeVector( calpha*cosntheta, salpha*cosntheta,-tntheta*cosntheta); + G4ThreeVector nY = G4ThreeVector( 0, ycomp,-fTthetaSphi*ycomp); + G4ThreeVector nZ = G4ThreeVector( 0, 0, 1.0); + + if (distx <= delta) + { + noSurfaces ++; + if ( xshift >= 0.) sumnorm += nX; + else sumnorm -= nX; + } + if (disty <= delta) + { + noSurfaces ++; + if ( newpy >= 0.) sumnorm += nY; + else sumnorm -= nY; + } + if (distz <= delta) + { + noSurfaces ++; + if ( p.z() >= 0.) sumnorm += nZ; + else sumnorm -= nZ; + } + if ( noSurfaces == 0 ) + { +#ifdef G4CSGDEBUG + G4Exception("G4Para::SurfaceNormal(p)", "Notification", JustWarning, + "Point p is not on surface !?" ); +#endif + norm = ApproxSurfaceNormal(p); + } + else if ( noSurfaces == 1 ) norm = sumnorm; + else norm = sumnorm.unit(); + + return norm; +} + + +//////////////////////////////////////////////////////////////////////// +// +// Algorithm for SurfaceNormal() following the original specification +// for points not on the surface + +G4ThreeVector G4Para::ApproxSurfaceNormal( const G4ThreeVector& p ) const { ENSide side; G4ThreeVector norm; @@ -1140,7 +1220,7 @@ std::ostream& G4Para::StreamInfo( std::ostream& os ) const void G4Para::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } G4Polyhedron* G4Para::CreatePolyhedron () const @@ -1159,6 +1239,45 @@ G4NURBS* G4Para::CreateNURBS () const return 0 ; } +///////////////////////////////////////////////////////////////////////////// // -// -/////////////////////////// End of G4Para.cc /////////////////////////// +// Return a point (G4ThreeVector) randomly and uniformly selected on the solid surface + +G4ThreeVector G4Para::GetPointOnSurface() const +{ + G4double px, py, pz, select, sumS; + G4double Sxy, Sxz, Syz; + + Sxy = fDx*fDy; + Sxz = fDx*fDz; + Syz = fDy*fDz; + + sumS = Sxy + Sxz + Syz; + select = sumS*G4UniformRand(); + + if( select < Sxy ) + { + px = -fDx +2*fDx*G4UniformRand(); + py = -fDy +2*fDy*G4UniformRand(); + + if(G4UniformRand() > 0.5) pz = fDz; + else pz = -fDz; + } + else if ( ( select - Sxy ) < Sxz ) + { + px = -fDx +2*fDx*G4UniformRand(); + pz = -fDz +2*fDz*G4UniformRand(); + + if(G4UniformRand() > 0.5) py = fDy; + else py = -fDy; + } + else + { + py = -fDy +2*fDy*G4UniformRand(); + pz = -fDz +2*fDz*G4UniformRand(); + + if(G4UniformRand() > 0.5) px = fDx; + else px = -fDx; + } + return G4ThreeVector(px,py,pz); +} diff --git a/source/geometry/solids/CSG/src/G4Sphere.cc b/source/geometry/solids/CSG/src/G4Sphere.cc index fc2c9be12a..c1cfbd8a93 100644 --- a/source/geometry/solids/CSG/src/G4Sphere.cc +++ b/source/geometry/solids/CSG/src/G4Sphere.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Sphere.cc,v 1.34 2004/12/10 16:22:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4Sphere.cc,v 1.48 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4Sphere // @@ -30,6 +30,7 @@ // // History: // +// 03.05.05 V.Grichine: SurfaceNormal(p) according to J. Apostolakis proposal // 16.09.04 V.Grichine: bug fixed in SurfaceNormal(p), theta normals // 16.07.04 V.Grichine: bug fixed in DistanceToOut(p,v), Rmin go outside // 02.06.04 V.Grichine: bug fixed in DistanceToIn(p,v), on Rmax,Rmin go inside @@ -537,6 +538,127 @@ if(rad2 <= Rmax_minus*Rmax_minus && rad2 >= Rmin_plus*Rmin_plus) in = kInside ; // - unsafe if point close to z axis a rmin=0 - no explicit checks G4ThreeVector G4Sphere::SurfaceNormal( const G4ThreeVector& p ) const +{ + G4int noSurfaces = 0; + G4double rho, rho2, rad, pTheta, pPhi=0.; + G4double distRMin = kInfinity; + G4double distSPhi = kInfinity, distEPhi = kInfinity; + G4double distSTheta = kInfinity, distETheta = kInfinity; + G4double delta = 0.5*kCarTolerance, dAngle = 0.5*kAngTolerance; + G4ThreeVector nR, nPs, nPe, nTs, nTe, nZ(0.,0.,1.); + G4ThreeVector norm, sumnorm(0.,0.,0.); + + rho2 = p.x()*p.x()+p.y()*p.y(); + rad = std::sqrt(rho2+p.z()*p.z()); + rho = std::sqrt(rho2); + + G4double distRMax = std::fabs(rad-fRmax); + if (fRmin) distRMin = std::fabs(rad-fRmin); + + if ( rho && (fDPhi < twopi || fDTheta < pi) ) + { + pPhi = std::atan2(p.y(),p.x()); + + if(pPhi < fSPhi-dAngle) pPhi += twopi; + else if(pPhi > fSPhi+fDPhi+dAngle) pPhi -= twopi; + } + if ( fDPhi < twopi ) // && rho ) // old limitation against (0,0,z) + { + if ( rho ) + { + distSPhi = std::fabs( pPhi - fSPhi ); + distEPhi = std::fabs(pPhi-fSPhi-fDPhi); + } + else if( !fRmin ) + { + distSPhi = 0.; + distEPhi = 0.; + } + nPs = G4ThreeVector(std::sin(fSPhi),-std::cos(fSPhi),0); + nPe = G4ThreeVector(-std::sin(fSPhi+fDPhi),std::cos(fSPhi+fDPhi),0); + } + if ( fDTheta < pi ) // && rad ) // old limitation against (0,0,0) + { + if ( rho ) + { + pTheta = std::atan2(rho,p.z()); + distSTheta = std::fabs(pTheta-fSTheta); + distETheta = std::fabs(pTheta-fSTheta-fDTheta); + + nTs = G4ThreeVector(-std::cos(fSTheta)*std::cos(pPhi), + -std::cos(fSTheta)*std::sin(pPhi), + std::sin(fSTheta) ); + nTe = G4ThreeVector( std::cos(fSTheta+fDTheta)*std::cos(pPhi), + std::cos(fSTheta+fDTheta)*std::sin(pPhi), + -std::sin(fSTheta+fDTheta) ); + } + else if( !fRmin ) + { + if ( fSTheta ) distSTheta = 0.; + if ( fSTheta + fDTheta < pi ) distETheta = 0.; + } + } + if( rad ) nR = G4ThreeVector(p.x()/rad,p.y()/rad,p.z()/rad); + + if( distRMax <= delta ) + { + noSurfaces ++; + sumnorm += nR; + } + if( fRmin && distRMin <= delta ) + { + noSurfaces ++; + sumnorm -= nR; + } + if( fDPhi < twopi ) + { + if (distSPhi <= dAngle) + { + noSurfaces ++; + sumnorm += nPs; + } + if (distEPhi <= dAngle) + { + noSurfaces ++; + sumnorm += nPe; + } + } + if ( fDTheta < pi ) + { + if (distSTheta <= dAngle && fSTheta > 0.) + { + noSurfaces ++; + if( rad <= delta && fDPhi >= twopi) sumnorm += nZ; + else sumnorm += nTs; + } + if (distETheta <= dAngle && fSTheta+fDTheta < pi) + { + noSurfaces ++; + if( rad <= delta && fDPhi >= twopi) sumnorm -= nZ; + else sumnorm += nTe; + if(sumnorm.z() == 0.) sumnorm += nZ; + } + } + if ( noSurfaces == 0 ) + { +#ifdef G4CSGDEBUG + G4Exception("G4Sphere::SurfaceNormal(p)", "Notification", JustWarning, + "Point p is not on surface !?" ); +#endif + norm = ApproxSurfaceNormal(p); + } + else if ( noSurfaces == 1 ) norm = sumnorm; + else norm = sumnorm.unit(); + return norm; +} + + +///////////////////////////////////////////////////////////////////////////////////////////// +// +// Algorithm for SurfaceNormal() following the original specification +// for points not on the surface + +G4ThreeVector G4Sphere::ApproxSurfaceNormal( const G4ThreeVector& p ) const { ENorm side; G4ThreeVector norm; @@ -684,7 +806,7 @@ G4ThreeVector G4Sphere::SurfaceNormal( const G4ThreeVector& p ) const break; default: DumpInfo(); - G4Exception("G4Sphere::SurfaceNormal()", "Notification", JustWarning, + G4Exception("G4Sphere::ApproxSurfaceNormal()", "Notification", JustWarning, "Undefined side for valid surface normal to solid."); break; } // end case @@ -2789,7 +2911,7 @@ G4VisExtent G4Sphere::GetExtent() const void G4Sphere::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } G4Polyhedron* G4Sphere::CreatePolyhedron () const @@ -2801,6 +2923,3 @@ G4NURBS* G4Sphere::CreateNURBS () const { return new G4NURBSbox (fRmax, fRmax, fRmax); // Box for now!!! } - - -// ****************************** End of G4Sphere.cc **************************************** diff --git a/source/geometry/solids/CSG/src/G4Torus.cc b/source/geometry/solids/CSG/src/G4Torus.cc index ff6f99055f..360d46c906 100644 --- a/source/geometry/solids/CSG/src/G4Torus.cc +++ b/source/geometry/solids/CSG/src/G4Torus.cc @@ -21,14 +21,16 @@ // ******************************************************************** // // -// $Id: G4Torus.cc,v 1.40 2004/12/10 16:22:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4Torus.cc,v 1.51 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4Torus // // Implementation // +// 07.06.05 V.Grichine: SurfaceNormal(p) for rho=0, Constructor as G4Cons +// 03.05.05 V.Grichine: SurfaceNormal(p) according to J. Apostolakis proposal // 18.03.04 V.Grichine: bug fixed in DistanceToIn(p) // 11.01.01 E.Medernach: Use G4PolynomialSolver to find roots // 03.10.00 E.Medernach: SafeNewton added @@ -59,6 +61,8 @@ #include "G4NURBStubesector.hh" #include "G4PolynomialSolver.hh" +#include "G4JTPolynomialSolver.hh" + // #define DEBUGTORUS 1 /////////////////////////////////////////////////////////////// @@ -88,9 +92,9 @@ G4Torus::SetAllParameters( G4double pRmin, G4double pSPhi, G4double pDPhi ) { - fCubicVolume= 0.; + fCubicVolume = 0.; fpPolyhedron = 0; - if ( pRtor >= pRmax + kCarTolerance ) // Check swept radius + if ( pRtor >= pRmax + 1.e3*kCarTolerance ) // Check swept radius, as in G4Cons { fRtor = pRtor ; } @@ -103,11 +107,11 @@ G4Torus::SetAllParameters( G4double pRmin, "InvalidSetup", FatalException, "Invalid swept radius."); } - // Check radii + // Check radii, as in G4Cons - if ( pRmin < pRmax - 2*kCarTolerance && pRmin >= 0 ) + if ( pRmin < pRmax - 1.e2*kCarTolerance && pRmin >= 0 ) { - if (pRmin >= kCarTolerance) fRmin = pRmin ; + if (pRmin >= 1.e2*kCarTolerance) fRmin = pRmin ; else fRmin = 0.0 ; fRmax = pRmax ; } @@ -756,6 +760,29 @@ G4int G4Torus::SolveQuadratic( G4double c[], G4double s[] ) const return 0; } +//////////////////////////////////////////////////////////////////////////////// +// +// Calculate the nearest nonnegative real root to torus surface + +G4double G4Torus::SolveNumericJT( G4double cIn[]) const +{ + + G4int i, num, n = 5; + G4double c[5], sr[4], si[4], tmp = kInfinity; + + G4JTPolynomialSolver torusEq; + + for ( i = 0; i < n; i++ ) c[i] = cIn[ n - 1 - i ]; + + num = torusEq.FindRoots( c, 4, sr, si ); + + for ( i = 0; i < num; i++ ) + { + if( si[i] == 0. && sr[i] > 0. && sr[i] < tmp ) tmp = sr[i]; + } + return tmp; +} + ///////////////////////////////////////////////////////////////////////////// // // Calculate extent under transform and specified limit @@ -1074,6 +1101,85 @@ EInside G4Torus::Inside( const G4ThreeVector& p ) const // - unsafe if point close to z axis a rmin=0 - no explicit checks G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p ) const +{ + G4int noSurfaces = 0; + G4double rho2, rho, pt2, pt, pPhi; + G4double distRMin = kInfinity; + G4double distSPhi = kInfinity, distEPhi = kInfinity; + G4double delta = 0.5*kCarTolerance, dAngle = 0.5*kAngTolerance; + G4ThreeVector nR, nPs, nPe; + G4ThreeVector norm, sumnorm(0.,0.,0.); + + rho2 = p.x()*p.x() + p.y()*p.y(); + rho = std::sqrt(rho2); + pt2 = std::fabs(rho2+p.z()*p.z() +fRtor*fRtor - 2*fRtor*rho); + pt = std::sqrt(pt2) ; + + G4double distRMax = std::fabs(pt - fRmax); + if(fRmin) distRMin = std::fabs(pt - fRmin); + + if( rho > delta ) nR = G4ThreeVector( p.x()*(1-fRtor/rho)/pt, + p.y()*(1-fRtor/rho)/pt, + p.z()/pt ); + + if ( fDPhi < twopi ) // && rho ) // old limitation against (0,0,z) + { + if ( rho ) + { + pPhi = std::atan2(p.y(),p.x()); + + if(pPhi < fSPhi-delta) pPhi += twopi; + else if(pPhi > fSPhi+fDPhi+delta) pPhi -= twopi; + + distSPhi = std::fabs( pPhi - fSPhi ); + distEPhi = std::fabs(pPhi-fSPhi-fDPhi); + } + nPs = G4ThreeVector(std::sin(fSPhi),-std::cos(fSPhi),0); + nPe = G4ThreeVector(-std::sin(fSPhi+fDPhi),std::cos(fSPhi+fDPhi),0); + } + if( distRMax <= delta ) + { + noSurfaces ++; + sumnorm += nR; + } + if( fRmin && distRMin <= delta ) + { + noSurfaces ++; + sumnorm -= nR; + } + if( fDPhi < twopi ) + { + if (distSPhi <= dAngle) + { + noSurfaces ++; + sumnorm += nPs; + } + if (distEPhi <= dAngle) + { + noSurfaces ++; + sumnorm += nPe; + } + } + if ( noSurfaces == 0 ) + { +#ifdef G4CSGDEBUG + G4Exception("G4Torus::SurfaceNormal(p)", "Notification", JustWarning, + "Point p is not on surface !?" ); +#endif + norm = ApproxSurfaceNormal(p); + } + else if ( noSurfaces == 1 ) norm = sumnorm; + else norm = sumnorm.unit(); + + return norm ; +} + +///////////////////////////////////////////////////////////////////////////////// +// +// Algorithm for SurfaceNormal() following the original specification +// for points not on the surface + +G4ThreeVector G4Torus::ApproxSurfaceNormal( const G4ThreeVector& p ) const { ENorm side ; G4ThreeVector norm; @@ -1148,7 +1254,7 @@ G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p ) const break; default: DumpInfo(); - G4Exception("G4Torus::SurfaceNormal()", "Notification", JustWarning, + G4Exception("G4Torus::ApproxSurfaceNormal()", "Notification", JustWarning, "Undefined side for valid surface normal to solid."); break ; } @@ -1294,6 +1400,7 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, // Numerical root research // s[0] = SolveNumeric(p, v, true); + // s[0] = SolveNumericJT(c); num = 1; // There is only one root: the correct one #if DEBUGTORUS @@ -1386,6 +1493,7 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, // Numerical root research // s[0] = s[0]; // We already take care of Rmin in SolveNumeric ! + // s[0] = SolveNumericJT(c); num = 1; if(num) @@ -1655,6 +1763,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, // Numerical root research s[0] = SolveNumeric( p, v, false); + // s[0] = SolveNumericJT(c); num = 1; // There is only one root. #if DEBUGTORUS @@ -1710,6 +1819,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, // // num = SolveBiQuadratic(c,s) ; // s[0] = s[0]; // We already take care of Rmin in SolveNumeric + // s[0] = SolveNumericJT(c); num = 1; if(num) @@ -2291,12 +2401,12 @@ std::ostream& G4Torus::StreamInfo( std::ostream& os ) const void G4Torus::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } G4Polyhedron* G4Torus::CreatePolyhedron () const { - return new G4PolyhedronTorus (fRmin, fRmax, fRtor, fSPhi, fSPhi + fDPhi); + return new G4PolyhedronTorus (fRmin, fRmax, fRtor, fSPhi, fDPhi); } G4NURBS* G4Torus::CreateNURBS () const diff --git a/source/geometry/solids/CSG/src/G4Trap.cc b/source/geometry/solids/CSG/src/G4Trap.cc index b538805237..63f29c276c 100644 --- a/source/geometry/solids/CSG/src/G4Trap.cc +++ b/source/geometry/solids/CSG/src/G4Trap.cc @@ -21,14 +21,19 @@ // ******************************************************************** // // -// $Id: G4Trap.cc,v 1.28 2004/12/02 09:31:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4Trap.cc,v 1.37 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4Trap // // Implementation for G4Trap class // // History: +// +// 28.04.05 V.Grichine: new SurfaceNormal according to J. Apostolakis proposal +// 26.04.05 V.Grichine: new SurfaceNormal is default +// 19.04.05 V.Grichine: bug fixed in G4Trap("name",G4ThreeVector[8] vp) +// 12.12.04 V.Grichine: SurfaceNormal with edges/vertices // 15.11.04 V.Grichine: bug fixed in G4Trap("name",G4ThreeVector[8] vp) // 13.12.99 V.Grichine: bug fixed in DistanceToIn(p,v) // 19.11.99 V.Grichine: kUndef was added to Eside enum @@ -37,7 +42,8 @@ // 01.11.96 V.Grichine: Costructor for Right Angular Wedge from STEP, G4Trd/Para // 09.09.96 V.Grichine: Final modifications before to commit // 21.03.95 P.Kent: Modified for `tolerant' geometry -// +// +//////////////////////////////////////////////////////////////////////////////////// #include "G4Trap.hh" #include "globals.hh" @@ -139,7 +145,8 @@ G4Trap::G4Trap( const G4String& pName, && pt[0].y() == pt[1].y() && pt[2].y() == pt[3].y() && pt[4].y() == pt[5].y() && pt[6].y() == pt[7].y() && ( pt[0].y() + pt[2].y() + pt[4].y() + pt[6].y() ) == 0 - && ( pt[0].x() + pt[1].x() + pt[4].x() + pt[5].x() ) == 0 ) + && ( pt[0].x() + pt[1].x() + pt[4].x() + pt[5].x() + + pt[2].x() + pt[3].x() + pt[6].x() + pt[7].x() ) == 0 ) { G4bool good; @@ -627,8 +634,8 @@ G4bool G4Trap::MakePlanes() // Back side iwth normal approx. +X // - good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); - if (!good) + good = MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); + if ( !good ) { G4cerr << "ERROR - G4Trap()::MakePlanes(): " << GetName() << G4endl; G4Exception("G4Trap::MakePlanes()", "InvalidSetup", FatalException, @@ -642,7 +649,7 @@ G4bool G4Trap::MakePlanes() // // Calculate the coef's of the plane p1->p2->p3->p4->p1 // where the ThreeVectors 1-4 are in anti-clockwise order when viewed from -// infront of the plane. +// infront of the plane (i.e. from normal direction). // // Return true if the ThreeVectors are coplanar + set coef;s // false if ThreeVectors are not coplanar @@ -653,65 +660,64 @@ G4bool G4Trap::MakePlane( const G4ThreeVector& p1, const G4ThreeVector& p4, TrapSidePlane& plane ) { - G4double a,b,c,s; - G4ThreeVector v12,v13,v14,Vcross; + G4double a, b, c, s; + G4ThreeVector v12, v13, v14, Vcross; G4bool good; - v12 = p2-p1; - v13 = p3-p1; - v14 = p4-p1; - Vcross=v12.cross(v13); + v12 = p2 - p1; + v13 = p3 - p1; + v14 = p4 - p1; + Vcross = v12.cross(v13); if (std::fabs(Vcross.dot(v14)/(Vcross.mag()*v14.mag())) > kCoplanar_Tolerance) { - good=false; + good = false; } else { // a,b,c correspond to the x/y/z components of the // normal vector to the plane - a=(p2.y()-p1.y())*(p1.z()+p2.z())+(p3.y()-p2.y())*(p2.z()+p3.z()); - a+=(p4.y()-p3.y())*(p3.z()+p4.z())+(p1.y()-p4.y())*(p4.z()+p1.z()); // ? - - b=(p2.z()-p1.z())*(p1.x()+p2.x())+(p3.z()-p2.z())*(p2.x()+p3.x()); - b+=(p4.z()-p3.z())*(p3.x()+p4.x())+(p1.z()-p4.z())*(p4.x()+p1.x()); // ? - - c=(p2.x()-p1.x())*(p1.y()+p2.y())+(p3.x()-p2.x())*(p2.y()+p3.y()); - c+=(p4.x()-p3.x())*(p3.y()+p4.y())+(p1.x()-p4.x())*(p4.y()+p1.y()); // ? + // a = (p2.y()-p1.y())*(p1.z()+p2.z())+(p3.y()-p2.y())*(p2.z()+p3.z()); + // a += (p4.y()-p3.y())*(p3.z()+p4.z())+(p1.y()-p4.y())*(p4.z()+p1.z()); // ? + // b = (p2.z()-p1.z())*(p1.x()+p2.x())+(p3.z()-p2.z())*(p2.x()+p3.x()); + // b += (p4.z()-p3.z())*(p3.x()+p4.x())+(p1.z()-p4.z())*(p4.x()+p1.x()); // ? + // c = (p2.x()-p1.x())*(p1.y()+p2.y())+(p3.x()-p2.x())*(p2.y()+p3.y()); + // c += (p4.x()-p3.x())*(p3.y()+p4.y())+(p1.x()-p4.x())*(p4.y()+p1.y()); // ? // Let create diagonals 4-2 and 3-1 than (4-2)x(3-1) provides // vector perpendicular to the plane directed to outside !!! - // and a,b,c, = f(1,2,3,4) + // and a,b,c, = f(1,2,3,4) external relative to trap normal - // a = +(p4.y() - p2.y())*(p3.z() - p1.z()) - // - (p3.y() - p1.y())*(p4.z() - p2.z()) ; - // b = -(p4.x() - p2.x())*(p3.z() - p1.z()) - // + (p3.x() - p1.x())*(p4.z() - p2.z()) ; - // c = +(p4.x() - p2.x())*(p3.y() - p1.y()) - // - (p3.x() - p1.x())*(p4.y() - p2.y()) ; + a = +(p4.y() - p2.y())*(p3.z() - p1.z()) + - (p3.y() - p1.y())*(p4.z() - p2.z()); - s=std::sqrt(a*a+b*b+c*c); // so now vector plane.(a,b,c) is unit + b = -(p4.x() - p2.x())*(p3.z() - p1.z()) + + (p3.x() - p1.x())*(p4.z() - p2.z()); + + c = +(p4.x() - p2.x())*(p3.y() - p1.y()) + - (p3.x() - p1.x())*(p4.y() - p2.y()); + + s = std::sqrt( a*a + b*b + c*c ); // so now vector plane.(a,b,c) is unit if( s > 0 ) { - plane.a=a/s; - plane.b=b/s; - plane.c=c/s; + plane.a = a/s; + plane.b = b/s; + plane.c = c/s; } else { G4cerr << "ERROR - G4Trap()::MakePlane(): " << GetName() << G4endl; G4Exception("G4Trap::MakePlanes()", "InvalidSetup", FatalException, - "Invalid parameters.") ; + "Invalid parameters: norm.mod() <= 0") ; } - // Calculate D: p1 in in plane so D=-n.p1.Vect() - // - plane.d=-(plane.a*p1.x()+plane.b*p1.y()+plane.c*p1.z()); + + plane.d = -( plane.a*p1.x() + plane.b*p1.y() + plane.c*p1.z() ); - good=true; + good = true; } return good; } @@ -1030,40 +1036,34 @@ EInside G4Trap::Inside( const G4ThreeVector& p ) const EInside in; G4double Dist; G4int i; - if (std::fabs(p.z())<=fDz-kCarTolerance/2) + if ( std::fabs(p.z()) <= fDz-kCarTolerance*0.5) { - in=kInside; - for (i=0;i<4;i++) + in = kInside; + + for ( i = 0;i < 4;i++ ) { - Dist=fPlanes[i].a*p.x()+fPlanes[i].b*p.y() - +fPlanes[i].c*p.z()+fPlanes[i].d; - if (Dist>kCarTolerance/2) - { - return in=kOutside; - } - else if (Dist>-kCarTolerance/2) - { - in=kSurface; - } + Dist = fPlanes[i].a*p.x() + fPlanes[i].b*p.y() + +fPlanes[i].c*p.z() + fPlanes[i].d; + + if (Dist > kCarTolerance*0.5) return in = kOutside; + else if (Dist > -kCarTolerance*0.5) in = kSurface; + } } - else if (std::fabs(p.z())<=fDz+kCarTolerance/2) + else if (std::fabs(p.z()) <= fDz+kCarTolerance*0.5) { - in=kSurface; - for (i=0;i<4;i++) + in = kSurface; + + for ( i = 0; i < 4; i++ ) { - Dist=fPlanes[i].a*p.x()+fPlanes[i].b*p.y() - +fPlanes[i].c*p.z()+fPlanes[i].d; - if (Dist>kCarTolerance/2) - { - return in=kOutside; - } + Dist = fPlanes[i].a*p.x() + fPlanes[i].b*p.y() + +fPlanes[i].c*p.z() + fPlanes[i].d; + + if (Dist > kCarTolerance*0.5) return in = kOutside; } } - else - { - in=kOutside; - } + else in = kOutside; + return in; } @@ -1073,6 +1073,87 @@ EInside G4Trap::Inside( const G4ThreeVector& p ) const // If 2+ sides equidistant, first side's normal returned (arbitrarily) G4ThreeVector G4Trap::SurfaceNormal( const G4ThreeVector& p ) const +{ + G4int i, imin = 0, noSurfaces = 0; + G4double dist, distz, distx, disty, distmx, distmy, safe = kInfinity; + G4double delta = 0.5*kCarTolerance; + G4ThreeVector norm, sumnorm(0.,0.,0.); + + for (i = 0; i < 4; i++) + { + dist = std::fabs(fPlanes[i].a*p.x() + fPlanes[i].b*p.y() + + fPlanes[i].c*p.z() + fPlanes[i].d); + if ( dist < safe ) + { + safe = dist; + imin = i; + } + } + distz = std::fabs( std::fabs( p.z() ) - fDz ); + + distmy = std::fabs( fPlanes[0].a*p.x() + fPlanes[0].b*p.y() + + fPlanes[0].c*p.z() + fPlanes[0].d ); + + disty = std::fabs( fPlanes[1].a*p.x() + fPlanes[1].b*p.y() + + fPlanes[1].c*p.z() + fPlanes[1].d ); + + distmx = std::fabs( fPlanes[2].a*p.x() + fPlanes[2].b*p.y() + + fPlanes[2].c*p.z() + fPlanes[2].d ); + + distx = std::fabs( fPlanes[3].a*p.x() + fPlanes[3].b*p.y() + + fPlanes[3].c*p.z() + fPlanes[3].d ); + + G4ThreeVector nX = G4ThreeVector(fPlanes[3].a,fPlanes[3].b,fPlanes[3].c); + G4ThreeVector nmX = G4ThreeVector(fPlanes[2].a,fPlanes[2].b,fPlanes[2].c); + G4ThreeVector nY = G4ThreeVector(fPlanes[1].a,fPlanes[1].b,fPlanes[1].c); + G4ThreeVector nmY = G4ThreeVector(fPlanes[0].a,fPlanes[0].b,fPlanes[0].c); + G4ThreeVector nZ = G4ThreeVector(0.,0.,1.0); + + if (distx <= delta) + { + noSurfaces ++; + sumnorm += nX; + } + if (distmx <= delta) + { + noSurfaces ++; + sumnorm += nmX; + } + if (disty <= delta) + { + noSurfaces ++; + sumnorm += nY; + } + if (distmy <= delta) + { + noSurfaces ++; + sumnorm += nmY; + } + if (distz <= delta) + { + noSurfaces ++; + if ( p.z() >= 0.) sumnorm += nZ; + else sumnorm -= nZ; + } + if ( noSurfaces == 0 ) + { +#ifdef G4CSGDEBUG + G4Exception("G4Trap::SurfaceNormal(p)", "Notification", JustWarning, + "Point p is not on surface !?" ); +#endif + norm = ApproxSurfaceNormal(p); + } + else if ( noSurfaces == 1 ) norm = sumnorm; + else norm = sumnorm.unit(); + return norm; +} + +//////////////////////////////////////////////////////////////////////////////////// +// +// Algorithm for SurfaceNormal() following the original specification +// for points not on the surface + +G4ThreeVector G4Trap::ApproxSurfaceNormal( const G4ThreeVector& p ) const { G4double safe=kInfinity,Dist,safez; G4int i,imin=0; @@ -1684,7 +1765,7 @@ std::ostream& G4Trap::StreamInfo( std::ostream& os ) const void G4Trap::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } G4Polyhedron* G4Trap::CreatePolyhedron () const @@ -1704,6 +1785,3 @@ G4NURBS* G4Trap::CreateNURBS () const // return new G4NURBSbox (fDx, fDy, fDz); return 0 ; } - - -// ******************************** End of G4Trap.cc ******************************** diff --git a/source/geometry/solids/CSG/src/G4Trd.cc b/source/geometry/solids/CSG/src/G4Trd.cc index 6cc6875ff1..5fb0545ede 100644 --- a/source/geometry/solids/CSG/src/G4Trd.cc +++ b/source/geometry/solids/CSG/src/G4Trd.cc @@ -21,22 +21,29 @@ // ******************************************************************** // // -// $Id: G4Trd.cc,v 1.22 2004/12/02 09:31:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4Trd.cc,v 1.30 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Implementation for G4Trd class // // History: -// ~1996, V.Grichine, 1st implementation based on old code of P.Kent +// +// 28.04.05 V.Grichine: new SurfaceNormal according to J. Apostolakis proposal +// 26.04.05, V.Grichine, new SurfaceNoramal is default +// 07.12.04, V.Grichine, SurfaceNoramal with edges/vertices. // 07.05.00, V.Grichine, in d = DistanceToIn(p,v), if d<0.5*kCarTolerance, d=0 -// -------------------------------------------------------------------- +// ~1996, V.Grichine, 1st implementation based on old code of P.Kent +// +// +//////////////////////////////////////////////////////////////////////////////// #include "G4Trd.hh" #include "G4VPVParameterisation.hh" #include "G4VoxelLimits.hh" #include "G4AffineTransform.hh" +#include "Randomize.hh" #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" @@ -379,6 +386,75 @@ EInside G4Trd::Inside( const G4ThreeVector& p ) const // encountered returned G4ThreeVector G4Trd::SurfaceNormal( const G4ThreeVector& p ) const +{ + G4ThreeVector norm, sumnorm(0.,0.,0.); + G4int noSurfaces = 0; + G4double z = 2.0*fDz, tanx, secx, newpx, widx; + G4double tany, secy, newpy, widy; + G4double distx, disty, distz, fcos; + G4double delta = 0.5*kCarTolerance; + + tanx = (fDx2 - fDx1)/z; + secx = std::sqrt(1.0+tanx*tanx); + newpx = std::fabs(p.x())-p.z()*tanx; + widx = fDx2 - fDz*tanx; + + tany = (fDy2 - fDy1)/z; + secy = std::sqrt(1.0+tany*tany); + newpy = std::fabs(p.y())-p.z()*tany; + widy = fDy2 - fDz*tany; + + distx = std::fabs(newpx-widx)/secx; // perp. distance to x side + disty = std::fabs(newpy-widy)/secy; // to y side + distz = std::fabs(std::fabs(p.z())-fDz); // to z side + + fcos = 1.0/secx; + G4ThreeVector nX = G4ThreeVector( fcos,0,-tanx*fcos); + G4ThreeVector nmX = G4ThreeVector(-fcos,0,-tanx*fcos); + + fcos = 1.0/secy; + G4ThreeVector nY = G4ThreeVector(0, fcos,-tany*fcos); + G4ThreeVector nmY = G4ThreeVector(0,-fcos,-tany*fcos); + G4ThreeVector nZ = G4ThreeVector( 0, 0, 1.0); + + if (distx <= delta) + { + noSurfaces ++; + if ( p.x() >= 0.) sumnorm += nX; + else sumnorm += nmX; + } + if (disty <= delta) + { + noSurfaces ++; + if ( p.y() >= 0.) sumnorm += nY; + else sumnorm += nmY; + } + if (distz <= delta) + { + noSurfaces ++; + if ( p.z() >= 0.) sumnorm += nZ; + else sumnorm -= nZ; + } + if ( noSurfaces == 0 ) + { +#ifdef G4CSGDEBUG + G4Exception("G4Trd::SurfaceNormal(p)", "Notification", JustWarning, + "Point p is not on surface !?" ); +#endif + norm = ApproxSurfaceNormal(p); + } + else if ( noSurfaces == 1 ) norm = sumnorm; + else norm = sumnorm.unit(); + return norm; +} + + +///////////////////////////////////////////////////////////////////////////// +// +// Algorithm for SurfaceNormal() following the original specification +// for points not on the surface + +G4ThreeVector G4Trd::ApproxSurfaceNormal( const G4ThreeVector& p ) const { G4ThreeVector norm; G4double z,tanx,secx,newpx,widx; @@ -1263,7 +1339,7 @@ std::ostream& G4Trd::StreamInfo( std::ostream& os ) const void G4Trd::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } G4Polyhedron* G4Trd::CreatePolyhedron () const @@ -1277,6 +1353,65 @@ G4NURBS* G4Trd::CreateNURBS () const return 0; } +///////////////////////////////////////////////////////////////////////////// // -// -/////////////////////////////////////////////////////////////////////////// +// Return a point (G4ThreeVector) randomly and uniformly selected on the solid surface + +G4ThreeVector G4Trd::GetPointOnSurface() const +{ + G4double px, py, pz, tgX, tgY, secX, secY, select, sumS, tmp; + G4double Sxy1, Sxy2, Sxy, Sxz, Syz; + + tgX = 0.5*(fDx2-fDx1)/fDz; + secX = std::sqrt(1+tgX*tgX); + tgY = 0.5*(fDy2-fDy1)/fDz; + secY = std::sqrt(1+tgY*tgY); + + // calculate 0.25 of side surfaces, sumS is 0.25 of total surface + + Sxy1 = fDx1*fDy1; + Sxy2 = fDx2*fDy2; + Sxy = Sxy1 + Sxy2; + Sxz = (fDx1 + fDx2)*fDz*secY; + Syz = (fDy1 + fDy2)*fDz*secX; + sumS = Sxy + Sxz + Syz; + + select = sumS*G4UniformRand(); + + if( select < Sxy ) // Sxy1 or Sxy2 + { + if( select < Sxy1 ) + { + pz = -fDz; + px = -fDx1 + 2*fDx1*G4UniformRand(); + py = -fDy1 + 2*fDy1*G4UniformRand(); + } + else + { + pz = fDz; + px = -fDx2 + 2*fDx2*G4UniformRand(); + py = -fDy2 + 2*fDy2*G4UniformRand(); + } + } + else if ( ( select - Sxy ) < Sxz ) // Sxz + { + pz = -fDz + 2*fDz*G4UniformRand(); + tmp = fDx1 + (pz + fDz)*tgX; + px = -tmp + 2*tmp*G4UniformRand(); + tmp = fDy1 + (pz + fDz)*tgY; + + if(G4UniformRand() > 0.5) py = tmp; + else py = -tmp; + } + else // Syz + { + pz = -fDz + 2*fDz*G4UniformRand(); + tmp = fDy1 + (pz + fDz)*tgY; + py = -tmp + 2*tmp*G4UniformRand(); + tmp = fDx1 + (pz + fDz)*tgX; + + if(G4UniformRand() > 0.5) px = tmp; + else px = -tmp; + } + return G4ThreeVector(px,py,pz); +} diff --git a/source/geometry/solids/CSG/src/G4Tubs.cc b/source/geometry/solids/CSG/src/G4Tubs.cc index 107f37894d..283af980d7 100644 --- a/source/geometry/solids/CSG/src/G4Tubs.cc +++ b/source/geometry/solids/CSG/src/G4Tubs.cc @@ -21,34 +21,36 @@ // ******************************************************************** // // -// $Id: G4Tubs.cc,v 1.44 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4Tubs.cc,v 1.54 2005/06/08 16:14:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4Tubs // // History: // -// 1994-95 P.Kent: implementation // -// 18.06.98 V.Grichine: n-normalisation in DistanceToOut(p,v) -// 09.10.98 V.Grichine: modifications in DistanceToOut(p,v,...) -// 23.03.99 V.Grichine: bug fixed in DistanceToIn(p,v) -// 25.05.99 V.Grichine: bugs fixed in DistanceToIn(p,v) -// 28.05.99 V.Grichine: bugs fixed in DistanceToOut(p,v,...) -// 13.10.99 V.Grichine: bugs fixed in DistanceToIn(p,v) -// 19.11.99 V.Grichine: side = kNull in DistanceToOut(p,v,...) -// 31.03.00 V.Grichine: bug fixed in Inside(p) -// 17.05.00 V.Grichine: bugs (#76,#91) fixed in Distance ToOut(p,v,...) -// 02.08.00 V.Grichine: point is outside check in Distance ToOut(p) -// 08.08.00 V.Grichine: more stable roots of 2-equation in DistanceToOut(p,v,..) -// 31.10.00 V.Grichine: assign sr, sphi in Distance ToOut(p,v,...) -// 28.11.00 V.Grichine: bug fixed in Inside(p) -// 07.12.00 V.Grichine: phi-section algorithm was changed in Inside(p) +// 03.05.05 V.Grichine: SurfaceNormal(p) according to J. Apostolakis proposal +// 16.03.05 V.Grichine: SurfaceNormal(p) with edges/corners for boolean +// 20.07.01 V.Grichine: bug fixed in Inside(p) // 20.02.01 V.Grichine: bug fixed in Inside(p) and CalculateExtent was // simplified base on G4Box::CalculateExtent -// 20.07.01 V.Grichine: bug fixed in Inside(p) -// -------------------------------------------------------------------- +// 07.12.00 V.Grichine: phi-section algorithm was changed in Inside(p) +// 28.11.00 V.Grichine: bug fixed in Inside(p) +// 31.10.00 V.Grichine: assign sr, sphi in Distance ToOut(p,v,...) +// 08.08.00 V.Grichine: more stable roots of 2-equation in DistanceToOut(p,v,..) +// 02.08.00 V.Grichine: point is outside check in Distance ToOut(p) +// 17.05.00 V.Grichine: bugs (#76,#91) fixed in Distance ToOut(p,v,...) +// 31.03.00 V.Grichine: bug fixed in Inside(p) +// 19.11.99 V.Grichine: side = kNull in DistanceToOut(p,v,...) +// 13.10.99 V.Grichine: bugs fixed in DistanceToIn(p,v) +// 28.05.99 V.Grichine: bugs fixed in DistanceToOut(p,v,...) +// 25.05.99 V.Grichine: bugs fixed in DistanceToIn(p,v) +// 23.03.99 V.Grichine: bug fixed in DistanceToIn(p,v) +// 09.10.98 V.Grichine: modifications in DistanceToOut(p,v,...) +// 18.06.98 V.Grichine: n-normalisation in DistanceToOut(p,v) +// +// 1994-95 P.Kent: implementation #include "G4Tubs.hh" @@ -549,6 +551,92 @@ EInside G4Tubs::Inside( const G4ThreeVector& p ) const // - unsafe if point close to z axis a rmin=0 - no explicit checks G4ThreeVector G4Tubs::SurfaceNormal( const G4ThreeVector& p ) const +{ + G4int noSurfaces = 0; + G4double rho, pPhi; + G4double delta = 0.5*kCarTolerance, dAngle = 0.5*kAngTolerance; + G4double distZ, distRMin, distRMax; + G4double distSPhi = kInfinity, distEPhi = kInfinity; + G4ThreeVector norm, sumnorm(0.,0.,0.); + G4ThreeVector nZ = G4ThreeVector(0, 0, 1.0); + G4ThreeVector nR, nPs, nPe; + + rho = std::sqrt(p.x()*p.x() + p.y()*p.y()); + + distRMin = std::fabs(rho - fRMin); + distRMax = std::fabs(rho - fRMax); + distZ = std::fabs(std::fabs(p.z()) - fDz); + + if (fDPhi < twopi) // && rho ) // Protected against (0,0,z) + { + if ( rho ) + { + pPhi = std::atan2(p.y(),p.x()); + + if(pPhi < fSPhi-delta) pPhi += twopi; + else if(pPhi > fSPhi+fDPhi+delta) pPhi -= twopi; + + distSPhi = std::fabs( pPhi - fSPhi ); + distEPhi = std::fabs(pPhi - fSPhi - fDPhi); + } + else if( !fRMin ) + { + distSPhi = 0.; + distEPhi = 0.; + } + nPs = G4ThreeVector(std::sin(fSPhi),-std::cos(fSPhi),0); + nPe = G4ThreeVector(-std::sin(fSPhi+fDPhi),std::cos(fSPhi+fDPhi),0); + } + if ( rho > delta ) nR = G4ThreeVector(p.x()/rho,p.y()/rho,0); + + if( distRMax <= delta ) + { + noSurfaces ++; + sumnorm += nR; + } + if( fRMin && distRMin <= delta ) + { + noSurfaces ++; + sumnorm -= nR; + } + if( fDPhi < twopi ) + { + if (distSPhi <= dAngle) // delta) + { + noSurfaces ++; + sumnorm += nPs; + } + if (distEPhi <= dAngle) // delta) + { + noSurfaces ++; + sumnorm += nPe; + } + } + if (distZ <= delta) + { + noSurfaces ++; + if ( p.z() >= 0.) sumnorm += nZ; + else sumnorm -= nZ; + } + if ( noSurfaces == 0 ) + { +#ifdef G4CSGDEBUG + G4Exception("G4Tube::SurfaceNormal(p)", "Notification", JustWarning, + "Point p is not on surface !?" ); +#endif + norm = ApproxSurfaceNormal(p); + } + else if ( noSurfaces == 1 ) norm = sumnorm; + else norm = sumnorm.unit(); + return norm; +} + +///////////////////////////////////////////////////////////////////////////////////// +// +// Algorithm for SurfaceNormal() following the original specification +// for points not on the surface + +G4ThreeVector G4Tubs::ApproxSurfaceNormal( const G4ThreeVector& p ) const { ENorm side ; G4ThreeVector norm ; @@ -649,7 +737,7 @@ G4ThreeVector G4Tubs::SurfaceNormal( const G4ThreeVector& p ) const default: { DumpInfo(); - G4Exception("G4Tubs::SurfaceNormal()", "Notification", JustWarning, + G4Exception("G4Tubs::ApproxSurfaceNormal()", "Notification", JustWarning, "Undefined side for valid surface normal to solid."); break ; } @@ -1642,7 +1730,7 @@ std::ostream& G4Tubs::StreamInfo( std::ostream& os ) const void G4Tubs::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this) ; + scene.AddSolid (*this) ; } G4Polyhedron* G4Tubs::CreatePolyhedron () const @@ -1678,7 +1766,3 @@ G4NURBS* G4Tubs::CreateNURBS () const } return pNURBS ; } - -// -// -/////////////////////////////////// End of G4Tubs.cc //////////////////////// diff --git a/source/geometry/solids/History b/source/geometry/solids/History index 35bce4ef6c..aa4f2cf486 100644 --- a/source/geometry/solids/History +++ b/source/geometry/solids/History @@ -1,4 +1,4 @@ -$Id: History,v 1.15 2004/12/02 09:39:35 gcosmo Exp $ +$Id: History,v 1.20 2005/04/04 12:03:39 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,17 +17,25 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +April, 4th, 2005, G.Cosmo - geomsolids-V07-00-00 +- Includes tags: + breps-V07-00-01, geom-bool-V07-00-02, geom-csg-V07-00-02 + and geom-specific-V07-00-03. +- Implemented Get/CreatePolyhedron() when missing. +- Some code cleanup. +- Requires tag "greps-V07-00-02". + December, 2nd, 2004 G. Cosmo - geomsolids-V06-02-01 - Implemented migration to for standard mathematical functions. September, 22nd, 2004 G.Cosmo - geomsolids-V06-02-00 -- Include tags: +- Includes tags: geom-csg-V06-02-04, geom-bool-V06-02-00, geom-specific-V06-02-01, breps-V06-02-01. Requires tag "geommng-V06-02-01". October, 28th, 2003 G.Cosmo - geomsolids-V05-02-01 -- Include tags: +- Includes tags: geom-specific-V05-02-03, geom-csg-V05-02-02, geom-bool-V05-02-02, breps-V05-02-01. diff --git a/source/geometry/solids/specific/GNUmakefile b/source/geometry/solids/specific/GNUmakefile index a908735dd1..47057095a3 100644 --- a/source/geometry/solids/specific/GNUmakefile +++ b/source/geometry/solids/specific/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2004/06/11 14:17:18 gcosmo Exp $ +# $Id: GNUmakefile,v 1.5 2004/12/17 16:34:55 link Exp $ # ---------------------------------------------------------------------------- # GNUmakefile for geometry/solids/specific library. Gabriele Cosmo, 05/04/00. # ---------------------------------------------------------------------------- @@ -16,6 +16,7 @@ CPPFLAGS += -I$(G4BASE)/intercoms/include \ -I$(G4BASE)/graphics_reps/include \ -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include diff --git a/source/geometry/solids/specific/History b/source/geometry/solids/specific/History index 9be6fe13a8..a8b51a9279 100644 --- a/source/geometry/solids/specific/History +++ b/source/geometry/solids/specific/History @@ -1,4 +1,4 @@ -$Id: History,v 1.51 2004/12/08 12:30:48 gcosmo Exp $ +$Id: History,v 1.58 2005/05/09 14:15:37 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,38 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +29-Apr-2005, O.Link (geom-specific-V07-00-04) +- G4TwistedSurface: fixed bug in GetAreaCode() affecting G4TwistedTubs. + +04-Apr-2005, G.Cosmo (geom-specific-V07-00-03) +- Added test for Number-Of-Rotation-Steps in GetPolyhedron() for + G4VCSGfaceted, G4Hype and G4EllipticalTube (by J.Allison). + Requires tag "greps-V07-00-02". +- Added elementary implementation of CreatePolyhedron() for G4Hype, + G4TwistedBox, G4TwistedTubs, G4TwistedTrd, G4TwistedTrap. +- Some code cleanup. + +18-Mar-2005, O.Link (geom-specific-V07-00-02) +- New generic framework for twisted solids G4TwistedBox, G4TwistedTrd and + G4TwistedTrap: inheriting now from the base class G4VTwistedFaceted. +- Extended G4TwistedTrap to support setups with different trapezoidal + endcaps with centres not necessarily on a line parallel to the z axis. +- Added G4TwistedTrd and general G4TwistedTrap as test cases in test. + +03-Mar-2005, J.Allison +- Changed AddThis() to AddSolid() for all solids in the implementation + of DescribeYourselfTo(G4VGraphicsScene&). + +01-Mar-2005, O.Link (geom-specific-V07-00-01) +- Fixed compilation warnings on WIN32-VC for G4VSurface.cc. + +14-Feb-2005, O.Link (geom-specific-V07-00-00) +- Use new polynom approximations based on new solver based on Jenkins-Traub + algorithm, for twisted-box and twisted-trap. +- Fixed bug in the usage of 'fmod' and adopt special treatment for 'parallel' + events in G4TwistedBoxSide and G4TwistedTrapSide. +- Coworks with tag "global-V07-00-00". + 08-Dec-2004, O.Link (geom-specific-V06-02-07) - Extensions to twisted box/trap shapes to consider all 4 solutions for determining correct intersections. diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.hh b/source/geometry/solids/specific/include/G4ClippablePolygon.hh index c64392e6e1..dd7039da02 100644 --- a/source/geometry/solids/specific/include/G4ClippablePolygon.hh +++ b/source/geometry/solids/specific/include/G4ClippablePolygon.hh @@ -22,7 +22,7 @@ // // // $Id: G4ClippablePolygon.hh,v 1.9 2003/11/03 18:39:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.icc b/source/geometry/solids/specific/include/G4ClippablePolygon.icc index f4f035f43c..2f0572c864 100644 --- a/source/geometry/solids/specific/include/G4ClippablePolygon.icc +++ b/source/geometry/solids/specific/include/G4ClippablePolygon.icc @@ -22,7 +22,7 @@ // // // $Id: G4ClippablePolygon.icc,v 1.3 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4EllipticalTube.hh b/source/geometry/solids/specific/include/G4EllipticalTube.hh index 23c3f86c04..9b146545e0 100644 --- a/source/geometry/solids/specific/include/G4EllipticalTube.hh +++ b/source/geometry/solids/specific/include/G4EllipticalTube.hh @@ -22,7 +22,7 @@ // // // $Id: G4EllipticalTube.hh,v 1.13 2004/10/10 10:39:11 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/solids/specific/include/G4EllipticalTube.icc b/source/geometry/solids/specific/include/G4EllipticalTube.icc index 1a59fbbb2c..cd07f8b621 100644 --- a/source/geometry/solids/specific/include/G4EllipticalTube.icc +++ b/source/geometry/solids/specific/include/G4EllipticalTube.icc @@ -22,7 +22,7 @@ // // // $Id: G4EllipticalTube.icc,v 1.3 2004/10/10 10:39:16 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4EnclosingCylinder.hh b/source/geometry/solids/specific/include/G4EnclosingCylinder.hh index f0e98957c5..61382d5191 100644 --- a/source/geometry/solids/specific/include/G4EnclosingCylinder.hh +++ b/source/geometry/solids/specific/include/G4EnclosingCylinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EnclosingCylinder.hh,v 1.6 2003/11/03 18:39:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4FlatBoxSide.hh b/source/geometry/solids/specific/include/G4FlatBoxSide.hh deleted file mode 100644 index d6848065fb..0000000000 --- a/source/geometry/solids/specific/include/G4FlatBoxSide.hh +++ /dev/null @@ -1,94 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4FlatBoxSide.hh,v 1.2 2004/11/13 18:26:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// -// -------------------------------------------------------------------- -// GEANT 4 class header file -// -// -// G4FlatSurface -// -// Class description: -// -// Class describing a flat boundary surface for a box. - -// Author: -// -// 27-Oct-2004 - O.Link (Oliver.Link@cern.ch) -// -// -------------------------------------------------------------------- - -#ifndef __G4FLATBOXSIDE__ -#define __G4FLATBOXSIDE__ - -#include "G4VSurface.hh" - -class G4FlatBoxSide : public G4VSurface -{ - public: // with description - - G4FlatBoxSide( const G4String& name, - G4double PhiTwist, - G4double pDx, - G4double pDy, - G4double pDz, - G4int handedness ); - virtual ~G4FlatBoxSide(); - - virtual G4ThreeVector GetNormal(const G4ThreeVector & /* xx */ , - G4bool isGlobal = false); - virtual G4int DistanceToSurface(const G4ThreeVector &gp, - const G4ThreeVector &gv, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[], - G4bool isvalid[], - EValidate validate=kValidateWithTol); - - virtual G4int DistanceToSurface(const G4ThreeVector &gp, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[]); - - protected: // with description - - virtual G4int GetAreaCode(const G4ThreeVector &xx, - G4bool withTol = true) ; - - private: - - virtual void SetCorners(); - virtual void SetBoundaries(); - - private: - - G4double fDx ; - G4double fDy ; - G4double fDz ; - G4double fPhiTwist ; -}; - -#endif diff --git a/source/geometry/solids/specific/include/G4FlatSurface.hh b/source/geometry/solids/specific/include/G4FlatSurface.hh index 9eef9013e6..d5a293c304 100644 --- a/source/geometry/solids/specific/include/G4FlatSurface.hh +++ b/source/geometry/solids/specific/include/G4FlatSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4FlatSurface.hh,v 1.6 2004/11/13 18:26:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4FlatTrapSide.hh b/source/geometry/solids/specific/include/G4FlatTrapSide.hh index 514f9a370b..c7b67236f2 100644 --- a/source/geometry/solids/specific/include/G4FlatTrapSide.hh +++ b/source/geometry/solids/specific/include/G4FlatTrapSide.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FlatTrapSide.hh,v 1.3 2004/11/13 18:26:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4FlatTrapSide.hh,v 1.4 2005/03/11 16:03:57 link Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -55,6 +55,9 @@ class G4FlatTrapSide : public G4VSurface G4double pDx2, G4double pDy, G4double pDz, + G4double pAlpha, + G4double pPhi, + G4double pTheta, G4int handedness ); virtual ~G4FlatTrapSide(); @@ -83,6 +86,8 @@ class G4FlatTrapSide : public G4VSurface virtual void SetCorners(); virtual void SetBoundaries(); + inline double xAxisMax(G4double u, G4double fTanAlpha) const ; + private: G4double fDx1 ; @@ -90,6 +95,21 @@ class G4FlatTrapSide : public G4VSurface G4double fDy ; G4double fDz ; G4double fPhiTwist ; + G4double fAlpha ; + G4double fTAlph ; + G4double fPhi ; + G4double fTheta ; + G4double fdeltaX ; + G4double fdeltaY ; + }; + +inline +G4double G4FlatTrapSide::xAxisMax(G4double u, G4double fTanAlpha) const +{ + return ( ( fDx2 + fDx1 )/2. + u*(fDx2 - fDx1)/(2.*fDy) - u *fTanAlpha ) ; +} + + #endif diff --git a/source/geometry/solids/specific/include/G4Hype.hh b/source/geometry/solids/specific/include/G4Hype.hh index 421581734b..f6e05876b9 100644 --- a/source/geometry/solids/specific/include/G4Hype.hh +++ b/source/geometry/solids/specific/include/G4Hype.hh @@ -23,7 +23,7 @@ // // $Id: G4Hype.hh,v 1.9 2004/10/10 10:39:19 johna Exp $ // $Original: G4Hype.hh,v 1.0 1998/06/09 16:57:50 safai Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Hype.icc b/source/geometry/solids/specific/include/G4Hype.icc index 234ebafe92..66a4ad7e8f 100644 --- a/source/geometry/solids/specific/include/G4Hype.icc +++ b/source/geometry/solids/specific/include/G4Hype.icc @@ -22,7 +22,7 @@ // // // $Id: G4Hype.icc,v 1.6 2004/12/02 09:31:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4HyperbolicSurface.hh b/source/geometry/solids/specific/include/G4HyperbolicSurface.hh index 2e7b2d435c..ff191a09a5 100644 --- a/source/geometry/solids/specific/include/G4HyperbolicSurface.hh +++ b/source/geometry/solids/specific/include/G4HyperbolicSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4HyperbolicSurface.hh,v 1.7 2004/12/02 09:31:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4IntersectingCone.hh b/source/geometry/solids/specific/include/G4IntersectingCone.hh index 3c89324054..833b219de5 100644 --- a/source/geometry/solids/specific/include/G4IntersectingCone.hh +++ b/source/geometry/solids/specific/include/G4IntersectingCone.hh @@ -22,7 +22,7 @@ // // // $Id: G4IntersectingCone.hh,v 1.7 2004/12/02 09:31:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4PolyPhiFace.hh b/source/geometry/solids/specific/include/G4PolyPhiFace.hh index b5b315d007..83040e69f2 100644 --- a/source/geometry/solids/specific/include/G4PolyPhiFace.hh +++ b/source/geometry/solids/specific/include/G4PolyPhiFace.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolyPhiFace.hh,v 1.5 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4PolyPhiFace.icc b/source/geometry/solids/specific/include/G4PolyPhiFace.icc index c157b25726..01c187a55c 100644 --- a/source/geometry/solids/specific/include/G4PolyPhiFace.icc +++ b/source/geometry/solids/specific/include/G4PolyPhiFace.icc @@ -22,7 +22,7 @@ // // // $Id: G4PolyPhiFace.icc,v 1.5 2004/12/02 09:31:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Polycone.hh b/source/geometry/solids/specific/include/G4Polycone.hh index d807a90d9e..e543dea01d 100644 --- a/source/geometry/solids/specific/include/G4Polycone.hh +++ b/source/geometry/solids/specific/include/G4Polycone.hh @@ -22,7 +22,7 @@ // // // $Id: G4Polycone.hh,v 1.12 2003/11/05 17:41:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Polycone.icc b/source/geometry/solids/specific/include/G4Polycone.icc index 31a6d18da6..5ce5c44ed2 100644 --- a/source/geometry/solids/specific/include/G4Polycone.icc +++ b/source/geometry/solids/specific/include/G4Polycone.icc @@ -22,7 +22,7 @@ // // // $Id: G4Polycone.icc,v 1.6 2004/10/10 10:39:27 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4PolyconeSide.hh b/source/geometry/solids/specific/include/G4PolyconeSide.hh index a68eb9fb3a..3829797bbd 100644 --- a/source/geometry/solids/specific/include/G4PolyconeSide.hh +++ b/source/geometry/solids/specific/include/G4PolyconeSide.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolyconeSide.hh,v 1.5 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Polyhedra.hh b/source/geometry/solids/specific/include/G4Polyhedra.hh index 7929c8fc97..46fd956914 100644 --- a/source/geometry/solids/specific/include/G4Polyhedra.hh +++ b/source/geometry/solids/specific/include/G4Polyhedra.hh @@ -22,7 +22,7 @@ // // // $Id: G4Polyhedra.hh,v 1.11 2003/11/05 17:41:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Polyhedra.icc b/source/geometry/solids/specific/include/G4Polyhedra.icc index 29d0ba2f4d..761b4eb671 100644 --- a/source/geometry/solids/specific/include/G4Polyhedra.icc +++ b/source/geometry/solids/specific/include/G4Polyhedra.icc @@ -22,7 +22,7 @@ // // // $Id: G4Polyhedra.icc,v 1.6 2004/10/10 10:39:32 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4PolyhedraSide.hh b/source/geometry/solids/specific/include/G4PolyhedraSide.hh index 2808763028..fe14c75a12 100644 --- a/source/geometry/solids/specific/include/G4PolyhedraSide.hh +++ b/source/geometry/solids/specific/include/G4PolyhedraSide.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolyhedraSide.hh,v 1.5 2002/10/28 11:47:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4ReduciblePolygon.hh b/source/geometry/solids/specific/include/G4ReduciblePolygon.hh index 7db82e0335..1635d3180f 100644 --- a/source/geometry/solids/specific/include/G4ReduciblePolygon.hh +++ b/source/geometry/solids/specific/include/G4ReduciblePolygon.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReduciblePolygon.hh,v 1.6 2003/11/03 18:39:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4SolidExtentList.hh b/source/geometry/solids/specific/include/G4SolidExtentList.hh index aafcc333c4..d8c9b79554 100644 --- a/source/geometry/solids/specific/include/G4SolidExtentList.hh +++ b/source/geometry/solids/specific/include/G4SolidExtentList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SolidExtentList.hh,v 1.6 2003/11/03 18:39:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4TwistedBox.hh b/source/geometry/solids/specific/include/G4TwistedBox.hh index 41be9eecff..68cacf3a88 100644 --- a/source/geometry/solids/specific/include/G4TwistedBox.hh +++ b/source/geometry/solids/specific/include/G4TwistedBox.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TwistedBox.hh,v 1.3 2004/11/13 18:26:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4TwistedBox.hh,v 1.5 2005/04/04 11:56:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -33,211 +33,51 @@ // // Class description: // -// G4TwistedBox is a box twisted along the Z axis. +// A G4TwistedBox is a twisted cuboid of given half lengths pDx,pDy,pDz +// and twist angle pPhiTwist. +// The Box is centred on the origin with sides parallel to the x/y/z axes. +// +// Member Data: +// +// pDx Half-length along x axis +// pDy Half-length along y asis +// pDz Half-length along z axis +// pPhiTwist Twist angle // Author: -// O.Link (Oliver.Link@cern.ch) +// +// Oliver Link (Oliver.Link@cern.ch) // // -------------------------------------------------------------------- #ifndef __G4TWISTEDBOX__ #define __G4TWISTEDBOX__ -#include "G4VSolid.hh" -#include "G4TwistedBoxSide.hh" -#include "G4FlatBoxSide.hh" +#include "G4VTwistedFaceted.hh" - -class G4SolidExtentList; -class G4ClippablePolygon; - -class G4TwistedBox : public G4VSolid +class G4TwistedBox : public G4VTwistedFaceted { - public: // with description - - G4TwistedBox(const G4String &pname, // Name of instance - G4double twistedangle, // Twisted angle - G4double pDx, // half length in x - G4double pDy, // half length in y - G4double pDz) ; // half z length - +public: // with description + + G4TwistedBox(const G4String& pName, + G4double pPhiTwist, + G4double pDx, + G4double pDy, + G4double pDz ); + virtual ~G4TwistedBox(); - - void ComputeDimensions(G4VPVParameterisation* , - const G4int , - const G4VPhysicalVolume* ); - - G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits &pVoxelLimit, - const G4AffineTransform &pTransform, - G4double &pMin, - G4double &pMax ) const; - - G4double DistanceToIn (const G4ThreeVector &p, - const G4ThreeVector &v ) const; - - G4double DistanceToIn (const G4ThreeVector &p ) const; - - G4double DistanceToOut(const G4ThreeVector &p, - const G4ThreeVector &v, - const G4bool calcnorm=G4bool(false), - G4bool *validnorm=0, - G4ThreeVector *n=0 ) const; - - G4double DistanceToOut(const G4ThreeVector &p) const; - - EInside Inside (const G4ThreeVector &p) const; - - G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const; - - inline G4double GetCubicVolume() ; - - void DescribeYourselfTo (G4VGraphicsScene &scene) const; - G4Polyhedron *CreatePolyhedron () const; - G4NURBS *CreateNURBS () const; - - std::ostream &StreamInfo(std::ostream& os) const; // accessors - - inline G4double GetPhiTwist () const { return fPhiTwist ; } + inline G4double GetXHalfLength() const { return GetDx1() ; } + inline G4double GetYHalfLength() const { return GetDy1() ; } + inline G4double GetZHalfLength() const { return GetDz() ; } + inline G4double GetPhiTwist() const { return GetTwistAngle() ; } - inline G4double GetfDx () const { return fDx ; } - inline G4double GetfDy () const { return fDy ; } - inline G4double GetfDz () const { return fDz ; } - - G4VisExtent GetExtent () const; - G4GeometryType GetEntityType() const; + G4GeometryType GetEntityType() const; + G4Polyhedron* CreatePolyhedron() const; - protected: // with description - - G4ThreeVectorList* - CreateRotatedVertices(const G4AffineTransform& pTransform) const; - // Create the List of transformed vertices in the format required - // for G4VSolid:: ClipCrossSection and ClipBetweenSections. - - public: // without description - - private: - - inline void SetFields(G4double phitwist, - G4double pDx, G4double pDy, G4double pDz); - void CreateSurfaces(); - - private: - - G4double fPhiTwist; // Twist angle from -fDz to +fDz - - G4double fDx ; - G4double fDy ; - G4double fDz ; - - G4VSurface *fLowerEndcap ; // surface of -ve z - G4VSurface *fUpperEndcap ; // surface of +ve z - - G4VSurface *fSide0 ; // Twisted Side at phi = 0 deg - G4VSurface *fSide90 ; // Twisted Side at phi = 90 deg - G4VSurface *fSide180 ; // Twisted Side at phi = 180 deg - G4VSurface *fSide270 ; // Twisted Side at phi = 270 deg - - G4double fCubicVolume ; // volume of the twisted trapezoid - - class LastState // last Inside result - { - public: - LastState() - { - p.set(kInfinity,kInfinity,kInfinity); - inside = kOutside; - } - ~LastState(){} - public: - G4ThreeVector p; - EInside inside; - }; - - class LastVector // last SurfaceNormal result - { - public: - LastVector() - { - p.set(kInfinity,kInfinity,kInfinity); - vec.set(kInfinity,kInfinity,kInfinity); - surface = new G4VSurface*[1]; - } - ~LastVector() - { - delete [] surface; - } - public: - G4ThreeVector p; - G4ThreeVector vec; - G4VSurface **surface; - }; - - class LastValue // last G4double value - { - public: - LastValue() - { - p.set(kInfinity,kInfinity,kInfinity); - value = DBL_MAX; - } - ~LastValue(){} - public: - G4ThreeVector p; - G4double value; - }; - - class LastValueWithDoubleVector // last G4double value - { - public: - LastValueWithDoubleVector() - { - p.set(kInfinity,kInfinity,kInfinity); - vec.set(kInfinity,kInfinity,kInfinity); - value = DBL_MAX; - } - ~LastValueWithDoubleVector(){} - public: - G4ThreeVector p; - G4ThreeVector vec; - G4double value; - }; - - LastState fLastInside; - LastVector fLastNormal; - LastValue fLastDistanceToIn; - LastValue fLastDistanceToOut; - LastValueWithDoubleVector fLastDistanceToInWithV; - LastValueWithDoubleVector fLastDistanceToOutWithV; - - }; - -//===================================================================== - -//--------------------- -// inline functions -//--------------------- - -inline -void G4TwistedBox::SetFields(G4double phitwist, G4double pDx, G4double pDy, G4double pDz) -{ - fPhiTwist = phitwist; - - fDx = pDx ; - fDy = pDy ; - fDz = pDz ; - -} - -inline -G4double G4TwistedBox::GetCubicVolume() -{ - if(fCubicVolume != 0.) ; - else fCubicVolume = 8*fDx*fDy*fDz; - return fCubicVolume; -} + std::ostream& StreamInfo(std::ostream& os) const; +}; #endif diff --git a/source/geometry/solids/specific/include/G4TwistedBoxSide.hh b/source/geometry/solids/specific/include/G4TwistedBoxSide.hh deleted file mode 100644 index f478f2b704..0000000000 --- a/source/geometry/solids/specific/include/G4TwistedBoxSide.hh +++ /dev/null @@ -1,129 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4TwistedBoxSide.hh,v 1.4 2004/12/08 10:20:33 link Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ -// -// -// -------------------------------------------------------------------- -// GEANT 4 class header file -// -// -// G4TwistedTrapSide -// -// Class description: -// -// Class describing a twisted boundary surface for a box. - -// Author: -// -// Oliver Link (Oliver.Link@cern.ch) -// -// -------------------------------------------------------------------- -#ifndef __G4TWISTEDBOXSIDE__ -#define __G4TWISTEDBOXSIDE__ - -#include "G4VSurface.hh" - -#include - -class G4TwistedBoxSide : public G4VSurface -{ - public: // with description - - G4TwistedBoxSide(const G4String &name, - G4double PhiTwist, - G4double fDx, - G4double fDy, - G4double fDz, - G4double AngleSide); - - virtual ~G4TwistedBoxSide(); - - virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, - G4bool isGlobal = false) ; - - virtual G4int DistanceToSurface(const G4ThreeVector &gp, - const G4ThreeVector &gv, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[], - G4bool isvalid[], - EValidate validate=kValidateWithTol); - - virtual G4int DistanceToSurface(const G4ThreeVector &gp, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[]); - - private: - - virtual G4int GetAreaCode(const G4ThreeVector &xx, - G4bool withTol = true); - virtual void SetCorners(); - virtual void SetBoundaries(); - - void GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u); - G4ThreeVector ProjectPoint(const G4ThreeVector &p, - G4bool isglobal = false); - - inline G4ThreeVector SurfacePoint( G4double phi, G4double u); - inline G4ThreeVector NormAng( G4double phi, G4double u ); - - private: - - G4double fDx ; - G4double fDy ; - G4double fDz ; - G4double fPhiTwist ; - G4double fAngleSide ; -}; - -//======================================================== -// inline functions -//======================================================== - -inline -G4ThreeVector G4TwistedBoxSide::SurfacePoint( G4double phi, G4double u ) -{ - // function to calculate a point on the surface, given by parameters phi,u - - G4ThreeVector SurfPoint ( fDx * std::cos(phi) - u * std::sin(phi), - fDx * std::sin(phi) + u * std::cos(phi), - 2*fDz*phi/fPhiTwist ); - return SurfPoint ; -} - -inline -G4ThreeVector G4TwistedBoxSide::NormAng( G4double phi, G4double u ) -{ - // function to calculate the norm at a given point on the surface - - G4double L = 2*fDz ; - G4ThreeVector nvec( L*std::cos(phi), L*std::sin(phi), fPhiTwist*u); - - return nvec.unit() ; -} - - -#endif diff --git a/source/geometry/solids/specific/include/G4TwistedSurface.hh b/source/geometry/solids/specific/include/G4TwistedSurface.hh index b478049ed1..ba095896e9 100644 --- a/source/geometry/solids/specific/include/G4TwistedSurface.hh +++ b/source/geometry/solids/specific/include/G4TwistedSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4TwistedSurface.hh,v 1.7 2004/12/02 09:31:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4TwistedTrap.hh b/source/geometry/solids/specific/include/G4TwistedTrap.hh index e2efdb67be..d995bedddf 100644 --- a/source/geometry/solids/specific/include/G4TwistedTrap.hh +++ b/source/geometry/solids/specific/include/G4TwistedTrap.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TwistedTrap.hh,v 1.3 2004/11/13 18:26:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4TwistedTrap.hh,v 1.5 2005/04/04 11:56:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -33,220 +33,86 @@ // // Class description: // -// G4TwistedTrap is a trapezoid defined with caps of the sames shape -// and size, an twisted along the Z axis. - +// A G4TwistedTrap is a general twisted trapezoid: The faces perpendicular to the +// z planes are trapezia, and their centres are not necessarily on +// a line parallel to the z axis. +// +// pDz Half-length along the z-axis +// pTheta Polar angle of the line joining the centres of the faces +// at -/+pDz +// pPhi Azimuthal angle of the line joing the centre of the face at +// -pDz to the centre of the face at +pDz +// pDy1 Half-length along y of the face at -pDz +// pDx1 Half-length along x of the side at y=-pDy1 of the face at -pDz +// pDx2 Half-length along x of the side at y=+pDy1 of the face at -pDz +// +// pDy2 Half-length along y of the face at +pDz +// pDx3 Half-length along x of the side at y=-pDy2 of the face at +pDz +// pDx4 Half-length along x of the side at y=+pDy2 of the face at +pDz +// pAlph Angle with respect to the y axis from the centre of the side +// +// +// A special regular case of a trapezoid with equal endcaps is available, +// with polar,azimuthal and tilt angles set to zero. +// + // Author: -// O.Link (Oliver.Link@cern.ch) +// +// Oliver Link (Oliver.Link@cern.ch) // // -------------------------------------------------------------------- - #ifndef __G4TWISTEDTRAP__ #define __G4TWISTEDTRAP__ -#include "G4VSolid.hh" -#include "G4TwistedTrapSide.hh" -#include "G4TwistedBoxSide.hh" -#include "G4FlatTrapSide.hh" +#include "G4VTwistedFaceted.hh" -class G4SolidExtentList; -class G4ClippablePolygon; - -class G4TwistedTrap: public G4VSolid +class G4TwistedTrap : public G4VTwistedFaceted { - public: // with description +public: // with description + + G4TwistedTrap(const G4String &pName, + G4double pPhiTwist, + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy, + G4double pDz); + + + G4TwistedTrap(const G4String &pName, // Name of instance + G4double pPhiTwist, // twist angle + G4double pDz, // half z length + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azim. angles + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph // tilt angle + ); - G4TwistedTrap(const G4String &pname, // Name of instance - G4double twistedangle, // Twisted angle - G4double pDx1, // half length in x at y=-pDy - G4double pDx2, // half length in x at y=+pDy - G4double pDy, // half length in y - G4double pDz) ; // half z length - virtual ~G4TwistedTrap(); - - void ComputeDimensions(G4VPVParameterisation* , - const G4int , - const G4VPhysicalVolume* ); - - G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits &pVoxelLimit, - const G4AffineTransform &pTransform, - G4double &pMin, - G4double &pMax ) const; - G4double DistanceToIn (const G4ThreeVector &p, - const G4ThreeVector &v ) const; + // accessors - G4double DistanceToIn (const G4ThreeVector &p ) const; - - G4double DistanceToOut(const G4ThreeVector &p, - const G4ThreeVector &v, - const G4bool calcnorm=G4bool(false), - G4bool *validnorm=0, - G4ThreeVector *n=0 ) const; + inline G4double GetY1HalfLength() const { return GetDy1() ; } + inline G4double GetX1HalfLength() const { return GetDx1() ; } + inline G4double GetX2HalfLength() const { return GetDx2() ; } + inline G4double GetY2HalfLength() const { return GetDy2() ; } + inline G4double GetX3HalfLength() const { return GetDx3() ; } + inline G4double GetX4HalfLength() const { return GetDx4() ; } + inline G4double GetZHalfLength() const { return GetDz() ; } + inline G4double GetPhiTwist() const { return GetTwistAngle() ; } + inline G4double GetTiltAngleAlpha() const { return GetAlpha() ; } + inline G4double GetPolarAngleTheta() const { return GetTheta() ; } + inline G4double GetAzimuthalAnglePhi() const { return GetPhi() ; } - G4double DistanceToOut(const G4ThreeVector &p) const; - - EInside Inside (const G4ThreeVector &p) const; - - G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const; - - inline G4double GetCubicVolume() ; - - void DescribeYourselfTo (G4VGraphicsScene &scene) const; - G4Polyhedron *CreatePolyhedron () const; - G4NURBS *CreateNURBS () const; + G4GeometryType GetEntityType() const; + G4Polyhedron* CreatePolyhedron() const; std::ostream &StreamInfo(std::ostream& os) const; - // accessors - - inline G4double GetPhiTwist () const { return fPhiTwist ; } - - inline G4double GetDx1 () const { return fDx1 ; } - inline G4double GetDx2 () const { return fDx2 ; } - inline G4double GetDy () const { return fDy ; } - inline G4double GetDz () const { return fDz; } - - G4VisExtent GetExtent () const; - G4GeometryType GetEntityType() const; - - protected: // with description - - G4ThreeVectorList* - CreateRotatedVertices(const G4AffineTransform& pTransform) const; - // Create the List of transformed vertices in the format required - // for G4VSolid:: ClipCrossSection and ClipBetweenSections. - - - public: // without description - - private: - - inline void SetFields(G4double phitwist, G4double pDx1, G4double pDx2, G4double pDy, G4double pDz); - - void CreateSurfaces(); - - private: - - G4double fPhiTwist; // Twist angle from -fZHalfLength to fZHalfLength - - G4double fDx ; // temp - - G4double fDx1; // Half-length along x of the side at y=-fDy1 (d in surface equation) - G4double fDx2; // Half-length along x of the side at y=+fDy1 (a in surface equation) - G4double fDy; // Half-length along y of the face (b in surface equation) - G4double fDz ; // Half-length along the z axis (L in surface equation) - - G4VSurface *fLowerEndcap ; // surface of -ve z - G4VSurface *fUpperEndcap ; // surface of +ve z - - G4VSurface *fSide0 ; // Twisted Side at phi = 0 deg - G4VSurface *fSide90 ; // Twisted Side at phi = 90 deg - G4VSurface *fSide180 ; // Twisted Side at phi = 180 deg - G4VSurface *fSide270 ; // Twisted Side at phi = 270 deg - - G4double fCubicVolume ; // volume of the twisted trapezoid - - class LastState // last Inside result - { - public: - LastState() - { - p.set(kInfinity,kInfinity,kInfinity); - inside = kOutside; - } - ~LastState(){} - public: - G4ThreeVector p; - EInside inside; - }; - - class LastVector // last SurfaceNormal result - { - public: - LastVector() - { - p.set(kInfinity,kInfinity,kInfinity); - vec.set(kInfinity,kInfinity,kInfinity); - surface = new G4VSurface*[1]; - } - ~LastVector() - { - delete [] surface; - } - public: - G4ThreeVector p; - G4ThreeVector vec; - G4VSurface **surface; - }; - - class LastValue // last G4double value - { - public: - LastValue() - { - p.set(kInfinity,kInfinity,kInfinity); - value = DBL_MAX; - } - ~LastValue(){} - public: - G4ThreeVector p; - G4double value; - }; - - class LastValueWithDoubleVector // last G4double value - { - public: - LastValueWithDoubleVector() - { - p.set(kInfinity,kInfinity,kInfinity); - vec.set(kInfinity,kInfinity,kInfinity); - value = DBL_MAX; - } - ~LastValueWithDoubleVector(){} - public: - G4ThreeVector p; - G4ThreeVector vec; - G4double value; - }; - - LastState fLastInside; - LastVector fLastNormal; - LastValue fLastDistanceToIn; - LastValue fLastDistanceToOut; - LastValueWithDoubleVector fLastDistanceToInWithV; - LastValueWithDoubleVector fLastDistanceToOutWithV; - - }; - -//===================================================================== - -//--------------------- -// inline functions -//--------------------- - -inline -void G4TwistedTrap::SetFields(G4double phitwist, - G4double pDx1, G4double pDx2, G4double pDy , G4double pDz) -{ - fPhiTwist = phitwist; - - fDx1 = pDx1 ; - fDx2 = pDx2 ; - fDy = pDy ; - fDz = pDz ; - -} - -inline -G4double G4TwistedTrap::GetCubicVolume() -{ - if(fCubicVolume != 0.) ; - else fCubicVolume = 8 * ( fDx1 + fDx2 ) / 2 * fDy * fDz ; - return fCubicVolume; -} - +} ; #endif diff --git a/source/geometry/solids/specific/include/G4TwistedTrapAlphaSide.hh b/source/geometry/solids/specific/include/G4TwistedTrapAlphaSide.hh new file mode 100644 index 0000000000..f5cae0040f --- /dev/null +++ b/source/geometry/solids/specific/include/G4TwistedTrapAlphaSide.hh @@ -0,0 +1,210 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4TwistedTrapAlphaSide.hh,v 1.5 2005/03/18 17:11:53 gcosmo Exp $ +// +// -------------------------------------------------------------------- +// GEANT 4 class header file +// +// +// G4TwistedTrapAlphaSide +// +// Class description: +// +// Class describing a twisted boundary surface for a trapezoid. + +// Author: +// +// Oliver Link (Oliver.Link@cern.ch) +// +// -------------------------------------------------------------------- +#ifndef __G4TWISTEDTRAPALPHASIDE__ +#define __G4TWISTEDTRAPALPHASIDE__ + +#include "G4VSurface.hh" + +#include + +class G4TwistedTrapAlphaSide : public G4VSurface +{ + public: // with description + + G4TwistedTrapAlphaSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azimutal angles. + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph, // tilt angle at +pDz + G4double AngleSide // parity + ); + + virtual ~G4TwistedTrapAlphaSide(); + + virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, + G4bool isGlobal = false) ; + + virtual G4int DistanceToSurface(const G4ThreeVector &gp, + const G4ThreeVector &gv, + G4ThreeVector gxx[], + G4double distance[], + G4int areacode[], + G4bool isvalid[], + EValidate validate = kValidateWithTol); + + virtual G4int DistanceToSurface(const G4ThreeVector &gp, + G4ThreeVector gxx[], + G4double distance[], + G4int areacode[]); + + + + private: + + virtual G4int GetAreaCode(const G4ThreeVector &xx, + G4bool withTol = true); + virtual void SetCorners(); + virtual void SetBoundaries(); + + void GetPhiUAtX(G4ThreeVector p, G4double &phi, G4double &u); + G4ThreeVector ProjectPoint(const G4ThreeVector &p, + G4bool isglobal = false); + + inline G4ThreeVector SurfacePoint(G4double phi, G4double u); + inline G4ThreeVector NormAng(G4double phi, G4double u); + inline G4double Xcoef(G4double u,G4double phi); // to calculate the w(u) function + inline G4double GetValueA(G4double phi) ; + inline G4double GetValueB(G4double phi) ; + inline G4double GetValueD(G4double phi) ; + + private: + + G4double fTheta; + G4double fPhi ; + + G4double fDy1; + G4double fDx1; + G4double fDx2; + + G4double fDy2; + G4double fDx3; + G4double fDx4; + + G4double fDz; // Half-length along the z axis + + G4double fAlph ; + G4double fTAlph ; // std::tan(fAlph) + + G4double fPhiTwist; // twist angle ( dphi in surface equation) + + G4double fAngleSide; + + G4double fDx4plus2 ; // fDx4 + fDx2 == a2/2 + a1/2 + G4double fDx4minus2 ; // fDx4 - fDx2 - + G4double fDx3plus1 ; // fDx3 + fDx1 == d2/2 + d1/2 + G4double fDx3minus1 ; // fDx3 - fDx1 - + G4double fDy2plus1 ; // fDy2 + fDy1 == b2/2 + b1/2 + G4double fDy2minus1 ; // fDy2 - fDy1 - + G4double fa1md1 ; // 2 fDx2 - 2 fDx1 == a1 - d1 + G4double fa2md2 ; // 2 fDx4 - 2 fDx3 + + G4double fdeltaX ; + G4double fdeltaY ; + + +}; + +//======================================================== +// inline functions +//======================================================== + +inline +G4double G4TwistedTrapAlphaSide::GetValueA(G4double phi) +{ + return ( fDx4plus2 + fDx4minus2 * ( 2 * phi ) / fPhiTwist ) ; +} + +inline +G4double G4TwistedTrapAlphaSide::GetValueD(G4double phi) +{ + return ( fDx3plus1 + fDx3minus1 * ( 2 * phi) / fPhiTwist ) ; +} + +inline +G4double G4TwistedTrapAlphaSide::GetValueB(G4double phi) +{ + return ( fDy2plus1 + fDy2minus1 * ( 2 * phi ) / fPhiTwist ) ; +} + + +inline +G4double G4TwistedTrapAlphaSide::Xcoef(G4double u, G4double phi) +{ + + return GetValueA(phi)/2. + (GetValueD(phi)-GetValueA(phi))/4. + - u*( ( GetValueD(phi)-GetValueA(phi) ) / ( 2 * GetValueB(phi) ) + fTAlph ) ; + +} + +inline +G4ThreeVector G4TwistedTrapAlphaSide::SurfacePoint( G4double phi, G4double u ) +{ + // function to calculate a point on the surface, given by parameters phi,u + + G4ThreeVector SurfPoint ( ( Xcoef(u,phi) + fdeltaX*phi/fPhiTwist ) * std::cos(phi) + - ( u + fdeltaY*phi/fPhiTwist ) * std::sin(phi), + ( Xcoef(u,phi) + fdeltaX*phi/fPhiTwist ) * std::sin(phi) + + ( u + fdeltaY*phi/fPhiTwist ) * std::cos(phi), + 2*fDz*phi/fPhiTwist ); + return SurfPoint ; + +} + +inline +G4ThreeVector G4TwistedTrapAlphaSide::NormAng( G4double phi, G4double u ) +{ + // function to calculate the norm at a given point on the surface + // replace a1-d1 + + G4ThreeVector nvec( 16*fDy1*2*fDz*(4*fDy1*(std::cos(phi)-std::sin(phi)*fTAlph) + fa1md1*std::sin(phi)), + 16*fDy1*2*fDz*(4*fDy1*std::sin(phi) + std::cos(phi)*(-fa1md1 + 4*fDy1*fTAlph)), + 2*fDy1*(-16*fDy1*(fDx4minus2 + fDx3minus1) + 4*fDx2*fDx4plus2*fPhiTwist - + (fDx4+fDx1)*4*fDx1*fPhiTwist + 2*fa1md1*fDx3*fPhiTwist - + 32*fDy1*fdeltaX + 8*fa1md1*fdeltaY + + 2*(-(fa1md1*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)) + 16*fDy1*fdeltaY)*phi) + + 4*(16*fDy1*fDy1 + (fa1md1)*(fa1md1))*fPhiTwist*u - + 4*fDy1*fTAlph*(2*fDy1*(2*(fDx4plus2+fDx3plus1)*fPhiTwist + + 8*fdeltaY - 2*(-2*(fDx4minus2+fDx3minus1) - 4*fdeltaX)*phi) + + 8*(fa1md1)*fPhiTwist*u - 16*fDy1*fPhiTwist*u*fTAlph) ) ; + + + return nvec.unit(); +} + + +#endif diff --git a/source/geometry/solids/specific/include/G4TwistedTrapSide.hh b/source/geometry/solids/specific/include/G4TwistedTrapBoxSide.hh similarity index 60% rename from source/geometry/solids/specific/include/G4TwistedTrapSide.hh rename to source/geometry/solids/specific/include/G4TwistedTrapBoxSide.hh index 53fd43144c..e4e59dd1c1 100644 --- a/source/geometry/solids/specific/include/G4TwistedTrapSide.hh +++ b/source/geometry/solids/specific/include/G4TwistedTrapBoxSide.hh @@ -21,15 +21,13 @@ // ******************************************************************** // // -// $Id: G4TwistedTrapSide.hh,v 1.7 2004/12/08 10:20:34 link Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ -// +// $Id: G4TwistedTrapBoxSide.hh,v 1.2 2005/03/18 17:11:53 gcosmo Exp $ // // -------------------------------------------------------------------- // GEANT 4 class header file // // -// G4TwistedTrapSide +// G4TwistedTrapBoxSide // // Class description: // @@ -40,26 +38,31 @@ // Oliver Link (Oliver.Link@cern.ch) // // -------------------------------------------------------------------- -#ifndef __G4TWISTEDTRAPSIDE__ -#define __G4TWISTEDTRAPSIDE__ +#ifndef __G4TWISTEDTRAPBOXSIDE__ +#define __G4TWISTEDTRAPBOXASIDE__ #include "G4VSurface.hh" #include -class G4TwistedTrapSide : public G4VSurface +class G4TwistedTrapBoxSide : public G4VSurface { public: // with description - G4TwistedTrapSide(const G4String &name, - G4double PhiTwist, - G4double pDx1, - G4double pDx2, - G4double pDy, - G4double pDz, - G4double AngleSide); + G4TwistedTrapBoxSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azimutal angles. + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDy2, // half y length at +pDz + G4double pDx2, // half x length at +pDz,-pDy + G4double pAlph, // tilt angle at +pDz + G4double AngleSide // parity + ); - virtual ~G4TwistedTrapSide(); + virtual ~G4TwistedTrapBoxSide(); virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, G4bool isGlobal = false) ; @@ -92,22 +95,33 @@ class G4TwistedTrapSide : public G4VSurface inline G4ThreeVector SurfacePoint(G4double phi, G4double u); inline G4ThreeVector NormAng(G4double phi, G4double u); - inline G4double Xcoef(G4double u); // to calculate the w(u) function + inline G4double Xcoef(G4double u,G4double phi); // to calculate the w(u) function + inline G4double GetValueA(G4double phi) ; + inline G4double GetValueB(G4double phi) ; private: - G4double fDx1; // Half-length along x of the side at y=-fDy1 - // (d in surface equation) - G4double fDx2; // Half-length along x of the side at y=+fDy1 - // (a in surface equation) - G4double fDy; // Half-length along y of the face - // (b in surface equation) + G4double fTheta; + G4double fPhi ; + + G4double fDy1; + G4double fDy2; + + G4double fDx1; + G4double fDx2; + G4double fDz; // Half-length along the z axis - // (L in surface equation) + + G4double fAlph ; + G4double fTAlph ; // std::tan(fAlph) + G4double fPhiTwist; // twist angle ( dphi in surface equation) G4double fAngleSide; + G4double fdeltaX ; + G4double fdeltaY ; + }; //======================================================== @@ -115,46 +129,53 @@ class G4TwistedTrapSide : public G4VSurface //======================================================== inline -G4double G4TwistedTrapSide::Xcoef(G4double u) - +G4double G4TwistedTrapBoxSide::GetValueA(G4double phi) { - // attention a = 2 fDx1 - // d = 2 fDx2 - // b = 2 fDy - // L = 2 fDz + return ( fDx1 + fDx2 - (2*(fDx1 - fDx2)*phi)/fPhiTwist ) ; +} + +inline +G4double G4TwistedTrapBoxSide::GetValueB(G4double phi) +{ + return ( fDy1 + fDy2 - (2*(fDy1 - fDy2)*phi)/fPhiTwist ) ; +} + + +inline +G4double G4TwistedTrapBoxSide::Xcoef(G4double u, G4double phi) +{ + + return GetValueA(phi)/2. - u*fTAlph ; - return fDx2 + ( fDx1-fDx2)/2 - u * (fDx1-fDx2)/(2*fDy) ; } inline -G4ThreeVector G4TwistedTrapSide::SurfacePoint( G4double phi, G4double u ) +G4ThreeVector G4TwistedTrapBoxSide::SurfacePoint( G4double phi, G4double u ) { // function to calculate a point on the surface, given by parameters phi,u - G4ThreeVector SurfPoint ( Xcoef(u) * std::cos(phi) - u * std::sin(phi), - Xcoef(u) * std::sin(phi) + u * std::cos(phi), - 2*fDz*phi/fPhiTwist ); + G4ThreeVector SurfPoint ( ( Xcoef(u,phi) + fdeltaX*phi/fPhiTwist ) * std::cos(phi) + - ( u + fdeltaY*phi/fPhiTwist ) * std::sin(phi), + ( Xcoef(u,phi) + fdeltaX*phi/fPhiTwist ) * std::sin(phi) + + ( u + fdeltaY*phi/fPhiTwist ) * std::cos(phi), + 2*fDz*phi/fPhiTwist ); return SurfPoint ; } inline -G4ThreeVector G4TwistedTrapSide::NormAng( G4double phi, G4double u ) +G4ThreeVector G4TwistedTrapBoxSide::NormAng( G4double phi, G4double u ) { // function to calculate the norm at a given point on the surface + // replace a1-d1 + + G4ThreeVector + nvec( + 8*fDz*(std::cos(phi) - fTAlph*std::sin(phi)), + 8*fDz*(fTAlph*std::cos(phi) + std::sin(phi)), + 2*fDx1*(2 - fTAlph*(fPhiTwist - 2*phi)) - 2*fDx2*(2 + fTAlph*(fPhiTwist + 2*phi)) + - 4*(fdeltaX + fdeltaY*(fTAlph - phi) + fdeltaX*fTAlph*phi) + 4*fPhiTwist*(1 + fTAlph*fTAlph)*u) ; - G4double L = 2*fDz ; - G4double a = 2*fDx2 ; - G4double d = 2*fDx1 ; - G4double b = 2*fDy ; - G4double dphi = fPhiTwist ; - G4double b2 = b*b ; - G4double d2 = d*d ; - G4double a2 = a*a ; - G4ThreeVector nvec( ( L * (2*b*std::cos(phi) + (a-d)*std::sin(phi)))/2., - -(L*((a-d)*std::cos(phi) - 2*b*std::sin(phi)))/2., - (dphi*(-b*d2 + 8*b2*u - 4*a*d*u + 2*d2*u + a2*(b + 2*u))) - /(8.*b) ) ; return nvec.unit(); } diff --git a/source/geometry/solids/specific/include/G4TwistedTrapParallelSide.hh b/source/geometry/solids/specific/include/G4TwistedTrapParallelSide.hh new file mode 100644 index 0000000000..b9a2a9c517 --- /dev/null +++ b/source/geometry/solids/specific/include/G4TwistedTrapParallelSide.hh @@ -0,0 +1,203 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4TwistedTrapParallelSide.hh,v 1.3 2005/03/18 17:11:53 gcosmo Exp $ +// +// -------------------------------------------------------------------- +// GEANT 4 class header file +// +// +// G4TwistedTrapParallelSide +// +// Class description: +// +// Class describing a twisted boundary surface for a trapezoid. + +// Author: +// +// Oliver Link (Oliver.Link@cern.ch) +// +// -------------------------------------------------------------------- +#ifndef __G4TWISTEDTRAPPARALLELSIDE__ +#define __G4TWISTEDTRAPPARALLELSIDE__ + +#include "G4VSurface.hh" + +#include + +class G4TwistedTrapParallelSide : public G4VSurface +{ + public: // with description + + G4TwistedTrapParallelSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azimutal angles. + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph, // tilt angle at +pDz + G4double AngleSide // parity + ); + + virtual ~G4TwistedTrapParallelSide(); + + virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, + G4bool isGlobal = false) ; + + virtual G4int DistanceToSurface(const G4ThreeVector &gp, + const G4ThreeVector &gv, + G4ThreeVector gxx[], + G4double distance[], + G4int areacode[], + G4bool isvalid[], + EValidate validate = kValidateWithTol); + + virtual G4int DistanceToSurface(const G4ThreeVector &gp, + G4ThreeVector gxx[], + G4double distance[], + G4int areacode[]); + + + + private: + + virtual G4int GetAreaCode(const G4ThreeVector &xx, + G4bool withTol = true); + virtual void SetCorners(); + virtual void SetBoundaries(); + + void GetPhiUAtX(G4ThreeVector p, G4double &phi, G4double &u); + G4ThreeVector ProjectPoint(const G4ThreeVector &p, + G4bool isglobal = false); + + inline G4ThreeVector SurfacePoint(G4double phi, G4double u); + inline G4ThreeVector NormAng(G4double phi, G4double u); + inline G4double Xcoef(G4double u); // to calculate the w(u) function + inline G4double GetValueB(G4double phi) ; + inline G4double GetUmin(G4double phi) ; + inline G4double GetUmax(G4double phi) ; + + private: + + G4double fTheta; + G4double fPhi ; + + G4double fDy1; + G4double fDx1; + G4double fDx2; + + G4double fDy2; + G4double fDx3; + G4double fDx4; + + G4double fDz; // Half-length along the z axis + + G4double fAlph ; + G4double fTAlph ; // std::tan(fAlph) + + G4double fPhiTwist; // twist angle ( dphi in surface equation) + + G4double fAngleSide; + + G4double fa1md1 ; // 2 fDx2 - 2 fDx1 == a1 - d1 + G4double fa2md2 ; // 2 fDx4 - 2 fDx3 + + G4double fdeltaX ; + G4double fdeltaY ; + + G4double fDy2plus1 ; // fDy2 + fDy1 == b2/2 + b1/2 + G4double fDy2minus1 ; // fDy2 - fDy1 - + + // temporary + G4double fDy ; + +}; + +//======================================================== +// inline functions +//======================================================== + +inline +G4double G4TwistedTrapParallelSide::GetUmin(G4double phi) +{ + return ( - (2*fDx2*(fPhiTwist - 2*phi) + 2*fDx4*(fPhiTwist + 2*phi) + (2*fDy1*(fPhiTwist - 2*phi) + 2*fDy2*(fPhiTwist + 2*phi))*fTAlph)/(4.*fPhiTwist) ) ; +} + +inline +G4double G4TwistedTrapParallelSide::GetUmax(G4double phi) +{ + return (2*fDx2*(fPhiTwist - 2*phi) + 2*fDx4*(fPhiTwist + 2*phi) - (2*fDy1*(fPhiTwist - 2*phi) + 2*fDy2*(fPhiTwist + 2*phi))*fTAlph)/(4.*fPhiTwist) ; +} + +inline +G4double G4TwistedTrapParallelSide::GetValueB(G4double phi) +{ + return ( fDy2plus1 + fDy2minus1 * ( 2 * phi ) / fPhiTwist ) ; +} + + +inline +G4double G4TwistedTrapParallelSide::Xcoef(G4double phi) +{ + + return GetValueB(phi)/2. ; + +} + +inline +G4ThreeVector G4TwistedTrapParallelSide::SurfacePoint( G4double phi, G4double u ) +{ + // function to calculate a point on the surface, given by parameters phi,u + + G4ThreeVector SurfPoint ( ( u + fdeltaX*phi/fPhiTwist ) * std::cos(phi) + - ( Xcoef(phi) + fdeltaY*phi/fPhiTwist ) * std::sin(phi), + ( u + fdeltaX*phi/fPhiTwist ) * std::sin(phi) + + ( Xcoef(phi) + fdeltaY*phi/fPhiTwist ) * std::cos(phi), + 2*fDz*phi/fPhiTwist ); + return SurfPoint ; + +} + +inline +G4ThreeVector G4TwistedTrapParallelSide::NormAng( G4double phi, G4double u ) +{ + // function to calculate the norm at a given point on the surface + // replace a1-d1 + + G4ThreeVector nvec( + -2*fDz*std::sin(phi), + 2*fDz*std::cos(phi), + fDy1 - fDy2 - fdeltaY - fdeltaX*phi - fPhiTwist*u + ) ; + + + return nvec.unit(); +} + + +#endif diff --git a/source/geometry/solids/specific/include/G4TwistedTrd.hh b/source/geometry/solids/specific/include/G4TwistedTrd.hh new file mode 100644 index 0000000000..4eeaa656b5 --- /dev/null +++ b/source/geometry/solids/specific/include/G4TwistedTrd.hh @@ -0,0 +1,89 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4TwistedTrd.hh,v 1.2 2005/04/04 11:56:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +// +// -------------------------------------------------------------------- +// GEANT 4 class header file +// +// +// G4TwistedTrd +// +// Class description: +// +// A G4TwistedTrd is a twisted trapezoid with the x and y dimensions +// varying along z +// +// +// Member Data: +// +// pDx1 Half-length along x at the surface positioned at -dz +// pDx2 Half-length along x at the surface positioned at +dz +// pDy1 Half-length along y at the surface positioned at -dz +// pDy2 Half-length along y at the surface positioned at +dz +// pDz Half-length along z axis +// pPhiTwist Twist angle + +// Author: +// +// Oliver Link (Oliver.Link@cern.ch) +// +// -------------------------------------------------------------------- +#ifndef __G4TWISTEDTRD__ +#define __G4TWISTEDTRD__ + +#include "G4VTwistedFaceted.hh" + +class G4TwistedTrd : public G4VTwistedFaceted +{ +public: // with description + + G4TwistedTrd( const G4String& pName, + G4double pDx1, + G4double pDx2, + G4double pDy1, + G4double pDy2, + G4double pDz, + G4double pPhiTwist ); + + virtual ~G4TwistedTrd(); + + // accessors + + inline G4double GetX1HalfLength() const { return GetDx1() ; } + inline G4double GetX2HalfLength() const { return GetDx3() ; } + inline G4double GetY1HalfLength() const { return GetDy1() ; } + inline G4double GetY2HalfLength() const { return GetDy2() ; } + inline G4double GetZHalfLength() const { return GetDz() ; } + inline G4double GetPhiTwist() const { return GetTwistAngle() ; } + + G4GeometryType GetEntityType() const; + G4Polyhedron* CreatePolyhedron () const; + + std::ostream& StreamInfo(std::ostream& os) const; + +} ; + +#endif diff --git a/source/geometry/solids/specific/include/G4TwistedTubs.hh b/source/geometry/solids/specific/include/G4TwistedTubs.hh index e3e3d15b4b..75f6bf47be 100644 --- a/source/geometry/solids/specific/include/G4TwistedTubs.hh +++ b/source/geometry/solids/specific/include/G4TwistedTubs.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TwistedTubs.hh,v 1.7 2004/12/02 09:31:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4TwistedTubs.hh,v 1.8 2005/04/04 11:56:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -128,6 +128,7 @@ class G4TwistedTubs : public G4VSolid void DescribeYourselfTo (G4VGraphicsScene &scene) const; G4Polyhedron *CreatePolyhedron () const; G4NURBS *CreateNURBS () const; + G4Polyhedron *GetPolyhedron () const; std::ostream &StreamInfo(std::ostream& os) const; @@ -221,6 +222,8 @@ class G4TwistedTubs : public G4VSolid G4double fCubicVolume; // Cached value for cubic volume + mutable G4Polyhedron* fpPolyhedron; // pointer to polyhedron for vis + class LastState // last Inside result { public: diff --git a/source/geometry/solids/specific/include/G4VCSGface.hh b/source/geometry/solids/specific/include/G4VCSGface.hh index 15af5fae97..212dfa35ae 100644 --- a/source/geometry/solids/specific/include/G4VCSGface.hh +++ b/source/geometry/solids/specific/include/G4VCSGface.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCSGface.hh,v 1.6 2003/11/03 18:39:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4VCSGfaceted.hh b/source/geometry/solids/specific/include/G4VCSGfaceted.hh index 6d97612c15..c1aa2b43ab 100644 --- a/source/geometry/solids/specific/include/G4VCSGfaceted.hh +++ b/source/geometry/solids/specific/include/G4VCSGfaceted.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCSGfaceted.hh,v 1.10 2004/10/10 10:39:46 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4VSurface.hh b/source/geometry/solids/specific/include/G4VSurface.hh index e432f3dd0b..98a67f6dc9 100644 --- a/source/geometry/solids/specific/include/G4VSurface.hh +++ b/source/geometry/solids/specific/include/G4VSurface.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSurface.hh,v 1.10 2004/12/08 10:20:35 link Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VSurface.hh,v 1.11 2004/12/17 16:34:56 link Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -50,6 +50,8 @@ #include "G4RotationMatrix.hh" +#define G4VSURFACENXX 10 + class G4VSurface { public: // without description @@ -256,10 +258,10 @@ class G4VSurface private: - G4double fDistance[4]; - G4ThreeVector fXX[4]; - G4int fAreacode[4]; - G4bool fIsValid[4]; + G4double fDistance[G4VSURFACENXX]; + G4ThreeVector fXX[G4VSURFACENXX]; + G4int fAreacode[G4VSURFACENXX]; + G4bool fIsValid[G4VSURFACENXX]; G4int fNXX; G4ThreeVector fLastp; G4ThreeVector fLastv; @@ -350,6 +352,13 @@ G4bool DistanceSort( const Intersection &a, const Intersection &b) return a.distance < b.distance ; } +inline +G4bool EqualIntersection( const Intersection &a, const Intersection &b) +{ + return ( ( a.xx - b.xx ).mag() < kCarTolerance ) ; +} + + #include "G4VSurface.icc" #endif diff --git a/source/geometry/solids/specific/include/G4VSurface.icc b/source/geometry/solids/specific/include/G4VSurface.icc index 21cf8ab155..780f0cb6eb 100644 --- a/source/geometry/solids/specific/include/G4VSurface.icc +++ b/source/geometry/solids/specific/include/G4VSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4VSurface.icc,v 1.6 2004/12/02 09:31:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4VTwistedFaceted.hh b/source/geometry/solids/specific/include/G4VTwistedFaceted.hh new file mode 100644 index 0000000000..a4af0b2606 --- /dev/null +++ b/source/geometry/solids/specific/include/G4VTwistedFaceted.hh @@ -0,0 +1,296 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VTwistedFaceted.hh,v 1.3 2005/04/04 11:56:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +// -------------------------------------------------------------------- +// GEANT 4 class header file +// +// +// G4VTwistedFaceted +// +// Class description: +// +// G4VTwistedFaceted is an abstract base class for twisted boxoids: +// G4TwistedTrd, G4TwistedTrap and G4TwistedBox + +// Author: O.Link (Oliver.Link@cern.ch) +// +// -------------------------------------------------------------------- + +#ifndef __G4VTWISTEDFACETED__ +#define __G4VTWISTEDFACETED__ + +#include "G4VSolid.hh" +#include "G4TwistedTrapAlphaSide.hh" +#include "G4TwistedTrapParallelSide.hh" +#include "G4TwistedTrapBoxSide.hh" +#include "G4FlatTrapSide.hh" + +class G4SolidExtentList; +class G4ClippablePolygon; + +class G4VTwistedFaceted: public G4VSolid +{ + public: // with description + + G4VTwistedFaceted(const G4String &pname, // Name of instance + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar & azim. angles + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph // tilt angle at +pDz + ); + + virtual ~G4VTwistedFaceted(); + + virtual void ComputeDimensions(G4VPVParameterisation*, + const G4int, + const G4VPhysicalVolume* ); + + virtual G4bool CalculateExtent(const EAxis pAxis, + const G4VoxelLimits &pVoxelLimit, + const G4AffineTransform &pTransform, + G4double &pMin, + G4double &pMax ) const; + + virtual G4double DistanceToIn (const G4ThreeVector &p, + const G4ThreeVector &v ) const; + + virtual G4double DistanceToIn (const G4ThreeVector &p ) const; + + virtual G4double DistanceToOut(const G4ThreeVector &p, + const G4ThreeVector &v, + const G4bool calcnorm = false, + G4bool *validnorm = 0, + G4ThreeVector *n=0 ) const; + + virtual G4double DistanceToOut(const G4ThreeVector &p) const; + + virtual EInside Inside (const G4ThreeVector &p) const; + + virtual G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const; + + virtual inline G4double GetCubicVolume() ; + + virtual void DescribeYourselfTo (G4VGraphicsScene &scene) const; + virtual G4Polyhedron *CreatePolyhedron () const = 0 ; + virtual G4NURBS *CreateNURBS () const; + virtual G4Polyhedron *GetPolyhedron () const; + + virtual std::ostream &StreamInfo(std::ostream& os) const; + + // accessors + + inline G4double GetTwistAngle () const { return fPhiTwist; } + + inline G4double GetDx1 () const { return fDx1 ; } + inline G4double GetDx2 () const { return fDx2 ; } + inline G4double GetDx3 () const { return fDx3 ; } + inline G4double GetDx4 () const { return fDx4 ; } + inline G4double GetDy1 () const { return fDy1 ; } + inline G4double GetDy2 () const { return fDy2 ; } + inline G4double GetDz () const { return fDz ; } + inline G4double GetPhi () const { return fPhi ; } + inline G4double GetTheta () const { return fTheta ; } + inline G4double GetAlpha () const { return fAlph ; } + + inline G4double Xcoef(G4double u,G4double phi, G4double ftg) const ; + // For calculating the w(u) function + + inline G4double GetValueA(G4double phi) const; + inline G4double GetValueB(G4double phi) const; + inline G4double GetValueD(G4double phi) const; + + virtual G4VisExtent GetExtent () const; + virtual G4GeometryType GetEntityType() const; + + protected: // with description + + G4ThreeVectorList* + CreateRotatedVertices(const G4AffineTransform& pTransform) const; + // Create the List of transformed vertices in the format required + // for G4VSolid:: ClipCrossSection and ClipBetweenSections. + + private: + + void CreateSurfaces(); + + private: + + G4double fTheta; + G4double fPhi ; + + G4double fDy1; + G4double fDx1; + G4double fDx2; + + G4double fDy2; + G4double fDx3; + G4double fDx4; + + G4double fDz; // Half-length along the z axis + + G4double fDx ; // maximum side in x + G4double fDy ; // maximum side in y + + G4double fAlph ; + G4double fTAlph ; // std::tan(fAlph) + + G4double fdeltaX ; + G4double fdeltaY ; + + G4double fPhiTwist; // twist angle ( dphi in surface equation) + + G4double fAngleSide; + + G4VSurface *fLowerEndcap ; // surface of -ve z + G4VSurface *fUpperEndcap ; // surface of +ve z + + G4VSurface *fSide0 ; // Twisted Side at phi = 0 deg + G4VSurface *fSide90 ; // Twisted Side at phi = 90 deg + G4VSurface *fSide180 ; // Twisted Side at phi = 180 deg + G4VSurface *fSide270 ; // Twisted Side at phi = 270 deg + + G4double fCubicVolume ; // volume of the twisted trapezoid + + mutable G4Polyhedron* fpPolyhedron; // pointer to polyhedron for vis + + class LastState // last Inside result + { + public: + LastState() + { + p.set(kInfinity,kInfinity,kInfinity); + inside = kOutside; + } + ~LastState(){} + public: + G4ThreeVector p; + EInside inside; + }; + + class LastVector // last SurfaceNormal result + { + public: + LastVector() + { + p.set(kInfinity,kInfinity,kInfinity); + vec.set(kInfinity,kInfinity,kInfinity); + surface = new G4VSurface*[1]; + } + ~LastVector() + { + delete [] surface; + } + public: + G4ThreeVector p; + G4ThreeVector vec; + G4VSurface **surface; + }; + + class LastValue // last G4double value + { + public: + LastValue() + { + p.set(kInfinity,kInfinity,kInfinity); + value = DBL_MAX; + } + ~LastValue(){} + public: + G4ThreeVector p; + G4double value; + }; + + class LastValueWithDoubleVector // last G4double value + { + public: + LastValueWithDoubleVector() + { + p.set(kInfinity,kInfinity,kInfinity); + vec.set(kInfinity,kInfinity,kInfinity); + value = DBL_MAX; + } + ~LastValueWithDoubleVector(){} + public: + G4ThreeVector p; + G4ThreeVector vec; + G4double value; + }; + + LastState fLastInside; + LastVector fLastNormal; + LastValue fLastDistanceToIn; + LastValue fLastDistanceToOut; + LastValueWithDoubleVector fLastDistanceToInWithV; + LastValueWithDoubleVector fLastDistanceToOutWithV; + + }; + +//===================================================================== + +inline +G4double G4VTwistedFaceted::GetCubicVolume() +{ + + + if(fCubicVolume != 0.) ; + else fCubicVolume = 2 * fDz + * ( ( fDx1 + fDx2 ) * fDy1 + ( fDx3 + fDx4 ) * fDy2 ); + return fCubicVolume; +} + +inline +G4double G4VTwistedFaceted::GetValueA(G4double phi) const +{ + return ( fDx4 + fDx2 + ( fDx4 - fDx2 ) * ( 2 * phi ) / fPhiTwist ) ; +} + +inline +G4double G4VTwistedFaceted::GetValueD(G4double phi) const +{ + return ( fDx3 + fDx1 + ( fDx3 - fDx1 ) * ( 2 * phi ) / fPhiTwist ) ; +} + +inline +G4double G4VTwistedFaceted::GetValueB(G4double phi) const +{ + return ( fDy2 + fDy1 + ( fDy2 - fDy1 ) * ( 2 * phi ) / fPhiTwist ) ; +} + +inline +G4double G4VTwistedFaceted::Xcoef(G4double u, G4double phi, G4double ftg) const +{ + return GetValueA(phi)/2. + (GetValueD(phi)-GetValueA(phi))/4. + - u*( ( GetValueD(phi)-GetValueA(phi) ) / ( 2 * GetValueB(phi) ) + ftg ); +} + +#endif diff --git a/source/geometry/solids/specific/src/G4ApproxPolySolver.cc b/source/geometry/solids/specific/src/G4ApproxPolySolver.cc deleted file mode 100644 index 5342733e5a..0000000000 --- a/source/geometry/solids/specific/src/G4ApproxPolySolver.cc +++ /dev/null @@ -1,550 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// -// -------------------------------------------------------------------- -// GEANT 4 class source file -// -// -// G4ApproxPolySolver.cc -// -// Author: -// -// Oliver Link (oliver.Link@cern.ch) -// -------------------------------------------------------------------- - -#include "G4ApproxPolySolver.hh" - -///////////////////////////////////////////////////////////////////////// -// -// Auxiliary method for solving (in real numbers) biquadratic equation -// Algorithm based on : Graphics Gems I by Jochen Schwartz - -G4int G4ApproxPolySolver::SolveBiQuadratic( G4double c[], G4double s[] ) const -{ - G4double coeffs[ 4 ]; - G4double z, u, v, sub; - G4double A, B, C, D; - G4double A2, p, q, r; - G4int i,j, num; - - // normal form: x^4 + Ax^3 + Bx^2 + Cx + D = 0 - - A = c[ 3 ]; // c[ 4 ]; since always c[4]==1 ! - B = c[ 2 ]; // c[ 4 ]; - C = c[ 1 ]; // c[ 4 ]; - D = c[ 0 ]; // c[ 4 ]; - - // substitute x = y - A/4 to eliminate cubic term: - // y^4 + py^2 + qy + r = 0 - - A2 = A*A; - p = - 0.375*A2 + B; - q = 0.125*A2*A - 0.5*A*B + C; - r = - 3.0/256*A2*A2 + 1.0/16*A2*B - 0.25*A*C + D; - - // y^4 + py^2 + r = 0 and z=y^2 so y = +-std::sqrt(z1) and y = +-std::sqrt(z2) - - if(q==0) - { - coeffs[ 0 ] = r; - coeffs[ 1 ] = p; - coeffs[ 2 ] = 1; - num = SolveQuadratic(coeffs, s) ; - - if(num) - { - if(num==2) - { - if(s[0]>=0) - { - if(s[0]==0) // Three roots and one of them == 0 - { - s[2] = std::sqrt(s[1]) ; - s[1] = s[0] ; - s[0] = -s[2] ; - num++ ; - } - else // Four roots - { - s[2] = std::sqrt(s[0]) ; - s[3] = std::sqrt(s[1]) ; - s[0] = -s[3] ; - s[1] = -s[2] ; - num +=2 ; - } - } - else if(s[1]>=0) - { - if(s[1]==0) // One root == 0 - { - s[0] = 0 ; - num--; - } - else // Two roots - { - s[0] = -std::sqrt(s[1]) ; - s[1] = -s[0] ; - } - } - else return num = 0 ; // Both Quadratic roots are negative - } - else // num = 1 two equal roots from SolveQuadratic - { - if(s[0]>=0) - { - if(s[0]==0) ; - else - { - s[1] = std::sqrt(s[0]) ; - s[0] = -s[1] ; - num +=1 ; - } - } - else return num = 0 ; - } - } - else return num ; - } - else if (r == 0) // no absolute term: y(y^3 + py + q) = 0 - { - coeffs[ 0 ] = q ; - coeffs[ 1 ] = p ; - coeffs[ 2 ] = 0 ; - coeffs[ 3 ] = 1 ; - num = SolveCubic(coeffs, s) ; - - s[ num++ ] = 0; - - for(j=1;j= 0 && s[i] > sub ) - { - i-- ; - s[i+1] = s[i] ; // s[i--] ; - } - s[i+1] = sub ; - } - } - else - { - // solve the resolvent cubic ... - - coeffs[ 0 ] = 0.5*r*p - 0.125*q*q; - coeffs[ 1 ] = - r; - coeffs[ 2 ] = - 0.5*p; - coeffs[ 3 ] = 1; - - num = SolveCubic(coeffs, s); - - // ... and take the one real solution ... - - z = s[ 0 ]; - - // ... to Build two quadratic equations - - u = z * z - r; - v = 2 * z - p; - - if (u==0) u = 0 ; - else if (u > 0) u = std::sqrt(u) ; - else return 0 ; - - if (v==0) v = 0 ; - else if (v > 0) v = std::sqrt(v); - else return 0 ; - - coeffs[ 0 ] = z - u; - coeffs[ 1 ] = q < 0 ? -v : v; - coeffs[ 2 ] = 1; - - num = SolveQuadratic(coeffs, s); - - coeffs[ 0 ]= z + u; - coeffs[ 1 ] = q < 0 ? v : -v; - coeffs[ 2 ] = 1; - - num += SolveQuadratic(coeffs, s + num); - } - - // resubstitute - - sub = 1.0/4 * A; - - for (i = 0; i < num; ++i) - s[ i ] -= sub; - - return num; -} - -///////////////////////////////////////////////////////////////////////////// -// -// Auxiliary method for solving of cubic equation in real numbers -// From Graphics Gems I bu Jochen Schwartz - -G4int G4ApproxPolySolver::SolveCubic( G4double c[], G4double s[] ) const -{ - G4int i, num; - G4double sub; - G4double A, B, C; - G4double A2, p, q; - G4double p3, D; - - // normal form: x^3 + Ax^2 + Bx + C = 0 - - A = c[ 2 ]; // c[ 3 ]; since always c[3]==1 ! - B = c[ 1 ]; // c[ 3 ]; - C = c[ 0 ]; // c[ 3 ]; - - // substitute x = y - A/3 to eliminate quadric term: - // x^3 +px + q = 0 - - A2 = A*A; - p = 1.0/3*(- 1.0/3*A2 + B); - q = 1.0/2*(2.0/27*A*A2 - 1.0/3*A*B + C); - - // use Cardano's formula - - p3 = p*p*p; - D = q*q + p3; - - if (D == 0) - { - if (q == 0) // one triple solution - { - s[ 0 ] = 0; - num = 1; - } - else // one single and one double solution - { - G4double u = std::pow(-q,1./3.); - s[ 0 ] = 2 * u; - s[ 1 ] = - u; - num = 2; - } - } - else if (D < 0) // Casus irreducibilis: three real solutions - { - G4double phi = 1.0/3 * std::acos(-q / std::sqrt(-p3)); - G4double t = 2 * std::sqrt(-p); - - s[ 0 ] = t * std::cos(phi); - s[ 1 ] = - t * std::cos(phi + pi / 3); - s[ 2 ] = - t * std::cos(phi - pi / 3); - num = 3; - } - else // one real solution - { - G4double sqrt_D = std::sqrt(D); - G4double u = std::pow(sqrt_D - q,1./3.); - G4double v = - std::pow(sqrt_D + q,1./3.); - - s[ 0 ] = u + v; - num = 1; - } - - // resubstitute - - sub = 1.0/3 * A; - - for (i = 0; i < num; ++i) - s[ i ] -= sub; - - return num; -} - -//////////////////////////////////////////////////////////////////////////// -// -// - -G4int G4ApproxPolySolver::SolveBiQuadraticNew( G4double c[], G4double s[] ) const -{ - // From drte4 by McLareni; rewritten by O.Cremonesi - - G4double coeffs[ 4 ]; - G4double w1, w2, w3; - G4double sub; - G4double A, B, C, D; - G4double A2, p, q, r ; - G4int i,j, num; - - // normal form: x^4 + Ax^3 + Bx^2 + Cx + D = 0 - - A = c[ 3 ]; // c[ 4 ]; since always c[4]==1 ! - B = c[ 2 ]; // c[ 4 ]; - C = c[ 1 ]; // c[ 4 ]; - D = c[ 0 ]; // c[ 4 ]; - - if( B==0 && C==0 ) - { - if( D==0 ) - { - s[0] = -A; - s[1] = s[2] = s[3] = 0; - return 4; - } - } - else if( A==0 ) - { - if( D>0 ) return 0; - else - { - s[0] = std::sqrt( std::sqrt( -D ) ); - s[1] = -s[0]; - return 2; - } - } - - // substitute x = y - A/4 to eliminate cubic term: - // y^4 + py^2 + qy + r = 0 - - A2 = A*A; - p = B - 3.0*A2/8.0; - q = C - 0.5*A*( B-A2/4.0 ); - r = D - (A*C-A2/4.0*(B-A2*3.0/16.0))/4.0; - coeffs[ 0 ] = -q*q/64.; - coeffs[ 1 ] = (p*p/4.0-r)/4.0; - coeffs[ 2 ] = p/2.0; - coeffs[ 3 ] = 1; - - G4double cubic_discr; - num = SolveCubicNew(coeffs, s, cubic_discr); - - sub = A/4.0; - num = 0; - - if( cubic_discr == 0 ) s[2] = s[1]; - - if( cubic_discr <= 0 ) - { - num = 4; - G4double v[3]; - G4double vm1 = -1.0e99, vm2 ; - for( i=0; i<3; i++ ) - { - v[i] = std::fabs( s[i] ) ; - if( v[i] > vm1 ) vm1 = v[i] ; - } - if( vm1 == v[0] ) - { - i = 0; - if( v[1] > v[2] ) vm2 = v[1]; - else vm2 = v[2]; - } - else if( vm1 == v[1] ) - { - i = 1; - if( v[0] > v[2] ) vm2 = v[0]; - else vm2 = v[2]; - } - else - { - i = 2; - if( v[0] > v[1] ) vm2 = v[0]; - else vm2 = v[1]; - } - if( vm2 == v[0] ) j = 0 ; - else if( vm2 == v[1] ) j = 1 ; - else j = 2 ; - - w1 = std::sqrt( s[i] ); - w2 = std::sqrt( s[j] ); - } - else - { - num = 2; - w1 = w2 = std::sqrt( s[1] ); - } - if( w1*w2 != 0. ) w3 = -q/( 8.0*w1*w2 ) ; - else w3 = 0.0 ; - - if( num == 4 ) - { - s[0] = w1 + w2 + w3 - sub ; - s[1] = -w1 - w2 + w3 - sub ; - s[2] = -w1 + w2 - w3 - sub ; - s[3] = w1 - w2 - w3 - sub ; - } - else if( num == 2 ) - { - s[0] = w1 + w2 + w3 - sub ; - s[1] = -w1 - w2 + w3 - sub ; - } - return num ; -} - -/////////////////////////////////////////////////////////////////////////// -// -// - -G4int G4ApproxPolySolver::SolveCubicNew( G4double c[], G4double s[], - G4double& cubic_discr ) const -{ - // From drte3 by McLareni; rewritten by O.Cremonesi - - const G4double eps = 1.e-6; - const G4double delta = 1.e-15; - G4int i, j; - G4double sub; - G4double y[3]; - G4double A, B, C; - G4double A2, p, q; - G4double h1,h2,h3; - G4double u,v; - - // normal form: x^3 + Ax^2 + Bx + C = 0 - - A = c[ 2 ]; // c[ 3 ]; since always c[3]==1 ! - B = c[ 1 ]; // c[ 3 ]; - C = c[ 0 ]; // c[ 3 ]; - - if( B==0 && C==0 ) - { - s[0] = -A; - s[1] = s[2] = 0.; - cubic_discr = 0.; - return 3; - } - A2 = A*A; - p = B - A2/3.0; - q = ( A2*2.0/27.-B/3.0 )*A + C; - cubic_discr = q*q/4.0 + p*p*p/27.0; - sub = A/3.0; - h1 = q/2.0; - - if( cubic_discr > delta ) - { - h2 = std::sqrt( cubic_discr ); - u = -h1+h2; - v = -h1-h2; - if( u < 0 ) u = -std::pow(-u,1./3.); - else u = std::pow(u,1./3.); - if( v < 0 ) v = -std::pow(-v,1./3.); - else v = std::pow(v,1./3.); - s[0] = u+v-sub; - s[1] = -(u+v)/2.0-sub; - s[2] = std::fabs(u-v)*std::sqrt(3.0)/2.0; - if( std::fabs(u) <= eps || std::fabs(v) <= eps ) - { - y[0] = s[0] ; - for( i=0; i<2; i++ ) - { - y[i+1] = y[i] - (((y[i]+A)*y[i]+B)*y[i]+C)/((3.*y[i]+2.*A)*y[i]+B); - } - s[0] = y[2]; - return 1; - } - } - else if( std::fabs(cubic_discr) <= delta ) - { - cubic_discr = 0.; - - if( h1 < 0 ) u = std::pow(-h1,1./3.); - else u = -std::pow(h1,1./3.); - - s[0] = u + u - sub ; - s[1] = -u - sub ; - s[2] = s[1] ; - - if( std::fabs(h1) <= eps ) - { - y[0] = s[0]; - for( i=0; i<2; i++ ) - { - h1 = (3.0*y[i]+2.*A)*y[i]+B; - - if( std::fabs(h1) > delta ) - y[i+1] = y[i]-(((y[i]+A)*y[i]+B)*y[i]+C)/h1; - else - { - s[0] = s[1] = s[2] = -A/3.; - return 3; - } - } - s[0] = y[2]; - s[1] = s[2] = -(A+s[0])/2.; - return 3; - } - } - else - { - h3 =std::fabs(p/3.); - h3 = std::sqrt(h3*h3*h3); - h2 = std::acos(-h1/h3)/3.; - h1 = std::pow(h3,1./3.); - u = h1*std::cos(h2); - v = std::sqrt(3.)*h1*std::sin(h2); - s[0] = u+u-sub; - s[1] = -u-v-sub; - s[2] = -u+v-sub; - - if( h3 <= eps || s[0] <=eps || s[1] <= eps || s[2] <= eps ) - { - for( i=0; i<3; i++ ) - { - y[0] = s[i] ; - - for( j=0; j<2; j++ ) - { - y[j+1] = y[j]-(((y[j]+A)*y[j]+B)*y[j]+C)/((3.*y[j]+2.*A)*y[j]+B); - } - s[i] = y[2] ; - } - } - } - return 3; -} - -/////////////////////////////////////////////////////////////////////////// -// -// Auxiliary method for solving quadratic equations in real numbers -// From Graphics Gems I by Jochen Schwartz - -G4int G4ApproxPolySolver::SolveQuadratic( G4double c[], G4double s[] ) const -{ - G4double p, q, D; - - // normal form: x^2 + px + q = 0 - - p = c[ 1 ]/2 ; // * c[ 2 ]); since always c[2]==1 - q = c[ 0 ] ; // c[ 2 ]; - - D = p * p - q; - - if (D==0) - { - s[ 0 ] = - p; // Generally we have two equal roots ?! - return 1; // But consider them as one for geometry - } - else if (D > 0) - { - G4double sqrt_D = std::sqrt(D); - - s[ 0 ] = - p - sqrt_D ; // in ascending order ! - s[ 1 ] = - p + sqrt_D ; - return 2; - } - return 0; -} diff --git a/source/geometry/solids/specific/src/G4ClippablePolygon.cc b/source/geometry/solids/specific/src/G4ClippablePolygon.cc index f813a7c6a2..6f886290c1 100644 --- a/source/geometry/solids/specific/src/G4ClippablePolygon.cc +++ b/source/geometry/solids/specific/src/G4ClippablePolygon.cc @@ -22,7 +22,7 @@ // // // $Id: G4ClippablePolygon.cc,v 1.10 2004/12/02 09:31:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4EllipticalTube.cc b/source/geometry/solids/specific/src/G4EllipticalTube.cc index 4c3565077c..2b4b15629a 100644 --- a/source/geometry/solids/specific/src/G4EllipticalTube.cc +++ b/source/geometry/solids/specific/src/G4EllipticalTube.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EllipticalTube.cc,v 1.20 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4EllipticalTube.cc,v 1.22 2005/03/23 17:16:31 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -66,7 +66,7 @@ G4EllipticalTube::G4EllipticalTube( const G4String &name, // // Destructor // -G4EllipticalTube::~G4EllipticalTube() {;} +G4EllipticalTube::~G4EllipticalTube() {delete fpPolyhedron;} // @@ -724,7 +724,7 @@ std::ostream& G4EllipticalTube::StreamInfo(std::ostream& os) const // void G4EllipticalTube::DescribeYourselfTo( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddSolid (*this); } @@ -810,9 +810,12 @@ G4double G4EllipticalTube::GetCubicVolume() G4Polyhedron* G4EllipticalTube::GetPolyhedron () const { - if (!fpPolyhedron) - { - fpPolyhedron = CreatePolyhedron(); - } + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } return fpPolyhedron; } diff --git a/source/geometry/solids/specific/src/G4EnclosingCylinder.cc b/source/geometry/solids/specific/src/G4EnclosingCylinder.cc index e747be8f43..6a640ce6c9 100644 --- a/source/geometry/solids/specific/src/G4EnclosingCylinder.cc +++ b/source/geometry/solids/specific/src/G4EnclosingCylinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EnclosingCylinder.cc,v 1.7 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4FlatBoxSide.cc b/source/geometry/solids/specific/src/G4FlatBoxSide.cc deleted file mode 100644 index 97501c72b6..0000000000 --- a/source/geometry/solids/specific/src/G4FlatBoxSide.cc +++ /dev/null @@ -1,450 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4FlatBoxSide.cc,v 1.4 2004/12/08 10:20:36 link Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ -// -// -// -------------------------------------------------------------------- -// GEANT 4 class source file -// -// -// G4FlatBoxSide.cc -// -// Author: -// 30-Aug-2002 - Oliver Link (Oliver.Link@cern.ch) -// -// -------------------------------------------------------------------- - -#include "G4FlatBoxSide.hh" - -//===================================================================== -//* constructors ------------------------------------------------------ - -G4FlatBoxSide::G4FlatBoxSide( const G4String &name, - G4double PhiTwist, - G4double pDx, - G4double pDy, - G4double pDz, - G4int handedness) - - : G4VSurface(name) -{ - fHandedness = handedness; // +z = +ve, -z = -ve - - fDx = pDx ; - fDy = pDy ; - fDz = pDz ; - - fPhiTwist = PhiTwist ; - - fCurrentNormal.normal.set(0, 0, (fHandedness < 0 ? -1 : 1)); - // Unit vector, in local coordinate system - fRot.rotateZ( fHandedness > 0 - ? 0.5 * fPhiTwist - : -0.5 * fPhiTwist ); - - fTrans.set(0, 0, fHandedness > 0 ? fDz : -fDz ) ; - - fIsValidNorm = true; - - fAxis[0] = kXAxis ; - fAxis[1] = kYAxis ; - fAxisMin[0] = -fDx ; // x-Axis - fAxisMax[0] = fDx ; - fAxisMin[1] = -fDy ; - fAxisMax[1] = fDy ; - - SetCorners(); - SetBoundaries(); -} - - - -//===================================================================== -//* destructor -------------------------------------------------------- - -G4FlatBoxSide::~G4FlatBoxSide() -{ -} - -//===================================================================== -//* GetNormal --------------------------------------------------------- - -G4ThreeVector G4FlatBoxSide::GetNormal(const G4ThreeVector & /* xx */ , - G4bool isGlobal) -{ - if (isGlobal) { - return ComputeGlobalDirection(fCurrentNormal.normal); - } else { - return fCurrentNormal.normal; - } -} - -//===================================================================== -//* DistanceToSurface(p, v) ------------------------------------------- - -G4int G4FlatBoxSide::DistanceToSurface(const G4ThreeVector &gp, - const G4ThreeVector &gv, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[], - G4bool isvalid[], - EValidate validate) -{ - fCurStatWithV.ResetfDone(validate, &gp, &gv); - - if (fCurStatWithV.IsDone()) { - G4int i; - for (i=0; i= 0) isvalid[0] = true; - } - } else if (validate == kValidateWithoutTol) { - areacode[0] = GetAreaCode(xx, false); - if (IsInside(areacode[0])) { - if (distance[0] >= 0) isvalid[0] = true; - } - } else { // kDontValidate - areacode[0] = sInside; - if (distance[0] >= 0) isvalid[0] = true; - } - - fCurStatWithV.SetCurrentStatus(0, gxx[0], distance[0], areacode[0], - isvalid[0], 1, validate, &gp, &gv); - -#ifdef G4SPECSDEBUG - G4cerr << "ERROR - G4FlatBoxSide::DistanceToSurface(p,v)" << G4endl; - G4cerr << " Name : " << GetName() << G4endl; - G4cerr << " xx : " << xx << G4endl; - G4cerr << " gxx[0] : " << gxx[0] << G4endl; - G4cerr << " dist[0] : " << distance[0] << G4endl; - G4cerr << " areacode[0] : " << areacode[0] << G4endl; - G4cerr << " isvalid[0] : " << isvalid[0] << G4endl; -#endif - return 1; -} - -//===================================================================== -//* DistanceToSurface(p) ---------------------------------------------- - -G4int G4FlatBoxSide::DistanceToSurface(const G4ThreeVector &gp, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[]) -{ - // Calculate distance to plane in local coordinate, - // then return distance and global intersection points. - // - - fCurStat.ResetfDone(kDontValidate, &gp); - - if (fCurStat.IsDone()) { - G4int i; - for (i=0; i fAxisMax[xaxis] - ctol) { - areacode |= (sAxis0 & (sAxisX | sAxisMax)) | sBoundary; - if (xx.x() >= fAxisMin[xaxis] + ctol) isoutside = true; - } - - // test boundary of y-axis - - if (xx.y() < fAxisMin[yaxis] + ctol) { - areacode |= (sAxis1 & (sAxisY | sAxisMin)); - - if (areacode & sBoundary) areacode |= sCorner; // xx is on the corner. - else areacode |= sBoundary; - if (xx.y() <= fAxisMin[yaxis] - ctol) isoutside = true; - - } else if (xx.y() > fAxisMax[yaxis] - ctol) { - areacode |= (sAxis1 & (sAxisY | sAxisMax)); - - if (areacode & sBoundary) areacode |= sCorner; // xx is on the corner. - else areacode |= sBoundary; - if (xx.y() >= fAxisMax[yaxis] + ctol) isoutside = true; - } - - // if isoutside = true, clear inside bit. - // if not on boundary, add axis information. - - if (isoutside) { - G4int tmpareacode = areacode & (~sInside); - areacode = tmpareacode; - } else if ((areacode & sBoundary) != sBoundary) { - areacode |= (sAxis0 & sAxisX) | (sAxis1 & sAxisY); - } - - } else { - - // boundary of x-axis - - if (xx.x() < fAxisMin[xaxis] ) { - areacode |= (sAxis0 & (sAxisX | sAxisMin)) | sBoundary; - } else if (xx.x() > fAxisMax[xaxis]) { - areacode |= (sAxis0 & (sAxisX | sAxisMax)) | sBoundary; - } - - // boundary of y-axis - - if (xx.y() < fAxisMin[yaxis]) { - areacode |= (sAxis1 & (sAxisY | sAxisMin)); - if (areacode & sBoundary) areacode |= sCorner; // xx is on the corner. - else areacode |= sBoundary; - - } else if (xx.y() > fAxisMax[yaxis]) { - areacode |= (sAxis1 & (sAxisY | sAxisMax)) ; - if (areacode & sBoundary) areacode |= sCorner; // xx is on the corner. - else areacode |= sBoundary; - } - - if ((areacode & sBoundary) != sBoundary) { - areacode |= (sAxis0 & sAxisX) | (sAxis1 & sAxisY); - } - } - return areacode; - } else { - G4Exception("G4FlatBoxSide::GetAreaCode()", - "NotImplemented", FatalException, - "Feature NOT implemented !"); - } - - return areacode; -} - - -//===================================================================== -//* SetCorners -------------------------------------------------------- - -void G4FlatBoxSide::SetCorners() -{ - // Set Corner points in local coodinate. - - if (fAxis[0] == kXAxis && fAxis[1] == kYAxis) { - - G4double x, y, z; - - // corner of Axis0min and Axis1min - x = -fDx ; - y = -fDy ; - z = 0 ; - SetCorner(sC0Min1Min, x, y, z); - - // corner of Axis0max and Axis1min - x = fDx ; - y = -fDy ; - z = 0 ; - SetCorner(sC0Max1Min, x, y, z); - - // corner of Axis0max and Axis1max - x = fDx ; - y = fDy ; - z = 0 ; - SetCorner(sC0Max1Max, x, y, z); - - // corner of Axis0min and Axis1max - x = -fDx ; - y = fDy ; - z = 0 ; - SetCorner(sC0Min1Max, x, y, z); - - } else { - G4cerr << "ERROR - G4FlatBoxSide::SetCorners()" << G4endl - << " fAxis[0] = " << fAxis[0] << G4endl - << " fAxis[1] = " << fAxis[1] << G4endl; - G4Exception("G4FlatBoxSide::SetCorners()", - "NotImplemented", FatalException, - "Feature NOT implemented !"); - } - - -} - -//===================================================================== -//* SetBoundaries() --------------------------------------------------- - -void G4FlatBoxSide::SetBoundaries() -{ - // Set direction-unit vector of phi-boundary-lines in local coodinate. - // Don't call the function twice. - - G4ThreeVector direction ; - - if (fAxis[0] == kXAxis && fAxis[1] == kYAxis) { - - // sAxis0 & sAxisMin - direction = - ( GetCorner(sC0Min1Max) - GetCorner(sC0Min1Min) ) ; - direction = direction.unit(); - SetBoundary(sAxis0 & (sAxisX | sAxisMin), direction, - GetCorner(sC0Min1Max), sAxisY) ; - - // sAxis0 & sAxisMax - direction = GetCorner(sC0Max1Max) - GetCorner(sC0Max1Min) ; // inverse - direction = direction.unit(); - SetBoundary(sAxis0 & (sAxisX | sAxisMax), direction, - GetCorner(sC0Max1Min), sAxisY); - - // sAxis1 & sAxisMin - direction = GetCorner(sC0Max1Min) - GetCorner(sC0Min1Min); - direction = direction.unit(); - SetBoundary(sAxis1 & (sAxisY | sAxisMin), direction, - GetCorner(sC0Min1Min), sAxisX); - - // sAxis1 & sAxisMax - direction = - ( GetCorner(sC0Max1Max) - GetCorner(sC0Min1Max) ) ; - direction = direction.unit(); - SetBoundary(sAxis1 & (sAxisY | sAxisMax), direction, - GetCorner(sC0Max1Max), sAxisX); - - } else { - G4cerr << "ERROR - G4FlatBoxSide::SetBoundaries()" << G4endl - << " fAxis[0] = " << fAxis[0] << G4endl - << " fAxis[1] = " << fAxis[1] << G4endl; - G4Exception("G4FlatBoxSide::SetCorners()", - "NotImplemented", FatalException, - "Feature NOT implemented !"); - } - -} diff --git a/source/geometry/solids/specific/src/G4FlatSurface.cc b/source/geometry/solids/specific/src/G4FlatSurface.cc index 7463d3c3bb..11b9ea2870 100644 --- a/source/geometry/solids/specific/src/G4FlatSurface.cc +++ b/source/geometry/solids/specific/src/G4FlatSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4FlatSurface.cc,v 1.8 2004/12/02 09:31:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4FlatTrapSide.cc b/source/geometry/solids/specific/src/G4FlatTrapSide.cc index 9cbf6c13b2..b52553a1b5 100644 --- a/source/geometry/solids/specific/src/G4FlatTrapSide.cc +++ b/source/geometry/solids/specific/src/G4FlatTrapSide.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FlatTrapSide.cc,v 1.5 2004/12/08 10:20:37 link Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4FlatTrapSide.cc,v 1.6 2005/03/10 17:17:59 link Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -47,6 +47,9 @@ G4FlatTrapSide::G4FlatTrapSide( const G4String &name, G4double pDx2, G4double pDy, G4double pDz, + G4double pAlpha, + G4double pPhi, + G4double pTheta, G4int handedness) : G4VSurface(name) @@ -57,16 +60,26 @@ G4FlatTrapSide::G4FlatTrapSide( const G4String &name, fDx2 = pDx2 ; fDy = pDy ; fDz = pDz ; + fAlpha = pAlpha ; + fTAlph = std::tan(fAlpha) ; + fPhi = pPhi ; + fTheta = pTheta ; + + fdeltaX = 2 * fDz * std::tan(fTheta) * std::cos(fPhi) ; // dx in surface equation + fdeltaY = 2 * fDz * std::tan(fTheta) * std::sin(fPhi) ; // dy in surface equation fPhiTwist = PhiTwist ; - fCurrentNormal.normal.set(0, 0, (fHandedness < 0 ? -1 : 1)); + fCurrentNormal.normal.set( 0, 0, (fHandedness < 0 ? -1 : 1)); // Unit vector, in local coordinate system fRot.rotateZ( fHandedness > 0 ? 0.5 * fPhiTwist : -0.5 * fPhiTwist ); - fTrans.set(0, 0, fHandedness > 0 ? fDz : -fDz ) ; + fTrans.set( + fHandedness > 0 ? 0.5*fdeltaX : -0.5*fdeltaX , + fHandedness > 0 ? 0.5*fdeltaY : -0.5*fdeltaY , + fHandedness > 0 ? fDz : -fDz ) ; fIsValidNorm = true; @@ -278,9 +291,8 @@ G4int G4FlatTrapSide::GetAreaCode(const G4ThreeVector &xx, G4int yaxis = 1; - G4double wmax = fDx2 + ( fDx1-fDx2)/2. - xx.y() * (fDx1-fDx2)/(2*fDy) ; - G4double wmin = -wmax ; - + G4double wmax = xAxisMax(xx.y(), fTAlph ) ; + G4double wmin = -xAxisMax(xx.y(), -fTAlph ) ; if (withTol) { @@ -374,25 +386,25 @@ void G4FlatTrapSide::SetCorners() G4double x, y, z; // corner of Axis0min and Axis1min - x = -fDx1 ; + x = -fDx1 + fDy * fTAlph ; y = -fDy ; z = 0 ; SetCorner(sC0Min1Min, x, y, z); // corner of Axis0max and Axis1min - x = fDx1 ; + x = fDx1 + fDy * fTAlph ; y = -fDy ; z = 0 ; SetCorner(sC0Max1Min, x, y, z); // corner of Axis0max and Axis1max - x = fDx2 ; + x = fDx2 - fDy * fTAlph ; y = fDy ; z = 0 ; SetCorner(sC0Max1Max, x, y, z); // corner of Axis0min and Axis1max - x = -fDx2 ; + x = -fDx2 - fDy * fTAlph ; y = fDy ; z = 0 ; SetCorner(sC0Min1Max, x, y, z); diff --git a/source/geometry/solids/specific/src/G4Hype.cc b/source/geometry/solids/specific/src/G4Hype.cc index c7b7cebee8..ea92a1b164 100644 --- a/source/geometry/solids/specific/src/G4Hype.cc +++ b/source/geometry/solids/specific/src/G4Hype.cc @@ -21,9 +21,9 @@ // ******************************************************************** // // -// $Id: G4Hype.cc,v 1.16 2004/12/10 16:22:38 gcosmo Exp $ +// $Id: G4Hype.cc,v 1.19 2005/04/04 11:56:59 gcosmo Exp $ // $Original: G4Hype.cc,v 1.0 1998/06/09 16:57:50 safai Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -140,6 +140,7 @@ G4Hype::G4Hype(const G4String& pName, // G4Hype::~G4Hype() { + delete fpPolyhedron; } @@ -1151,7 +1152,7 @@ std::ostream& G4Hype::StreamInfo(std::ostream& os) const void G4Hype::DescribeYourselfTo (G4VGraphicsScene& scene) const { - scene.AddThis (*this); + scene.AddSolid (*this); } G4VisExtent G4Hype::GetExtent() const @@ -1165,8 +1166,9 @@ G4VisExtent G4Hype::GetExtent() const G4Polyhedron* G4Hype::CreatePolyhedron () const { - // return new G4PolyhedronHype (fRMin, fRMax, fDz, fSPhi, fDPhi); - return 0; + // Tube for now!!! + // + return new G4PolyhedronTube (endInnerRadius, endOuterRadius, halfLenZ); } G4NURBS* G4Hype::CreateNURBS () const @@ -1374,9 +1376,12 @@ G4double G4Hype::GetCubicVolume() G4Polyhedron* G4Hype::GetPolyhedron () const { - if (!fpPolyhedron) - { - fpPolyhedron = CreatePolyhedron(); - } + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } return fpPolyhedron; } diff --git a/source/geometry/solids/specific/src/G4HyperbolicSurface.cc b/source/geometry/solids/specific/src/G4HyperbolicSurface.cc index 850e797d7b..721ed102ba 100644 --- a/source/geometry/solids/specific/src/G4HyperbolicSurface.cc +++ b/source/geometry/solids/specific/src/G4HyperbolicSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4HyperbolicSurface.cc,v 1.7 2004/12/02 09:31:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4IntersectingCone.cc b/source/geometry/solids/specific/src/G4IntersectingCone.cc index 65f62b712d..900cfcb703 100644 --- a/source/geometry/solids/specific/src/G4IntersectingCone.cc +++ b/source/geometry/solids/specific/src/G4IntersectingCone.cc @@ -22,7 +22,7 @@ // // // $Id: G4IntersectingCone.cc,v 1.6 2004/12/02 09:31:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4PolyPhiFace.cc b/source/geometry/solids/specific/src/G4PolyPhiFace.cc index e7a4b79183..9aeccaa81b 100644 --- a/source/geometry/solids/specific/src/G4PolyPhiFace.cc +++ b/source/geometry/solids/specific/src/G4PolyPhiFace.cc @@ -22,7 +22,7 @@ // // // $Id: G4PolyPhiFace.cc,v 1.8 2004/12/02 09:31:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4Polycone.cc b/source/geometry/solids/specific/src/G4Polycone.cc index d2f09ef5b6..7637fa1398 100644 --- a/source/geometry/solids/specific/src/G4Polycone.cc +++ b/source/geometry/solids/specific/src/G4Polycone.cc @@ -22,7 +22,7 @@ // // // $Id: G4Polycone.cc,v 1.20 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4PolyconeSide.cc b/source/geometry/solids/specific/src/G4PolyconeSide.cc index 7179bd54dc..d29c161561 100644 --- a/source/geometry/solids/specific/src/G4PolyconeSide.cc +++ b/source/geometry/solids/specific/src/G4PolyconeSide.cc @@ -22,7 +22,7 @@ // // // $Id: G4PolyconeSide.cc,v 1.10 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4Polyhedra.cc b/source/geometry/solids/specific/src/G4Polyhedra.cc index fec20d5bc3..09bb6c39a1 100644 --- a/source/geometry/solids/specific/src/G4Polyhedra.cc +++ b/source/geometry/solids/specific/src/G4Polyhedra.cc @@ -22,7 +22,7 @@ // // // $Id: G4Polyhedra.cc,v 1.19 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4PolyhedraSide.cc b/source/geometry/solids/specific/src/G4PolyhedraSide.cc index a8e97ffca4..fb3a787382 100644 --- a/source/geometry/solids/specific/src/G4PolyhedraSide.cc +++ b/source/geometry/solids/specific/src/G4PolyhedraSide.cc @@ -22,7 +22,7 @@ // // // $Id: G4PolyhedraSide.cc,v 1.9 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4ReduciblePolygon.cc b/source/geometry/solids/specific/src/G4ReduciblePolygon.cc index 7c0c91f2db..9202f1b73b 100644 --- a/source/geometry/solids/specific/src/G4ReduciblePolygon.cc +++ b/source/geometry/solids/specific/src/G4ReduciblePolygon.cc @@ -22,7 +22,7 @@ // // // $Id: G4ReduciblePolygon.cc,v 1.9 2004/12/02 09:31:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4SolidExtentList.cc b/source/geometry/solids/specific/src/G4SolidExtentList.cc index 2822f4e1a6..1c533e9159 100644 --- a/source/geometry/solids/specific/src/G4SolidExtentList.cc +++ b/source/geometry/solids/specific/src/G4SolidExtentList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SolidExtentList.cc,v 1.3 2002/10/28 11:47:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4TwistedBox.cc b/source/geometry/solids/specific/src/G4TwistedBox.cc index 5aa9780fb2..7342f43817 100644 --- a/source/geometry/solids/specific/src/G4TwistedBox.cc +++ b/source/geometry/solids/specific/src/G4TwistedBox.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TwistedBox.cc,v 1.4 2004/12/10 16:22:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4TwistedBox.cc,v 1.7 2005/04/04 11:56:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -33,953 +33,31 @@ // // Author: // -// 27-Oct-2004 - O.Link (Oliver.Link@cern.ch) +// Oliver Link (Oliver.Link@cern.ch) +// +// History: +// +// 10/11/2004 - Created. // // -------------------------------------------------------------------- -// #define DISTANCETOIN - #include "G4TwistedBox.hh" - -#include "G4VoxelLimits.hh" -#include "G4AffineTransform.hh" -#include "G4SolidExtentList.hh" -#include "G4ClippablePolygon.hh" -#include "G4VPVParameterisation.hh" -#include "meshdefs.hh" - -#include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" -#include "G4VisExtent.hh" -#include "G4NURBS.hh" -#include "G4NURBStube.hh" -#include "G4NURBScylinder.hh" -#include "G4NURBStubesector.hh" -//===================================================================== -//* constructors ------------------------------------------------------ - -G4TwistedBox::G4TwistedBox(const G4String &pname, - G4double twistedangle, - G4double pDx, - G4double pDy, - G4double pDz) - : G4VSolid(pname), - fLowerEndcap(0), fUpperEndcap(0), fSide0(0), - fSide90(0), fSide180(0), fSide270(0) +G4TwistedBox::G4TwistedBox( const G4String& pName, + G4double pPhiTwist, + G4double pDx, + G4double pDy, + G4double pDz ) + : G4VTwistedFaceted( pName, pPhiTwist,pDz,0.,0., + pDy, pDx, pDx, pDy, pDx, pDx,0. ) { - - if ( ( pDx > 2*kCarTolerance) - && ( pDy > 2*kCarTolerance) - && ( pDz > 2*kCarTolerance) - && ( std::fabs(twistedangle) > 2*kAngTolerance ) - && ( std::fabs(twistedangle) < halfpi ) ) - { - - SetFields(twistedangle, pDx, pDy, pDz); - CreateSurfaces(); - fCubicVolume = 8*pDx*pDy*pDz ; - - } - else - { - G4cerr << "ERROR - G4TwistedBox()::G4TwistedBox(): " << GetName() << G4endl - << " Dimensions too small ! - " - << pDx << ", " << pDy << ", " << pDz << G4endl - << " twistangle " << twistedangle/deg << " deg" << G4endl ; - - G4Exception("G4TwistedBox::G4TwistedBox()", "InvalidSetup", - FatalException, "Invalid dimensions. Too small, or twist angle too big."); - } - } - - -//===================================================================== -//* destructor -------------------------------------------------------- - G4TwistedBox::~G4TwistedBox() { - - if (fLowerEndcap) delete fLowerEndcap ; - if (fUpperEndcap) delete fUpperEndcap ; - - if (fSide0) delete fSide0 ; - if (fSide90) delete fSide90 ; - if (fSide180) delete fSide180 ; - if (fSide270) delete fSide270 ; - - } -//===================================================================== -//* ComputeDimensions ------------------------------------------------- - -void G4TwistedBox::ComputeDimensions(G4VPVParameterisation* , - const G4int , - const G4VPhysicalVolume* ) -{ - G4Exception("G4TwistedTubs::ComputeDimensions()", - "NotSupported", FatalException, - "G4TwistedTubs does not support Parameterisation."); - -} - - -//===================================================================== -//* CalculateExtent --------------------------------------------------- - -G4bool G4TwistedBox::CalculateExtent( const EAxis pAxis, - const G4VoxelLimits &pVoxelLimit, - const G4AffineTransform &pTransform, - G4double &pMin, - G4double &pMax ) const -{ - - G4double maxRad = std::sqrt( fDx*fDx + fDy*fDy); - - if (!pTransform.IsRotated()) - { - // Special case handling for unrotated boxes - // Compute x/y/z mins and maxs respecting limits, with early returns - // if outside limits. Then switch() on pAxis - - G4double xoffset,xMin,xMax; - G4double yoffset,yMin,yMax; - G4double zoffset,zMin,zMax; - - xoffset = pTransform.NetTranslation().x() ; - xMin = xoffset - maxRad ; - xMax = xoffset + maxRad ; - - if (pVoxelLimit.IsXLimited()) - { - if ( xMin > pVoxelLimit.GetMaxXExtent()+kCarTolerance || - xMax < pVoxelLimit.GetMinXExtent()-kCarTolerance ) return false ; - else - { - if (xMin < pVoxelLimit.GetMinXExtent()) - { - xMin = pVoxelLimit.GetMinXExtent() ; - } - if (xMax > pVoxelLimit.GetMaxXExtent()) - { - xMax = pVoxelLimit.GetMaxXExtent() ; - } - } - } - yoffset = pTransform.NetTranslation().y() ; - yMin = yoffset - maxRad ; - yMax = yoffset + maxRad ; - - if (pVoxelLimit.IsYLimited()) - { - if ( yMin > pVoxelLimit.GetMaxYExtent()+kCarTolerance || - yMax < pVoxelLimit.GetMinYExtent()-kCarTolerance ) return false ; - else - { - if (yMin < pVoxelLimit.GetMinYExtent()) - { - yMin = pVoxelLimit.GetMinYExtent() ; - } - if (yMax > pVoxelLimit.GetMaxYExtent()) - { - yMax = pVoxelLimit.GetMaxYExtent() ; - } - } - } - zoffset = pTransform.NetTranslation().z() ; - zMin = zoffset - fDz ; - zMax = zoffset + fDz ; - - if (pVoxelLimit.IsZLimited()) - { - if ( zMin > pVoxelLimit.GetMaxZExtent()+kCarTolerance || - zMax < pVoxelLimit.GetMinZExtent()-kCarTolerance ) return false ; - else - { - if (zMin < pVoxelLimit.GetMinZExtent()) - { - zMin = pVoxelLimit.GetMinZExtent() ; - } - if (zMax > pVoxelLimit.GetMaxZExtent()) - { - zMax = pVoxelLimit.GetMaxZExtent() ; - } - } - } - switch (pAxis) - { - case kXAxis: - pMin = xMin ; - pMax = xMax ; - break ; - case kYAxis: - pMin=yMin; - pMax=yMax; - break; - case kZAxis: - pMin=zMin; - pMax=zMax; - break; - default: - break; - } - pMin -= kCarTolerance ; - pMax += kCarTolerance ; - - return true; - } - else // General rotated case - create and clip mesh to boundaries - { - G4bool existsAfterClip = false ; - G4ThreeVectorList* vertices ; - - pMin = +kInfinity ; - pMax = -kInfinity ; - - // Calculate rotated vertex coordinates - - vertices = CreateRotatedVertices(pTransform) ; - ClipCrossSection(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; - ClipCrossSection(vertices,4,pVoxelLimit,pAxis,pMin,pMax) ; - ClipBetweenSections(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; - - if (pVoxelLimit.IsLimited(pAxis) == false) - { - if ( pMin != kInfinity || pMax != -kInfinity ) - { - existsAfterClip = true ; - - // Add 2*tolerance to avoid precision troubles - - pMin -= kCarTolerance; - pMax += kCarTolerance; - } - } - else - { - G4ThreeVector clipCentre( - ( pVoxelLimit.GetMinXExtent()+pVoxelLimit.GetMaxXExtent())*0.5, - ( pVoxelLimit.GetMinYExtent()+pVoxelLimit.GetMaxYExtent())*0.5, - ( pVoxelLimit.GetMinZExtent()+pVoxelLimit.GetMaxZExtent())*0.5); - - if ( pMin != kInfinity || pMax != -kInfinity ) - { - existsAfterClip = true ; - - - // Check to see if endpoints are in the solid - - clipCentre(pAxis) = pVoxelLimit.GetMinExtent(pAxis); - - if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) - { - pMin = pVoxelLimit.GetMinExtent(pAxis); - } - else - { - pMin -= kCarTolerance; - } - clipCentre(pAxis) = pVoxelLimit.GetMaxExtent(pAxis); - - if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) - { - pMax = pVoxelLimit.GetMaxExtent(pAxis); - } - else - { - pMax += kCarTolerance; - } - } - - // Check for case where completely enveloping clipping volume - // If point inside then we are confident that the solid completely - // envelopes the clipping volume. Hence set min/max extents according - // to clipping volume extents along the specified axis. - - else if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) - != kOutside) - { - existsAfterClip = true ; - pMin = pVoxelLimit.GetMinExtent(pAxis) ; - pMax = pVoxelLimit.GetMaxExtent(pAxis) ; - } - } - delete vertices; - return existsAfterClip; - } - - -} - -G4ThreeVectorList* -G4TwistedBox::CreateRotatedVertices(const G4AffineTransform& pTransform) const -{ - G4ThreeVectorList* vertices = new G4ThreeVectorList(); - vertices->reserve(8); - - if (vertices) - { - - G4double maxRad = std::sqrt( fDx*fDx + fDy*fDy); - - G4ThreeVector vertex0(-maxRad,-maxRad,-fDz) ; - G4ThreeVector vertex1(maxRad,-maxRad,-fDz) ; - G4ThreeVector vertex2(maxRad,maxRad,-fDz) ; - G4ThreeVector vertex3(-maxRad,maxRad,-fDz) ; - G4ThreeVector vertex4(-maxRad,-maxRad,fDz) ; - G4ThreeVector vertex5(maxRad,-maxRad,fDz) ; - G4ThreeVector vertex6(maxRad,maxRad,fDz) ; - G4ThreeVector vertex7(-maxRad,maxRad,fDz) ; - - vertices->push_back(pTransform.TransformPoint(vertex0)); - vertices->push_back(pTransform.TransformPoint(vertex1)); - vertices->push_back(pTransform.TransformPoint(vertex2)); - vertices->push_back(pTransform.TransformPoint(vertex3)); - vertices->push_back(pTransform.TransformPoint(vertex4)); - vertices->push_back(pTransform.TransformPoint(vertex5)); - vertices->push_back(pTransform.TransformPoint(vertex6)); - vertices->push_back(pTransform.TransformPoint(vertex7)); - } - else - { - DumpInfo(); - G4Exception("G4TwistedBox::CreateRotatedVertices()", - "FatalError", FatalException, - "Error in allocation of vertices. Out of memory !"); - } - return vertices; -} - -//===================================================================== -//* Inside ------------------------------------------------------------ - -EInside G4TwistedBox::Inside(const G4ThreeVector& p) const -{ - - G4ThreeVector *tmpp; - EInside *tmpin; - if (fLastInside.p == p) { - return fLastInside.inside; - } else { - tmpp = const_cast(&(fLastInside.p)); - tmpin = const_cast(&(fLastInside.inside)); - tmpp->set(p.x(), p.y(), p.z()); - } - - *tmpin = kOutside ; - - G4double phi = - p.z()/(2*fDz) * fPhiTwist ; - G4double cphi = std::cos(phi) ; - G4double sphi = std::sin(phi) ; - G4double posx = p.x() * cphi - p.y() * sphi ; - G4double posy = p.x() * sphi + p.y() * cphi ; - G4double posz = p.z() ; - -#ifdef G4SPECSDEBUG - G4cout << "inside called: p = " << p << G4endl ; - G4cout << "Trapezoid is 1/2*(x,y,z) : " << fDx << ", " << - fDy << ", " << fDz << G4endl ; - - G4cout << "distanceToOut = ( " << - posx << ", " << - posy << ", " << - posz <<") " << - G4endl ; -#endif - - if ( std::fabs(posx) <= fDx - kCarTolerance*0.5 ) - { - if (std::fabs(posy) <= fDy - kCarTolerance*0.5 ) - { - if (std::fabs(posz) <= fDz - kCarTolerance*0.5 ) *tmpin = kInside ; - else if (std::fabs(posz) <= fDz + kCarTolerance*0.5 ) *tmpin = kSurface ; - } - else if (std::fabs(posy) <= fDy + kCarTolerance*0.5 ) - { - if (std::fabs(posz) <= fDz + kCarTolerance*0.5 ) *tmpin = kSurface ; - } - } - else if (std::fabs(posx) <= fDx + kCarTolerance*0.5 ) - { - if (std::fabs(posy) <= fDy + kCarTolerance*0.5 ) - { - if (std::fabs(posz) <= fDz + kCarTolerance*0.5) *tmpin = kSurface ; - } - } - - return fLastInside.inside; - -} - -//===================================================================== -//* SurfaceNormal ----------------------------------------------------- - -G4ThreeVector G4TwistedBox::SurfaceNormal(const G4ThreeVector& p) const -{ - // - // return the normal unit vector to the Hyperbolical Surface at a point - // p on (or nearly on) the surface - // - // Which of the three or four surfaces are we closest to? - // - - - if (fLastNormal.p == p) { - - return fLastNormal.vec; - } - - G4ThreeVector *tmpp = const_cast(&(fLastNormal.p)); - G4ThreeVector *tmpnormal = const_cast(&(fLastNormal.vec)); - G4VSurface **tmpsurface = const_cast(fLastNormal.surface); - tmpp->set(p.x(), p.y(), p.z()); - - G4double distance = kInfinity; - - G4VSurface *surfaces[6]; - - surfaces[0] = fSide0 ; - surfaces[1] = fSide90 ; - surfaces[2] = fSide180 ; - surfaces[3] = fSide270 ; - surfaces[4] = fLowerEndcap; - surfaces[5] = fUpperEndcap; - - G4ThreeVector xx; - G4ThreeVector bestxx; - G4int i; - G4int besti = -1; - for (i=0; i< 6; i++) { - G4double tmpdistance = surfaces[i]->DistanceTo(p, xx); - if (tmpdistance < distance) { - distance = tmpdistance; - bestxx = xx; - besti = i; - } - } - - tmpsurface[0] = surfaces[besti]; - *tmpnormal = tmpsurface[0]->GetNormal(bestxx, true); - - return fLastNormal.vec; -} - -//===================================================================== -//* DistanceToIn (p, v) ----------------------------------------------- - -G4double G4TwistedBox::DistanceToIn (const G4ThreeVector& p, - const G4ThreeVector& v ) const -{ - - // DistanceToIn (p, v): - // Calculate distance to surface of shape from `outside' - // along with the v, allowing for tolerance. - // The function returns kInfinity if no intersection or - // just grazing within tolerance. - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4ThreeVector *tmpv; - G4double *tmpdist; - if (fLastDistanceToInWithV.p == p && fLastDistanceToInWithV.vec == v) { - - - return fLastDistanceToIn.value; - } else { - tmpp = const_cast(&(fLastDistanceToInWithV.p)); - tmpv = const_cast(&(fLastDistanceToInWithV.vec)); - tmpdist = const_cast(&(fLastDistanceToInWithV.value)); - tmpp->set(p.x(), p.y(), p.z()); - tmpv->set(v.x(), v.y(), v.z()); - } - - // - // Calculate DistanceToIn(p,v) - // - - EInside currentside = Inside(p); - - if (currentside == kInside) { - - } else if (currentside == kSurface) { - // particle is just on a boundary. - // if the particle is entering to the volume, return 0. - G4ThreeVector normal = SurfaceNormal(p); - if (normal*v < 0) { - - *tmpdist = 0; - return fLastDistanceToInWithV.value; - } - } - - // now, we can take smallest positive distance. - - // Initialize - G4double distance = kInfinity; - - // find intersections and choose nearest one. - G4VSurface *surfaces[6]; - - surfaces[0] = fSide0; - surfaces[1] = fSide90 ; - surfaces[2] = fSide180 ; - surfaces[3] = fSide270 ; - surfaces[4] = fLowerEndcap; - surfaces[5] = fUpperEndcap; - - G4ThreeVector xx; - G4ThreeVector bestxx; - G4int i; - G4int besti = -1; - for (i=0; i < 6 ; i++) { - -#ifdef G4SPECSDEBUG - G4cout << G4endl << "surface " << i << ": " << G4endl << G4endl ; -#endif - G4double tmpdistance = surfaces[i]->DistanceToIn(p, v, xx); -#ifdef G4SPECSDEBUG - G4cout << "Solid DistanceToIn : distance = " << tmpdistance << G4endl ; - G4cout << "intersection point = " << xx << G4endl ; -#endif - if (tmpdistance < distance) { - distance = tmpdistance; - bestxx = xx; - besti = i; - } - } - -#ifdef G4SPECSDEBUG - G4cout << "best distance = " << distance << G4endl ; -#endif - - *tmpdist = distance; - // timer.Stop(); - return fLastDistanceToInWithV.value; -} - -#ifdef DISTANCETOIN -//===================================================================== -//* DistanceToIn (p) -------------------------------------------------- - -G4double G4TwistedBox::DistanceToIn (const G4ThreeVector& p) const -{ - // DistanceToIn(p): - // Calculate distance to surface of shape from `outside', - // allowing for tolerance - // - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4double *tmpdist; - if (fLastDistanceToIn.p == p) { - return fLastDistanceToIn.value; - } else { - tmpp = const_cast(&(fLastDistanceToIn.p)); - tmpdist = const_cast(&(fLastDistanceToIn.value)); - tmpp->set(p.x(), p.y(), p.z()); - } - - - // - // Calculate DistanceToIn(p) - // - - EInside currentside = Inside(p); - - switch (currentside) { - - case (kInside) : { - } - - case (kSurface) : { - *tmpdist = 0.; - return fLastDistanceToIn.value; - } - - case (kOutside) : { - // Initialize - - G4double safex, safey, safez, safe = 0.0 ; - G4double maxRad = std::sqrt( fDx*fDx + fDy*fDy); - - G4cout << "maxRad = " << maxRad << G4endl ; - - safex = std::fabs(p.x()) - maxRad ; - safey = std::fabs(p.y()) - maxRad ; - safez = std::fabs(p.z()) - fDz ; - - if (safex > safe) safe = safex ; - if (safey > safe) safe = safey ; - if (safez > safe) safe = safez ; - - *tmpdist = safe; - return fLastDistanceToIn.value; - - } - - - default : { - G4Exception("G4TwistedBox::DistanceToIn(p)", "InvalidCondition", - FatalException, "Unknown point location!"); - } - } // switch end - return kInfinity; -} -#else - -G4double G4TwistedBox::DistanceToIn (const G4ThreeVector& p) const -{ - // DistanceToIn(p): - // Calculate distance to surface of shape from `outside', - // allowing for tolerance - // - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4double *tmpdist; - if (fLastDistanceToIn.p == p) { - - return fLastDistanceToIn.value; - } else { - tmpp = const_cast(&(fLastDistanceToIn.p)); - tmpdist = const_cast(&(fLastDistanceToIn.value)); - tmpp->set(p.x(), p.y(), p.z()); - } - - // - // Calculate DistanceToIn(p) - // - - EInside currentside = Inside(p); - - switch (currentside) { - - case (kInside) : { - - } - - case (kSurface) : { - *tmpdist = 0.; - return fLastDistanceToIn.value; - } - - case (kOutside) : { - // Initialize - G4double distance = kInfinity; - - // find intersections and choose nearest one. - G4VSurface *surfaces[6]; - - surfaces[0] = fSide0; - surfaces[1] = fSide90 ; - surfaces[2] = fSide180 ; - surfaces[3] = fSide270 ; - surfaces[4] = fLowerEndcap; - surfaces[5] = fUpperEndcap; - - G4int i; - G4int besti = -1; - G4ThreeVector xx; - G4ThreeVector bestxx; - for (i=0; i< 6; i++) { - G4double tmpdistance = surfaces[i]->DistanceTo(p, xx); - if (tmpdistance < distance) { - distance = tmpdistance; - bestxx = xx; - besti = i; - } - } - - *tmpdist = distance; - return fLastDistanceToIn.value; - } - - default : { - G4Exception("G4TwistedBox::DistanceToIn(p)", "InvalidCondition", - FatalException, "Unknown point location!"); - } - } // switch end - return kInfinity; -} - -#endif - -//===================================================================== -//* DistanceToOut (p, v) ---------------------------------------------- - -G4double G4TwistedBox::DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, G4ThreeVector *norm ) const -{ - // DistanceToOut (p, v): - // Calculate distance to surface of shape from `inside' - // along with the v, allowing for tolerance. - // The function returns kInfinity if no intersection or - // just grazing within tolerance. - // - - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4ThreeVector *tmpv; - G4double *tmpdist; - if (fLastDistanceToOutWithV.p == p && fLastDistanceToOutWithV.vec == v ) { - return fLastDistanceToOutWithV.value; - } else { - tmpp = const_cast(&(fLastDistanceToOutWithV.p)); - tmpv = const_cast(&(fLastDistanceToOutWithV.vec)); - tmpdist = const_cast(&(fLastDistanceToOutWithV.value)); - tmpp->set(p.x(), p.y(), p.z()); - tmpv->set(v.x(), v.y(), v.z()); - } - - // - // Calculate DistanceToOut(p,v) - // - - EInside currentside = Inside(p); - - if (currentside == kOutside) { - - } else if (currentside == kSurface) { - // particle is just on a boundary. - // if the particle is exiting from the volume, return 0. - G4ThreeVector normal = SurfaceNormal(p); - G4VSurface *blockedsurface = fLastNormal.surface[0]; - if (normal*v > 0) { - if (calcNorm) { - *norm = (blockedsurface->GetNormal(p, true)); - *validNorm = blockedsurface->IsValidNorm(); - } - *tmpdist = 0.; - // timer.Stop(); - return fLastDistanceToOutWithV.value; - } - } - - // now, we can take smallest positive distance. - - // Initialize - G4double distance = kInfinity; - - // find intersections and choose nearest one. - G4VSurface *surfaces[6]; - - surfaces[0] = fSide0; - surfaces[1] = fSide90 ; - surfaces[2] = fSide180 ; - surfaces[3] = fSide270 ; - surfaces[4] = fLowerEndcap; - surfaces[5] = fUpperEndcap; - - G4int i; - G4int besti = -1; - G4ThreeVector xx; - G4ThreeVector bestxx; - for (i=0; i< 6 ; i++) { - G4double tmpdistance = surfaces[i]->DistanceToOut(p, v, xx); - if (tmpdistance < distance) { - distance = tmpdistance; - bestxx = xx; - besti = i; - } - } - - if (calcNorm) { - if (besti != -1) { - *norm = (surfaces[besti]->GetNormal(p, true)); - *validNorm = surfaces[besti]->IsValidNorm(); - } - } - - *tmpdist = distance; - // timer.Stop(); - return fLastDistanceToOutWithV.value; -} - -#ifdef DISTANCETOIN -//===================================================================== -//* DistanceToOut (p) ---------------------------------------------- - -G4double G4TwistedBox::DistanceToOut( const G4ThreeVector& p ) const -{ - // DistanceToOut(p): - // Calculate distance to surface of shape from `inside', - // allowing for tolerance - // - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4double *tmpdist; - if (fLastDistanceToOut.p == p) { - return fLastDistanceToOut.value; - } else { - tmpp = const_cast(&(fLastDistanceToOut.p)); - tmpdist = const_cast(&(fLastDistanceToOut.value)); - tmpp->set(p.x(), p.y(), p.z()); - } - - // - // Calculate DistanceToOut(p) - // - - EInside currentside = Inside(p); - - switch (currentside) { - case (kOutside) : { - - } - case (kSurface) : { - *tmpdist = 0.; - return fLastDistanceToOut.value; - } - - case (kInside) : { - // Initialize - - G4double rmin = ( fDx < fDy ) - ? fDx : fDy ; - G4double safx1,safx2,safy1,safy2,safz1,safz2,safe=0.0; - - safx1 = rmin - p.x() ; - safx2 = rmin + p.x() ; - safy1 = rmin - p.y() ; - safy2 = rmin + p.y() ; - safz1 = fDz - p.z() ; - safz2 = fDz + p.z() ; - - // shortest Dist to any boundary now MIN(safx1,safx2,safy1..) - - if (safx2 < safx1) safe = safx2 ; - else safe = safx1 ; - if (safy1 < safe) safe = safy1 ; - if (safy2 < safe) safe = safy2 ; - if (safz1 < safe) safe = safz1 ; - if (safz2 < safe) safe = safz2 ; - - if (safe < 0) safe = 0 ; - - *tmpdist = safe; - - return fLastDistanceToOut.value; - } - - default : { - G4Exception("G4TwistedBox::DistanceToOut(p)", "InvalidCondition", - FatalException, "Unknown point location!"); - } - - } // switch end - - return 0; - -} - -#else - -G4double G4TwistedBox::DistanceToOut( const G4ThreeVector& p ) const -{ - // DistanceToOut(p): - // Calculate distance to surface of shape from `inside', - // allowing for tolerance - // - - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4double *tmpdist; - if (fLastDistanceToOut.p == p) { - return fLastDistanceToOut.value; - } else { - tmpp = const_cast(&(fLastDistanceToOut.p)); - tmpdist = const_cast(&(fLastDistanceToOut.value)); - tmpp->set(p.x(), p.y(), p.z()); - } - - // - // Calculate DistanceToOut(p) - // - - EInside currentside = Inside(p); - - switch (currentside) { - case (kOutside) : { - - } - case (kSurface) : { - *tmpdist = 0.; - return fLastDistanceToOut.value; - } - - case (kInside) : { - // Initialize - G4double distance = kInfinity; - - // find intersections and choose nearest one. - G4VSurface *surfaces[6]; - - surfaces[0] = fSide0; - surfaces[1] = fSide90 ; - surfaces[2] = fSide180 ; - surfaces[3] = fSide270 ; - surfaces[4] = fLowerEndcap; - surfaces[5] = fUpperEndcap; - - G4int i; - G4int besti = -1; - G4ThreeVector xx; - G4ThreeVector bestxx; - for (i=0; i< 6; i++) { - G4double tmpdistance = surfaces[i]->DistanceTo(p, xx); - if (tmpdistance < distance) { - distance = tmpdistance; - bestxx = xx; - besti = i; - } - } - - - *tmpdist = distance; - - return fLastDistanceToOut.value; - } - - default : { - G4Exception("G4TwistedBox::DistanceToOut(p)", "InvalidCondition", - FatalException, "Unknown point location!"); - } - } // switch end - return 0; -} - - -#endif - -//===================================================================== -//* StreamInfo -------------------------------------------------------- - std::ostream& G4TwistedBox::StreamInfo(std::ostream& os) const { // @@ -990,81 +68,25 @@ std::ostream& G4TwistedBox::StreamInfo(std::ostream& os) const << " ===================================================\n" << " Solid type: G4TwistedBox\n" << " Parameters: \n" - << " Twist angle : " << fPhiTwist/degree << " degrees \n" + << " pDx = " << GetXHalfLength()/cm << " cm" << G4endl + << " pDy = " << GetYHalfLength()/cm << " cm" << G4endl + << " pDz = " << GetZHalfLength()/cm << " cm" << G4endl + << " pPhiTwist = " << GetPhiTwist()/degree << " deg" << G4endl << "-----------------------------------------------------------\n"; return os; } - -//===================================================================== -//* DiscribeYourselfTo ------------------------------------------------ - -void G4TwistedBox::DescribeYourselfTo (G4VGraphicsScene& scene) const -{ - scene.AddThis (*this); -} - -//===================================================================== -//* GetExtent --------------------------------------------------------- - -G4VisExtent G4TwistedBox::GetExtent() const -{ - - G4double maxRad = std::sqrt( fDx*fDx + fDy*fDy); - - return G4VisExtent(-maxRad, maxRad , - -maxRad, maxRad , - -fDz, fDz ); -} - //===================================================================== //* CreatePolyhedron -------------------------------------------------- G4Polyhedron* G4TwistedBox::CreatePolyhedron () const { - // return new G4PolyhedronHype (fRMin, fRMax, fDz, fSPhi, fDPhi); - return 0; + // Normal box for now!! + // + return new G4PolyhedronBox (GetDx1(), GetDy1(), GetDz()); } -//===================================================================== -//* CreateNUBS -------------------------------------------------------- - -G4NURBS* G4TwistedBox::CreateNURBS () const -{ - G4double maxRad = std::sqrt( fDx*fDx + fDy*fDy); - return new G4NURBStube(maxRad, maxRad, fDz); - // Tube for now!!! -} - -//===================================================================== -//* CreateSurfaces ---------------------------------------------------- - -void G4TwistedBox::CreateSurfaces() -{ - - // create 6 surfaces of TwistedTub. - - fSide0 = new G4TwistedBoxSide("0deg", fPhiTwist, fDx, fDy, fDz , 0.*deg) ; - fSide90 = new G4TwistedBoxSide("90deg", fPhiTwist, fDy, fDx, fDz , 90.*deg) ; - fSide180 = new G4TwistedBoxSide("180deg", fPhiTwist, fDx, fDy, fDz , 180.*deg) ; - fSide270 = new G4TwistedBoxSide("270deg", fPhiTwist, fDy, fDx, fDz , 270.*deg) ; - - fUpperEndcap = new G4FlatBoxSide("UpperCap",fPhiTwist,fDx, fDy, fDz, 1 ) ; - fLowerEndcap = new G4FlatBoxSide("LowerCap",fPhiTwist,fDx, fDy, fDz,-1 ) ; - - // Set neighbour surfaces - - fSide0->SetNeighbours( fSide270 , fLowerEndcap , fSide90 , fUpperEndcap ); - fSide90->SetNeighbours( fSide0 , fLowerEndcap , fSide180 , fUpperEndcap ); - fSide180->SetNeighbours(fSide90 , fLowerEndcap , fSide270 , fUpperEndcap ); - fSide270->SetNeighbours(fSide180 , fLowerEndcap , fSide0 , fUpperEndcap ); - fUpperEndcap->SetNeighbours( fSide180, fSide270 , fSide0 , fSide90 ); - fLowerEndcap->SetNeighbours( fSide180, fSide270 , fSide0 , fSide90 ); - -} - - //===================================================================== //* GetEntityType ----------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4TwistedSurface.cc b/source/geometry/solids/specific/src/G4TwistedSurface.cc index 0e5364c8e5..a411bcc287 100644 --- a/source/geometry/solids/specific/src/G4TwistedSurface.cc +++ b/source/geometry/solids/specific/src/G4TwistedSurface.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TwistedSurface.cc,v 1.9 2004/12/02 09:31:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4TwistedSurface.cc,v 1.10 2005/04/29 13:08:24 link Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -37,6 +37,7 @@ // History: // 13-Nov-2003 - O.Link (Oliver.Link@cern.ch), Integration in Geant4 // from original version in Jupiter-2.5.02 application. +// 29-Apr-2004 - O.Link. Bug fixed in GetAreaCode // -------------------------------------------------------------------- #include "G4TwistedSurface.hh" @@ -771,7 +772,7 @@ G4int G4TwistedSurface::GetAreaCode(const G4ThreeVector &xx, } else if (xx.x() > fAxisMax[xaxis] - ctol) { areacode |= (sAxis0 & (sAxisX | sAxisMax)) | sBoundary; - if (xx.x() >= fAxisMin[xaxis] + ctol) isoutside = true; + if (xx.x() >= fAxisMax[xaxis] + ctol) isoutside = true; } // test boundary of z-axis diff --git a/source/geometry/solids/specific/src/G4TwistedTrap.cc b/source/geometry/solids/specific/src/G4TwistedTrap.cc index 9baf10d424..f37b2bee56 100644 --- a/source/geometry/solids/specific/src/G4TwistedTrap.cc +++ b/source/geometry/solids/specific/src/G4TwistedTrap.cc @@ -20,8 +20,9 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4TwistedTrap.cc,v 1.5 2004/12/10 16:22:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// +// $Id: G4TwistedTrap.cc,v 1.9 2005/04/04 11:56:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -32,962 +33,51 @@ // // Author: // -// 04-Nov-2004 - O.Link (Oliver.Link@cern.ch) +// Oliver Link (Oliver.Link@cern.ch) +// +// History: +// +// 10/11/2004 - Created. // // -------------------------------------------------------------------- -// #define DISTANCETOIN - #include "G4TwistedTrap.hh" - -#include "G4VoxelLimits.hh" -#include "G4AffineTransform.hh" -#include "G4SolidExtentList.hh" -#include "G4ClippablePolygon.hh" -#include "G4VPVParameterisation.hh" -#include "meshdefs.hh" - -#include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" -#include "G4VisExtent.hh" -#include "G4NURBS.hh" -#include "G4NURBStube.hh" -#include "G4NURBScylinder.hh" -#include "G4NURBStubesector.hh" -//===================================================================== -//* constructors ------------------------------------------------------ - -G4TwistedTrap::G4TwistedTrap(const G4String &pname, - G4double twistedangle, - G4double pDx1, - G4double pDx2, - G4double pDy, - G4double pDz) - - : G4VSolid(pname), - fLowerEndcap(0), fUpperEndcap(0), fSide0(0), - fSide90(0), fSide180(0), fSide270(0) +G4TwistedTrap::G4TwistedTrap( const G4String &pName, + G4double pPhiTwist, + G4double pDx1, + G4double pDx2, + G4double pDy, + G4double pDz) + : G4VTwistedFaceted( pName, pPhiTwist,pDz,0.,0., + pDy, pDx1, pDx2, pDy, pDx1, pDx2,0. ) { - - if ( ( pDx1 > 2*kCarTolerance) - && ( pDx2 > 2*kCarTolerance) - && ( pDy > 2*kCarTolerance) - && ( pDz > 2*kCarTolerance) - && ( std::fabs(twistedangle) > 2*kAngTolerance ) - && ( std::fabs(twistedangle) < halfpi ) ) - { - - SetFields(twistedangle, pDx1, pDx2, pDy, pDz); - CreateSurfaces(); - fCubicVolume = 8 * ( pDx1 + pDx2 ) / 2 * pDy * pDz ; - - } - else - { - G4cerr << "ERROR - G4TwistedTrap()::G4TwistedTrap(): " << GetName() << G4endl - << " Dimensions too small ! - " - << pDx1 << ", " << pDx2 << ", " << pDy << ", " << pDz << G4endl - << " twistangle " << twistedangle/deg << " deg" << G4endl ; - - G4Exception("G4TwistedTrap::G4TwistedTrap()", "InvalidSetup", - FatalException, "Invalid dimensions. Too small, or twist angle too big."); - } - } -//===================================================================== -//* destructor -------------------------------------------------------- +G4TwistedTrap:: +G4TwistedTrap(const G4String &pName, // Name of instance + G4double pPhiTwist, // twist angle + G4double pDz, // half z length + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azimuthal angles + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph // tilt angle + ) + : G4VTwistedFaceted( pName, pPhiTwist, pDz, pTheta, + pPhi, pDy1, pDx1, pDx2, pDy2, pDx3, pDx4, pAlph ) +{ +} G4TwistedTrap::~G4TwistedTrap() { - - if (fLowerEndcap) delete fLowerEndcap ; - if (fUpperEndcap) delete fUpperEndcap ; - - if (fSide0) delete fSide0 ; - if (fSide90) delete fSide90 ; - if (fSide180) delete fSide180 ; - if (fSide270) delete fSide270 ; - - } -//===================================================================== -//* ComputeDimensions ------------------------------------------------- - -void G4TwistedTrap::ComputeDimensions(G4VPVParameterisation* , - const G4int , - const G4VPhysicalVolume* ) -{ - G4Exception("G4TwistedTubs::ComputeDimensions()", - "NotSupported", FatalException, - "G4TwistedTubs does not support Parameterisation."); - -} - -//===================================================================== -//* CalculateExtent --------------------------------------------------- - -G4bool G4TwistedTrap::CalculateExtent( const EAxis pAxis, - const G4VoxelLimits &pVoxelLimit, - const G4AffineTransform &pTransform, - G4double &pMin, - G4double &pMax ) const -{ - - - G4double maxSide = ( fDx1 > fDx2 ? fDx1 : fDx2 ) ; - G4double maxRad = std::sqrt( maxSide*maxSide + fDy*fDy); - - if (!pTransform.IsRotated()) - { - // Special case handling for unrotated boxes - // Compute x/y/z mins and maxs respecting limits, with early returns - // if outside limits. Then switch() on pAxis - - G4double xoffset,xMin,xMax; - G4double yoffset,yMin,yMax; - G4double zoffset,zMin,zMax; - - xoffset = pTransform.NetTranslation().x() ; - xMin = xoffset - maxRad ; - xMax = xoffset + maxRad ; - - if (pVoxelLimit.IsXLimited()) - { - if ( xMin > pVoxelLimit.GetMaxXExtent()+kCarTolerance || - xMax < pVoxelLimit.GetMinXExtent()-kCarTolerance ) return false ; - else - { - if (xMin < pVoxelLimit.GetMinXExtent()) - { - xMin = pVoxelLimit.GetMinXExtent() ; - } - if (xMax > pVoxelLimit.GetMaxXExtent()) - { - xMax = pVoxelLimit.GetMaxXExtent() ; - } - } - } - yoffset = pTransform.NetTranslation().y() ; - yMin = yoffset - maxRad ; - yMax = yoffset + maxRad ; - - if (pVoxelLimit.IsYLimited()) - { - if ( yMin > pVoxelLimit.GetMaxYExtent()+kCarTolerance || - yMax < pVoxelLimit.GetMinYExtent()-kCarTolerance ) return false ; - else - { - if (yMin < pVoxelLimit.GetMinYExtent()) - { - yMin = pVoxelLimit.GetMinYExtent() ; - } - if (yMax > pVoxelLimit.GetMaxYExtent()) - { - yMax = pVoxelLimit.GetMaxYExtent() ; - } - } - } - zoffset = pTransform.NetTranslation().z() ; - zMin = zoffset - fDz ; - zMax = zoffset + fDz ; - - if (pVoxelLimit.IsZLimited()) - { - if ( zMin > pVoxelLimit.GetMaxZExtent()+kCarTolerance || - zMax < pVoxelLimit.GetMinZExtent()-kCarTolerance ) return false ; - else - { - if (zMin < pVoxelLimit.GetMinZExtent()) - { - zMin = pVoxelLimit.GetMinZExtent() ; - } - if (zMax > pVoxelLimit.GetMaxZExtent()) - { - zMax = pVoxelLimit.GetMaxZExtent() ; - } - } - } - switch (pAxis) - { - case kXAxis: - pMin = xMin ; - pMax = xMax ; - break ; - case kYAxis: - pMin=yMin; - pMax=yMax; - break; - case kZAxis: - pMin=zMin; - pMax=zMax; - break; - default: - break; - } - pMin -= kCarTolerance ; - pMax += kCarTolerance ; - - return true; - } - else // General rotated case - create and clip mesh to boundaries - { - G4bool existsAfterClip = false ; - G4ThreeVectorList* vertices ; - - pMin = +kInfinity ; - pMax = -kInfinity ; - - // Calculate rotated vertex coordinates - - vertices = CreateRotatedVertices(pTransform) ; - ClipCrossSection(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; - ClipCrossSection(vertices,4,pVoxelLimit,pAxis,pMin,pMax) ; - ClipBetweenSections(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; - - if (pVoxelLimit.IsLimited(pAxis) == false) - { - if ( pMin != kInfinity || pMax != -kInfinity ) - { - existsAfterClip = true ; - - // Add 2*tolerance to avoid precision troubles - - pMin -= kCarTolerance; - pMax += kCarTolerance; - } - } - else - { - G4ThreeVector clipCentre( - ( pVoxelLimit.GetMinXExtent()+pVoxelLimit.GetMaxXExtent())*0.5, - ( pVoxelLimit.GetMinYExtent()+pVoxelLimit.GetMaxYExtent())*0.5, - ( pVoxelLimit.GetMinZExtent()+pVoxelLimit.GetMaxZExtent())*0.5); - - if ( pMin != kInfinity || pMax != -kInfinity ) - { - existsAfterClip = true ; - - - // Check to see if endpoints are in the solid - - clipCentre(pAxis) = pVoxelLimit.GetMinExtent(pAxis); - - if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) - { - pMin = pVoxelLimit.GetMinExtent(pAxis); - } - else - { - pMin -= kCarTolerance; - } - clipCentre(pAxis) = pVoxelLimit.GetMaxExtent(pAxis); - - if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) - { - pMax = pVoxelLimit.GetMaxExtent(pAxis); - } - else - { - pMax += kCarTolerance; - } - } - - // Check for case where completely enveloping clipping volume - // If point inside then we are confident that the solid completely - // envelopes the clipping volume. Hence set min/max extents according - // to clipping volume extents along the specified axis. - - else if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) - != kOutside) - { - existsAfterClip = true ; - pMin = pVoxelLimit.GetMinExtent(pAxis) ; - pMax = pVoxelLimit.GetMaxExtent(pAxis) ; - } - } - delete vertices; - return existsAfterClip; - } - - -} - -G4ThreeVectorList* -G4TwistedTrap::CreateRotatedVertices(const G4AffineTransform& pTransform) const -{ - G4ThreeVectorList* vertices = new G4ThreeVectorList(); - vertices->reserve(8); - - if (vertices) - { - - G4double maxSide = ( fDx1 > fDx2 ? fDx1 : fDx2 ) ; - G4double maxRad = std::sqrt( maxSide*maxSide + fDy*fDy); - - G4ThreeVector vertex0(-maxRad,-maxRad,-fDz) ; - G4ThreeVector vertex1(maxRad,-maxRad,-fDz) ; - G4ThreeVector vertex2(maxRad,maxRad,-fDz) ; - G4ThreeVector vertex3(-maxRad,maxRad,-fDz) ; - G4ThreeVector vertex4(-maxRad,-maxRad,fDz) ; - G4ThreeVector vertex5(maxRad,-maxRad,fDz) ; - G4ThreeVector vertex6(maxRad,maxRad,fDz) ; - G4ThreeVector vertex7(-maxRad,maxRad,fDz) ; - - vertices->push_back(pTransform.TransformPoint(vertex0)); - vertices->push_back(pTransform.TransformPoint(vertex1)); - vertices->push_back(pTransform.TransformPoint(vertex2)); - vertices->push_back(pTransform.TransformPoint(vertex3)); - vertices->push_back(pTransform.TransformPoint(vertex4)); - vertices->push_back(pTransform.TransformPoint(vertex5)); - vertices->push_back(pTransform.TransformPoint(vertex6)); - vertices->push_back(pTransform.TransformPoint(vertex7)); - } - else - { - DumpInfo(); - G4Exception("G4TwistedTrap::CreateRotatedVertices()", - "FatalError", FatalException, - "Error in allocation of vertices. Out of memory !"); - } - return vertices; -} - -//===================================================================== -//* Inside ------------------------------------------------------------ - -EInside G4TwistedTrap::Inside(const G4ThreeVector& p) const -{ - - G4ThreeVector *tmpp; - EInside *tmpin; - if (fLastInside.p == p) { - return fLastInside.inside; - } else { - tmpp = const_cast(&(fLastInside.p)); - tmpin = const_cast(&(fLastInside.inside)); - tmpp->set(p.x(), p.y(), p.z()); - } - - *tmpin = kOutside ; - - G4double phi = - p.z()/(2*fDz) * fPhiTwist ; // rotate the point to z=0 - G4double cphi = std::cos(phi) ; - G4double sphi = std::sin(phi) ; - G4double posx = p.x() * cphi - p.y() * sphi ; - G4double posy = p.x() * sphi + p.y() * cphi ; - G4double posz = p.z() ; - - G4double wpos = fDx2 + ( fDx1-fDx2)/2. - posy * (fDx1-fDx2)/(2*fDy) ; - - -#ifdef G4SPECSDEBUG - - G4cout << "inside called: p = " << p << G4endl ; - G4cout << "Trapezoid is 1/2*(x,y,z) : " << fDx1 << ", " << fDx2 << ", " << - fDy << ", " << fDz << G4endl ; - G4cout << "posx = " << posx << G4endl ; - G4cout << "posy = " << posy << G4endl ; - - G4cout << "wpos = " << wpos << G4endl ; - -#endif - - if ( std::fabs(posx) <= wpos - kCarTolerance*0.5 ) - { - if (std::fabs(posy) <= fDy - kCarTolerance*0.5 ) - { - if (std::fabs(posz) <= fDz - kCarTolerance*0.5 ) *tmpin = kInside ; - else if (std::fabs(posz) <= fDz + kCarTolerance*0.5 ) *tmpin = kSurface ; - } - else if (std::fabs(posy) <= fDy + kCarTolerance*0.5 ) - { - if (std::fabs(posz) <= fDz + kCarTolerance*0.5 ) *tmpin = kSurface ; - } - } - else if (std::fabs(posx) <= wpos + kCarTolerance*0.5 ) - { - if (std::fabs(posy) <= fDy + kCarTolerance*0.5 ) - { - if (std::fabs(posz) <= fDz + kCarTolerance*0.5) *tmpin = kSurface ; - } - } - - return fLastInside.inside; - -} - -//===================================================================== -//* SurfaceNormal ----------------------------------------------------- - -G4ThreeVector G4TwistedTrap::SurfaceNormal(const G4ThreeVector& p) const -{ - // - // return the normal unit vector to the Hyperbolical Surface at a point - // p on (or nearly on) the surface - // - // Which of the three or four surfaces are we closest to? - // - - - if (fLastNormal.p == p) { - - return fLastNormal.vec; - } - - G4ThreeVector *tmpp = const_cast(&(fLastNormal.p)); - G4ThreeVector *tmpnormal = const_cast(&(fLastNormal.vec)); - G4VSurface **tmpsurface = const_cast(fLastNormal.surface); - tmpp->set(p.x(), p.y(), p.z()); - - G4double distance = kInfinity; - - G4VSurface *surfaces[6]; - - surfaces[0] = fSide0 ; - surfaces[1] = fSide90 ; - surfaces[2] = fSide180 ; - surfaces[3] = fSide270 ; - surfaces[4] = fLowerEndcap; - surfaces[5] = fUpperEndcap; - - G4ThreeVector xx; - G4ThreeVector bestxx; - G4int i; - G4int besti = -1; - for (i=0; i< 6; i++) { - G4double tmpdistance = surfaces[i]->DistanceTo(p, xx); - if (tmpdistance < distance) { - distance = tmpdistance; - bestxx = xx; - besti = i; - } - } - - tmpsurface[0] = surfaces[besti]; - *tmpnormal = tmpsurface[0]->GetNormal(bestxx, true); - - return fLastNormal.vec; -} - -//===================================================================== -//* DistanceToIn (p, v) ----------------------------------------------- - -G4double G4TwistedTrap::DistanceToIn (const G4ThreeVector& p, - const G4ThreeVector& v ) const -{ - - // DistanceToIn (p, v): - // Calculate distance to surface of shape from `outside' - // along with the v, allowing for tolerance. - // The function returns kInfinity if no intersection or - // just grazing within tolerance. - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4ThreeVector *tmpv; - G4double *tmpdist; - if (fLastDistanceToInWithV.p == p && fLastDistanceToInWithV.vec == v) { - - - return fLastDistanceToIn.value; - } else { - tmpp = const_cast(&(fLastDistanceToInWithV.p)); - tmpv = const_cast(&(fLastDistanceToInWithV.vec)); - tmpdist = const_cast(&(fLastDistanceToInWithV.value)); - tmpp->set(p.x(), p.y(), p.z()); - tmpv->set(v.x(), v.y(), v.z()); - } - - // - // Calculate DistanceToIn(p,v) - // - - EInside currentside = Inside(p); - - if (currentside == kInside) { - - } else if (currentside == kSurface) { - // particle is just on a boundary. - // if the particle is entering to the volume, return 0. - G4ThreeVector normal = SurfaceNormal(p); - if (normal*v < 0) { - - *tmpdist = 0; - return fLastDistanceToInWithV.value; - } - } - - // now, we can take smallest positive distance. - - // Initialize - G4double distance = kInfinity; - - // find intersections and choose nearest one. - G4VSurface *surfaces[6]; - - surfaces[0] = fSide0; - surfaces[1] = fSide90 ; - surfaces[2] = fSide180 ; - surfaces[3] = fSide270 ; - surfaces[4] = fLowerEndcap; - surfaces[5] = fUpperEndcap; - - G4ThreeVector xx; - G4ThreeVector bestxx; - G4int i; - G4int besti = -1; - for (i=0; i < 6 ; i++) { - -#ifdef G4SPECSDEBUG - G4cout << G4endl << "surface " << i << ": " << G4endl << G4endl ; -#endif - G4double tmpdistance = surfaces[i]->DistanceToIn(p, v, xx); -#ifdef G4SPECSDEBUG - G4cout << "Solid DistanceToIn : distance = " << tmpdistance << G4endl ; - G4cout << "intersection point = " << xx << G4endl ; -#endif - if (tmpdistance < distance) { - distance = tmpdistance; - bestxx = xx; - besti = i; - } - } - -#ifdef G4SPECSDEBUG - G4cout << "best distance = " << distance << G4endl ; -#endif - - *tmpdist = distance; - // timer.Stop(); - return fLastDistanceToInWithV.value; -} - -#ifdef DISTANCETOIN -//===================================================================== -//* DistanceToIn (p) -------------------------------------------------- - -G4double G4TwistedTrap::DistanceToIn (const G4ThreeVector& p) const -{ - // DistanceToIn(p): - // Calculate distance to surface of shape from `outside', - // allowing for tolerance - // - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4double *tmpdist; - if (fLastDistanceToIn.p == p) { - return fLastDistanceToIn.value; - } else { - tmpp = const_cast(&(fLastDistanceToIn.p)); - tmpdist = const_cast(&(fLastDistanceToIn.value)); - tmpp->set(p.x(), p.y(), p.z()); - } - - - // - // Calculate DistanceToIn(p) - // - - EInside currentside = Inside(p); - - switch (currentside) { - - case (kInside) : { - } - - case (kSurface) : { - *tmpdist = 0.; - return fLastDistanceToIn.value; - } - - case (kOutside) : { - // Initialize - - G4double safex, safey, safez, safe = 0.0 ; - - G4double maxSide = ( fDx1 > fDx2 ? fDx1 : fDx2 ) ; - G4double maxRad = std::sqrt( maxSide*maxSide + fDy*fDy); - - G4cout << "maxRad = " << maxRad << G4endl ; - - safex = std::fabs(p.x()) - maxRad ; - safey = std::fabs(p.y()) - maxRad ; - safez = std::fabs(p.z()) - fDz ; - - if (safex > safe) safe = safex ; - if (safey > safe) safe = safey ; - if (safez > safe) safe = safez ; - - *tmpdist = safe; - return fLastDistanceToIn.value; - - } - - - default : { - G4Exception("G4TwistedTrap::DistanceToIn(p)", "InvalidCondition", - FatalException, "Unknown point location!"); - } - } // switch end - return kInfinity; -} -#else - -G4double G4TwistedTrap::DistanceToIn (const G4ThreeVector& p) const -{ - // DistanceToIn(p): - // Calculate distance to surface of shape from `outside', - // allowing for tolerance - // - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4double *tmpdist; - if (fLastDistanceToIn.p == p) { - - return fLastDistanceToIn.value; - } else { - tmpp = const_cast(&(fLastDistanceToIn.p)); - tmpdist = const_cast(&(fLastDistanceToIn.value)); - tmpp->set(p.x(), p.y(), p.z()); - } - - // - // Calculate DistanceToIn(p) - // - - EInside currentside = Inside(p); - - switch (currentside) { - - case (kInside) : { - - } - - case (kSurface) : { - *tmpdist = 0.; - return fLastDistanceToIn.value; - } - - case (kOutside) : { - // Initialize - G4double distance = kInfinity; - - // find intersections and choose nearest one. - G4VSurface *surfaces[6]; - - surfaces[0] = fSide0; - surfaces[1] = fSide90 ; - surfaces[2] = fSide180 ; - surfaces[3] = fSide270 ; - surfaces[4] = fLowerEndcap; - surfaces[5] = fUpperEndcap; - - G4int i; - G4int besti = -1; - G4ThreeVector xx; - G4ThreeVector bestxx; - for (i=0; i< 6; i++) { - G4double tmpdistance = surfaces[i]->DistanceTo(p, xx); - if (tmpdistance < distance) { - distance = tmpdistance; - bestxx = xx; - besti = i; - } - } - - *tmpdist = distance; - return fLastDistanceToIn.value; - } - - default : { - G4Exception("G4TwistedTrap::DistanceToIn(p)", "InvalidCondition", - FatalException, "Unknown point location!"); - } - } // switch end - return kInfinity; -} - -#endif - -//===================================================================== -//* DistanceToOut (p, v) ---------------------------------------------- - -G4double G4TwistedTrap::DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, G4ThreeVector *norm ) const -{ - // DistanceToOut (p, v): - // Calculate distance to surface of shape from `inside' - // along with the v, allowing for tolerance. - // The function returns kInfinity if no intersection or - // just grazing within tolerance. - // - - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4ThreeVector *tmpv; - G4double *tmpdist; - if (fLastDistanceToOutWithV.p == p && fLastDistanceToOutWithV.vec == v ) { - return fLastDistanceToOutWithV.value; - } else { - tmpp = const_cast(&(fLastDistanceToOutWithV.p)); - tmpv = const_cast(&(fLastDistanceToOutWithV.vec)); - tmpdist = const_cast(&(fLastDistanceToOutWithV.value)); - tmpp->set(p.x(), p.y(), p.z()); - tmpv->set(v.x(), v.y(), v.z()); - } - - // - // Calculate DistanceToOut(p,v) - // - - EInside currentside = Inside(p); - - if (currentside == kOutside) { - - } else if (currentside == kSurface) { - // particle is just on a boundary. - // if the particle is exiting from the volume, return 0. - G4ThreeVector normal = SurfaceNormal(p); - G4VSurface *blockedsurface = fLastNormal.surface[0]; - if (normal*v > 0) { - if (calcNorm) { - *norm = (blockedsurface->GetNormal(p, true)); - *validNorm = blockedsurface->IsValidNorm(); - } - *tmpdist = 0.; - // timer.Stop(); - return fLastDistanceToOutWithV.value; - } - } - - // now, we can take smallest positive distance. - - // Initialize - G4double distance = kInfinity; - - // find intersections and choose nearest one. - G4VSurface *surfaces[6]; - - surfaces[0] = fSide0; - surfaces[1] = fSide90 ; - surfaces[2] = fSide180 ; - surfaces[3] = fSide270 ; - surfaces[4] = fLowerEndcap; - surfaces[5] = fUpperEndcap; - - G4int i; - G4int besti = -1; - G4ThreeVector xx; - G4ThreeVector bestxx; - for (i=0; i< 6 ; i++) { - G4double tmpdistance = surfaces[i]->DistanceToOut(p, v, xx); - if (tmpdistance < distance) { - distance = tmpdistance; - bestxx = xx; - besti = i; - } - } - - if (calcNorm) { - if (besti != -1) { - *norm = (surfaces[besti]->GetNormal(p, true)); - *validNorm = surfaces[besti]->IsValidNorm(); - } - } - - *tmpdist = distance; - // timer.Stop(); - return fLastDistanceToOutWithV.value; -} - -#ifdef DISTANCETOIN -//===================================================================== -//* DistanceToOut (p) ---------------------------------------------- - -G4double G4TwistedTrap::DistanceToOut( const G4ThreeVector& p ) const -{ - // DistanceToOut(p): - // Calculate distance to surface of shape from `inside', - // allowing for tolerance - // - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4double *tmpdist; - if (fLastDistanceToOut.p == p) { - return fLastDistanceToOut.value; - } else { - tmpp = const_cast(&(fLastDistanceToOut.p)); - tmpdist = const_cast(&(fLastDistanceToOut.value)); - tmpp->set(p.x(), p.y(), p.z()); - } - - // - // Calculate DistanceToOut(p) - // - - EInside currentside = Inside(p); - - switch (currentside) { - case (kOutside) : { - - } - case (kSurface) : { - *tmpdist = 0.; - return fLastDistanceToOut.value; - } - - case (kInside) : { - // Initialize - - G4double rminX = ( fDx1 < fDx2 ? fDx1 : fDx2 ) ; - G4double rmin = ( rminX < fDy ? rminX : fDy ) ; - - G4double safx1,safx2,safy1,safy2,safz1,safz2,safe=0.0; - - safx1 = rmin - p.x() ; - safx2 = rmin + p.x() ; - safy1 = rmin - p.y() ; - safy2 = rmin + p.y() ; - safz1 = fDz - p.z() ; - safz2 = fDz + p.z() ; - - // shortest Dist to any boundary now MIN(safx1,safx2,safy1..) - - if (safx2 < safx1) safe = safx2 ; - else safe = safx1 ; - if (safy1 < safe) safe = safy1 ; - if (safy2 < safe) safe = safy2 ; - if (safz1 < safe) safe = safz1 ; - if (safz2 < safe) safe = safz2 ; - - if (safe < 0) safe = 0 ; - - *tmpdist = safe; - - return fLastDistanceToOut.value; - } - - default : { - G4Exception("G4TwistedTrap::DistanceToOut(p)", "InvalidCondition", - FatalException, "Unknown point location!"); - } - - } // switch end - - return 0; - -} - -#else - -G4double G4TwistedTrap::DistanceToOut( const G4ThreeVector& p ) const -{ - // DistanceToOut(p): - // Calculate distance to surface of shape from `inside', - // allowing for tolerance - // - - - // - // checking last value - // - - G4ThreeVector *tmpp; - G4double *tmpdist; - if (fLastDistanceToOut.p == p) { - return fLastDistanceToOut.value; - } else { - tmpp = const_cast(&(fLastDistanceToOut.p)); - tmpdist = const_cast(&(fLastDistanceToOut.value)); - tmpp->set(p.x(), p.y(), p.z()); - } - - // - // Calculate DistanceToOut(p) - // - - EInside currentside = Inside(p); - - switch (currentside) { - case (kOutside) : { - - } - case (kSurface) : { - *tmpdist = 0.; - return fLastDistanceToOut.value; - } - - case (kInside) : { - // Initialize - G4double distance = kInfinity; - - // find intersections and choose nearest one. - G4VSurface *surfaces[6]; - - surfaces[0] = fSide0; - surfaces[1] = fSide90 ; - surfaces[2] = fSide180 ; - surfaces[3] = fSide270 ; - surfaces[4] = fLowerEndcap; - surfaces[5] = fUpperEndcap; - - G4int i; - G4int besti = -1; - G4ThreeVector xx; - G4ThreeVector bestxx; - for (i=0; i< 6; i++) { - G4double tmpdistance = surfaces[i]->DistanceTo(p, xx); - if (tmpdistance < distance) { - distance = tmpdistance; - bestxx = xx; - besti = i; - } - } - - - *tmpdist = distance; - - return fLastDistanceToOut.value; - } - - default : { - G4Exception("G4TwistedTrap::DistanceToOut(p)", "InvalidCondition", - FatalException, "Unknown point location!"); - } - } // switch end - return 0; -} - - -#endif - -//===================================================================== -//* StreamInfo -------------------------------------------------------- - std::ostream& G4TwistedTrap::StreamInfo(std::ostream& os) const { // @@ -998,86 +88,38 @@ std::ostream& G4TwistedTrap::StreamInfo(std::ostream& os) const << " ===================================================\n" << " Solid type: G4TwistedTrap\n" << " Parameters: \n" - << " Twist angle : " << fPhiTwist/degree << " degrees \n" + << " Twist angle = " << GetPhiTwist()/degree << " deg" + << G4endl + << " Polar Angle Theta = " << GetPolarAngleTheta()/degree << " deg" + << G4endl + << " Azimuthal Angle Phi = " << GetAzimuthalAnglePhi()/degree << " deg" + << G4endl + << " pDy1 = " << GetY1HalfLength()/cm << " cm" << G4endl + << " pDx1 = " << GetX1HalfLength()/cm << " cm" << G4endl + << " pDx2 = " << GetX2HalfLength()/cm << " cm" << G4endl + << " pDy2 = " << GetY2HalfLength()/cm << " cm" << G4endl + << " pDx3 = " << GetX3HalfLength()/cm << " cm" << G4endl + << " pDx4 = " << GetX4HalfLength()/cm << " cm" << G4endl + << " pDz = " << GetZHalfLength()/cm << " cm" << G4endl + << " Tilt Angle Alpha = " << GetTiltAngleAlpha()/degree << " deg" + << G4endl << "-----------------------------------------------------------\n"; return os; } - -//===================================================================== -//* DiscribeYourselfTo ------------------------------------------------ - -void G4TwistedTrap::DescribeYourselfTo (G4VGraphicsScene& scene) const -{ - scene.AddThis (*this); -} - -//===================================================================== -//* GetExtent --------------------------------------------------------- - -G4VisExtent G4TwistedTrap::GetExtent() const -{ - - G4double maxSide = ( fDx1 > fDx2 ? fDx1 : fDx2 ) ; - G4double maxRad = std::sqrt( maxSide*maxSide + fDy*fDy); - - return G4VisExtent(-maxRad, maxRad , - -maxRad, maxRad , - -fDz, fDz ); -} - //===================================================================== //* CreatePolyhedron -------------------------------------------------- G4Polyhedron* G4TwistedTrap::CreatePolyhedron () const { - // return new G4PolyhedronHype (fRMin, fRMax, fDz, fSPhi, fDPhi); - return 0; + // Returns simple trap for now!! + // + return new G4PolyhedronTrap(GetDz(), GetTheta(), GetPhi(), + GetDy1(), GetDx1(), GetDx2(), GetAlpha(), + GetDy2(), GetDx3(), GetDx4(), GetAlpha()); } -//===================================================================== -//* CreateNUBS -------------------------------------------------------- - -G4NURBS* G4TwistedTrap::CreateNURBS () const -{ - G4double maxSide = ( fDx1 > fDx2 ? fDx1 : fDx2 ) ; - G4double maxRad = std::sqrt( maxSide*maxSide + fDy*fDy); - - return new G4NURBStube(maxRad, maxRad, fDz); - // Tube for now!!! -} - -//===================================================================== -//* CreateSurfaces ---------------------------------------------------- - -void G4TwistedTrap::CreateSurfaces() -{ - - // create 6 surfaces of TwistedTub. - - - fSide0 = new G4TwistedTrapSide("0deg", fPhiTwist, fDx1, fDx2, fDy, fDz, 0.*deg ) ; - fSide180 = new G4TwistedTrapSide("180deg", fPhiTwist, fDx2, fDx1, fDy, fDz, 180.*deg) ; - - fSide90 = new G4TwistedBoxSide("90deg", fPhiTwist, fDy, fDx2, fDz, 90.*deg) ; - fSide270 = new G4TwistedBoxSide("270deg", fPhiTwist, fDy, fDx1, fDz, 270.*deg) ; - - fUpperEndcap = new G4FlatTrapSide("UpperCap",fPhiTwist, fDx1, fDx2, fDy, fDz, 1 ) ; - fLowerEndcap = new G4FlatTrapSide("LowerCap",fPhiTwist, fDx1, fDx2, fDy, fDz, -1 ) ; - - // Set neighbour surfaces - - fSide0->SetNeighbours( fSide270 , fLowerEndcap , fSide90 , fUpperEndcap ); - fSide90->SetNeighbours( fSide0 , fLowerEndcap , fSide180 , fUpperEndcap ); - fSide180->SetNeighbours(fSide90 , fLowerEndcap , fSide270 , fUpperEndcap ); - fSide270->SetNeighbours(fSide180 , fLowerEndcap , fSide0 , fUpperEndcap ); - fUpperEndcap->SetNeighbours( fSide180, fSide270 , fSide0 , fSide90 ); - fLowerEndcap->SetNeighbours( fSide180, fSide270 , fSide0 , fSide90 ); - -} - - //===================================================================== //* GetEntityType ----------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4TwistedBoxSide.cc b/source/geometry/solids/specific/src/G4TwistedTrapAlphaSide.cc similarity index 56% rename from source/geometry/solids/specific/src/G4TwistedBoxSide.cc rename to source/geometry/solids/specific/src/G4TwistedTrapAlphaSide.cc index 158afecd3d..1b3cd6a23c 100644 --- a/source/geometry/solids/specific/src/G4TwistedBoxSide.cc +++ b/source/geometry/solids/specific/src/G4TwistedTrapAlphaSide.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4TwistedBoxSide.cc,v 1.6 2004/12/08 10:20:38 link Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4TwistedTrapAlphaSide.cc,v +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- // GEANT 4 class source file // // -// G4TwistedBoxSide.cc +// G4TwistedTrapAlphaSide.cc // // Author: // @@ -39,38 +39,68 @@ #include -#include "G4TwistedBoxSide.hh" -//#include "G4PolynomialSolver.hh" -#include "G4ApproxPolySolver.hh" +#include "G4TwistedTrapAlphaSide.hh" +#include "G4JTPolynomialSolver.hh" //===================================================================== //* constructors ------------------------------------------------------ -G4TwistedBoxSide::G4TwistedBoxSide(const G4String &name, - G4double PhiTwist, - G4double pDx, - G4double pDy, - G4double pDz, - G4double AngleSide) - : G4VSurface(name) +G4TwistedTrapAlphaSide::G4TwistedTrapAlphaSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azimutal angles. + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph, // tilt angle at +pDz + G4double AngleSide // parity + ) : G4VSurface(name) { - - // attention ! local coordinate system - + + fAxis[0] = kYAxis; // in local coordinate system fAxis[1] = kZAxis; + fAxisMin[0] = -kInfinity ; // Y Axis boundary + fAxisMax[0] = kInfinity ; // depends on z !! + fAxisMin[1] = -pDz ; // Z Axis boundary + fAxisMax[1] = pDz ; + + fDx1 = pDx1 ; + fDx2 = pDx2 ; + fDx3 = pDx3 ; + fDx4 = pDx4 ; - fDx = pDx ; - fDy = pDy ; - fDz = pDz ; + fDy1 = pDy1 ; + fDy2 = pDy2 ; + + fDz = pDz ; + + fAlph = pAlph ; + fTAlph = std::tan(fAlph) ; + + fTheta = pTheta ; + fPhi = pPhi ; + + // precalculate frequently used parameters + fDx4plus2 = fDx4 + fDx2 ; + fDx4minus2 = fDx4 - fDx2 ; + fDx3plus1 = fDx3 + fDx1 ; + fDx3minus1 = fDx3 - fDx1 ; + fDy2plus1 = fDy2 + fDy1 ; + fDy2minus1 = fDy2 - fDy1 ; + + fa1md1 = 2*fDx2 - 2*fDx1 ; + fa2md2 = 2*fDx4 - 2*fDx3 ; fPhiTwist = PhiTwist ; // dphi fAngleSide = AngleSide ; // 0,90,180,270 deg - - fAxisMin[0] = -pDy ; // Y Axis boundary - fAxisMax[0] = pDy ; - fAxisMin[1] = -pDz ; // Z Axis boundary - fAxisMax[1] = pDz ; + + fdeltaX = 2 * fDz * std::tan(fTheta) * std::cos(fPhi) ; // dx in surface equation + fdeltaY = 2 * fDz * std::tan(fTheta) * std::sin(fPhi) ; // dy in surface equation fRot.rotateZ( AngleSide ) ; @@ -79,25 +109,28 @@ G4TwistedBoxSide::G4TwistedBoxSide(const G4String &name, SetCorners() ; SetBoundaries() ; + } + //===================================================================== //* destructor -------------------------------------------------------- -G4TwistedBoxSide::~G4TwistedBoxSide() +G4TwistedTrapAlphaSide::~G4TwistedTrapAlphaSide() { } //===================================================================== //* GetNormal --------------------------------------------------------- -G4ThreeVector G4TwistedBoxSide::GetNormal(const G4ThreeVector &tmpxx, +G4ThreeVector G4TwistedTrapAlphaSide::GetNormal(const G4ThreeVector &tmpxx, G4bool isGlobal) { // GetNormal returns a normal vector at a surface (or very close // to surface) point at tmpxx. // If isGlobal=true, it returns the normal in global coordinate. // + G4ThreeVector xx; if (isGlobal) { xx = ComputeLocalPoint(tmpxx); @@ -136,7 +169,7 @@ G4ThreeVector G4TwistedBoxSide::GetNormal(const G4ThreeVector &tmpxx, //===================================================================== //* DistanceToSurface ------------------------------------------------- -G4int G4TwistedBoxSide::DistanceToSurface(const G4ThreeVector &gp, +G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector gxx[], G4double distance[], @@ -146,11 +179,13 @@ G4int G4TwistedBoxSide::DistanceToSurface(const G4ThreeVector &gp, { static const G4double ctol = 0.5 * kCarTolerance; + static const G4double pihalf = pi/2 ; + + G4bool IsParallel = false ; + G4bool IsConverged = false ; + + G4int nxx = 0 ; // number of physical solutions - // implementation - // Coordinate system: - // - fCurStatWithV.ResetfDone(validate, &gp, &gv); if (fCurStatWithV.IsDone()) { @@ -166,7 +201,7 @@ G4int G4TwistedBoxSide::DistanceToSurface(const G4ThreeVector &gp, // initialize G4int i; - for (i=0; i<4 ; i++) { + for (i=0; i xbuf ; Intersection xbuftmp ; // prepare some variables for the intersection finder G4double L = 2*fDz ; - G4double a = 2*fDx ; + + // G4double phipzvx = fPhiTwist*p.z()*v.x() ; + // G4double phipzvy = fPhiTwist*p.z()*v.y() ; + + // G4double phipxvz = fPhiTwist*p.x()*v.z() ; + // G4double phipyvz = fPhiTwist*p.y()*v.z() ; + + // G4double phivz = fPhiTwist*v.z(); + G4double phix = fPhiTwist * ( v.x()*p.z() - v.z()*p.x() ) ; + G4double phiy = fPhiTwist * ( v.y()*p.z() - v.z()*p.y() ) ; + // special case vz = 0 @@ -209,12 +251,11 @@ G4int G4TwistedBoxSide::DistanceToSurface(const G4ThreeVector &gp, if ( std::fabs(p.z()) <= L ) { // intersection possible in z phi = p.z() * fPhiTwist / L ; // phi is determined by the z-position - u = (2*p.y()*v.x() - 2*p.x()*v.y() + a*v.y()*std::cos(phi) - - a*v.x()*std::sin(phi) ) / - (2*v.x()*std::cos(phi) + 2*v.y()*std::sin(phi)) ; + u = (2*fDy1*(8*fPhiTwist*(p.y()*v.x() - p.x()*v.y()) + + (2*(fDx4plus2 + fDx3plus1)*fPhiTwist*v.y() - 2*(4*fdeltaY*v.x() + (-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*v.y())*phi)*std::cos(phi) - + (2*(fDx4plus2 + fDx3plus1)*fPhiTwist*v.x() - 2*((-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*v.x() - 4*fdeltaY*v.y())*phi)*std::sin(phi)))/ + (4.*fPhiTwist*(std::sin(phi)*(fa1md1*v.x() + 4*fDy1*v.y() - 4*fDy1*v.x()*fTAlph) + std::cos(phi)*(4*fDy1*v.x() - fa1md1 *v.y() + 4*fDy1*v.y()*fTAlph))) ; - nxx = 1 ; // one solution only - xbuftmp.phi = phi ; xbuftmp.u = u ; xbuftmp.areacode = sOutside ; @@ -247,101 +288,76 @@ G4int G4TwistedBoxSide::DistanceToSurface(const G4ThreeVector &gp, else { - G4double phipzvx = fPhiTwist*p.z()*v.x() ; - G4double phipzvy = fPhiTwist*p.z()*v.y() ; - - G4double phivz = fPhiTwist*v.z(); - G4double phipxvz = phivz * p.x() ; - G4double phipyvz = phivz * p.y() ; - - G4double c[5],s[4] ; - - // calculation of coefficients c0 + c1 x + c2 x^2 + c3 x^3 + c4 x^4 - // with c4 = 1 + G4double c[8],sr[7],si[7] ; + + c[7] = -1800*(-4*fa1md1*phiy + 16*fDy1*(phix + phiy*fTAlph) + 4*(fDx4plus2 + fDx3plus1)*fDy1*fPhiTwist*v.z()) ; + c[6] = -3600*(8*fDy1*(phiy - L*v.x()) + 2*(phix - fdeltaY*v.z() + L*v.y())*(fa1md1 - 4*fDy1*fTAlph) - + 2*fDy1*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*v.z()) ; + c[5] = 150*(fa1md1*(-20*phiy + 48*L*v.x()) + 2*fDy1*(40*phix + 96*L*v.y() + 40*phiy*fTAlph - 96*L*v.x()*fTAlph - + 2*(fDx4plus2 + fDx3plus1)*fPhiTwist*v.z())) ; + c[4] = -300*(-8*fDy1*(phiy - 5*L*v.x()) - 2*(phix + fdeltaY*v.z() + 5*L*v.y())*(fa1md1 - 4*fDy1*fTAlph) - + 2*fDy1*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*v.z()) ; + c[3] = -3*(-4*fa1md1*(phiy - 50*L*v.x()) + 16*fDy1*(phix + 50*L*v.y() + phiy*fTAlph - 50*L*v.x()*fTAlph) + + 2*(fDx4plus2 + fDx3plus1)*2*fDy1*fPhiTwist*v.z()) ; + c[2] = 16*fDy1*(7*phiy + 3*L*v.x()) + 4*(7*phix + 3*fdeltaY*v.z() + - 3*L*v.y())*(fa1md1 - 4*fDy1*fTAlph) + 12*fDy1*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*v.z() ; + c[1] = -4*fDy1*(9*fPhiTwist*p.z()*v.x() - 9*fPhiTwist*p.x()*v.z() + + 28*L*v.y()) + (9*phiy - 28*L*v.x())*(fa1md1 - 4*fDy1*fTAlph) ; + c[0] = 9*(-(fa1md1*L*v.y()) + 4*fDy1*(L*v.x() + L*v.y()*fTAlph)) ; -#ifdef G4SPECSDEBUG - G4cout << " ---------------------------------- " << G4endl ; - G4cout << " Point P = " << p << G4endl ; - G4cout << " Direction v = " << v << G4endl ; - G4cout << " a = " << a << G4endl ; - G4cout << " L = " << L << G4endl ; - G4cout << " twist = " << fPhiTwist << G4endl ; - G4cout << " ---------------------------------- " << G4endl ; -#endif - - G4double ctmp = -4*L*v.y() + 6*a*phivz ; - c[0] = ( - 60*phipzvx - 30*a*phivz + 60*phipxvz ) / ctmp ; - c[1] = ( 60*L*v.x() - 60*phipzvy + 60*phipyvz ) / ctmp ; - c[2] = ( 24*phipzvx + 60*L*v.y() - 3*a*phivz - 24*phipxvz ) / ctmp ; - c[3] = ( -24*L*v.x() + 4*phipzvy - 4*phipyvz ) / ctmp ; - c[4] = 1 ; // normal form of polynom (c4 = 1 ) - #ifdef G4SPECSDEBUG G4cout << "coef = " << c[0] << " " << c[1] << " " << c[2] << " " << c[3] << " " - << c[4] << G4endl ; + << c[4] << " " + << c[5] << " " + << c[6] << " " + << c[7] << G4endl ; #endif - // solve the polynom analytically - G4ApproxPolySolver trapEq ; - G4int num = trapEq.SolveBiQuadratic(c,s); + G4JTPolynomialSolver trapEq ; + G4int num = trapEq.FindRoots(c,7,sr,si); - // calculate phi and psi of the surface equation - // and reduce the solution to the surface - - G4double pi2 = 2*pi ; - // G4double stmp ; for (G4int i = 0 ; i 0 ) { phi -= 2*pi ; } - - // phi = stmp ; - u = (2*L*phi*v.y() - 2*phipzvy + 2*phipyvz - a*phivz * std::sin(phi)) - / (2.*phivz*std::cos(phi)) ; - - xbuftmp.phi = phi ; - xbuftmp.u = u ; - xbuftmp.areacode = sOutside ; - xbuftmp.distance = kInfinity ; - xbuftmp.isvalid = false ; - - xbuf.push_back(xbuftmp) ; // store it to xbuf - -#ifdef G4SPECSDEBUG - G4cout << "solution " << i << " = " << phi << " , " << u << G4endl ; -#endif - - } - - nxx = xbuf.size() ; // save the number of solutions - - if ( nxx == 0 ) { // no solution found - - distance[0] = kInfinity; - gxx[0].set(kInfinity,kInfinity,kInfinity); - isvalid[0] = false ; - areacode[0] = sOutside ; - fCurStatWithV.SetCurrentStatus(0, gxx[0], distance[0], - areacode[0], isvalid[0], - 0, validate, &gp, &gv); - return 0; - - } + } // end if real solution + } // end loop i } // end general case - G4int maxint = 20 ; // number of iterations + nxx = xbuf.size() ; // save the number of solutions + G4ThreeVector xxonsurface ; // point on surface G4ThreeVector surfacenormal ; // normal vector - G4double deltaX ; + G4double deltaX ; // distance between intersection point and point on surface + G4double theta ; // angle between track and surfacenormal + G4double factor ; // a scaling factor + G4int maxint = 30 ; // number of iterations + for ( size_t k = 0 ; k fAxisMax[yaxis] - ctol) { + } else if (yprime > fYAxisMax - ctol) { areacode |= (sAxis0 & (sAxisY | sAxisMax)) | sBoundary; - if (yprime >= fAxisMin[yaxis] + ctol) isoutside = true; + if (yprime >= fYAxisMax + ctol) isoutside = true; } // test boundary of z-axis @@ -668,9 +819,9 @@ G4int G4TwistedBoxSide::GetAreaCode(const G4ThreeVector &xx, // boundary of y-axis - if (yprime < fAxisMin[yaxis] ) { + if (yprime < fYAxisMin ) { areacode |= (sAxis0 & (sAxisY | sAxisMin)) | sBoundary; - } else if (yprime > fAxisMax[yaxis]) { + } else if (yprime > fYAxisMax) { areacode |= (sAxis0 & (sAxisY | sAxisMax)) | sBoundary; } @@ -693,7 +844,7 @@ G4int G4TwistedBoxSide::GetAreaCode(const G4ThreeVector &xx, } return areacode; } else { - G4Exception("G4TwistedBoxSide::GetAreaCode()", + G4Exception("G4TwistedTrapAlphaSide::GetAreaCode()", "NotImplemented", FatalException, "Feature NOT implemented !"); } @@ -703,7 +854,7 @@ G4int G4TwistedBoxSide::GetAreaCode(const G4ThreeVector &xx, //===================================================================== //* SetCorners() ------------------------------------------------------ -void G4TwistedBoxSide::SetCorners() +void G4TwistedTrapAlphaSide::SetCorners() { // Set Corner points in local coodinate. @@ -711,38 +862,41 @@ void G4TwistedBoxSide::SetCorners() if (fAxis[0] == kYAxis && fAxis[1] == kZAxis) { G4double x, y, z; - G4double acos = fDx * std::cos(fPhiTwist/2) ; - G4double asin = fDx * std::sin(fPhiTwist/2) ; - G4double bcos = fDy * std::cos(fPhiTwist/2) ; - G4double bsin = fDy * std::sin(fPhiTwist/2) ; + G4double CosPhi = std::cos(fPhiTwist/2) ; + G4double SinPhi = std::sin(fPhiTwist/2) ; // corner of Axis0min and Axis1min - x = acos - bsin ; - y = -asin - bcos ; + + x = (-( 2*fDy1 + fdeltaY)*SinPhi + CosPhi*( 2*fDx1 - fdeltaX + 2*fDy1*fTAlph))/2. ; + y = (-( 2*fDy1 + fdeltaY)*CosPhi - SinPhi*( 2*fDx1 - fdeltaX + 2*fDy1*fTAlph))/2. ; z = -fDz ; + SetCorner(sC0Min1Min, x, y, z); // corner of Axis0max and Axis1min - x = acos + bsin ; - y = -asin + bcos ; + x = ( ( 2*fDy1 - fdeltaY)*SinPhi + CosPhi*( 2*fDx2 - fdeltaX - 2*fDy1*fTAlph))/2. ; + y = ( ( 2*fDy1 - fdeltaY)*CosPhi + SinPhi*(-2*fDx2 + fdeltaX + 2*fDy1*fTAlph))/2. ; z = -fDz ; + SetCorner(sC0Max1Min, x, y, z); // corner of Axis0max and Axis1max - x = acos - bsin ; - y = asin + bcos ; - z = fDz ; + x = (-( 2*fDy2 + fdeltaY)*SinPhi + CosPhi*( 2*fDx4 + fdeltaX - 2*fDy2*fTAlph))/2. ; + y = ( ( 2*fDy2 + fdeltaY)*CosPhi + SinPhi*( 2*fDx4 + fdeltaX - 2*fDy2*fTAlph))/2. ; + z = fDz ; + SetCorner(sC0Max1Max, x, y, z); // corner of Axis0min and Axis1max - x = acos + bsin ; - y = asin - bcos ; + x = ( ( 2*fDy2 - fdeltaY)*SinPhi + CosPhi*( 2*fDx3 + fdeltaX + 2*fDy2*fTAlph))/2. ; + y = ( (-2*fDy2 + fdeltaY)*CosPhi + SinPhi*( 2*fDx3 + fdeltaX + 2*fDy2*fTAlph))/2. ; z = fDz ; + SetCorner(sC0Min1Max, x, y, z); } else { - G4Exception("G4TwistedBoxSide::SetCorners()", + G4Exception("G4TwistedTrapAlphaSide::SetCorners()", "NotImplemented", FatalException, "Method NOT implemented !"); } @@ -751,7 +905,7 @@ void G4TwistedBoxSide::SetCorners() //===================================================================== //* SetBoundaries() --------------------------------------------------- -void G4TwistedBoxSide::SetBoundaries() +void G4TwistedTrapAlphaSide::SetBoundaries() { // Set direction-unit vector of boundary-lines in local coodinate. // @@ -786,42 +940,41 @@ void G4TwistedBoxSide::SetBoundaries() } else { - G4Exception("G4TwistedBoxSide::SetCorners()", + G4Exception("G4TwistedTrapAlphaSide::SetCorners()", "NotImplemented", FatalException, "Feature NOT implemented !"); } + } -void G4TwistedBoxSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) +void G4TwistedTrapAlphaSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) { // find closest point XX on surface for a given point p // X0 is a point on the surface, d is the direction ( both for a fixed z = pz) + // phi is given by the z coordinate of p + phi = p.z()/(2*fDz)*fPhiTwist ; -#if 0 - G4ThreeVector X0 ( fDx * std::cos(phi), fDx * std::sin(phi) , p.z() ) ; // basis with u=0 - G4ThreeVector dvec ( - std::sin(phi), std::cos(phi) ,0. ) ; // direction vector - G4ThreeVector xx ; // the intersection point on the line + G4double CosPhi = std::cos(phi) ; + G4double SinPhi = std::sin(phi) ; + G4double c0 = 2*(CosPhi - SinPhi*fTAlph) + (fa1md1*SinPhi)/(2*fDy1) ; + G4double c1 = (-4*fDy1*SinPhi + CosPhi*(fa1md1 - 4*fDy1*fTAlph))/(2*fDy1) ; - DistanceToLine(p ,X0 , dvec , xx) ; - - u = ( xx - X0 ).mag() ; // X0 is choosen such that u = 0 - -#endif - - - // analytical form of the above calculation. - // See mathematica notbook: dirBox.m - - u = p.y() * std::cos(phi) - p.x()*std::sin(phi) ; + u = ( -(fa1md1* 2*(fDx4plus2 + fDx3plus1 )*fPhiTwist) + + 2*(fa1md1*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX) - 16*fDy1*fdeltaY)*phi + + 4*fDy1*(2*(fDx4plus2 + fDx3plus1)*fPhiTwist + - 2*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*phi)*fTAlph + + 8*fPhiTwist*CosPhi*(2*fDx2*p.x() - 2*fDx1*p.x() + 4*fDy1*p.y() - 4*fDy1*p.x()*fTAlph) - + 8*fPhiTwist*SinPhi*(4*fDy1*p.x() - 2*fDx2*p.y() + 2*fDx1*p.y() + 4*fDy1*p.y()*fTAlph))/ + (8.*fDy1*fPhiTwist*(c0*c0 + c1*c1)) ; } -G4ThreeVector G4TwistedBoxSide::ProjectPoint(const G4ThreeVector &p, +G4ThreeVector G4TwistedTrapAlphaSide::ProjectPoint(const G4ThreeVector &p, G4bool isglobal) { // Get Rho at p.z() on Hyperbolic Surface. diff --git a/source/geometry/solids/specific/src/G4TwistedTrapSide.cc b/source/geometry/solids/specific/src/G4TwistedTrapBoxSide.cc similarity index 60% rename from source/geometry/solids/specific/src/G4TwistedTrapSide.cc rename to source/geometry/solids/specific/src/G4TwistedTrapBoxSide.cc index f599882239..1597f125ee 100644 --- a/source/geometry/solids/specific/src/G4TwistedTrapSide.cc +++ b/source/geometry/solids/specific/src/G4TwistedTrapBoxSide.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4TwistedTrapSide.cc,v 1.14 2004/12/08 10:20:39 link Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4TwistedTrapBoxSide.cc,v +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- // GEANT 4 class source file // // -// G4TwistedTrapSide.cc +// G4TwistedTrapBoxSide.cc // // Author: // @@ -39,38 +39,53 @@ #include -#include "G4TwistedTrapSide.hh" -//#include "G4PolynomialSolver.hh" -#include "G4ApproxPolySolver.hh" +#include "G4TwistedTrapBoxSide.hh" +#include "G4JTPolynomialSolver.hh" //===================================================================== //* constructors ------------------------------------------------------ -G4TwistedTrapSide::G4TwistedTrapSide(const G4String &name, - G4double PhiTwist, - G4double pDx1, - G4double pDx2, - G4double pDy, - G4double pDz, - G4double AngleSide) - : G4VSurface(name) +G4TwistedTrapBoxSide::G4TwistedTrapBoxSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azimutal angles. + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDy2, // half y length at +pDz + G4double pDx2, // half x length at -pDz,+pDy + G4double pAlph, // tilt angle at +pDz + G4double AngleSide // parity + ) : G4VSurface(name) { - - + + fAxis[0] = kYAxis; // in local coordinate system fAxis[1] = kZAxis; - fAxisMin[0] = -pDy ; // Y Axis boundary - fAxisMax[0] = pDy ; + fAxisMin[0] = -kInfinity ; // Y Axis boundary + fAxisMax[0] = kInfinity ; // depends on z !! fAxisMin[1] = -pDz ; // Z Axis boundary fAxisMax[1] = pDz ; fDx1 = pDx1 ; fDx2 = pDx2 ; - fDy = pDy ; + + fDy1 = pDy1 ; + fDy2 = pDy2 ; + fDz = pDz ; + fAlph = pAlph ; + fTAlph = std::tan(fAlph) ; + + fTheta = pTheta ; + fPhi = pPhi ; + fPhiTwist = PhiTwist ; // dphi fAngleSide = AngleSide ; // 0,90,180,270 deg + + fdeltaX = 2 * fDz * std::tan(fTheta) * std::cos(fPhi) ; // dx in surface equation + fdeltaY = 2 * fDz * std::tan(fTheta) * std::sin(fPhi) ; // dy in surface equation fRot.rotateZ( AngleSide ) ; @@ -86,20 +101,21 @@ G4TwistedTrapSide::G4TwistedTrapSide(const G4String &name, //===================================================================== //* destructor -------------------------------------------------------- -G4TwistedTrapSide::~G4TwistedTrapSide() +G4TwistedTrapBoxSide::~G4TwistedTrapBoxSide() { } //===================================================================== //* GetNormal --------------------------------------------------------- -G4ThreeVector G4TwistedTrapSide::GetNormal(const G4ThreeVector &tmpxx, +G4ThreeVector G4TwistedTrapBoxSide::GetNormal(const G4ThreeVector &tmpxx, G4bool isGlobal) { // GetNormal returns a normal vector at a surface (or very close // to surface) point at tmpxx. // If isGlobal=true, it returns the normal in global coordinate. // + G4ThreeVector xx; if (isGlobal) { xx = ComputeLocalPoint(tmpxx); @@ -138,7 +154,7 @@ G4ThreeVector G4TwistedTrapSide::GetNormal(const G4ThreeVector &tmpxx, //===================================================================== //* DistanceToSurface ------------------------------------------------- -G4int G4TwistedTrapSide::DistanceToSurface(const G4ThreeVector &gp, +G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector gxx[], G4double distance[], @@ -148,6 +164,12 @@ G4int G4TwistedTrapSide::DistanceToSurface(const G4ThreeVector &gp, { static const G4double ctol = 0.5 * kCarTolerance; + static const G4double pihalf = pi/2 ; + + G4bool IsParallel = false ; + G4bool IsConverged = false ; + + G4int nxx = 0 ; // number of physical solutions fCurStatWithV.ResetfDone(validate, &gp, &gv); @@ -164,7 +186,7 @@ G4int G4TwistedTrapSide::DistanceToSurface(const G4ThreeVector &gp, // initialize G4int i; - for (i=0; i<4 ; i++) { + for (i=0; i xbuf ; Intersection xbuftmp ; // prepare some variables for the intersection finder G4double L = 2*fDz ; - G4double a = 2*fDx2 ; - G4double d = 2*fDx1 ; - G4double b = 2*fDy ; - G4double amd = a-d ; - G4double apd = a+d ; + G4double phiy = fPhiTwist * ( v.y()*p.z() - v.z()*p.y() ) ; + G4double phix = fPhiTwist * ( v.x()*p.z() - v.z()*p.x() ) ; + // special case vz = 0 @@ -212,13 +229,11 @@ G4int G4TwistedTrapSide::DistanceToSurface(const G4ThreeVector &gp, if ( std::fabs(p.z()) <= L ) { // intersection possible in z phi = p.z() * fPhiTwist / L ; // phi is determined by the z-position - u = (b*(4*p.y()*v.x() - 4*p.x()*v.y() + apd*v.y()*std::cos(phi) - - apd*v.x()*std::sin(phi)))/ - (2.*((2*b*v.x() - amd *v.y())*std::cos(phi) - + ( amd * v.x() + 2*b*v.y())*std::sin(phi))); - nxx = 1 ; // one solution only - + u = (4*fPhiTwist*(p.y()*v.x() - p.x()*v.y()) + (-4*fdeltaY*v.x()*phi + v.y()*(2*(fDx1 + fDx2)*fPhiTwist + 4*(-fDx1 + fDx2 + fdeltaX)*phi))* + std::cos(phi) - (2*(fDx1 + fDx2)*fPhiTwist*v.x() + 4*((-fDx1 + fDx2 + fdeltaX)*v.x() + fdeltaY*v.y())*phi)*std::sin(phi))/ + (4.*fPhiTwist*((v.x() + fTAlph*v.y())*std::cos(phi) + (-(fTAlph*v.x()) + v.y())*std::sin(phi))) ; + xbuftmp.phi = phi ; xbuftmp.u = u ; xbuftmp.areacode = sOutside ; @@ -251,111 +266,69 @@ G4int G4TwistedTrapSide::DistanceToSurface(const G4ThreeVector &gp, else { + G4double c[8],sr[7],si[7] ; - G4double phivz = fPhiTwist*v.z(); - G4double phipz = fPhiTwist*p.z(); - - G4double phixz = phivz * p.x() - phipz*v.x() ; - G4double phiyz = phivz * p.y() - phipz*v.y() ; - - G4double amd3 = 3*amd ; - G4double amd6 = 6*amd ; - G4double Lvx = L*v.x() ; - G4double Lvy = L*v.y() ; - G4double b2 = b*2 ; - G4double b6 = b*6 ; - G4double b12 = b*12 ; - - G4double c[5],s[4] ; - - // calculation of coefficients c0 + c1 x + c2 x^2 + c3 x^3 + c4 x^4 - // with c4 = 1 - -#ifdef G4SPECSDEBUG - G4cout << " ---------------------------------- " << G4endl ; - G4cout << " Point P = " << p << G4endl ; - G4cout << " Direction v = " << v << G4endl ; - G4cout << " a = " << a << G4endl ; - G4cout << " d = " << d << G4endl ; - G4cout << " b = " << b << G4endl ; - G4cout << " L = " << L << G4endl ; - G4cout << " twist = " << fPhiTwist << G4endl ; - G4cout << " ---------------------------------- " << G4endl ; -#endif - - G4double ctmp = - b2*Lvy - amd*Lvx; - c[0] = ( b12*phixz - amd6*phiyz - 3*b*apd*phivz ) / ctmp ; - c[1] = ( b12*Lvx + amd6*phixz - amd6*Lvy + b12*phiyz ) / ctmp ; - c[2] = ( b12*Lvy + amd3*phiyz + amd6*Lvx - b6 *phixz ) / ctmp ; - c[3] = ( -b6*Lvx - amd *phixz + amd3*Lvy - b2 *phiyz ) / ctmp ; - c[4] = 1 ; + c[7] = 3600*( fPhiTwist*(fDx1 + fDx2)*v.z() + 2*fTAlph*phiy+ 2*phix ) ; + c[6] = -7200*(phix*fTAlph - phiy + 2*fDz*(v.x() + fTAlph*v.y()) - (fdeltaX - fDx1 + fDx2 + fdeltaY*fTAlph ) *v.z()) ; + c[5] = 300*(48*fDz*(fTAlph*v.x() - v.y()) - 10*phix + fPhiTwist*(fDx1 + fDx2)*v.z() - 10*phiy*fTAlph ) ; + c[4] = 600*(10*fDz*v.x() + fTAlph*phix + 10*fDz*fTAlph*v.y() - phiy + fdeltaX*v.z() + (fDx2-fDx1)*v.z() + fdeltaY*fTAlph*v.z() ) ; + c[3] = -1200*fDz*fTAlph*v.x() + 12*phix + 1200*fDz*v.y() + 12*phiy*fTAlph + 6*(fDx1+fDx2)*fPhiTwist*v.z(); + c[2] = -24*fDz*v.x() - 24*fDz*fTAlph*v.y() + 28*phix*fTAlph + 12*fdeltaX*v.z() + 12*(fDx2-fDx1)*v.z() + 12*fdeltaY*fTAlph*v.z() - 28*phiy ; + c[1] = -56*fDz*fTAlph*v.x() + 9*phix + 56*fDz*v.y() + 9*phiy*fTAlph ; + c[0] = -18*fDz*v.x() - 18*fDz*fTAlph*v.y() ; #ifdef G4SPECSDEBUG G4cout << "coef = " << c[0] << " " << c[1] << " " << c[2] << " " << c[3] << " " - << c[4] << G4endl ; + << c[4] << " " + << c[5] << " " + << c[6] << " " + << c[7] << G4endl ; #endif - // solve the polynom analytically - G4ApproxPolySolver trapEq ; - G4int num = trapEq.SolveBiQuadratic(c,s); + G4JTPolynomialSolver trapEq ; + G4int num = trapEq.FindRoots(c,7,sr,si); - // calculate phi and psi of the surface equation - // and reduce the solution to the surface - - G4double pi2 = 2*pi ; - // G4double stmp ; for (G4int i = 0 ; i 0 ) { phi -= 2*pi ; } - - // phi = stmp ; - u = b * ( 4*phiyz + 4*Lvy*phi - apd*phivz*std::sin(phi) ) - / (2.*phivz*(2*b*std::cos(phi) + amd*std::sin(phi) )) ; - - xbuftmp.phi = phi ; - xbuftmp.u = u ; - xbuftmp.areacode = sOutside ; - xbuftmp.distance = kInfinity ; - xbuftmp.isvalid = false ; - - xbuf.push_back(xbuftmp) ; // store it to xbuf + phi = std::fmod(sr[i] , pihalf) ; + + u = - (-4*( -phiy + L*v.y()*phi) + 4*fdeltaY*v.z()*phi*std::cos(phi) + + v.z()*(2*(fDx1 + fDx2)*fPhiTwist + 4*(-fDx1 + fDx2 + fdeltaX)*phi)*std::sin(phi))/ + (4.*fPhiTwist*v.z()*(std::cos(phi) - fTAlph*std::sin(phi))) ; + + xbuftmp.phi = phi ; + xbuftmp.u = u ; + xbuftmp.areacode = sOutside ; + xbuftmp.distance = kInfinity ; + xbuftmp.isvalid = false ; + + xbuf.push_back(xbuftmp) ; // store it to xbuf #ifdef G4SPECSDEBUG - G4cout << "solution " << i << " = " << phi << " , " << u << G4endl ; + G4cout << "solution " << i << " = " << phi << " , " << u << G4endl ; #endif - // } - } - - nxx = xbuf.size() ; // save the number of solutions - - if ( nxx == 0 ) { // no solution found - - distance[0] = kInfinity; - gxx[0].set(kInfinity,kInfinity,kInfinity); - isvalid[0] = false ; - areacode[0] = sOutside ; - fCurStatWithV.SetCurrentStatus(0, gxx[0], distance[0], - areacode[0], isvalid[0], - 0, validate, &gp, &gv); - return 0; - - } + } // end if real solution + } // end loop i } // end general case + nxx = xbuf.size() ; // save the number of solutions + G4ThreeVector xxonsurface ; // point on surface G4ThreeVector surfacenormal ; // normal vector - G4double deltaX ; - G4int maxint = 20 ; + G4double deltaX ; // distance between intersection point and point on surface + G4double theta ; // angle between track and surfacenormal + G4double factor ; // a scaling factor + G4int maxint = 30 ; // number of iterations for ( size_t k = 0 ; k fAxisMax[yaxis] - ctol) { + } else if (yprime > fYAxisMax - ctol) { areacode |= (sAxis0 & (sAxisY | sAxisMax)) | sBoundary; - if (yprime >= fAxisMin[yaxis] + ctol) isoutside = true; + if (yprime >= fYAxisMax + ctol) isoutside = true; } // test boundary of z-axis @@ -687,9 +793,9 @@ G4int G4TwistedTrapSide::GetAreaCode(const G4ThreeVector &xx, // boundary of y-axis - if (yprime < fAxisMin[yaxis] ) { + if (yprime < fYAxisMin ) { areacode |= (sAxis0 & (sAxisY | sAxisMin)) | sBoundary; - } else if (yprime > fAxisMax[yaxis]) { + } else if (yprime > fYAxisMax) { areacode |= (sAxis0 & (sAxisY | sAxisMax)) | sBoundary; } @@ -712,7 +818,7 @@ G4int G4TwistedTrapSide::GetAreaCode(const G4ThreeVector &xx, } return areacode; } else { - G4Exception("G4TwistedTrapSide::GetAreaCode()", + G4Exception("G4TwistedTrapBoxSide::GetAreaCode()", "NotImplemented", FatalException, "Feature NOT implemented !"); } @@ -722,7 +828,7 @@ G4int G4TwistedTrapSide::GetAreaCode(const G4ThreeVector &xx, //===================================================================== //* SetCorners() ------------------------------------------------------ -void G4TwistedTrapSide::SetCorners() +void G4TwistedTrapBoxSide::SetCorners() { // Set Corner points in local coodinate. @@ -730,40 +836,44 @@ void G4TwistedTrapSide::SetCorners() if (fAxis[0] == kYAxis && fAxis[1] == kZAxis) { G4double x, y, z; - G4double a1cos = fDx1 * std::cos(fPhiTwist/2) ; - G4double a1sin = fDx1 * std::sin(fPhiTwist/2) ; - G4double a2cos = fDx2 * std::cos(fPhiTwist/2) ; - G4double a2sin = fDx2 * std::sin(fPhiTwist/2) ; - G4double bcos = fDy * std::cos(fPhiTwist/2) ; - G4double bsin = fDy * std::sin(fPhiTwist/2) ; + G4double CosPhi = std::cos(fPhiTwist/2) ; + G4double SinPhi = std::sin(fPhiTwist/2) ; // corner of Axis0min and Axis1min - x = a1cos - bsin ; - y = -a1sin - bcos ; + + x = (-fdeltaX/2. + fDx1 + fDy1*fTAlph)*CosPhi - ((fdeltaY + 2*fDy1)*SinPhi)/2. ; + y = (-((fdeltaY + 2*fDy1)*CosPhi) + (fdeltaX - 2*(fDx1 + fDy1*fTAlph))*SinPhi)/2. ; z = -fDz ; + SetCorner(sC0Min1Min, x, y, z); - + // corner of Axis0max and Axis1min - x = a2cos + bsin ; - y = -a2sin + bcos ; + + x = (-fdeltaX/2. + fDx1 - fDy1*fTAlph)*CosPhi - ((fdeltaY - 2*fDy1)*SinPhi)/2. ; + y = (-fdeltaY/2. + fDy1)*CosPhi + ((fdeltaX - 2*fDx1 + 2*fDy1*fTAlph)*SinPhi)/2. ; z = -fDz ; + SetCorner(sC0Max1Min, x, y, z); // corner of Axis0max and Axis1max - x = a2cos - bsin ; - y = a2sin + bcos ; - z = fDz ; + + x = (fdeltaX/2. + fDx2 - fDy2*fTAlph)*CosPhi - ((fdeltaY + 2*fDy2)*SinPhi)/ 2. ; + y = (fdeltaY/2. + fDy2)*CosPhi + (fdeltaX/2. + fDx2 - fDy2*fTAlph)*SinPhi ; + z = fDz ; + SetCorner(sC0Max1Max, x, y, z); // corner of Axis0min and Axis1max - x = a1cos + bsin ; - y = a1sin - bcos ; + + x = (fdeltaX/2. + fDx2 + fDy2*fTAlph)*CosPhi - ((fdeltaY - 2*fDy2)*SinPhi)/2. ; + y = ((fdeltaY - 2*fDy2)*CosPhi)/2. + (fdeltaX/2. + fDx2 + fDy2*fTAlph)*SinPhi ; z = fDz ; + SetCorner(sC0Min1Max, x, y, z); } else { - G4Exception("G4TwistedTrapSide::SetCorners()", + G4Exception("G4TwistedTrapBoxSide::SetCorners()", "NotImplemented", FatalException, "Method NOT implemented !"); } @@ -772,7 +882,7 @@ void G4TwistedTrapSide::SetCorners() //===================================================================== //* SetBoundaries() --------------------------------------------------- -void G4TwistedTrapSide::SetBoundaries() +void G4TwistedTrapBoxSide::SetBoundaries() { // Set direction-unit vector of boundary-lines in local coodinate. // @@ -807,7 +917,7 @@ void G4TwistedTrapSide::SetBoundaries() } else { - G4Exception("G4TwistedTrapSide::SetCorners()", + G4Exception("G4TwistedTrapBoxSide::SetCorners()", "NotImplemented", FatalException, "Feature NOT implemented !"); } @@ -816,46 +926,24 @@ void G4TwistedTrapSide::SetBoundaries() -void G4TwistedTrapSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) +void G4TwistedTrapBoxSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) { // find closest point XX on surface for a given point p // X0 is a point on the surface, d is the direction ( both for a fixed z = pz) -#if 0 - phi = p.z()/(2*fDz)*fPhiTwist ; - G4ThreeVector X0 ( Xcoef(0.) * std::cos(phi), Xcoef(0.) * std::sin(phi) , p.z() ) ; // basis with u=0 - G4ThreeVector dvec ( - (fDx1-fDx2)/(2*fDy) * std::cos(phi) - std::sin(phi), - std::cos(phi) - (fDx1-fDx2)/(2*fDy)*std::sin(phi) , - 0. ) ; // direction vector - - G4ThreeVector xx ; // the intersection point on the line - - DistanceToLine(p ,X0 , dvec , xx) ; - - u = ( xx - X0 ).mag() / dvec.mag() ; // X0 is choosen such that u = 0 - -#endif - // phi is given by the z coordinate of p phi = p.z()/(2*fDz)*fPhiTwist ; - G4double cphi = std::cos(phi) ; - G4double sphi = std::sin(phi) ; - G4double c0 = (fDx2-fDx1)/(2*fDy) ; + u = (-4*fdeltaY*phi + fTAlph*(2*(fDx1 + fDx2)*fPhiTwist + 4*(-fDx1 + fDx2 + fdeltaX)*phi) + + 4*fPhiTwist*(-(fTAlph*p.x()) + p.y())*std::cos(phi) - 4*fPhiTwist*(p.x() + fTAlph*p.y())*std::sin(phi))/ + (4.*fPhiTwist*(1 + fTAlph*fTAlph )) ; - // this formula is the analytical form of the procedure used above. - // this is not faster, but removes some spourious events. - // See Mathematica notebook: dirTrap.m - - u = ( (fDx1*fDx1-fDx2*fDx2)/(4*fDy) + c0*cphi*p.x() + c0*sphi*p.y() + - ( p.y() * cphi - p.x() * sphi ) ) / - ( ( c0*cphi - sphi)*(c0*cphi - sphi) + ( cphi + c0*sphi )*(cphi + c0*sphi )); } -G4ThreeVector G4TwistedTrapSide::ProjectPoint(const G4ThreeVector &p, +G4ThreeVector G4TwistedTrapBoxSide::ProjectPoint(const G4ThreeVector &p, G4bool isglobal) { // Get Rho at p.z() on Hyperbolic Surface. diff --git a/source/geometry/solids/specific/src/G4TwistedTrapParallelSide.cc b/source/geometry/solids/specific/src/G4TwistedTrapParallelSide.cc new file mode 100644 index 0000000000..adaf49b14d --- /dev/null +++ b/source/geometry/solids/specific/src/G4TwistedTrapParallelSide.cc @@ -0,0 +1,976 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4TwistedTrapParallelSide.cc,v +// GEANT4 tag $Name: geant4-07-01 $ +// +// +// -------------------------------------------------------------------- +// GEANT 4 class source file +// +// +// G4TwistedTrapParallelSide.cc +// +// Author: +// +// Oliver Link (Oliver.Link@cern.ch) +// +// -------------------------------------------------------------------- + +#include + +#include "G4TwistedTrapParallelSide.hh" +#include "G4JTPolynomialSolver.hh" + +//===================================================================== +//* constructors ------------------------------------------------------ + +G4TwistedTrapParallelSide::G4TwistedTrapParallelSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azimutal angles. + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph, // tilt angle at +pDz + G4double AngleSide // parity + ) : G4VSurface(name) +{ + + fAxis[0] = kXAxis; // in local coordinate system + fAxis[1] = kZAxis; + fAxisMin[0] = -kInfinity ; // X Axis boundary + fAxisMax[0] = kInfinity ; // depends on z !! + fAxisMin[1] = -pDz ; // Z Axis boundary + fAxisMax[1] = pDz ; + + fDx1 = pDx1 ; + fDx2 = pDx2 ; + fDx3 = pDx3 ; + fDx4 = pDx4 ; + + fDy1 = pDy1 ; + fDy2 = pDy2 ; + + fDz = pDz ; + + fAlph = pAlph ; + fTAlph = std::tan(fAlph) ; + + fTheta = pTheta ; + fPhi = pPhi ; + + // precalculate frequently used parameters + + fDy2plus1 = fDy2 + fDy1 ; + fDy2minus1 = fDy2 - fDy1 ; + + fa1md1 = 2*fDx2 - 2*fDx1 ; + fa2md2 = 2*fDx4 - 2*fDx3 ; + + fPhiTwist = PhiTwist ; // dphi + fAngleSide = AngleSide ; // 0,90,180,270 deg + + fdeltaX = 2 * fDz * std::tan(fTheta) * std::cos(fPhi) ; // dx in surface equation + fdeltaY = 2 * fDz * std::tan(fTheta) * std::sin(fPhi) ; // dy in surface equation + + fRot.rotateZ( AngleSide ) ; + + fTrans.set(0, 0, 0); // No Translation + fIsValidNorm = false; + + SetCorners() ; + SetBoundaries() ; + +} + + +//===================================================================== +//* destructor -------------------------------------------------------- + +G4TwistedTrapParallelSide::~G4TwistedTrapParallelSide() +{ +} + +//===================================================================== +//* GetNormal --------------------------------------------------------- + +G4ThreeVector G4TwistedTrapParallelSide::GetNormal(const G4ThreeVector &tmpxx, + G4bool isGlobal) +{ + // GetNormal returns a normal vector at a surface (or very close + // to surface) point at tmpxx. + // If isGlobal=true, it returns the normal in global coordinate. + // + + G4ThreeVector xx; + if (isGlobal) { + xx = ComputeLocalPoint(tmpxx); + if ((xx - fCurrentNormal.p).mag() < 0.5 * kCarTolerance) { + return ComputeGlobalDirection(fCurrentNormal.normal); + } + } else { + xx = tmpxx; + if (xx == fCurrentNormal.p) { + return fCurrentNormal.normal; + } + } + + G4double phi ; + G4double u ; + + GetPhiUAtX(xx,phi,u) ; // phi,u for point xx close to surface + + G4ThreeVector normal = NormAng(phi,u) ; // the normal vector at phi,u + +#ifdef G4SPECSDEBUG + G4cout << "normal vector = " << normal << G4endl ; + G4cout << "phi = " << phi << " , u = " << u << G4endl ; +#endif + + // normal = normal/normal.mag() ; + + if (isGlobal) { + fCurrentNormal.normal = ComputeGlobalDirection(normal.unit()); + } else { + fCurrentNormal.normal = normal.unit(); + } + return fCurrentNormal.normal; +} + +//===================================================================== +//* DistanceToSurface ------------------------------------------------- + +G4int G4TwistedTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, + const G4ThreeVector &gv, + G4ThreeVector gxx[], + G4double distance[], + G4int areacode[], + G4bool isvalid[], + EValidate validate) +{ + + static const G4double ctol = 0.5 * kCarTolerance; + static const G4double pihalf = pi/2 ; + + G4bool IsParallel = false ; + G4bool IsConverged = false ; + + G4int nxx = 0 ; // number of physical solutions + + fCurStatWithV.ResetfDone(validate, &gp, &gv); + + if (fCurStatWithV.IsDone()) { + G4int i; + for (i=0; i fXAxisMax - ctol) { + areacode |= (sAxis0 & (sAxisX | sAxisMax)) | sBoundary; + if (yprime >= fXAxisMax + ctol) isoutside = true; + } + + // test boundary of z-axis + + if (xx.z() < fAxisMin[zaxis] + ctol) { + areacode |= (sAxis1 & (sAxisZ | sAxisMin)); + + if (areacode & sBoundary) areacode |= sCorner; // xx is on the corner. + else areacode |= sBoundary; + if (xx.z() <= fAxisMin[zaxis] - ctol) isoutside = true; + + } else if (xx.z() > fAxisMax[zaxis] - ctol) { + areacode |= (sAxis1 & (sAxisZ | sAxisMax)); + + if (areacode & sBoundary) areacode |= sCorner; // xx is on the corner. + else areacode |= sBoundary; + if (xx.z() >= fAxisMax[zaxis] + ctol) isoutside = true; + } + + // if isoutside = true, clear inside bit. + // if not on boundary, add axis information. + + if (isoutside) { + G4int tmpareacode = areacode & (~sInside); + areacode = tmpareacode; + } else if ((areacode & sBoundary) != sBoundary) { + areacode |= (sAxis0 & sAxisX) | (sAxis1 & sAxisZ); + } + + } else { + + // boundary of y-axis + + if (yprime < fXAxisMin ) { + areacode |= (sAxis0 & (sAxisX | sAxisMin)) | sBoundary; + } else if (yprime > fXAxisMax) { + areacode |= (sAxis0 & (sAxisX | sAxisMax)) | sBoundary; + } + + // boundary of z-axis + + if (xx.z() < fAxisMin[zaxis]) { + areacode |= (sAxis1 & (sAxisZ | sAxisMin)); + if (areacode & sBoundary) areacode |= sCorner; // xx is on the corner. + else areacode |= sBoundary; + + } else if (xx.z() > fAxisMax[zaxis]) { + areacode |= (sAxis1 & (sAxisZ | sAxisMax)) ; + if (areacode & sBoundary) areacode |= sCorner; // xx is on the corner. + else areacode |= sBoundary; + } + + if ((areacode & sBoundary) != sBoundary) { + areacode |= (sAxis0 & sAxisX) | (sAxis1 & sAxisZ); + } + } + return areacode; + } else { + G4Exception("G4TwistedTrapParallelSide::GetAreaCode()", + "NotImplemented", FatalException, + "Feature NOT implemented !"); + } + return areacode; +} + +//===================================================================== +//* SetCorners() ------------------------------------------------------ + +void G4TwistedTrapParallelSide::SetCorners() +{ + + // Set Corner points in local coodinate. + + if (fAxis[0] == kXAxis && fAxis[1] == kZAxis) { + + G4double x, y, z; + G4double CosPhi = std::cos(fPhiTwist/2) ; + G4double SinPhi = std::sin(fPhiTwist/2) ; + + // corner of Axis0min and Axis1min + + x = ((2*fDy1 - fdeltaY)*SinPhi - CosPhi*(2*fDx2 + fdeltaX + 2*fDy1*fTAlph))/2. ; + y = ((2*fDy1 - fdeltaY)*CosPhi + SinPhi*(2*fDx2 + fdeltaX + 2*fDy1*fTAlph))/2. ; + z = -fDz ; + + SetCorner(sC0Min1Min, x, y, z); + + // corner of Axis0max and Axis1min + + x = ((2*fDy1 - fdeltaY)*SinPhi + CosPhi*( 2*fDx2 - fdeltaX - 2*fDy1*fTAlph))/2. ; + y = ((2*fDy1 - fdeltaY)*CosPhi + SinPhi*(-2*fDx2 + fdeltaX + 2*fDy1*fTAlph))/2. ; + z = -fDz ; + + SetCorner(sC0Max1Min, x, y, z); + + // corner of Axis0max and Axis1max + x = (- (2*fDy2 + fdeltaY)*SinPhi + CosPhi*(2*fDx4 + fdeltaX - 2*fDy2*fTAlph))/2. ; + y = ( (2*fDy2 + fdeltaY)*CosPhi + SinPhi*(2*fDx4 + fdeltaX - 2*fDy2*fTAlph))/2. ; + z = fDz ; + + SetCorner(sC0Max1Max, x, y, z); + + // corner of Axis0min and Axis1max + x = -((2*fDy2 + fdeltaY)*SinPhi + CosPhi*(2*fDx4 - fdeltaX + 2*fDy2*fTAlph))/2. ; + y = ((2*fDy2 + fdeltaY)*CosPhi - SinPhi*(2*fDx4 - fdeltaX + 2*fDy2*fTAlph))/2. ; + z = fDz ; + + SetCorner(sC0Min1Max, x, y, z); + + } else { + + G4Exception("G4TwistedTrapParallelSide::SetCorners()", + "NotImplemented", FatalException, + "Method NOT implemented !"); + } +} + +//===================================================================== +//* SetBoundaries() --------------------------------------------------- + +void G4TwistedTrapParallelSide::SetBoundaries() +{ + // Set direction-unit vector of boundary-lines in local coodinate. + // + + G4ThreeVector direction; + + if (fAxis[0] == kXAxis && fAxis[1] == kZAxis) { + + // sAxis0 & sAxisMin + direction = GetCorner(sC0Min1Max) - GetCorner(sC0Min1Min); + direction = direction.unit(); + SetBoundary(sAxis0 & (sAxisX | sAxisMin), direction, + GetCorner(sC0Min1Min), sAxisZ) ; + + // sAxis0 & sAxisMax + direction = GetCorner(sC0Max1Max) - GetCorner(sC0Max1Min); + direction = direction.unit(); + SetBoundary(sAxis0 & (sAxisX | sAxisMax), direction, + GetCorner(sC0Max1Min), sAxisZ); + + // sAxis1 & sAxisMin + direction = GetCorner(sC0Max1Min) - GetCorner(sC0Min1Min); + direction = direction.unit(); + SetBoundary(sAxis1 & (sAxisZ | sAxisMin), direction, + GetCorner(sC0Min1Min), sAxisX); + + // sAxis1 & sAxisMax + direction = GetCorner(sC0Max1Max) - GetCorner(sC0Min1Max); + direction = direction.unit(); + SetBoundary(sAxis1 & (sAxisZ | sAxisMax), direction, + GetCorner(sC0Min1Max), sAxisX); + + } else { + + G4Exception("G4TwistedTrapParallelSide::SetCorners()", + "NotImplemented", FatalException, + "Feature NOT implemented !"); + } + +} + + + +void G4TwistedTrapParallelSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) +{ + // find closest point XX on surface for a given point p + // X0 is a point on the surface, d is the direction ( both for a fixed z = pz) + + // phi is given by the z coordinate of p + + phi = p.z()/(2*fDz)*fPhiTwist ; + + u = -(fdeltaX*phi)/fPhiTwist + p.x()*std::cos(phi) + p.y()*std::sin(phi) ; +} + + +G4ThreeVector G4TwistedTrapParallelSide::ProjectPoint(const G4ThreeVector &p, + G4bool isglobal) +{ + // Get Rho at p.z() on Hyperbolic Surface. + G4ThreeVector tmpp; + if (isglobal) { + tmpp = fRot.inverse()*p - fTrans; + } else { + tmpp = p; + } + + G4double phi ; + G4double u ; + + GetPhiUAtX( tmpp, phi, u ) ; // calculate (phi, u) for a point p close the surface + + G4ThreeVector xx = SurfacePoint(phi,u) ; // transform back to cartesian coordinates + + if (isglobal) { + return (fRot * xx + fTrans); + } else { + return xx; + } +} + + diff --git a/source/geometry/solids/specific/src/G4TwistedTrd.cc b/source/geometry/solids/specific/src/G4TwistedTrd.cc new file mode 100644 index 0000000000..a07cd6ab50 --- /dev/null +++ b/source/geometry/solids/specific/src/G4TwistedTrd.cc @@ -0,0 +1,100 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4TwistedTrd.cc,v 1.2 2005/04/04 11:56:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +// +// -------------------------------------------------------------------- +// GEANT 4 class source file +// +// +// G4TwistedTrd.cc +// +// Author: +// +// Oliver Link (Oliver.Link@cern.ch) +// +// History: +// +// 18/03/2005 - Created. +// +// -------------------------------------------------------------------- + +#include "G4TwistedTrd.hh" +#include "G4Polyhedron.hh" + +G4TwistedTrd::G4TwistedTrd( const G4String& pName, + G4double pDx1, + G4double pDx2, + G4double pDy1, + G4double pDy2, + G4double pDz, + G4double pPhiTwist ) + : G4VTwistedFaceted( pName, pPhiTwist,pDz,0.,0., + pDy1, pDx1, pDx1, pDy2, pDx2, pDx2,0.) +{ +} + +G4TwistedTrd::~G4TwistedTrd() +{ +} + +std::ostream& G4TwistedTrd::StreamInfo(std::ostream& os) const +{ + // + // Stream object contents to an output stream + // + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4TwistedTrd\n" + << " Parameters: \n" + << " pDx1 = " << GetX1HalfLength()/cm << " cm" << G4endl + << " pDx2 = " << GetX2HalfLength()/cm << " cm" << G4endl + << " pDy1 = " << GetY1HalfLength()/cm << " cm" << G4endl + << " pDy2 = " << GetY2HalfLength()/cm << " cm" << G4endl + << " pDz = " << GetZHalfLength()/cm << " cm" << G4endl + << " pPhiTwist = " << GetPhiTwist()/degree << " deg" << G4endl + << "-----------------------------------------------------------\n"; + + return os; +} + +//===================================================================== +//* CreatePolyhedron -------------------------------------------------- + +G4Polyhedron* G4TwistedTrd::CreatePolyhedron () const +{ + // Returns simple Trd for now !! + // + return new G4PolyhedronTrd2 (GetDx1(),GetDx3(),GetDy1(),GetDy2(),GetDz()); +} + +//===================================================================== +//* GetEntityType ----------------------------------------------------- + +G4GeometryType G4TwistedTrd::GetEntityType() const +{ + return G4String("G4TwistedTrd"); +} diff --git a/source/geometry/solids/specific/src/G4TwistedTubs.cc b/source/geometry/solids/specific/src/G4TwistedTubs.cc index f823bcd60e..f8a63b83f5 100644 --- a/source/geometry/solids/specific/src/G4TwistedTubs.cc +++ b/source/geometry/solids/specific/src/G4TwistedTubs.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TwistedTubs.cc,v 1.10 2004/12/02 09:31:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4TwistedTubs.cc,v 1.12 2005/04/04 11:56:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -68,7 +68,7 @@ G4TwistedTubs::G4TwistedTubs(const G4String &pname, : G4VSolid(pname), fDPhi(dphi), fLowerEndcap(0), fUpperEndcap(0), fLatterTwisted(0), fFormerTwisted(0), fInnerHype(0), fOuterHype(0), - fCubicVolume(0.) + fCubicVolume(0.), fpPolyhedron(0) { if (endinnerrad < DBL_MIN) { G4Exception("G4TwistedTubs::G4TwistedTubs()", "InvalidSetup", @@ -88,8 +88,6 @@ G4TwistedTubs::G4TwistedTubs(const G4String &pname, // temporary treatment!! SetFields(twistedangle, innerrad, outerrad, -halfzlen, halfzlen); CreateSurfaces(); - - } G4TwistedTubs::G4TwistedTubs(const G4String &pname, @@ -99,9 +97,10 @@ G4TwistedTubs::G4TwistedTubs(const G4String &pname, G4double halfzlen, G4int nseg, G4double totphi) - :G4VSolid(pname), - fLowerEndcap(0), fUpperEndcap(0), fLatterTwisted(0), - fFormerTwisted(0), fInnerHype(0), fOuterHype(0) + : G4VSolid(pname), + fLowerEndcap(0), fUpperEndcap(0), fLatterTwisted(0), + fFormerTwisted(0), fInnerHype(0), fOuterHype(0), + fCubicVolume(0.), fpPolyhedron(0) { if (!nseg) G4cerr << "ERROR - G4TwistedTubs::G4TwistedTubs()" << G4endl @@ -136,7 +135,8 @@ G4TwistedTubs::G4TwistedTubs(const G4String &pname, G4double dphi) : G4VSolid(pname), fDPhi(dphi), fLowerEndcap(0), fUpperEndcap(0), fLatterTwisted(0), - fFormerTwisted(0), fInnerHype(0), fOuterHype(0) + fFormerTwisted(0), fInnerHype(0), fOuterHype(0), + fCubicVolume(0.), fpPolyhedron(0) { if (innerrad < DBL_MIN) { G4Exception("G4TwistedTubs::G4TwistedTubs()", "InvalidSetup", @@ -155,9 +155,10 @@ G4TwistedTubs::G4TwistedTubs(const G4String &pname, G4double positiveEndz, G4int nseg, G4double totphi) - :G4VSolid(pname), - fLowerEndcap(0), fUpperEndcap(0), fLatterTwisted(0), - fFormerTwisted(0), fInnerHype(0), fOuterHype(0) + : G4VSolid(pname), + fLowerEndcap(0), fUpperEndcap(0), fLatterTwisted(0), + fFormerTwisted(0), fInnerHype(0), fOuterHype(0), + fCubicVolume(0.), fpPolyhedron(0) { if (!nseg) G4cerr << "ERROR - G4TwistedTubs::G4TwistedTubs()" << G4endl << " Invalid nseg. nseg = " << nseg << G4endl; @@ -182,6 +183,7 @@ G4TwistedTubs::~G4TwistedTubs() if (fFormerTwisted) delete fFormerTwisted; if (fInnerHype) delete fInnerHype; if (fOuterHype) delete fOuterHype; + if (fpPolyhedron) delete fpPolyhedron; } //===================================================================== @@ -910,7 +912,7 @@ std::ostream& G4TwistedTubs::StreamInfo(std::ostream& os) const void G4TwistedTubs::DescribeYourselfTo (G4VGraphicsScene& scene) const { - scene.AddThis (*this); + scene.AddSolid (*this); } //===================================================================== @@ -930,8 +932,10 @@ G4VisExtent G4TwistedTubs::GetExtent() const G4Polyhedron* G4TwistedTubs::CreatePolyhedron () const { - // return new G4PolyhedronHype (fRMin, fRMax, fDz, fSPhi, fDPhi); - return 0; + // Tube for now!!! + // + return new G4PolyhedronTubs (fInnerRadius, fOuterRadius, fZHalfLength, + fEndPhi[0], fDPhi); } //===================================================================== @@ -945,6 +949,21 @@ G4NURBS* G4TwistedTubs::CreateNURBS () const // Tube for now!!! } +//===================================================================== +//* GetPolyhedron ----------------------------------------------------- + +G4Polyhedron* G4TwistedTubs::GetPolyhedron () const +{ + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } + return fpPolyhedron; +} + //===================================================================== //* CreateSurfaces ---------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4VCSGfaceted.cc b/source/geometry/solids/specific/src/G4VCSGfaceted.cc index 4350cff060..23a48a5050 100644 --- a/source/geometry/solids/specific/src/G4VCSGfaceted.cc +++ b/source/geometry/solids/specific/src/G4VCSGfaceted.cc @@ -26,8 +26,8 @@ // based on the Program) you indicate your acceptance of this statement, // and all its terms. // -// $Id: G4VCSGfaceted.cc,v 1.14 2004/10/13 13:34:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VCSGfaceted.cc,v 1.16 2005/03/23 17:16:31 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -71,6 +71,7 @@ G4VCSGfaceted::G4VCSGfaceted( G4String name ) G4VCSGfaceted::~G4VCSGfaceted() { DeleteStuff(); + delete fpPolyhedron; } @@ -363,7 +364,7 @@ G4double G4VCSGfaceted::DistanceTo( const G4ThreeVector &p, // void G4VCSGfaceted::DescribeYourselfTo( G4VGraphicsScene& scene ) const { - scene.AddThis( *this ); + scene.AddSolid( *this ); } @@ -475,9 +476,12 @@ G4double G4VCSGfaceted::GetCubicVolume() G4Polyhedron* G4VCSGfaceted::GetPolyhedron () const { - if (!fpPolyhedron) - { - fpPolyhedron = CreatePolyhedron(); - } + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } return fpPolyhedron; } diff --git a/source/geometry/solids/specific/src/G4VSurface.cc b/source/geometry/solids/specific/src/G4VSurface.cc index 4474323e4d..c112abff4d 100644 --- a/source/geometry/solids/specific/src/G4VSurface.cc +++ b/source/geometry/solids/specific/src/G4VSurface.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSurface.cc,v 1.10 2004/12/08 10:20:40 link Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VSurface.cc,v 1.14 2005/06/30 06:35:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -274,10 +274,17 @@ G4double G4VSurface::DistanceToIn(const G4ThreeVector &gp, G4cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << G4endl; #endif - G4ThreeVector gxx[4]; - G4double distance[4] = {kInfinity, kInfinity, kInfinity, kInfinity}; - G4int areacode[4] = {sOutside, sOutside, sOutside, sOutside}; - G4bool isvalid[4] = {false, false, false, false}; + G4ThreeVector gxx[G4VSURFACENXX]; + G4double distance[G4VSURFACENXX] ; + G4int areacode[G4VSURFACENXX] ; + G4bool isvalid[G4VSURFACENXX] ; + + for (G4int i = 0 ; iDistanceToSurface( gp, gv, tmpgxx, tmpdist, tmpareacode, tmpisvalid, @@ -448,17 +462,24 @@ G4double G4VSurface::DistanceToOut(const G4ThreeVector &gp, G4cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << G4endl; #endif - G4double distance[4] = {kInfinity, kInfinity, kInfinity, kInfinity}; - G4int areacode[4] = {sOutside, sOutside, sOutside, sOutside}; - G4bool isvalid [4] = {false, false, false, false}; - G4ThreeVector gxx[4]; - G4int nxx; + G4ThreeVector gxx[G4VSURFACENXX]; + G4double distance[G4VSURFACENXX] ; + G4int areacode[G4VSURFACENXX] ; + G4bool isvalid[G4VSURFACENXX] ; + + for (G4int i = 0 ; i fDx2 ? fDx1 : fDx2 ) ; + fDxUp = ( fDx3 > fDx4 ? fDx3 : fDx4 ) ; + fDx = ( fDxUp > fDxDown ? fDxUp : fDxDown ) ; + fDy = ( fDy1 > fDy2 ? fDy1 : fDy2 ) ; + + // planarity check + // + if ( fDx1 != fDx2 && fDx3 != fDx4 ) + { + pDytmp = fDy1 * ( fDx3 - fDx4 ) / ( fDx1 - fDx2 ) ; + if ( std::fabs(pDytmp - fDy2) > kCarTolerance ) + { + G4cerr << "ERROR - G4VTwistedFaceted::G4VTwistedFaceted(): " + << GetName() << G4endl + << " Not planar ! - " << G4endl + << "fDy2 is " << fDy2 << " but should be " + << pDytmp << "." << G4endl ; + G4Exception("G4VTwistedFaceted::G4VTwistedFaceted()", "InvalidSetup", + FatalException, "Not planar surface in untwisted Trapezoid."); + } + } + +#ifdef G4SPECSDEBUG + if ( fDx1 == fDx2 && fDx3 == fDx4 ) + { + G4cout << "Trapezoid is a box" << G4endl ; + } + +#endif + + if ( ( fDx1 == fDx2 && fDx3 != fDx4 ) || ( fDx1 != fDx2 && fDx3 == fDx4 ) ) + { + G4cerr << "ERROR - G4VTwistedFaceted::G4VTwistedFaceted(): " + << GetName() << G4endl + << " Not planar ! - " << G4endl + << "One endcap is rectengular, the other is a trapezoid." << G4endl + << "For planarity reasons they have to be rectangles or trapezoids " + << G4endl + << "on both sides." + << G4endl ; + G4Exception("G4VTwistedFaceted::G4VTwistedFaceted()", "InvalidSetup", + FatalException, "Not planar surface in untwisted Trapezoid."); + } + + // twist angle + // + fPhiTwist = PhiTwist ; + + // tilt angle + // + fAlph = - pAlph ; // important: definition of angle alpha + // is different in equations !!! + fTAlph = std::tan(fAlph) ; + + fTheta = pTheta ; + fPhi = pPhi ; + + // dx in surface equation + // + fdeltaX = 2 * fDz * std::tan(fTheta) * std::cos(fPhi) ; + + // dy in surface equation + // + fdeltaY = 2 * fDz * std::tan(fTheta) * std::sin(fPhi) ; + + if ( ! ( ( fDx1 > 2*kCarTolerance) + && ( fDx2 > 2*kCarTolerance) + && ( fDx3 > 2*kCarTolerance) + && ( fDx4 > 2*kCarTolerance) + && ( fDy1 > 2*kCarTolerance) + && ( fDy2 > 2*kCarTolerance) + && ( fDz > 2*kCarTolerance) + && ( std::fabs(fPhiTwist) > 2*kAngTolerance ) + && ( std::fabs(fPhiTwist) < pi/2 ) + && ( std::fabs(fAlph) < pi/2 ) + && ( fTheta < pi/2 && fTheta >= 0 ) ) + ) + { + G4cerr << "ERROR - G4VTwistedFaceted()::G4VTwistedFaceted(): " + << GetName() << G4endl + << " Dimensions too small or too big! - " << G4endl + << "fDx 1-4 = " << fDx1/cm << ", " << fDx2/cm << ", " + << fDx3/cm << ", " << fDx4/cm << " cm" << G4endl + << "fDy 1-2 = " << fDy1/cm << ", " << fDy2/cm << ", " + << " cm" << G4endl + << "fDz = " << fDz/cm << " cm" << G4endl + << " twistangle " << fPhiTwist/deg << " deg" << G4endl + << " phi,theta = " << fPhi/deg << ", " << fTheta/deg + << " deg" << G4endl ; + G4Exception("G4TwistedTrap::G4VTwistedFaceted()", + "InvalidSetup", FatalException, + "Invalid dimensions. Too small, or twist angle too big."); + } + CreateSurfaces(); + fCubicVolume = 2 * fDz * ( ( fDx1 + fDx2 ) * fDy1 + ( fDx3 + fDx4 ) * fDy2 ); +} + + +//===================================================================== +//* destructor -------------------------------------------------------- + +G4VTwistedFaceted::~G4VTwistedFaceted() +{ + if (fLowerEndcap) delete fLowerEndcap ; + if (fUpperEndcap) delete fUpperEndcap ; + + if (fSide0) delete fSide0 ; + if (fSide90) delete fSide90 ; + if (fSide180) delete fSide180 ; + if (fSide270) delete fSide270 ; + if (fpPolyhedron) delete fpPolyhedron; +} + +//===================================================================== +//* ComputeDimensions ------------------------------------------------- + +void G4VTwistedFaceted::ComputeDimensions(G4VPVParameterisation* , + const G4int , + const G4VPhysicalVolume* ) +{ + G4Exception("G4VTwistedFaceted::ComputeDimensions()", + "NotSupported", FatalException, + "G4VTwistedFaceted does not support Parameterisation."); +} + +//===================================================================== +//* CalculateExtent --------------------------------------------------- + +G4bool +G4VTwistedFaceted::CalculateExtent( const EAxis pAxis, + const G4VoxelLimits &pVoxelLimit, + const G4AffineTransform &pTransform, + G4double &pMin, + G4double &pMax ) const +{ + G4double maxRad = std::sqrt( fDx*fDx + fDy*fDy); + + if (!pTransform.IsRotated()) + { + // Special case handling for unrotated boxes + // Compute x/y/z mins and maxs respecting limits, with early returns + // if outside limits. Then switch() on pAxis + + G4double xoffset,xMin,xMax; + G4double yoffset,yMin,yMax; + G4double zoffset,zMin,zMax; + + xoffset = pTransform.NetTranslation().x() ; + xMin = xoffset - maxRad ; + xMax = xoffset + maxRad ; + + if (pVoxelLimit.IsXLimited()) + { + if ( xMin > pVoxelLimit.GetMaxXExtent()+kCarTolerance || + xMax < pVoxelLimit.GetMinXExtent()-kCarTolerance ) return false; + else + { + if (xMin < pVoxelLimit.GetMinXExtent()) + { + xMin = pVoxelLimit.GetMinXExtent() ; + } + if (xMax > pVoxelLimit.GetMaxXExtent()) + { + xMax = pVoxelLimit.GetMaxXExtent() ; + } + } + } + yoffset = pTransform.NetTranslation().y() ; + yMin = yoffset - maxRad ; + yMax = yoffset + maxRad ; + + if (pVoxelLimit.IsYLimited()) + { + if ( yMin > pVoxelLimit.GetMaxYExtent()+kCarTolerance || + yMax < pVoxelLimit.GetMinYExtent()-kCarTolerance ) return false; + else + { + if (yMin < pVoxelLimit.GetMinYExtent()) + { + yMin = pVoxelLimit.GetMinYExtent() ; + } + if (yMax > pVoxelLimit.GetMaxYExtent()) + { + yMax = pVoxelLimit.GetMaxYExtent() ; + } + } + } + zoffset = pTransform.NetTranslation().z() ; + zMin = zoffset - fDz ; + zMax = zoffset + fDz ; + + if (pVoxelLimit.IsZLimited()) + { + if ( zMin > pVoxelLimit.GetMaxZExtent()+kCarTolerance || + zMax < pVoxelLimit.GetMinZExtent()-kCarTolerance ) return false; + else + { + if (zMin < pVoxelLimit.GetMinZExtent()) + { + zMin = pVoxelLimit.GetMinZExtent() ; + } + if (zMax > pVoxelLimit.GetMaxZExtent()) + { + zMax = pVoxelLimit.GetMaxZExtent() ; + } + } + } + switch (pAxis) + { + case kXAxis: + pMin = xMin ; + pMax = xMax ; + break ; + case kYAxis: + pMin=yMin; + pMax=yMax; + break; + case kZAxis: + pMin=zMin; + pMax=zMax; + break; + default: + break; + } + pMin -= kCarTolerance ; + pMax += kCarTolerance ; + + return true; + } + else // General rotated case - create and clip mesh to boundaries + { + G4bool existsAfterClip = false ; + G4ThreeVectorList* vertices ; + + pMin = +kInfinity ; + pMax = -kInfinity ; + + // Calculate rotated vertex coordinates + + vertices = CreateRotatedVertices(pTransform) ; + ClipCrossSection(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; + ClipCrossSection(vertices,4,pVoxelLimit,pAxis,pMin,pMax) ; + ClipBetweenSections(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; + + if (pVoxelLimit.IsLimited(pAxis) == false) + { + if ( pMin != kInfinity || pMax != -kInfinity ) + { + existsAfterClip = true ; + + // Add 2*tolerance to avoid precision troubles + + pMin -= kCarTolerance; + pMax += kCarTolerance; + } + } + else + { + G4ThreeVector clipCentre( + ( pVoxelLimit.GetMinXExtent()+pVoxelLimit.GetMaxXExtent())*0.5, + ( pVoxelLimit.GetMinYExtent()+pVoxelLimit.GetMaxYExtent())*0.5, + ( pVoxelLimit.GetMinZExtent()+pVoxelLimit.GetMaxZExtent())*0.5 ); + + if ( pMin != kInfinity || pMax != -kInfinity ) + { + existsAfterClip = true ; + + // Check to see if endpoints are in the solid + + clipCentre(pAxis) = pVoxelLimit.GetMinExtent(pAxis); + + if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) + != kOutside) + { + pMin = pVoxelLimit.GetMinExtent(pAxis); + } + else + { + pMin -= kCarTolerance; + } + clipCentre(pAxis) = pVoxelLimit.GetMaxExtent(pAxis); + + if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) + != kOutside) + { + pMax = pVoxelLimit.GetMaxExtent(pAxis); + } + else + { + pMax += kCarTolerance; + } + } + + // Check for case where completely enveloping clipping volume + // If point inside then we are confident that the solid completely + // envelopes the clipping volume. Hence set min/max extents according + // to clipping volume extents along the specified axis. + + else if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) + != kOutside) + { + existsAfterClip = true ; + pMin = pVoxelLimit.GetMinExtent(pAxis) ; + pMax = pVoxelLimit.GetMaxExtent(pAxis) ; + } + } + delete vertices; + return existsAfterClip; + } + + +} + +G4ThreeVectorList* G4VTwistedFaceted:: +CreateRotatedVertices(const G4AffineTransform& pTransform) const +{ + + G4ThreeVectorList* vertices = new G4ThreeVectorList(); + vertices->reserve(8); + + if (vertices) + { + + G4double maxRad = std::sqrt( fDx*fDx + fDy*fDy); + + G4ThreeVector vertex0(-maxRad,-maxRad,-fDz) ; + G4ThreeVector vertex1(maxRad,-maxRad,-fDz) ; + G4ThreeVector vertex2(maxRad,maxRad,-fDz) ; + G4ThreeVector vertex3(-maxRad,maxRad,-fDz) ; + G4ThreeVector vertex4(-maxRad,-maxRad,fDz) ; + G4ThreeVector vertex5(maxRad,-maxRad,fDz) ; + G4ThreeVector vertex6(maxRad,maxRad,fDz) ; + G4ThreeVector vertex7(-maxRad,maxRad,fDz) ; + + vertices->push_back(pTransform.TransformPoint(vertex0)); + vertices->push_back(pTransform.TransformPoint(vertex1)); + vertices->push_back(pTransform.TransformPoint(vertex2)); + vertices->push_back(pTransform.TransformPoint(vertex3)); + vertices->push_back(pTransform.TransformPoint(vertex4)); + vertices->push_back(pTransform.TransformPoint(vertex5)); + vertices->push_back(pTransform.TransformPoint(vertex6)); + vertices->push_back(pTransform.TransformPoint(vertex7)); + } + else + { + DumpInfo(); + G4Exception("G4VTwistedFaceted::CreateRotatedVertices()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); + } + return vertices; +} + +//===================================================================== +//* Inside ------------------------------------------------------------ + +EInside G4VTwistedFaceted::Inside(const G4ThreeVector& p) const +{ + + G4ThreeVector *tmpp; + EInside *tmpin; + if (fLastInside.p == p) { + return fLastInside.inside; + } else { + tmpp = const_cast(&(fLastInside.p)); + tmpin = const_cast(&(fLastInside.inside)); + tmpp->set(p.x(), p.y(), p.z()); + } + + *tmpin = kOutside ; + + G4double phi = p.z()/(2*fDz) * fPhiTwist ; // rotate the point to z=0 + G4double cphi = std::cos(-phi) ; + G4double sphi = std::sin(-phi) ; + G4double posx = p.x() * cphi - p.y() * sphi ; + G4double posy = p.x() * sphi + p.y() * cphi ; + G4double posz = p.z() ; + + posx += fdeltaX * ( -phi/fPhiTwist) ; // shift + posy += fdeltaY * ( -phi/fPhiTwist) ; + + G4double xMin = Xcoef(posy,phi,fTAlph) - 2*Xcoef(posy,phi,0.) ; + G4double xMax = Xcoef(posy,phi,fTAlph) ; + + G4double yMax = GetValueB(phi)/2. ; // b(phi)/2 is limit + G4double yMin = -yMax ; + +#ifdef G4SPECSDEBUG + + G4cout << "inside called: p = " << p << G4endl ; + G4cout << "fDx1 = " << fDx1 << G4endl ; + G4cout << "fDx2 = " << fDx2 << G4endl ; + G4cout << "fDx3 = " << fDx3 << G4endl ; + G4cout << "fDx4 = " << fDx4 << G4endl ; + + G4cout << "fDy1 = " << fDy1 << G4endl ; + G4cout << "fDy2 = " << fDy2 << G4endl ; + + G4cout << "fDz = " << fDz << G4endl ; + + G4cout << "Tilt angle alpha = " << fAlph << G4endl ; + G4cout << "phi,theta = " << fPhi << " , " << fTheta << G4endl ; + + G4cout << "Twist angle = " << fPhiTwist << G4endl ; + + G4cout << "posx = " << posx << G4endl ; + G4cout << "posy = " << posy << G4endl ; + G4cout << "xMin = " << xMin << G4endl ; + G4cout << "xMax = " << xMax << G4endl ; + G4cout << "yMin = " << yMin << G4endl ; + G4cout << "yMax = " << yMax << G4endl ; + +#endif + + + if ( posx <= xMax - kCarTolerance*0.5 + && posx >= xMin + kCarTolerance*0.5 ) + { + if ( posy <= yMax - kCarTolerance*0.5 + && posy >= yMin + kCarTolerance*0.5 ) + { + if (std::fabs(posz) <= fDz - kCarTolerance*0.5 ) *tmpin = kInside ; + else if (std::fabs(posz) <= fDz + kCarTolerance*0.5 ) *tmpin = kSurface ; + } + else if ( posy <= yMax + kCarTolerance*0.5 + && posy >= yMin - kCarTolerance*0.5 ) + { + if (std::fabs(posz) <= fDz + kCarTolerance*0.5 ) *tmpin = kSurface ; + } + } + else if ( posx <= xMax + kCarTolerance*0.5 + && posx >= xMin - kCarTolerance*0.5 ) + { + if ( posy <= yMax + kCarTolerance*0.5 + && posy >= yMin - kCarTolerance*0.5 ) + { + if (std::fabs(posz) <= fDz + kCarTolerance*0.5) *tmpin = kSurface ; + } + } + +#ifdef G4SPECSDEBUG + G4cout << "inside = " << fLastInside.inside << G4endl ; +#endif + + return fLastInside.inside; + +} + +//===================================================================== +//* SurfaceNormal ----------------------------------------------------- + +G4ThreeVector G4VTwistedFaceted::SurfaceNormal(const G4ThreeVector& p) const +{ + // + // return the normal unit vector to the Hyperbolical Surface at a point + // p on (or nearly on) the surface + // + // Which of the three or four surfaces are we closest to? + // + + if (fLastNormal.p == p) + { + return fLastNormal.vec; + } + + G4ThreeVector *tmpp = const_cast(&(fLastNormal.p)); + G4ThreeVector *tmpnormal = const_cast(&(fLastNormal.vec)); + G4VSurface **tmpsurface = const_cast(fLastNormal.surface); + tmpp->set(p.x(), p.y(), p.z()); + + G4double distance = kInfinity; + + G4VSurface *surfaces[6]; + + surfaces[0] = fSide0 ; + surfaces[1] = fSide90 ; + surfaces[2] = fSide180 ; + surfaces[3] = fSide270 ; + surfaces[4] = fLowerEndcap; + surfaces[5] = fUpperEndcap; + + G4ThreeVector xx; + G4ThreeVector bestxx; + G4int i; + G4int besti = -1; + for (i=0; i< 6; i++) + { + G4double tmpdistance = surfaces[i]->DistanceTo(p, xx); + if (tmpdistance < distance) + { + distance = tmpdistance; + bestxx = xx; + besti = i; + } + } + + tmpsurface[0] = surfaces[besti]; + *tmpnormal = tmpsurface[0]->GetNormal(bestxx, true); + + return fLastNormal.vec; +} + +//===================================================================== +//* DistanceToIn (p, v) ----------------------------------------------- + +G4double G4VTwistedFaceted::DistanceToIn (const G4ThreeVector& p, + const G4ThreeVector& v ) const +{ + + // DistanceToIn (p, v): + // Calculate distance to surface of shape from `outside' + // along with the v, allowing for tolerance. + // The function returns kInfinity if no intersection or + // just grazing within tolerance. + + // + // checking last value + // + + G4ThreeVector *tmpp; + G4ThreeVector *tmpv; + G4double *tmpdist; + if (fLastDistanceToInWithV.p == p && fLastDistanceToInWithV.vec == v) + { + return fLastDistanceToIn.value; + } + else + { + tmpp = const_cast(&(fLastDistanceToInWithV.p)); + tmpv = const_cast(&(fLastDistanceToInWithV.vec)); + tmpdist = const_cast(&(fLastDistanceToInWithV.value)); + tmpp->set(p.x(), p.y(), p.z()); + tmpv->set(v.x(), v.y(), v.z()); + } + + // + // Calculate DistanceToIn(p,v) + // + + EInside currentside = Inside(p); + + if (currentside == kInside) + { + } + else if (currentside == kSurface) + { + // particle is just on a boundary. + // if the particle is entering to the volume, return 0 + // + G4ThreeVector normal = SurfaceNormal(p); + if (normal*v < 0) + { + *tmpdist = 0; + return fLastDistanceToInWithV.value; + } + } + + // now, we can take smallest positive distance. + + // Initialize + // + G4double distance = kInfinity; + + // Find intersections and choose nearest one + // + G4VSurface *surfaces[6]; + + surfaces[0] = fSide0; + surfaces[1] = fSide90 ; + surfaces[2] = fSide180 ; + surfaces[3] = fSide270 ; + surfaces[4] = fLowerEndcap; + surfaces[5] = fUpperEndcap; + + G4ThreeVector xx; + G4ThreeVector bestxx; + G4int i; + G4int besti = -1; + for (i=0; i < 6 ; i++) + { + +#ifdef G4SPECSDEBUG + G4cout << G4endl << "surface " << i << ": " << G4endl << G4endl ; +#endif + G4double tmpdistance = surfaces[i]->DistanceToIn(p, v, xx); +#ifdef G4SPECSDEBUG + G4cout << "Solid DistanceToIn : distance = " << tmpdistance << G4endl ; + G4cout << "intersection point = " << xx << G4endl ; +#endif + if (tmpdistance < distance) + { + distance = tmpdistance; + bestxx = xx; + besti = i; + } + } + +#ifdef G4SPECSDEBUG + G4cout << "best distance = " << distance << G4endl ; +#endif + + *tmpdist = distance; + // timer.Stop(); + return fLastDistanceToInWithV.value; +} + + +G4double G4VTwistedFaceted::DistanceToIn (const G4ThreeVector& p) const +{ + // DistanceToIn(p): + // Calculate distance to surface of shape from `outside', + // allowing for tolerance + // + + // + // checking last value + // + + G4ThreeVector *tmpp; + G4double *tmpdist; + if (fLastDistanceToIn.p == p) + { + return fLastDistanceToIn.value; + } + else + { + tmpp = const_cast(&(fLastDistanceToIn.p)); + tmpdist = const_cast(&(fLastDistanceToIn.value)); + tmpp->set(p.x(), p.y(), p.z()); + } + + // + // Calculate DistanceToIn(p) + // + + EInside currentside = Inside(p); + + switch (currentside) + { + case (kInside) : + { + } + + case (kSurface) : + { + *tmpdist = 0.; + return fLastDistanceToIn.value; + } + + case (kOutside) : + { + // Initialize + // + G4double distance = kInfinity; + + // Find intersections and choose nearest one + // + G4VSurface *surfaces[6]; + + surfaces[0] = fSide0; + surfaces[1] = fSide90 ; + surfaces[2] = fSide180 ; + surfaces[3] = fSide270 ; + surfaces[4] = fLowerEndcap; + surfaces[5] = fUpperEndcap; + + G4int i; + G4int besti = -1; + G4ThreeVector xx; + G4ThreeVector bestxx; + for (i=0; i< 6; i++) + { + G4double tmpdistance = surfaces[i]->DistanceTo(p, xx); + if (tmpdistance < distance) + { + distance = tmpdistance; + bestxx = xx; + besti = i; + } + } + *tmpdist = distance; + return fLastDistanceToIn.value; + } + + default : + { + G4Exception("G4VTwistedFaceted::DistanceToIn(p)", "InvalidCondition", + FatalException, "Unknown point location!"); + } + } // switch end + + return kInfinity; +} + + +//===================================================================== +//* DistanceToOut (p, v) ---------------------------------------------- + +G4double +G4VTwistedFaceted::DistanceToOut( const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *norm ) const +{ + // DistanceToOut (p, v): + // Calculate distance to surface of shape from `inside' + // along with the v, allowing for tolerance. + // The function returns kInfinity if no intersection or + // just grazing within tolerance. + + // + // checking last value + // + + G4ThreeVector *tmpp; + G4ThreeVector *tmpv; + G4double *tmpdist; + if (fLastDistanceToOutWithV.p == p && fLastDistanceToOutWithV.vec == v ) + { + return fLastDistanceToOutWithV.value; + } + else + { + tmpp = const_cast(&(fLastDistanceToOutWithV.p)); + tmpv = const_cast(&(fLastDistanceToOutWithV.vec)); + tmpdist = const_cast(&(fLastDistanceToOutWithV.value)); + tmpp->set(p.x(), p.y(), p.z()); + tmpv->set(v.x(), v.y(), v.z()); + } + + // + // Calculate DistanceToOut(p,v) + // + + EInside currentside = Inside(p); + + if (currentside == kOutside) + { + } + else if (currentside == kSurface) + { + // particle is just on a boundary. + // if the particle is exiting from the volume, return 0 + // + G4ThreeVector normal = SurfaceNormal(p); + G4VSurface *blockedsurface = fLastNormal.surface[0]; + if (normal*v > 0) + { + if (calcNorm) + { + *norm = (blockedsurface->GetNormal(p, true)); + *validNorm = blockedsurface->IsValidNorm(); + } + *tmpdist = 0.; + // timer.Stop(); + return fLastDistanceToOutWithV.value; + } + } + + // now, we can take smallest positive distance. + + // Initialize + G4double distance = kInfinity; + + // find intersections and choose nearest one. + G4VSurface *surfaces[6]; + + surfaces[0] = fSide0; + surfaces[1] = fSide90 ; + surfaces[2] = fSide180 ; + surfaces[3] = fSide270 ; + surfaces[4] = fLowerEndcap; + surfaces[5] = fUpperEndcap; + + G4int i; + G4int besti = -1; + G4ThreeVector xx; + G4ThreeVector bestxx; + for (i=0; i< 6 ; i++) { + G4double tmpdistance = surfaces[i]->DistanceToOut(p, v, xx); + if (tmpdistance < distance) + { + distance = tmpdistance; + bestxx = xx; + besti = i; + } + } + + if (calcNorm) + { + if (besti != -1) + { + *norm = (surfaces[besti]->GetNormal(p, true)); + *validNorm = surfaces[besti]->IsValidNorm(); + } + } + + *tmpdist = distance; + // timer.Stop(); + return fLastDistanceToOutWithV.value; +} + + +G4double G4VTwistedFaceted::DistanceToOut( const G4ThreeVector& p ) const +{ + // DistanceToOut(p): + // Calculate distance to surface of shape from `inside', + // allowing for tolerance + + // + // checking last value + // + + + G4ThreeVector *tmpp; + G4double *tmpdist; + if (fLastDistanceToOut.p == p) + { + return fLastDistanceToOut.value; + } + else + { + tmpp = const_cast(&(fLastDistanceToOut.p)); + tmpdist = const_cast(&(fLastDistanceToOut.value)); + tmpp->set(p.x(), p.y(), p.z()); + } + + // + // Calculate DistanceToOut(p) + // + + EInside currentside = Inside(p); + + switch (currentside) + { + case (kOutside) : + { + } + case (kSurface) : + { + *tmpdist = 0.; + return fLastDistanceToOut.value; + } + + case (kInside) : + { + // Initialize + // + G4double distance = kInfinity; + + // find intersections and choose nearest one + // + G4VSurface *surfaces[6]; + + surfaces[0] = fSide0; + surfaces[1] = fSide90 ; + surfaces[2] = fSide180 ; + surfaces[3] = fSide270 ; + surfaces[4] = fLowerEndcap; + surfaces[5] = fUpperEndcap; + + G4int i; + G4int besti = -1; + G4ThreeVector xx; + G4ThreeVector bestxx; + for (i=0; i< 6; i++) + { + G4double tmpdistance = surfaces[i]->DistanceTo(p, xx); + if (tmpdistance < distance) + { + distance = tmpdistance; + bestxx = xx; + besti = i; + } + } + *tmpdist = distance; + + return fLastDistanceToOut.value; + } + + default : + { + G4Exception("G4VTwistedFaceted::DistanceToOut(p)", "InvalidCondition", + FatalException, "Unknown point location!"); + } + } // switch end + + return 0; +} + + +//===================================================================== +//* StreamInfo -------------------------------------------------------- + +std::ostream& G4VTwistedFaceted::StreamInfo(std::ostream& os) const +{ + // + // Stream object contents to an output stream + // + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4VTwistedFaceted\n" + << " Parameters: \n" + << " polar angle theta = " << fTheta/degree << " deg" << G4endl + << " azimuthal angle phi = " << fPhi/degree << " deg" << G4endl + << " tilt angle alpha = " << fAlph/degree << " deg" << G4endl + << " TWIST angle = " << fPhiTwist/degree << " deg" << G4endl + << " Half length along y (lower endcap) = " << fDy1/cm << " cm" + << G4endl + << " Half length along x (lower endcap, bottom) = " << fDx1/cm << " cm" + << G4endl + << " Half length along x (lower endcap, top) = " << fDx2/cm << " cm" + << G4endl + << " Half length along y (upper endcap) = " << fDy2/cm << " cm" + << G4endl + << " Half length along x (upper endcap, bottom) = " << fDx3/cm << " cm" + << G4endl + << " Half length along x (upper endcap, top) = " << fDx4/cm << " cm" + << G4endl + << "-----------------------------------------------------------\n"; + + return os; +} + + +//===================================================================== +//* DiscribeYourselfTo ------------------------------------------------ + +void G4VTwistedFaceted::DescribeYourselfTo (G4VGraphicsScene& scene) const +{ + scene.AddSolid (*this); +} + +//===================================================================== +//* GetExtent --------------------------------------------------------- + +G4VisExtent G4VTwistedFaceted::GetExtent() const +{ + G4double maxRad = std::sqrt( fDx*fDx + fDy*fDy); + + return G4VisExtent(-maxRad, maxRad , + -maxRad, maxRad , + -fDz, fDz ); +} + + +//===================================================================== +//* CreateNUBS -------------------------------------------------------- + +G4NURBS* G4VTwistedFaceted::CreateNURBS () const +{ + G4double maxRad = std::sqrt( fDx*fDx + fDy*fDy); + + return new G4NURBStube(maxRad, maxRad, fDz); + // Tube for now!!! +} + + +//===================================================================== +//* CreateSurfaces ---------------------------------------------------- + +void G4VTwistedFaceted::CreateSurfaces() +{ + + // create 6 surfaces of TwistedTub. + + if ( fDx1 == fDx2 && fDx3 == fDx4 ) // special case : Box + { + fSide0 = new G4TwistedTrapBoxSide("0deg", fPhiTwist, fDz, fTheta, fPhi, + fDy1, fDx1, fDy2, fDx3, fAlph, 0.*deg); + fSide180 = new G4TwistedTrapBoxSide("180deg", fPhiTwist, fDz, fTheta, + fPhi+pi , fDy1, fDx1, fDy2, fDx3, fAlph, 180.*deg); + } + else // default general case + { + fSide0 = new G4TwistedTrapAlphaSide("0deg" ,fPhiTwist, fDz, fTheta, + fPhi, fDy1, fDx1, fDx2, fDy2, fDx3, fDx4, fAlph, 0.*deg); + fSide180 = new G4TwistedTrapAlphaSide("180deg", fPhiTwist, fDz, fTheta, + fPhi+pi, fDy1, fDx2, fDx1, fDy2, fDx4, fDx3, fAlph, 180.*deg); + } + + // create parallel sides + // + fSide90 = new G4TwistedTrapParallelSide("90deg", fPhiTwist, fDz, fTheta, + fPhi, fDy1, fDx1, fDx2, fDy2, fDx3, fDx4, fAlph, 0.*deg); + fSide270 = new G4TwistedTrapParallelSide("270deg", fPhiTwist, fDz, fTheta, + fPhi+pi, fDy1, fDx2, fDx1, fDy2, fDx4, fDx3, fAlph, 180.*deg); + + // create endcaps + // + fUpperEndcap = new G4FlatTrapSide("UpperCap",fPhiTwist, fDx3, fDx4, fDy2, + fDz, fAlph, fPhi, fTheta, 1 ); + fLowerEndcap = new G4FlatTrapSide("LowerCap",fPhiTwist, fDx1, fDx2, fDy1, + fDz, fAlph, fPhi, fTheta, -1 ); + + // Set neighbour surfaces + + fSide0->SetNeighbours( fSide270 , fLowerEndcap , fSide90 , fUpperEndcap ); + fSide90->SetNeighbours( fSide0 , fLowerEndcap , fSide180 , fUpperEndcap ); + fSide180->SetNeighbours(fSide90 , fLowerEndcap , fSide270 , fUpperEndcap ); + fSide270->SetNeighbours(fSide180 , fLowerEndcap , fSide0 , fUpperEndcap ); + fUpperEndcap->SetNeighbours( fSide180, fSide270 , fSide0 , fSide90 ); + fLowerEndcap->SetNeighbours( fSide180, fSide270 , fSide0 , fSide90 ); +} + + +//===================================================================== +//* GetEntityType ----------------------------------------------------- + +G4GeometryType G4VTwistedFaceted::GetEntityType() const +{ + return G4String("G4VTwistedFaceted"); +} + + +//===================================================================== +//* GetPolyhedron ----------------------------------------------------- + +G4Polyhedron* G4VTwistedFaceted::GetPolyhedron() const +{ + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } + return fpPolyhedron; +} diff --git a/source/geometry/volumes/History b/source/geometry/volumes/History index 47c9c16c11..ed08d2a11b 100644 --- a/source/geometry/volumes/History +++ b/source/geometry/volumes/History @@ -1,4 +1,4 @@ -$Id: History,v 1.124 2004/12/02 09:38:05 gcosmo Exp $ +$Id: History,v 1.125 2005/06/06 13:41:26 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jun 6th, 2005 G. Cosmo - geomvol-V07-00-00 +- Moved constructors/destructors and operators for G4NavigationLevelRep + and G4NavigationLevel to .cc file and not inlined. + Dec 2nd, 2004 G. Cosmo - geomvol-V06-02-01 - Implemented migration to for standard mathematical functions. diff --git a/source/geometry/volumes/include/G4AssemblyVolume.hh b/source/geometry/volumes/include/G4AssemblyVolume.hh index fd673ef31b..25bed5a46a 100644 --- a/source/geometry/volumes/include/G4AssemblyVolume.hh +++ b/source/geometry/volumes/include/G4AssemblyVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyVolume.hh,v 1.2 2003/11/02 16:06:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4AssemblyVolume diff --git a/source/geometry/volumes/include/G4AssemblyVolume.icc b/source/geometry/volumes/include/G4AssemblyVolume.icc index a9d2fdba1d..f09d9ee14e 100644 --- a/source/geometry/volumes/include/G4AssemblyVolume.icc +++ b/source/geometry/volumes/include/G4AssemblyVolume.icc @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyVolume.icc,v 1.1 2003/10/01 14:55:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4AssemblyVolume - inline implementation diff --git a/source/geometry/volumes/include/G4GRSSolid.hh b/source/geometry/volumes/include/G4GRSSolid.hh index e7b59f8351..e070d07a82 100644 --- a/source/geometry/volumes/include/G4GRSSolid.hh +++ b/source/geometry/volumes/include/G4GRSSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolid.hh,v 1.7 2003/11/02 16:06:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4GRSSolid diff --git a/source/geometry/volumes/include/G4GRSSolid.icc b/source/geometry/volumes/include/G4GRSSolid.icc index 826d0e75b7..ecc41a2b47 100644 --- a/source/geometry/volumes/include/G4GRSSolid.icc +++ b/source/geometry/volumes/include/G4GRSSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolid.icc,v 1.8 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4GRSSolid inline implementation diff --git a/source/geometry/volumes/include/G4GRSSolidHandle.hh b/source/geometry/volumes/include/G4GRSSolidHandle.hh index 723cfd4cc6..910156fe91 100644 --- a/source/geometry/volumes/include/G4GRSSolidHandle.hh +++ b/source/geometry/volumes/include/G4GRSSolidHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolidHandle.hh,v 1.5 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class G4GRSSolidHandle // diff --git a/source/geometry/volumes/include/G4GRSVolume.hh b/source/geometry/volumes/include/G4GRSVolume.hh index 65348eed3c..194a5cbd92 100644 --- a/source/geometry/volumes/include/G4GRSVolume.hh +++ b/source/geometry/volumes/include/G4GRSVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolume.hh,v 1.7 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4GRSVolume diff --git a/source/geometry/volumes/include/G4GRSVolume.icc b/source/geometry/volumes/include/G4GRSVolume.icc index 4235ac83e4..0549fa1212 100644 --- a/source/geometry/volumes/include/G4GRSVolume.icc +++ b/source/geometry/volumes/include/G4GRSVolume.icc @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolume.icc,v 1.9 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4GRSVolume inline implementation diff --git a/source/geometry/volumes/include/G4GRSVolumeHandle.hh b/source/geometry/volumes/include/G4GRSVolumeHandle.hh index a66b9185c4..09be77ade2 100644 --- a/source/geometry/volumes/include/G4GRSVolumeHandle.hh +++ b/source/geometry/volumes/include/G4GRSVolumeHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolumeHandle.hh,v 1.5 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class G4GRSVolumeHandle // diff --git a/source/geometry/volumes/include/G4LogicalBorderSurface.hh b/source/geometry/volumes/include/G4LogicalBorderSurface.hh index a90bd5fa16..4b07ba49c1 100644 --- a/source/geometry/volumes/include/G4LogicalBorderSurface.hh +++ b/source/geometry/volumes/include/G4LogicalBorderSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalBorderSurface.hh,v 1.13 2004/05/19 08:14:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4LogicalBorderSurface // diff --git a/source/geometry/volumes/include/G4LogicalBorderSurface.icc b/source/geometry/volumes/include/G4LogicalBorderSurface.icc index f46689f643..dc29e2eede 100644 --- a/source/geometry/volumes/include/G4LogicalBorderSurface.icc +++ b/source/geometry/volumes/include/G4LogicalBorderSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalBorderSurface.icc,v 1.8 2003/12/01 14:53:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4LogicalBorderSurface inline implementation diff --git a/source/geometry/volumes/include/G4LogicalSkinSurface.hh b/source/geometry/volumes/include/G4LogicalSkinSurface.hh index 1bd79ecf1a..ade377bc41 100644 --- a/source/geometry/volumes/include/G4LogicalSkinSurface.hh +++ b/source/geometry/volumes/include/G4LogicalSkinSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSkinSurface.hh,v 1.13 2004/05/19 08:14:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4LogicalSkinSurface // diff --git a/source/geometry/volumes/include/G4LogicalSkinSurface.icc b/source/geometry/volumes/include/G4LogicalSkinSurface.icc index 823bb7908b..042696dad4 100644 --- a/source/geometry/volumes/include/G4LogicalSkinSurface.icc +++ b/source/geometry/volumes/include/G4LogicalSkinSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSkinSurface.icc,v 1.8 2003/12/01 14:53:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4LogicalSkinSurface inline implementation diff --git a/source/geometry/volumes/include/G4NavigationHistory.hh b/source/geometry/volumes/include/G4NavigationHistory.hh index a0f8d5567a..44f1ba4c21 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.hh +++ b/source/geometry/volumes/include/G4NavigationHistory.hh @@ -22,7 +22,7 @@ // // // $Id: G4NavigationHistory.hh,v 1.12 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4NavigationHistory // diff --git a/source/geometry/volumes/include/G4NavigationHistory.icc b/source/geometry/volumes/include/G4NavigationHistory.icc index 8c6da76af7..2ffffb5b8d 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.icc +++ b/source/geometry/volumes/include/G4NavigationHistory.icc @@ -22,7 +22,7 @@ // // // $Id: G4NavigationHistory.icc,v 1.11 2004/03/04 08:06:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4NavigationHistory Inline implementation diff --git a/source/geometry/volumes/include/G4NavigationLevel.hh b/source/geometry/volumes/include/G4NavigationLevel.hh index a39b5e287b..a7c90ed953 100644 --- a/source/geometry/volumes/include/G4NavigationLevel.hh +++ b/source/geometry/volumes/include/G4NavigationLevel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevel.hh,v 1.15 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4NavigationLevel // diff --git a/source/geometry/volumes/include/G4NavigationLevel.icc b/source/geometry/volumes/include/G4NavigationLevel.icc index 659b2f3b08..229e5b0b76 100644 --- a/source/geometry/volumes/include/G4NavigationLevel.icc +++ b/source/geometry/volumes/include/G4NavigationLevel.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NavigationLevel.icc,v 1.18 2004/06/11 14:17:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4NavigationLevel.icc,v 1.19 2005/06/06 13:41:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // 30.09.97 J.Apostolakis Initial version. // @@ -34,62 +34,6 @@ extern G4DLLIMPORT G4Allocator aNavigationLevelAllocator; #endif -inline -G4NavigationLevel::G4NavigationLevel( G4VPhysicalVolume* pPhysVol, - const G4AffineTransform& afTransform, - EVolume volTp, - G4int repNo ) -{ - fLevelRep = new G4NavigationLevelRep( pPhysVol, afTransform, volTp, repNo ); -} - -inline -G4NavigationLevel::G4NavigationLevel( G4VPhysicalVolume* pPhysVol, - const G4AffineTransform& levelAbove, - const G4AffineTransform& relativeCurrent, - EVolume volTp, - G4int repNo ) -{ - fLevelRep = new G4NavigationLevelRep( pPhysVol, - levelAbove, - relativeCurrent, - volTp, - repNo ); -} - -inline -G4NavigationLevel::G4NavigationLevel() -{ - fLevelRep = new G4NavigationLevelRep(); -} - -inline -G4NavigationLevel::G4NavigationLevel(const G4NavigationLevel& right) - : fLevelRep( right.fLevelRep ) -{ - fLevelRep->AddAReference(); -} - -inline -G4NavigationLevel::~G4NavigationLevel() -{ - if( fLevelRep->RemoveAReference() ) - delete fLevelRep; -} - -inline -G4NavigationLevel& G4NavigationLevel::operator=(const G4NavigationLevel &right) -{ - if ( &right != this ) - { - right.fLevelRep->AddAReference(); - if( fLevelRep->RemoveAReference() ) - delete fLevelRep; - fLevelRep = right.fLevelRep; - } - return *this; -} - inline G4VPhysicalVolume* G4NavigationLevel::GetPhysicalVolume() const { diff --git a/source/geometry/volumes/include/G4NavigationLevelRep.hh b/source/geometry/volumes/include/G4NavigationLevelRep.hh index 2a4d9aeddf..362ba651aa 100644 --- a/source/geometry/volumes/include/G4NavigationLevelRep.hh +++ b/source/geometry/volumes/include/G4NavigationLevelRep.hh @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevelRep.hh,v 1.8 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4NavigationLevelRep // diff --git a/source/geometry/volumes/include/G4NavigationLevelRep.icc b/source/geometry/volumes/include/G4NavigationLevelRep.icc index de406031a3..7a3a69c8fd 100644 --- a/source/geometry/volumes/include/G4NavigationLevelRep.icc +++ b/source/geometry/volumes/include/G4NavigationLevelRep.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NavigationLevelRep.icc,v 1.12 2004/06/11 14:17:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4NavigationLevelRep.icc,v 1.13 2005/06/06 13:41:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // 1 October 1997 J.Apostolakis Initial version. // @@ -34,93 +34,6 @@ extern G4DLLIMPORT G4Allocator aNavigLevelRepAllocator; #endif -// Constructors -//-------------- - -inline -G4NavigationLevelRep::G4NavigationLevelRep( G4VPhysicalVolume* pPhysVol, - const G4AffineTransform& afTransform, - EVolume volTp, - G4int repNo ) - : sTransform(afTransform), - sPhysicalVolumePtr(pPhysVol), - sReplicaNo(repNo), - sVolumeType(volTp), - fCountRef(1) -{ -} - -inline -G4NavigationLevelRep::G4NavigationLevelRep() - : sTransform(), - sPhysicalVolumePtr(0), - sReplicaNo(-1), - sVolumeType(kReplica), - fCountRef(1) -{ -} - -inline -G4NavigationLevelRep::G4NavigationLevelRep( G4VPhysicalVolume* pPhysVol, - const G4AffineTransform& levelAbove, - const G4AffineTransform& relativeCurrent, - EVolume volTp, - G4int repNo ) - : sPhysicalVolumePtr(pPhysVol), - sReplicaNo(repNo), - sVolumeType(volTp), - fCountRef(1) -{ - sTransform.InverseProduct( levelAbove, relativeCurrent ); -} - -inline -G4NavigationLevelRep::G4NavigationLevelRep( G4NavigationLevelRep& right ) - : sTransform(right.sTransform), - sPhysicalVolumePtr(right.sPhysicalVolumePtr), - sReplicaNo(right.sReplicaNo), - sVolumeType(right.sVolumeType), - fCountRef(1) -{ -} - -// Destructor -//-------------- - -inline -G4NavigationLevelRep::~G4NavigationLevelRep() -{ -#ifdef DEBUG_NAVIG_LEVEL - if(fCountRef>0) - { - G4cerr << "ERROR! - A G4NavigationLevelRep is being deleted that has" - << G4endl << " positive reference count (fCountRef > 0) !" - << G4endl; - G4Exception("G4NavigationLevelRep::~G4NavigationLevelRep()", - "MemoryCorruption", FatalException, - "Deletion of data-level object with positive reference count."); - } -#endif -} - -// Operators -// -------------- - -inline -G4NavigationLevelRep& -G4NavigationLevelRep::operator=( const G4NavigationLevelRep &right ) -{ - if ( &right != this ) - { - sTransform = right.sTransform; - sPhysicalVolumePtr = right.sPhysicalVolumePtr; - sVolumeType = right.sVolumeType; - sReplicaNo = right.sReplicaNo; - fCountRef = right.fCountRef; - } - return *this; -} - // Accessors // -------------- diff --git a/source/geometry/volumes/include/G4PVParameterised.hh b/source/geometry/volumes/include/G4PVParameterised.hh index 72eb7e88cd..935ec8de8c 100644 --- a/source/geometry/volumes/include/G4PVParameterised.hh +++ b/source/geometry/volumes/include/G4PVParameterised.hh @@ -22,7 +22,7 @@ // // // $Id: G4PVParameterised.hh,v 1.2 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4PVParameterised diff --git a/source/geometry/volumes/include/G4PVPlacement.hh b/source/geometry/volumes/include/G4PVPlacement.hh index 75ac9e3526..66a0fc926e 100644 --- a/source/geometry/volumes/include/G4PVPlacement.hh +++ b/source/geometry/volumes/include/G4PVPlacement.hh @@ -22,7 +22,7 @@ // // // $Id: G4PVPlacement.hh,v 1.2 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4PVPlacement diff --git a/source/geometry/volumes/include/G4PVReplica.hh b/source/geometry/volumes/include/G4PVReplica.hh index a5aa147e57..53fae434c7 100644 --- a/source/geometry/volumes/include/G4PVReplica.hh +++ b/source/geometry/volumes/include/G4PVReplica.hh @@ -22,7 +22,7 @@ // // // $Id: G4PVReplica.hh,v 1.2 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4PVReplica diff --git a/source/geometry/volumes/include/G4ReflectionFactory.hh b/source/geometry/volumes/include/G4ReflectionFactory.hh index 2643595fab..999e9fca33 100644 --- a/source/geometry/volumes/include/G4ReflectionFactory.hh +++ b/source/geometry/volumes/include/G4ReflectionFactory.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReflectionFactory.hh,v 1.1 2004/05/13 14:50:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4ReflectionFactory diff --git a/source/geometry/volumes/include/G4TouchableHistory.hh b/source/geometry/volumes/include/G4TouchableHistory.hh index a110dda101..581b27d95a 100644 --- a/source/geometry/volumes/include/G4TouchableHistory.hh +++ b/source/geometry/volumes/include/G4TouchableHistory.hh @@ -22,7 +22,7 @@ // // // $Id: G4TouchableHistory.hh,v 1.7 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4TouchableHistory diff --git a/source/geometry/volumes/include/G4TouchableHistory.icc b/source/geometry/volumes/include/G4TouchableHistory.icc index a61796c54d..e1cdfab00c 100644 --- a/source/geometry/volumes/include/G4TouchableHistory.icc +++ b/source/geometry/volumes/include/G4TouchableHistory.icc @@ -22,7 +22,7 @@ // // // $Id: G4TouchableHistory.icc,v 1.8 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4TouchableHistory inline implementation diff --git a/source/geometry/volumes/include/G4TouchableHistoryHandle.hh b/source/geometry/volumes/include/G4TouchableHistoryHandle.hh index 11cb8f984d..712d58d554 100644 --- a/source/geometry/volumes/include/G4TouchableHistoryHandle.hh +++ b/source/geometry/volumes/include/G4TouchableHistoryHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4TouchableHistoryHandle.hh,v 1.5 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class G4TouchableHistoryHandle // diff --git a/source/geometry/volumes/src/G4AssemblyVolume.cc b/source/geometry/volumes/src/G4AssemblyVolume.cc index 45ac88fe8e..46210d36de 100644 --- a/source/geometry/volumes/src/G4AssemblyVolume.cc +++ b/source/geometry/volumes/src/G4AssemblyVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyVolume.cc,v 1.3 2004/01/19 14:07:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4AssemblyVolume - implementation diff --git a/source/geometry/volumes/src/G4GRSSolid.cc b/source/geometry/volumes/src/G4GRSSolid.cc index cd3ef5eff2..dc397a2aa2 100644 --- a/source/geometry/volumes/src/G4GRSSolid.cc +++ b/source/geometry/volumes/src/G4GRSSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolid.cc,v 1.7 2003/11/02 16:06:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4GRSSolid Implementation diff --git a/source/geometry/volumes/src/G4GRSVolume.cc b/source/geometry/volumes/src/G4GRSVolume.cc index 67a8396956..9e7b6a9010 100644 --- a/source/geometry/volumes/src/G4GRSVolume.cc +++ b/source/geometry/volumes/src/G4GRSVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolume.cc,v 1.7 2003/11/02 16:06:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4GRSVolume Implementation diff --git a/source/geometry/volumes/src/G4LogicalBorderSurface.cc b/source/geometry/volumes/src/G4LogicalBorderSurface.cc index cfe69e8211..e04450c5e7 100644 --- a/source/geometry/volumes/src/G4LogicalBorderSurface.cc +++ b/source/geometry/volumes/src/G4LogicalBorderSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalBorderSurface.cc,v 1.13 2004/05/19 08:14:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // G4LogicalBorderSurface Implementation diff --git a/source/geometry/volumes/src/G4LogicalSkinSurface.cc b/source/geometry/volumes/src/G4LogicalSkinSurface.cc index 5561811ada..173f234be1 100644 --- a/source/geometry/volumes/src/G4LogicalSkinSurface.cc +++ b/source/geometry/volumes/src/G4LogicalSkinSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSkinSurface.cc,v 1.12 2004/05/19 08:14:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------------- // G4LogicalSkinSurface Implementation diff --git a/source/geometry/volumes/src/G4NavigationHistory.cc b/source/geometry/volumes/src/G4NavigationHistory.cc index 8083b57cd8..98fe7a0fce 100644 --- a/source/geometry/volumes/src/G4NavigationHistory.cc +++ b/source/geometry/volumes/src/G4NavigationHistory.cc @@ -22,7 +22,7 @@ // // // $Id: G4NavigationHistory.cc,v 1.9 2003/12/04 15:59:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4NavigationHistory Implementation diff --git a/source/geometry/volumes/src/G4NavigationLevel.cc b/source/geometry/volumes/src/G4NavigationLevel.cc new file mode 100644 index 0000000000..5dd29d9aa0 --- /dev/null +++ b/source/geometry/volumes/src/G4NavigationLevel.cc @@ -0,0 +1,83 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4NavigationLevel.cc,v 1.3 2005/06/06 13:41:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +// 30.09.97 J.Apostolakis Initial version. +// +// ---------------------------------------------------------------------- + +#include "G4NavigationLevel.hh" + +G4Allocator aNavigationLevelAllocator; + +G4NavigationLevel::G4NavigationLevel( G4VPhysicalVolume* pPhysVol, + const G4AffineTransform& afTransform, + EVolume volTp, + G4int repNo ) +{ + fLevelRep = new G4NavigationLevelRep( pPhysVol, afTransform, volTp, repNo ); +} + +G4NavigationLevel::G4NavigationLevel( G4VPhysicalVolume* pPhysVol, + const G4AffineTransform& levelAbove, + const G4AffineTransform& relativeCurrent, + EVolume volTp, + G4int repNo ) +{ + fLevelRep = new G4NavigationLevelRep( pPhysVol, + levelAbove, + relativeCurrent, + volTp, + repNo ); +} + +G4NavigationLevel::G4NavigationLevel() +{ + fLevelRep = new G4NavigationLevelRep(); +} + +G4NavigationLevel::G4NavigationLevel(const G4NavigationLevel& right) + : fLevelRep( right.fLevelRep ) +{ + fLevelRep->AddAReference(); +} + +G4NavigationLevel::~G4NavigationLevel() +{ + if( fLevelRep->RemoveAReference() ) + delete fLevelRep; +} + +G4NavigationLevel& G4NavigationLevel::operator=(const G4NavigationLevel &right) +{ + if ( &right != this ) + { + right.fLevelRep->AddAReference(); + if( fLevelRep->RemoveAReference() ) + delete fLevelRep; + fLevelRep = right.fLevelRep; + } + return *this; +} diff --git a/source/geometry/volumes/src/G4NavigationLevelRep.cc b/source/geometry/volumes/src/G4NavigationLevelRep.cc new file mode 100644 index 0000000000..6ae1260901 --- /dev/null +++ b/source/geometry/volumes/src/G4NavigationLevelRep.cc @@ -0,0 +1,114 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4NavigationLevelRep.cc,v 1.1 2005/06/06 13:41:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +// 1 October 1997 J.Apostolakis Initial version. +// +// ---------------------------------------------------------------------- + +#include "G4NavigationLevelRep.hh" + +G4Allocator aNavigLevelRepAllocator; + +// Constructors +//-------------- + +G4NavigationLevelRep::G4NavigationLevelRep( G4VPhysicalVolume* pPhysVol, + const G4AffineTransform& afTransform, + EVolume volTp, + G4int repNo ) + : sTransform(afTransform), + sPhysicalVolumePtr(pPhysVol), + sReplicaNo(repNo), + sVolumeType(volTp), + fCountRef(1) +{ +} + +G4NavigationLevelRep::G4NavigationLevelRep() + : sTransform(), + sPhysicalVolumePtr(0), + sReplicaNo(-1), + sVolumeType(kReplica), + fCountRef(1) +{ +} + +G4NavigationLevelRep::G4NavigationLevelRep( G4VPhysicalVolume* pPhysVol, + const G4AffineTransform& levelAbove, + const G4AffineTransform& relativeCurrent, + EVolume volTp, + G4int repNo ) + : sPhysicalVolumePtr(pPhysVol), + sReplicaNo(repNo), + sVolumeType(volTp), + fCountRef(1) +{ + sTransform.InverseProduct( levelAbove, relativeCurrent ); +} + +G4NavigationLevelRep::G4NavigationLevelRep( G4NavigationLevelRep& right ) + : sTransform(right.sTransform), + sPhysicalVolumePtr(right.sPhysicalVolumePtr), + sReplicaNo(right.sReplicaNo), + sVolumeType(right.sVolumeType), + fCountRef(1) +{ +} + +// Destructor +//-------------- + +G4NavigationLevelRep::~G4NavigationLevelRep() +{ +#ifdef DEBUG_NAVIG_LEVEL + if(fCountRef>0) + { + G4cerr << "ERROR! - A G4NavigationLevelRep is being deleted that has" + << G4endl << " positive reference count (fCountRef > 0) !" + << G4endl; + G4Exception("G4NavigationLevelRep::~G4NavigationLevelRep()", + "MemoryCorruption", FatalException, + "Deletion of data-level object with positive reference count."); + } +#endif +} + +// Operators +// -------------- + +G4NavigationLevelRep& +G4NavigationLevelRep::operator=( const G4NavigationLevelRep &right ) +{ + if ( &right != this ) + { + sTransform = right.sTransform; + sPhysicalVolumePtr = right.sPhysicalVolumePtr; + sVolumeType = right.sVolumeType; + sReplicaNo = right.sReplicaNo; + fCountRef = right.fCountRef; + } + return *this; +} diff --git a/source/geometry/volumes/src/G4PVParameterised.cc b/source/geometry/volumes/src/G4PVParameterised.cc index 04b9c0e76b..f20b055cf1 100644 --- a/source/geometry/volumes/src/G4PVParameterised.cc +++ b/source/geometry/volumes/src/G4PVParameterised.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVParameterised.cc,v 1.2 2003/11/02 16:06:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4PVParameterised diff --git a/source/geometry/volumes/src/G4PVPlacement.cc b/source/geometry/volumes/src/G4PVPlacement.cc index 5a9c77d95e..5257cbcf72 100644 --- a/source/geometry/volumes/src/G4PVPlacement.cc +++ b/source/geometry/volumes/src/G4PVPlacement.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVPlacement.cc,v 1.3 2003/11/17 11:29:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4PVPlacement Implementation diff --git a/source/geometry/volumes/src/G4PVReplica.cc b/source/geometry/volumes/src/G4PVReplica.cc index 1e6e99607b..e39d6a1431 100644 --- a/source/geometry/volumes/src/G4PVReplica.cc +++ b/source/geometry/volumes/src/G4PVReplica.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVReplica.cc,v 1.4 2003/11/17 11:29:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4PVReplica Implementation diff --git a/source/geometry/volumes/src/G4ReflectionFactory.cc b/source/geometry/volumes/src/G4ReflectionFactory.cc index f723e9cdb6..cb6abde987 100644 --- a/source/geometry/volumes/src/G4ReflectionFactory.cc +++ b/source/geometry/volumes/src/G4ReflectionFactory.cc @@ -22,7 +22,7 @@ // // // $Id: G4ReflectionFactory.cc,v 1.3 2004/12/02 09:31:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4ReflectionFactory Implementation diff --git a/source/geometry/volumes/src/G4TouchableHistory.cc b/source/geometry/volumes/src/G4TouchableHistory.cc index fd02c2fe44..e978256360 100644 --- a/source/geometry/volumes/src/G4TouchableHistory.cc +++ b/source/geometry/volumes/src/G4TouchableHistory.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TouchableHistory.cc,v 1.10 2004/06/11 14:17:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4TouchableHistory.cc,v 1.11 2005/06/06 15:19:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // class G4TouchableHistory Implementation @@ -31,11 +31,6 @@ #include "G4TouchableHistory.hh" -// Ensures correct order of construction and destruption of static objects. -// -G4Allocator aNavigationLevelAllocator; -G4Allocator aNavigLevelRepAllocator; - G4TouchableHistory::~G4TouchableHistory() { } diff --git a/source/global/HEPGeometry/include/G4LorentzRotation.hh b/source/global/HEPGeometry/include/G4LorentzRotation.hh index 44f87677c2..ff847c2664 100644 --- a/source/global/HEPGeometry/include/G4LorentzRotation.hh +++ b/source/global/HEPGeometry/include/G4LorentzRotation.hh @@ -22,7 +22,7 @@ // // // $Id: G4LorentzRotation.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4LorentzRotation_hh #define G4LorentzRotation_hh diff --git a/source/global/HEPGeometry/include/G4LorentzVector.hh b/source/global/HEPGeometry/include/G4LorentzVector.hh index 8e7e37d4ae..bf659ef8c3 100644 --- a/source/global/HEPGeometry/include/G4LorentzVector.hh +++ b/source/global/HEPGeometry/include/G4LorentzVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4LorentzVector.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4LorentzVector_hh #define G4LorentzVector_hh diff --git a/source/global/HEPGeometry/include/G4Normal3D.hh b/source/global/HEPGeometry/include/G4Normal3D.hh index 3641d98ca5..b7353e7946 100644 --- a/source/global/HEPGeometry/include/G4Normal3D.hh +++ b/source/global/HEPGeometry/include/G4Normal3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Normal3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4NORMAL3D_HH #define G4NORMAL3D_HH diff --git a/source/global/HEPGeometry/include/G4Plane3D.hh b/source/global/HEPGeometry/include/G4Plane3D.hh index 2ceba4ea77..01beba4a01 100644 --- a/source/global/HEPGeometry/include/G4Plane3D.hh +++ b/source/global/HEPGeometry/include/G4Plane3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Plane3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4PLANE3D_HH #define G4PLANE3D_HH diff --git a/source/global/HEPGeometry/include/G4Point3D.hh b/source/global/HEPGeometry/include/G4Point3D.hh index 4db674d43c..4487ea2860 100644 --- a/source/global/HEPGeometry/include/G4Point3D.hh +++ b/source/global/HEPGeometry/include/G4Point3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Point3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4POINT3D_HH #define G4POINT3D_HH diff --git a/source/global/HEPGeometry/include/G4Transform3D.hh b/source/global/HEPGeometry/include/G4Transform3D.hh index 1872ceaf4c..2ce1882062 100644 --- a/source/global/HEPGeometry/include/G4Transform3D.hh +++ b/source/global/HEPGeometry/include/G4Transform3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Transform3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4TRANSFORM3D_HH #define G4TRANSFORM3D_HH diff --git a/source/global/HEPGeometry/include/G4Vector3D.hh b/source/global/HEPGeometry/include/G4Vector3D.hh index 7181ef0018..f315515523 100644 --- a/source/global/HEPGeometry/include/G4Vector3D.hh +++ b/source/global/HEPGeometry/include/G4Vector3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Vector3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4VECTOR3D_HH #define G4VECTOR3D_HH diff --git a/source/global/HEPGeometry/include/geomdefs.hh b/source/global/HEPGeometry/include/geomdefs.hh index e65dc90024..a812c1e880 100644 --- a/source/global/HEPGeometry/include/geomdefs.hh +++ b/source/global/HEPGeometry/include/geomdefs.hh @@ -22,7 +22,7 @@ // // // $Id: geomdefs.hh,v 1.5 2002/05/15 09:32:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/HEPNumerics/include/G4AnalyticalPolSolver.hh b/source/global/HEPNumerics/include/G4AnalyticalPolSolver.hh new file mode 100644 index 0000000000..eba7afacb8 --- /dev/null +++ b/source/global/HEPNumerics/include/G4AnalyticalPolSolver.hh @@ -0,0 +1,75 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4AnalyticalPolSolver.hh,v 1.4 2005/05/19 07:37:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +// Class description: +// +// G4AnalyticalPolSolver allows the user to solve analytically a polynomial +// equation up to the 4th order. This is used by CSG solid tracking functions +// like G4Torus. +// +// The algorithm has been adapted from the CACM Algorithm 326: +// +// Roots of low order polynomials +// Author: Terence R.F.Nonweiler +// CACM (Apr 1968) p269 +// Translated into C and programmed by M.Dow +// ANUSF, Australian National University, Canberra, Australia +// m.dow@anu.edu.au +// +// Suite of procedures for finding the (complex) roots of the quadratic, +// cubic or quartic polynomials by explicit algebraic methods. +// Each Returns: +// +// x=r[1][k] + i r[2][k] k=1,...,n, where n={2,3,4} +// +// as roots of: +// sum_{k=0:n} p[k] x^(n-k) = 0 +// Assumes p[0] != 0. (< or > 0) (overflows otherwise) + +// --------------------------- HISTORY -------------------------------------- +// +// 13.05.05 V.Grichine ( Vladimir.Grichine@cern.ch ) +// First implementation in C++ + +#ifndef G4AN_POL_SOLVER_HH +#define G4AN_POL_SOLVER_HH + +#include "G4Types.hh" + +class G4AnalyticalPolSolver +{ + public: // with description + + G4AnalyticalPolSolver(); + ~G4AnalyticalPolSolver(); + + G4int QuadRoots( G4double p[5], G4double r[3][5]); + G4int CubicRoots( G4double p[5], G4double r[3][5]); + G4int BiquadRoots( G4double p[5], G4double r[3][5]); + G4int QuarticRoots( G4double p[5], G4double r[3][5]); +}; + +#endif diff --git a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh index b2122980fd..8f0ee11ec0 100644 --- a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh +++ b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ChebyshevApproximation.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4ChebyshevApproximation.hh,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class description: // @@ -51,8 +51,8 @@ // G4ChebyshevApproximation( function pFunction, // G4int n, // G4double a, -// G4double b ) -// +// G4double b ) +// // -------------------------------------------------------------------- // // Constructor for creation of Chebyshev coefficients for m-derivative @@ -60,21 +60,21 @@ // array of fChebyshevCof will be of (n-m) size. There is a definite dependence // between the proper selection of n, m, a and b values to get better accuracy // of the derivative value. -// +// // G4ChebyshevApproximation( function pFunction, // G4int n, -// G4int m, +// G4int m, // G4double a, -// G4double b ) +// G4double b ) // // ------------------------------------------------------ // // Constructor for creation of Chebyshev coefficients for integral // from pFunction. -// +// // G4ChebyshevApproximation( function pFunction, // G4double a, -// G4double b, +// G4double b, // G4int n ) // // --------------------------------------------------------------- @@ -125,59 +125,55 @@ typedef G4double (*function)(G4double) ; class G4ChebyshevApproximation { -public: - G4ChebyshevApproximation( function pFunction, - G4int n, - G4double a, - G4double b ) ; - - // Constructor for creation of Chebyshev coefficients for m-derivative - // from pFunction. The value of m ! MUST BE ! < n , because the result - // array of fChebyshevCof will be of (n-m) size. - - G4ChebyshevApproximation( function pFunction, - G4int n, - G4int m, - G4double a, - G4double b ) ; + public: // with description - // Constructor for creation of Chebyshev coefficients for integral - // from pFunction. - - G4ChebyshevApproximation( function pFunction, - G4double a, - G4double b, - G4int n ) ; - - - - ~G4ChebyshevApproximation() ; - - // Access functions - - G4double GetChebyshevCof(G4int number) const ; - - // Methods - - G4double ChebyshevEvaluation(G4double x) const ; - - void DerivativeChebyshevCof(G4double derCof[]) const ; - - void IntegralChebyshevCof(G4double integralCof[]) const ; - -private: + G4ChebyshevApproximation( function pFunction, + G4int n, + G4double a, + G4double b ) ; + // + // Constructor for creation of Chebyshev coefficients for m-derivative + // from pFunction. The value of m ! MUST BE ! < n , because the result + // array of fChebyshevCof will be of (n-m) size. - G4ChebyshevApproximation(const G4ChebyshevApproximation&); - G4ChebyshevApproximation& operator=(const G4ChebyshevApproximation&); + G4ChebyshevApproximation( function pFunction, + G4int n, + G4int m, + G4double a, + G4double b ) ; + // + // Constructor for creation of Chebyshev coefficients for integral + // from pFunction. -private: + G4ChebyshevApproximation( function pFunction, + G4double a, + G4double b, + G4int n ) ; - function fFunction ; - G4int fNumber ; - G4double* fChebyshevCof ; - G4double fMean ; - G4double fDiff ; + ~G4ChebyshevApproximation() ; + + // Access functions + + G4double GetChebyshevCof(G4int number) const ; + + // Methods -} ; + G4double ChebyshevEvaluation(G4double x) const ; + void DerivativeChebyshevCof(G4double derCof[]) const ; + void IntegralChebyshevCof(G4double integralCof[]) const ; + + private: + + G4ChebyshevApproximation(const G4ChebyshevApproximation&); + G4ChebyshevApproximation& operator=(const G4ChebyshevApproximation&); + + private: + + function fFunction ; + G4int fNumber ; + G4double* fChebyshevCof ; + G4double fMean ; + G4double fDiff ; +}; #endif diff --git a/source/global/HEPNumerics/include/G4DataInterpolation.hh b/source/global/HEPNumerics/include/G4DataInterpolation.hh index 8ec1e1f7df..82a6597f68 100644 --- a/source/global/HEPNumerics/include/G4DataInterpolation.hh +++ b/source/global/HEPNumerics/include/G4DataInterpolation.hh @@ -22,7 +22,7 @@ // // // $Id: G4DataInterpolation.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh b/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh index 0598879d73..d965392590 100644 --- a/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh +++ b/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussChebyshevQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussHermiteQ.hh b/source/global/HEPNumerics/include/G4GaussHermiteQ.hh index ef757b16af..88a66decdf 100644 --- a/source/global/HEPNumerics/include/G4GaussHermiteQ.hh +++ b/source/global/HEPNumerics/include/G4GaussHermiteQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussHermiteQ.hh,v 1.5 2004/11/12 17:38:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussJacobiQ.hh b/source/global/HEPNumerics/include/G4GaussJacobiQ.hh index 6f03886e7a..dc54a448d8 100644 --- a/source/global/HEPNumerics/include/G4GaussJacobiQ.hh +++ b/source/global/HEPNumerics/include/G4GaussJacobiQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussJacobiQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh b/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh index 129724ac8f..99ae5da255 100644 --- a/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh +++ b/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussLaguerreQ.hh,v 1.5 2004/11/12 17:38:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussLegendreQ.hh b/source/global/HEPNumerics/include/G4GaussLegendreQ.hh index 7ae64f91a5..f6affdf532 100644 --- a/source/global/HEPNumerics/include/G4GaussLegendreQ.hh +++ b/source/global/HEPNumerics/include/G4GaussLegendreQ.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GaussLegendreQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4GaussLegendreQ.hh,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class description: // @@ -88,7 +88,7 @@ class G4GaussLegendreQ : public G4VGaussianQuadrature { public: - G4GaussLegendreQ( function pFunction ) ; + explicit G4GaussLegendreQ( function pFunction ) ; G4GaussLegendreQ( function pFunction, diff --git a/source/global/HEPNumerics/include/G4Integrator.hh b/source/global/HEPNumerics/include/G4Integrator.hh index b089fccb19..2215709caa 100644 --- a/source/global/HEPNumerics/include/G4Integrator.hh +++ b/source/global/HEPNumerics/include/G4Integrator.hh @@ -22,7 +22,7 @@ // // // $Id: G4Integrator.hh,v 1.6 2004/11/12 16:25:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4Integrator.icc b/source/global/HEPNumerics/include/G4Integrator.icc index 2761f5a2b6..f568243ae2 100644 --- a/source/global/HEPNumerics/include/G4Integrator.icc +++ b/source/global/HEPNumerics/include/G4Integrator.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Integrator.icc,v 1.11 2004/11/12 17:38:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4Integrator.icc,v 1.12 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Implementation of G4Integrator methods. // @@ -188,8 +188,8 @@ void G4Integrator::AdaptGauss( T& typeT, F f, G4double xInitial, if(depth > 100) { G4cout<<"G4Integrator::AdaptGauss: WARNING !!!"<::AdaptGauss( G4double (*f)(G4double), } } - - - //////////////////////////////////////////////////////////////////////// // // Adaptive Gauss integration with accuracy 'e' // Convenient for using with class object typeT -template G4double -G4Integrator::AdaptiveGauss( T& typeT, F f, G4double xInitial, - G4double xFinal, G4double e ) +template +G4double G4Integrator::AdaptiveGauss( T& typeT, F f, G4double xInitial, + G4double xFinal, G4double e ) { G4int depth = 0 ; G4double sum = 0.0 ; @@ -274,9 +271,9 @@ G4Integrator::AdaptiveGauss( T& typeT, F f, G4double xInitial, // Adaptive Gauss integration with accuracy 'e' // Convenient for using with 'this' pointer -template G4double -G4Integrator::AdaptiveGauss( T* ptrT, F f, G4double xInitial, - G4double xFinal, G4double e ) +template +G4double G4Integrator::AdaptiveGauss( T* ptrT, F f, G4double xInitial, + G4double xFinal, G4double e ) { return AdaptiveGauss(*ptrT,f,xInitial,xFinal,e) ; } @@ -286,9 +283,9 @@ G4Integrator::AdaptiveGauss( T* ptrT, F f, G4double xInitial, // Adaptive Gauss integration with accuracy 'e' // Convenient for using with global scope function f -template G4double -G4Integrator::AdaptiveGauss( G4double (*f)(G4double), - G4double xInitial, G4double xFinal, G4double e ) +template +G4double G4Integrator::AdaptiveGauss( G4double (*f)(G4double), + G4double xInitial, G4double xFinal, G4double e ) { G4int depth = 0 ; G4double sum = 0.0 ; @@ -318,8 +315,9 @@ G4Integrator::AdaptiveGauss( G4double (*f)(G4double), // fNumber distinct values of each. // Convenient for using with some class object dataT -template G4double -G4Integrator::Legendre( T& typeT, F f, G4double a, G4double b, G4int nLegendre) +template +G4double G4Integrator::Legendre( T& typeT, F f, G4double a, G4double b, + G4int nLegendre ) { G4double newton, newton1, temp1, temp2, temp3, temp ; G4double xDiff, xMean, dx, integral ; @@ -330,7 +328,8 @@ G4Integrator::Legendre( T& typeT, F f, G4double a, G4double b, G4int nLegen if(2*fNumber != k) { - G4Exception("Invalid (odd) n Legendre in G4Integrator::Legendre") ; + G4Exception("G4Integrator::Legendre(T&,F, ...)", "InvalidCall", + FatalException, "Invalid (odd) nLegendre in constructor."); } G4double* fAbscissa = new G4double[fNumber] ; @@ -359,9 +358,10 @@ G4Integrator::Legendre( T& typeT, F f, G4double a, G4double b, G4int nLegen fAbscissa[fNumber-i] = newton ; fWeight[fNumber-i] = 2.0/((1.0 - newton*newton)*temp*temp) ; } -// -// Now we ready to get integral -// + + // + // Now we ready to get integral + // xMean = 0.5*(a + b) ; xDiff = 0.5*(b - a) ; @@ -381,8 +381,9 @@ G4Integrator::Legendre( T& typeT, F f, G4double a, G4double b, G4int nLegen // // Convenient for using with the pointer 'this' -template G4double -G4Integrator::Legendre( T* ptrT, F f, G4double a, G4double b, G4int nLegendre) +template +G4double G4Integrator::Legendre( T* ptrT, F f, G4double a, + G4double b, G4int nLegendre ) { return Legendre(*ptrT,f,a,b,nLegendre) ; } @@ -392,8 +393,8 @@ G4Integrator::Legendre( T* ptrT, F f, G4double a, G4double b, G4int nLegend // Convenient for using with global scope function f template -G4double G4Integrator:: -Legendre( G4double (*f)(G4double), G4double a, G4double b, G4int nLegendre) +G4double G4Integrator::Legendre( G4double (*f)(G4double), + G4double a, G4double b, G4int nLegendre) { G4double newton, newton1, temp1, temp2, temp3, temp ; G4double xDiff, xMean, dx, integral ; @@ -404,7 +405,8 @@ Legendre( G4double (*f)(G4double), G4double a, G4double b, G4int nLegendre) if(2*fNumber != k) { - G4Exception("Invalid (odd) n Legendre in G4Integrator::Legendre") ; + G4Exception("G4Integrator::Legendre(...)", "InvalidCall", + FatalException, "Invalid (odd) nLegendre in constructor."); } G4double* fAbscissa = new G4double[fNumber] ; @@ -433,9 +435,10 @@ Legendre( G4double (*f)(G4double), G4double a, G4double b, G4int nLegendre) fAbscissa[fNumber-i] = newton ; fWeight[fNumber-i] = 2.0/((1.0 - newton*newton)*temp*temp) ; } -// -// Now we ready to get integral -// + + // + // Now we ready to get integral + // xMean = 0.5*(a + b) ; xDiff = 0.5*(b - a) ; @@ -460,8 +463,8 @@ Legendre( G4double (*f)(G4double), G4double a, G4double b, G4int nLegendre) // range of integration, there are actually only five distinct values of each // Convenient for using with class object typeT - template - G4double G4Integrator::Legendre10( T& typeT, F f,G4double a, G4double b) +template +G4double G4Integrator::Legendre10( T& typeT, F f,G4double a, G4double b) { G4int i ; G4double xDiff, xMean, dx, integral ; @@ -500,8 +503,9 @@ G4double G4Integrator::Legendre10( T* ptrT, F f,G4double a, G4double b) // // Convenient for using with global scope functions -template G4double -G4Integrator::Legendre10( G4double (*f)(G4double), G4double a, G4double b) +template +G4double G4Integrator::Legendre10( G4double (*f)(G4double), + G4double a, G4double b ) { G4int i ; G4double xDiff, xMean, dx, integral ; @@ -637,8 +641,9 @@ G4double G4Integrator::Legendre96( T* ptrT, F f,G4double a, G4double b) // // Convenient for using with global scope function f -template G4double -G4Integrator::Legendre96( G4double (*f)(G4double), G4double a, G4double b) +template +G4double G4Integrator::Legendre96( G4double (*f)(G4double), + G4double a, G4double b ) { G4int i ; G4double xDiff, xMean, dx, integral ; @@ -735,9 +740,9 @@ G4Integrator::Legendre96( G4double (*f)(G4double), G4double a, G4double b) // quadrature method. // Convenient for using with class object typeT -template G4double -G4Integrator::Chebyshev( T& typeT, F f, G4double a, - G4double b, G4int nChebyshev ) +template +G4double G4Integrator::Chebyshev( T& typeT, F f, G4double a, + G4double b, G4int nChebyshev ) { G4int i ; G4double xDiff, xMean, dx, integral = 0.0 ; @@ -751,9 +756,11 @@ G4Integrator::Chebyshev( T& typeT, F f, G4double a, fAbscissa[i] = std::cos(cof*(i + 0.5)) ; fWeight[i] = cof*std::sqrt(1 - fAbscissa[i]*fAbscissa[i]) ; } -// -// Now we ready to estimate the integral -// + + // + // Now we ready to estimate the integral + // + xMean = 0.5*(a + b) ; xDiff = 0.5*(b - a) ; for(i=0;i::Chebyshev( T& typeT, F f, G4double a, // // Convenient for using with 'this' pointer -template G4double -G4Integrator::Chebyshev( T* ptrT, F f, G4double a, G4double b, G4int n) +template +G4double G4Integrator::Chebyshev( T* ptrT, F f, G4double a, + G4double b, G4int n ) { return Chebyshev(*ptrT,f,a,b,n) ; } @@ -780,9 +788,9 @@ G4Integrator::Chebyshev( T* ptrT, F f, G4double a, G4double b, G4int n) // // For use with global scope functions f -template G4double -G4Integrator::Chebyshev( G4double (*f)(G4double), - G4double a, G4double b, G4int nChebyshev) +template +G4double G4Integrator::Chebyshev( G4double (*f)(G4double), + G4double a, G4double b, G4int nChebyshev ) { G4int i ; G4double xDiff, xMean, dx, integral = 0.0 ; @@ -796,9 +804,11 @@ G4Integrator::Chebyshev( G4double (*f)(G4double), fAbscissa[i] = std::cos(cof*(i + 0.5)) ; fWeight[i] = cof*std::sqrt(1 - fAbscissa[i]*fAbscissa[i]) ; } -// -// Now we ready to estimate the integral -// + + // + // Now we ready to estimate the integral + // + xMean = 0.5*(a + b) ; xDiff = 0.5*(b - a) ; for(i=0;i::Chebyshev( G4double (*f)(G4double), // Convenient for using with class object 'typeT' and (typeT.*f) function // (T::f) -template G4double -G4Integrator::Laguerre( T& typeT, F f, G4double alpha, G4int nLaguerre ) +template +G4double G4Integrator::Laguerre( T& typeT, F f, G4double alpha, + G4int nLaguerre ) { const G4double tolerance = 1.0e-10 ; const G4int maxNumber = 12 ; @@ -841,7 +852,8 @@ G4Integrator::Laguerre( T& typeT, F f, G4double alpha, G4int nLaguerre ) { if(i == 1) { - newton = (1.0 + alpha)*(3.0 + 0.92*alpha)/(1.0 + 2.4*fNumber + 1.8*alpha) ; + newton = (1.0 + alpha)*(3.0 + 0.92*alpha) + / (1.0 + 2.4*fNumber + 1.8*alpha) ; } else if(i == 2) { @@ -850,8 +862,9 @@ G4Integrator::Laguerre( T& typeT, F f, G4double alpha, G4int nLaguerre ) else { cofi = i - 2 ; - newton += ((1.0+2.55*cofi)/(1.9*cofi) + 1.26*cofi*alpha/(1.0+3.5*cofi))* - (newton - fAbscissa[i-3])/(1.0 + 0.3*alpha) ; + newton += ((1.0+2.55*cofi)/(1.9*cofi) + + 1.26*cofi*alpha/(1.0+3.5*cofi)) + * (newton - fAbscissa[i-3])/(1.0 + 0.3*alpha) ; } for(k=1;k<=maxNumber;k++) { @@ -875,16 +888,19 @@ G4Integrator::Laguerre( T& typeT, F f, G4double alpha, G4int nLaguerre ) } if(k > maxNumber) { - G4Exception("Too many (>12) iterations in G4Integration::Laguerre") ; + G4Exception("G4Integrator::Laguerre(T,F, ...)", "Error", + FatalException, "Too many (>12) iterations."); } fAbscissa[i-1] = newton ; fWeight[i-1] = -std::exp(GammaLogarithm(alpha + fNumber) - GammaLogarithm((G4double)fNumber))/(temp*fNumber*temp2) ; } -// -// Integral evaluation -// + + // + // Integral evaluation + // + for(i=0;i::Laguerre( T* ptrT, F f, G4double alpha, G4int nLaguerre ) template G4double G4Integrator::Laguerre( G4double (*f)(G4double), - G4double alpha, G4int nLaguerre) + G4double alpha, G4int nLaguerre ) { const G4double tolerance = 1.0e-10 ; const G4int maxNumber = 12 ; @@ -964,16 +980,19 @@ G4Integrator::Laguerre( G4double (*f)(G4double), } if(k > maxNumber) { - G4Exception("Too many (>12) iterations in G4Integration::Laguerre") ; + G4Exception("G4Integrator::Laguerre( ...)", "Error", + FatalException, "Too many (>12) iterations."); } fAbscissa[i-1] = newton ; fWeight[i-1] = -std::exp(GammaLogarithm(alpha + fNumber) - GammaLogarithm((G4double)fNumber))/(temp*fNumber*temp2) ; } -// -// Integral evaluation -// + + // + // Integral evaluation + // + for(i=0;i::GammaLogarithm(G4double xx) // template -G4double G4Integrator::Hermite( T& typeT, F f, G4int nHermite) +G4double G4Integrator::Hermite( T& typeT, F f, G4int nHermite ) { const G4double tolerance = 1.0e-12 ; const G4int maxNumber = 12 ; @@ -1084,14 +1103,17 @@ G4double G4Integrator::Hermite( T& typeT, F f, G4int nHermite) } if(k > maxNumber) { - G4Exception("Too many (>12) iterations in G4Integrator::Hermite") ; + G4Exception("G4Integrator::Hermite(T,F, ...)", "Error", + FatalException, "Too many (>12) iterations."); } fAbscissa[i-1] = newton ; fWeight[i-1] = 2.0/(temp*temp) ; } -// -// Integral calculation -// + + // + // Integral calculation + // + for(i=0;i::Hermite( T& typeT, F f, G4int nHermite) // For use with 'this' pointer template -G4double G4Integrator::Hermite( T* ptrT, F f, G4int n) +G4double G4Integrator::Hermite( T* ptrT, F f, G4int n ) { return Hermite(*ptrT,f,n) ; } @@ -1179,14 +1201,17 @@ G4double G4Integrator::Hermite( G4double (*f)(G4double), G4int nHermite) } if(k > maxNumber) { - G4Exception("Too many (>12) iterations in G4Integrator::Hermite") ; + G4Exception("G4Integrator::Hermite(...)", "Error", + FatalException, "Too many (>12) iterations."); } fAbscissa[i-1] = newton ; fWeight[i-1] = 2.0/(temp*temp) ; } -// -// Integral calculation -// + + // + // Integral calculation + // + for(i=0;i::Hermite( G4double (*f)(G4double), G4int nHermite) template G4double G4Integrator::Jacobi( T& typeT, F f, G4double alpha, - G4double beta, G4int nJacobi) + G4double beta, G4int nJacobi) { const G4double tolerance = 1.0e-12 ; const G4double maxNumber = 12 ; @@ -1293,7 +1318,8 @@ G4double G4Integrator::Jacobi( T& typeT, F f, G4double alpha, } if (k > maxNumber) { - G4Exception("Too many iterations (>12) in G4Integrator::Jacobi") ; + G4Exception("G4Integrator::Jacobi(T,F, ...)", "Error", + FatalException, "Too many (>12) iterations."); } fAbscissa[i-1] = root ; fWeight[i-1] = std::exp(GammaLogarithm((G4double)(alpha+nJacobi)) + @@ -1301,10 +1327,12 @@ G4double G4Integrator::Jacobi( T& typeT, F f, G4double alpha, GammaLogarithm((G4double)(nJacobi+1.0)) - GammaLogarithm((G4double)(nJacobi + alphaBeta + 1.0))) *temp*std::pow(2.0,alphaBeta)/(newton*newton2) ; - } -// -// Calculation of the integral -// + } + + // + // Calculation of the integral + // + G4double integral = 0.0 ; for(i=0;i::Jacobi( T* ptrT, F f, G4double alpha, template G4double G4Integrator::Jacobi( G4double (*f)(G4double), G4double alpha, - G4double beta, G4int nJacobi) + G4double beta, G4int nJacobi) { const G4double tolerance = 1.0e-12 ; const G4double maxNumber = 12 ; @@ -1418,7 +1446,8 @@ G4double G4Integrator::Jacobi( G4double (*f)(G4double), G4double alpha, } if (k > maxNumber) { - G4Exception("Too many iterations (>12) in G4Integrator::Jacobi") ; + G4Exception("G4Integrator::Jacobi(...)", "Error", + FatalException, "Too many (>12) iterations."); } fAbscissa[i-1] = root ; fWeight[i-1] = @@ -1427,10 +1456,12 @@ G4double G4Integrator::Jacobi( G4double (*f)(G4double), G4double alpha, GammaLogarithm((G4double)(nJacobi+1.0)) - GammaLogarithm((G4double)(nJacobi + alphaBeta + 1.0))) *temp*std::pow(2.0,alphaBeta)/(newton*newton2); - } -// -// Calculation of the integral -// + } + + // + // Calculation of the integral + // + G4double integral = 0.0 ; for(i=0;i +#include + +#include "globals.hh" + +class G4JTPolynomialSolver +{ + + public: + + G4JTPolynomialSolver(); + ~G4JTPolynomialSolver(); + + G4int FindRoots(G4double *op, G4int degree, + G4double *zeror, G4double *zeroi); + + private: + + std::vector p; + std::vector qp; + std::vector k; + std::vector qk; + std::vector svk; + + G4double sr; + G4double si; + G4double u,v; + G4double a,b,c,d; + G4double a1,a2,a3,a6,a7; + G4double e,f,g,h; + G4double szr,szi; + G4double lzr,lzi; + G4int n,nmi; + + /* The following statements set machine constants */ + + static const G4double base; + static const G4double eta; + static const G4double infin; + static const G4double smalno; + static const G4double are; + static const G4double mre; + static const G4double lo; + + void Quadratic(G4double a,G4double b1,G4double c, + G4double *sr,G4double *si, G4double *lr,G4double *li); + void ComputeFixedShiftPolynomial(G4int l2, G4int *nz); + void QuadraticPolynomialIteration(G4double *uu,G4double *vv,G4int *nz); + void RealPolynomialIteration(G4double *sss, G4int *nz, G4int *iflag); + void ComputeScalarFactors(G4int *type); + void ComputeNextPolynomial(G4int *type); + void ComputeNewEstimate(G4int type,G4double *uu,G4double *vv); + void QuadraticSyntheticDivision(G4int n, G4double *u, G4double *v, + std::vector &p, + std::vector &q, + G4double *a, G4double *b); +}; + +#endif diff --git a/source/global/HEPNumerics/include/G4PolynomialSolver.hh b/source/global/HEPNumerics/include/G4PolynomialSolver.hh index 3c3827597f..f63e0d2cd1 100644 --- a/source/global/HEPNumerics/include/G4PolynomialSolver.hh +++ b/source/global/HEPNumerics/include/G4PolynomialSolver.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolynomialSolver.hh,v 1.3 2001/07/11 10:00:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4PolynomialSolver // diff --git a/source/global/HEPNumerics/include/G4PolynomialSolver.icc b/source/global/HEPNumerics/include/G4PolynomialSolver.icc index 9c63e2d1ba..550d0f4ada 100644 --- a/source/global/HEPNumerics/include/G4PolynomialSolver.icc +++ b/source/global/HEPNumerics/include/G4PolynomialSolver.icc @@ -22,7 +22,7 @@ // // // $Id: G4PolynomialSolver.icc,v 1.7 2004/11/12 17:38:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class G4PolynomialSolver // diff --git a/source/global/HEPNumerics/include/G4SimpleIntegration.hh b/source/global/HEPNumerics/include/G4SimpleIntegration.hh index b43c934179..7d75bb2a39 100644 --- a/source/global/HEPNumerics/include/G4SimpleIntegration.hh +++ b/source/global/HEPNumerics/include/G4SimpleIntegration.hh @@ -21,34 +21,34 @@ // ******************************************************************** // // -// $Id: G4SimpleIntegration.hh,v 1.4 2004/11/12 16:25:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4SimpleIntegration.hh,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class description: // -// Class for realisation of simple numerical methodes for integration of functions -// with signature: double f(double). The methods based mainly on algorithms given in -// the book : An introduction to NUMERICAL METHODS IN C++, B.H. Flowers, Claredon -// Press, Oxford, 1995 +// Class for realisation of simple numerical methodes for integration of +// functions with signature: double f(double). The methods based mainly on +// algorithms given in the book : +// An introduction to NUMERICAL METHODS IN C++, +// B.H. Flowers, Claredon Press, Oxford, 1995. // -// --------------------------- Member data: ------------------------------------- +// --------------------------- Member data ---------------------------- // -// fFunction - pointer to the function to be integrated -// fTolerance - accuracy of integration in Adaptive Gauss method -// fMaxDepth = 100 - constant maximum iteration depth for -// Adaptive Gauss method +// fFunction - pointer to the function to be integrated +// fTolerance - accuracy of integration in Adaptive Gauss method +// fMaxDepth = 100 - constant maximum iteration depth for +// Adaptive Gauss method // -// --------------------------- Methods: ----------------------------------------- +// --------------------------- Methods -------------------------------- // -// Trapezoidal, MidPoint, Gauss, -// and Simpson(double a,double b,int n) - integrate function pointed -// by fFunction from a to b by n iterations, i.e. with Step (b-a)/n -// according to the correspondent method +// Trapezoidal, MidPoint, Gauss and Simpson(double a,double b,int n) +// - integrate function pointed by fFunction from a to b by n iterations, +// i.e. with Step (b-a)/n according to the correspondent method. // -// AdaptGausIntegration(double a, double b) - integrate function from a to be with -// accuracy <= fTolerance +// AdaptGausIntegration(double a, double b) +// - integrate function from a to be with accuracy <= fTolerance -// ----------------------------- History: ---------------------------------------- +// ----------------------------- History ------------------------------ // // 26.03.97 V.Grichine ( Vladimir.Grichine@cern.ch ) @@ -61,8 +61,9 @@ typedef G4double (*function)(G4double) ; class G4SimpleIntegration { -public: - G4SimpleIntegration( function pFunction ) ; + public: + + explicit G4SimpleIntegration( function pFunction ) ; G4SimpleIntegration( function pFunction, G4double pTolerance ) ; @@ -73,40 +74,45 @@ public: G4double Trapezoidal(G4double xInitial, G4double xFinal, - G4int iterationNumber ) ; + G4int iterationNumber ) ; G4double MidPoint(G4double xInitial, G4double xFinal, - G4int iterationNumber ) ; + G4int iterationNumber ) ; G4double Gauss(G4double xInitial, G4double xFinal, - G4int iterationNumber ) ; + G4int iterationNumber ) ; G4double Simpson(G4double xInitial, G4double xFinal, - G4int iterationNumber ) ; + G4int iterationNumber ) ; // Adaptive Gauss integration with accuracy ~ fTolerance - + G4double AdaptGaussIntegration( G4double xInitial, G4double xFinal ) ; - -protected: + protected: + G4double Gauss( G4double xInitial, G4double xFinal ) ; void AdaptGauss( G4double xInitial, G4double xFinal, - G4double& sum, - G4int& depth ) ; + G4double& sum, + G4int& depth ) ; + private: -private: + G4SimpleIntegration(const G4SimpleIntegration&); + G4SimpleIntegration& operator=(const G4SimpleIntegration&); + // Private copy constructor and assignment operator. + + private: function fFunction ; - G4double fTolerance ; - static G4int fMaxDepth ; -} ; + G4double fTolerance ; + static G4int fMaxDepth ; +}; #endif diff --git a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh index 1d39661019..f5be4c0f3a 100644 --- a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh +++ b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VGaussianQuadrature.hh,v 1.5 2004/11/12 17:38:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VGaussianQuadrature.hh,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class description: // @@ -63,46 +63,34 @@ typedef G4double (*function)(G4double) ; class G4VGaussianQuadrature { -public: - // Base constructor + public: - G4VGaussianQuadrature( function pFunction ) ; - - // Virtual destructor - - virtual ~G4VGaussianQuadrature() ; - - // Access functions: - - G4double GetAbscissa(G4int index) const ; + explicit G4VGaussianQuadrature( function pFunction ) ; + // Base constructor - G4double GetWeight(G4int index) const ; - - G4int GetNumber() const { return fNumber ; } - - // Methods: - - // virtual G4double DefiniteIntegral( G4double a, - // G4double b ) const = 0 ; - - // virtual G4double Integral() const = 0 ; - - - -protected: - G4double GammaLogarithm(G4double xx) ; + virtual ~G4VGaussianQuadrature() ; + // Virtual destructor - // Data members common for GaussianQuadrature family - - function fFunction ; - G4double* fAbscissa ; - G4double* fWeight ; - G4int fNumber ; -private: + G4double GetAbscissa(G4int index) const ; + G4double GetWeight(G4int index) const ; + G4int GetNumber() const; + // Access functions - G4VGaussianQuadrature(const G4VGaussianQuadrature&); - G4VGaussianQuadrature& operator=(const G4VGaussianQuadrature&); + protected: + G4double GammaLogarithm(G4double xx) ; + + // Data members common for GaussianQuadrature family + // + function fFunction ; + G4double* fAbscissa ; + G4double* fWeight ; + G4int fNumber ; + + private: + + G4VGaussianQuadrature(const G4VGaussianQuadrature&); + G4VGaussianQuadrature& operator=(const G4VGaussianQuadrature&); }; #endif diff --git a/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc b/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc new file mode 100644 index 0000000000..98f0891500 --- /dev/null +++ b/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc @@ -0,0 +1,442 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4AnalyticalPolSolver.cc,v 1.5 2005/05/19 07:40:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// + +#include "globals.hh" +#include + +#include "G4AnalyticalPolSolver.hh" + +////////////////////////////////////////////////////////////////////////////// + +G4AnalyticalPolSolver::G4AnalyticalPolSolver() {;} + +////////////////////////////////////////////////////////////////////////////// + +G4AnalyticalPolSolver::~G4AnalyticalPolSolver() {;} + +////////////////////////////////////////////////////////////////////////////// +// +// Array r[3][5] p[5] +// Roots of poly p[0] x^2 + p[1] x+p[2]=0 +// +// x = r[1][k] + i r[2][k]; k = 1, 2 + +G4int G4AnalyticalPolSolver::QuadRoots( G4double p[5], G4double r[3][5] ) +{ + G4double b, c, d2, d; + + b = -p[1]/p[0]/2.; + c = p[2]/p[0]; + d2 = b*b - c; + + if( d2 >= 0. ) + { + d = std::sqrt(d2); + r[1][1] = b - d; + r[1][2] = b + d; + r[2][1] = 0.; + r[2][2] = 0.; + } + else + { + d = std::sqrt(-d2); + r[2][1] = d; + r[2][2] = -d; + r[1][1] = b; + r[1][2] = b; + } + + return 2; +} + +////////////////////////////////////////////////////////////////////////////// +// +// Array r[3][5] p[5] +// Roots of poly p[0] x^3 + p[1] x^2...+p[3]=0 +// x=r[1][k] + i r[2][k] k=1,...,3 +// Assumes 00 + +G4int G4AnalyticalPolSolver::CubicRoots( G4double p[5], G4double r[3][5] ) +{ + G4double s,t,b,c,d; + G4int k; + + if( p[0] != 1. ) + { + for(k = 1; k < 4; k++ ) { p[k] = p[k]/p[0]; } + p[0] = 1.; + } + s = p[1]/3.0; + t = s*p[1]; + b = 0.5*( s*( t/1.5 - p[2] ) + p[3] ); + t = ( t - p[2] )/3.0; + c = t*t*t; + d = b*b - c; + + if( d >= 0. ) + { + d = std::pow( (std::sqrt(d) + std::fabs(b) ), 1.0/3.0 ); + + if( d != 0. ) + { + if( b > 0. ) { b = -d; } + else { b = d; } + c = t/b; + } + d = std::sqrt(0.75)*(b - c); + r[2][2] = d; + b = b + c; + c = -0.5*b-s; + r[1][2] = c; + + if( ( b > 0. && s <= 0. ) || ( b < 0. && s > 0. ) ) + { + r[1][1] = c; + r[2][1] = -d; + r[1][3] = b - s; + r[2][3] = 0; + } + else + { + r[1][1] = b - s; + r[2][1] = 0.; + r[1][3] = c; + r[2][3] = -d; + } + } // end of 2 equal or complex roots + else + { + if( b == 0. ) { d = std::atan(1.0)/1.5; } + else { d = std::atan( std::sqrt(-d)/std::fabs(b) )/3.0; } + + if( b < 0. ) { b = std::sqrt(t)*2.0; } + else { b = -2.0*std::sqrt(t); } + + c = std::cos(d)*b; + t = -std::sqrt(0.75)*std::sin(d)*b - 0.5*c; + d = -t - c - s; + c = c - s; + t = t - s; + + if( std::fabs(c) > std::fabs(t) ) { r[1][3] = c; } + else + { + r[1][3] = t; + t = c; + } + if( std::fabs(d) > std::fabs(t) ) { r[1][2] = d; } + else + { + r[1][2] = t; + t = d; + } + r[1][1] = t; + + for(k = 1; k < 4; k++ ) { r[2][k] = 0.; } + } + return 0; +} + +////////////////////////////////////////////////////////////////////////////// +// +// Array r[3][5] p[5] +// Roots of poly p[0] x^4 + p[1] x^3...+p[4]=0 +// x=r[1][k] + i r[2][k] k=1,...,4 + +G4int G4AnalyticalPolSolver::BiquadRoots( G4double p[5], G4double r[3][5] ) +{ + G4double a, b, c, d, e; + G4int i, k, j, noRoots; + + if(p[0] != 1.0) + { + for( k = 1; k < 5; k++) { p[k] = p[k]/p[0]; } + p[0] = 1.; + } + e = 0.25*p[1]; + b = 2*e; + c = b*b; + d = 0.75*c; + b = p[3] + b*( c - p[2] ); + a = p[2] - d; + c = p[4] + e*( e*a - p[3] ); + a = a - d; + + p[1] = 0.5*a; + p[2] = (p[1]*p[1]-c)*0.25; + p[3] = b*b/(-64.0); + + if( p[3] < 0. ) + { + noRoots = CubicRoots(p,r); + + for( k = 1; k < 4; k++ ) + { + if( r[2][k] == 0. && r[1][k] > 0 ) + { + d = r[1][k]*4; + a = a + d; + + if ( a >= 0. && b >= 0.) { p[1] = std::sqrt(d); } + else if( a <= 0. && b <= 0.) { p[1] = std::sqrt(d); } + else { p[1] = -std::sqrt(d); } + + b = 0.5*( a + b/p[1] ); + + p[2] = c/b; + noRoots = QuadRoots(p,r); + + for( i = 1; i < 3; i++ ) + { + for( j = 1; j < 3; j++ ) { r[j][i+2] = r[j][i]; } + } + p[1] = -p[1]; + p[2] = b; + noRoots = QuadRoots(p,r); + + for( i = 1; i < 5; i++ ) { r[1][i] = r[1][i] - e; } + + return 4; + } + } + } + if( p[2] < 0. ) + { + b = std::sqrt(c); + d = b + b - a; + p[1] = 0.; + + if( d > 0. ) { p[1] = std::sqrt(d); } + } + else + { + if( p[1] > 0.) { b = std::sqrt(p[2])*2.0 + p[1]; } + else { b = -std::sqrt(p[2])*2.0 + p[1]; } + + if( b != 0.) { p[1] = 0; } + else + { + for(k = 1; k < 5; k++ ) + { + r[1][k] = -e; + r[2][k] = 0; + } + return 0; + } + } + + p[2] = c/b; + noRoots = QuadRoots(p,r); + + for( k = 1; k < 3; k++ ) + { + for( j = 1; j < 3; j++ ) { r[j][k+2] = r[j][k]; } + } + p[1] = -p[1]; + p[2] = b; + noRoots = QuadRoots(p,r); + + for( k = 1; k < 5; k++ ) { r[1][k] = r[1][k] - e; } + + return 4; +} + +////////////////////////////////////////////////////////////////////////////// + +G4int G4AnalyticalPolSolver::QuarticRoots( G4double p[5], G4double r[3][5]) +{ + G4double a0, a1, a2, a3, y1; + G4double R2, D2, E2, D, E, R = 0.; + G4double a, b, c, d, ds; + + G4double reRoot[4]; + G4int k, noRoots, noReRoots = 0; + + for( k = 0; k < 4; k++ ) { reRoot[k] = DBL_MAX; } + + if( p[0] != 1.0 ) + { + for( k = 1; k < 5; k++) { p[k] = p[k]/p[0]; } + p[0] = 1.; + } + a3 = p[1]; + a2 = p[2]; + a1 = p[3]; + a0 = p[4]; + + // resolvent cubic equation cofs: + + p[1] = -a2; + p[2] = a1*a3 - 4*a0; + p[3] = 4*a2*a0 - a1*a1 - a3*a3*a0; + + noRoots = CubicRoots(p,r); + + for( k = 1; k < 4; k++ ) + { + if( r[2][k] == 0. ) // find a real root + { + noReRoots++; + reRoot[k] = r[1][k]; + } + else reRoot[k] = DBL_MAX; // kInfinity; + } + y1 = DBL_MAX; // kInfinity; + for( k = 1; k < 4; k++ ) + { + if ( reRoot[k] < y1 ) { y1 = reRoot[k]; } + } + + R2 = 0.25*a3*a3 - a2 + y1; + b = 0.25*(4*a3*a2 - 8*a1 - a3*a3*a3); + c = 0.75*a3*a3 - 2*a2; + a = c - R2; + d = 4*y1*y1 - 16*a0; + + if( R2 > 0.) + { + R = std::sqrt(R2); + D2 = a + b/R; + E2 = a - b/R; + + if( D2 >= 0. ) + { + D = std::sqrt(D2); + r[1][1] = -0.25*a3 + 0.5*R + 0.5*D; + r[1][2] = -0.25*a3 + 0.5*R - 0.5*D; + r[2][1] = 0.; + r[2][2] = 0.; + } + else + { + D = std::sqrt(-D2); + r[1][1] = -0.25*a3 + 0.5*R; + r[1][2] = -0.25*a3 + 0.5*R; + r[2][1] = 0.5*D; + r[2][2] = -0.5*D; + } + if( E2 >= 0. ) + { + E = std::sqrt(E2); + r[1][3] = -0.25*a3 - 0.5*R + 0.5*E; + r[1][4] = -0.25*a3 - 0.5*R - 0.5*E; + r[2][3] = 0.; + r[2][4] = 0.; + } + else + { + E = std::sqrt(-E2); + r[1][3] = -0.25*a3 - 0.5*R; + r[1][4] = -0.25*a3 - 0.5*R; + r[2][3] = 0.5*E; + r[2][4] = -0.5*E; + } + } + else if( R2 < 0.) + { + R = std::sqrt(-R2); + G4complex CD2(a,-b/R); + G4complex CD = std::sqrt(CD2); + + r[1][1] = -0.25*a3 + 0.5*real(CD); + r[1][2] = -0.25*a3 - 0.5*real(CD); + r[2][1] = 0.5*R + 0.5*imag(CD); + r[2][2] = 0.5*R - 0.5*imag(CD); + G4complex CE2(a,b/R); + G4complex CE = std::sqrt(CE2); + + r[1][3] = -0.25*a3 + 0.5*real(CE); + r[1][4] = -0.25*a3 - 0.5*real(CE); + r[2][3] = -0.5*R + 0.5*imag(CE); + r[2][4] = -0.5*R - 0.5*imag(CE); + } + else // R2=0 case + { + if(d >= 0.) + { + D2 = c + std::sqrt(d); + E2 = c - std::sqrt(d); + + if( D2 >= 0. ) + { + D = std::sqrt(D2); + r[1][1] = -0.25*a3 + 0.5*R + 0.5*D; + r[1][2] = -0.25*a3 + 0.5*R - 0.5*D; + r[2][1] = 0.; + r[2][2] = 0.; + } + else + { + D = std::sqrt(-D2); + r[1][1] = -0.25*a3 + 0.5*R; + r[1][2] = -0.25*a3 + 0.5*R; + r[2][1] = 0.5*D; + r[2][2] = -0.5*D; + } + if( E2 >= 0. ) + { + E = std::sqrt(E2); + r[1][3] = -0.25*a3 - 0.5*R + 0.5*E; + r[1][4] = -0.25*a3 - 0.5*R - 0.5*E; + r[2][3] = 0.; + r[2][4] = 0.; + } + else + { + E = std::sqrt(-E2); + r[1][3] = -0.25*a3 - 0.5*R; + r[1][4] = -0.25*a3 - 0.5*R; + r[2][3] = 0.5*E; + r[2][4] = -0.5*E; + } + } + else + { + ds = std::sqrt(-d); + G4complex CD2(c,ds); + G4complex CD = std::sqrt(CD2); + + r[1][1] = -0.25*a3 + 0.5*real(CD); + r[1][2] = -0.25*a3 - 0.5*real(CD); + r[2][1] = 0.5*R + 0.5*imag(CD); + r[2][2] = 0.5*R - 0.5*imag(CD); + + G4complex CE2(c,-ds); + G4complex CE = std::sqrt(CE2); + + r[1][3] = -0.25*a3 + 0.5*real(CE); + r[1][4] = -0.25*a3 - 0.5*real(CE); + r[2][3] = -0.5*R + 0.5*imag(CE); + r[2][4] = -0.5*R - 0.5*imag(CE); + } + } + return 4; +} + +// +// +////////////////////////////////////////////////////////////////////////////// diff --git a/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc b/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc index 5642eaceca..e860242482 100644 --- a/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc +++ b/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc @@ -21,37 +21,31 @@ // ******************************************************************** // // -// $Id: G4ChebyshevApproximation.cc,v 1.4 2004/11/12 17:38:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4ChebyshevApproximation.cc,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4ChebyshevApproximation.hh" - -// Constructor for initialisation of the class data members. It creates the array -// fChebyshevCof[0,...,fNumber-1], fNumber = n ; which consists of Chebyshev -// coefficients describing the function pointed by pFunction. The values a and b -// fixe the interval of validity of Chebyshev approximation. - +// Constructor for initialisation of the class data members. +// It creates the array fChebyshevCof[0,...,fNumber-1], fNumber = n ; +// which consists of Chebyshev coefficients describing the function +// pointed by pFunction. The values a and b fix the interval of validity +// of the Chebyshev approximation. G4ChebyshevApproximation::G4ChebyshevApproximation( function pFunction, G4int n, G4double a, - G4double b ) + G4double b ) + : fFunction(pFunction), fNumber(n), + fChebyshevCof(new G4double[fNumber]), + fMean(0.5*(b+a)), fDiff(0.5*(b-a)) { - G4int i, j ; - G4double rootSum, cof, cofj, weight ; - - fFunction = pFunction ; - fNumber = n ; - fDiff = 0.5*(b-a) ; - fMean = 0.5*(b+a) ; - fChebyshevCof = new G4double[fNumber] ; - + G4int i=0, j=0 ; + G4double rootSum=0.0, cofj=0.0 ; G4double* tempFunction = new G4double[fNumber] ; - - weight = 2.0/fNumber ; - cof = 0.5*weight*pi ; // pi/n + G4double weight = 2.0/fNumber ; + G4double cof = 0.5*weight*pi ; // pi/n for (i=0;i= fNumber) { - G4Exception - ("Argument out of range in G4ChebyshevApproximation::GetChebyshevCof") ; + G4Exception("G4ChebyshevApproximation::GetChebyshevCof()", + "InvalidCall", FatalException, "Argument out of range !") ; } return fChebyshevCof[number] ; } @@ -222,22 +203,23 @@ G4ChebyshevApproximation::GetChebyshevCof(G4int number) const G4double G4ChebyshevApproximation::ChebyshevEvaluation(G4double x) const { - G4int i; - G4double evaluate = 0.0, evaluate2 = 0.0, temp, xReduced, xReduced2 ; + G4double evaluate = 0.0, evaluate2 = 0.0, temp = 0.0, + xReduced = 0.0, xReduced2 = 0.0 ; - if ((x-fMean+fDiff)*(x-fMean-fDiff) > 0.0) - { -G4Exception("Invalid argument in G4ChebyshevApproximation::ChebyshevEvaluation"); - } - xReduced = (x-fMean)/fDiff ; - xReduced2 = 2.0*xReduced ; - for (i=fNumber-1;i>=1;i--) - { - temp = evaluate ; - evaluate = xReduced2*evaluate - evaluate2 + fChebyshevCof[i] ; - evaluate2 = temp ; - } - return xReduced*evaluate - evaluate2 + 0.5*fChebyshevCof[0] ; + if ((x-fMean+fDiff)*(x-fMean-fDiff) > 0.0) + { + G4Exception("G4ChebyshevApproximation::ChebyshevEvaluation()", + "InvalidCall", FatalException, "Invalid argument !") ; + } + xReduced = (x-fMean)/fDiff ; + xReduced2 = 2.0*xReduced ; + for (G4int i=fNumber-1;i>=1;i--) + { + temp = evaluate ; + evaluate = xReduced2*evaluate - evaluate2 + fChebyshevCof[i] ; + evaluate2 = temp ; + } + return xReduced*evaluate - evaluate2 + 0.5*fChebyshevCof[0] ; } // ------------------------------------------------------------------ @@ -248,17 +230,16 @@ G4Exception("Invalid argument in G4ChebyshevApproximation::ChebyshevEvaluation") void G4ChebyshevApproximation::DerivativeChebyshevCof(G4double derCof[]) const { - G4int i ; G4double cof = 1.0/fDiff ; derCof[fNumber-1] = 0.0 ; derCof[fNumber-2] = 2*(fNumber-1)*fChebyshevCof[fNumber-1] ; - for(i=fNumber-3;i>=0;i--) + for(G4int i=fNumber-3;i>=0;i--) { derCof[i] = derCof[i+2] + 2*(i+1)*fChebyshevCof[i+1] ; } - for(i=0;i maxDerivative) @@ -106,57 +106,58 @@ G4DataInterpolation::G4DataInterpolation( G4double pX[], else { qn = 0.5 ; - un =(3.0/(fArgument[fNumber-1]-fArgument[fNumber-2]))*(pFirstDerFinish - - (fFunction[fNumber-1]-fFunction[fNumber-2])/ - (fArgument[fNumber-1]-fArgument[fNumber-2])) ; + un = (3.0/(fArgument[fNumber-1]-fArgument[fNumber-2])) + * (pFirstDerFinish - (fFunction[fNumber-1]-fFunction[fNumber-2]) + / (fArgument[fNumber-1]-fArgument[fNumber-2])) ; } fSecondDerivative[fNumber-1] = (un - qn*u[fNumber-2])/ (qn*fSecondDerivative[fNumber-2] + 1.0) ; - // The backsubstitution loop for the triagonal algorithm of solving a linear - // system of equations. + // The backsubstitution loop for the triagonal algorithm of solving + // a linear system of equations. - for(k=fNumber-2;k>=0;k--) + for(G4int k=fNumber-2;k>=0;k--) { - fSecondDerivative[k] = fSecondDerivative[k]*fSecondDerivative[k+1] + u[k] ; + fSecondDerivative[k] = fSecondDerivative[k]*fSecondDerivative[k+1] + u[k]; } delete[] u ; } -//////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// // // Destructor deletes dynamically created arrays for data members: fArgument, // fFunction and fSecondDerivative, all have dimension of fNumber G4DataInterpolation::~G4DataInterpolation() { - delete[] fArgument ; - delete[] fFunction ; - if(fSecondDerivative) delete[] fSecondDerivative ; + delete [] fArgument ; + delete [] fFunction ; + if(fSecondDerivative) { delete [] fSecondDerivative; } } -//////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// // -// This function returns the value P(pX), where P(x) is polynom of fNumber-1 degree -// such that P(fArgument[i]) = fFunction[i], for i = 0, ..., fNumber-1 . This is -// Lagrange's form of interpolation and it is based on Neville's algorithm +// This function returns the value P(pX), where P(x) is polynom of fNumber-1 +// degree such that P(fArgument[i]) = fFunction[i], for i = 0, ..., fNumber-1. +// This is Lagrange's form of interpolation and it is based on Neville's +// algorithm G4double G4DataInterpolation::PolynomInterpolation(G4double pX, - G4double& deltaY ) const + G4double& deltaY ) const { - G4int i, m, k = 0 ; - G4double mult, diff, difi, deltaLow, deltaUp, cd, y ; + G4int i=0, m=1, k=0 ; + G4double mult=0.0, difi=0.0, deltaLow=0.0, deltaUp=0.0, cd=0.0, y=0.0 ; G4double* c = new G4double[fNumber] ; G4double* d = new G4double[fNumber] ; - diff = std::fabs(pX-fArgument[0]) ; + G4double diff = std::fabs(pX-fArgument[0]) ; for(i=0;i10) better accuracy for polynom interpolation, as compared with -// PolynomInterpolation function. They could be used instead for derivate +// usually (fNumber>10) better accuracy for polynom interpolation, as compared +// with PolynomInterpolation function. They could be used instead for derivate // calculations and some other applications. void G4DataInterpolation::PolIntCoefficient( G4double cof[]) const { - G4int i, j ; - G4double factor, reducedY, mult ; + G4int i=0, j=0 ; + G4double factor=fNumber, reducedY=0.0, mult=1.0 ; G4double* tempArgument = new G4double[fNumber] ; for(i=0;i=1;j--) { - factor = j*tempArgument[j] + factor*fArgument[i] ; + factor = j*tempArgument[j] + factor*fArgument[i] ; } reducedY = fFunction[i]/factor ; mult = 1.0 ; for(j=fNumber-1;j>=0;j--) { - cof[j] += mult*reducedY ; - mult = tempArgument[j] + mult*fArgument[i] ; + cof[j] += mult*reducedY ; + mult = tempArgument[j] + mult*fArgument[i] ; } } delete[] tempArgument ; } - - -/////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// // -// The function returns diagonal rational function (Bulirsch and Stoer algorithm -// of Neville type) Pn(x)/Qm(x) where P and Q are polynoms. -// Tests showed the method is not stable and hasn't advantage if compared with -// polynomial interpolation ?! - +// The function returns diagonal rational function (Bulirsch and Stoer +// algorithm of Neville type) Pn(x)/Qm(x) where P and Q are polynoms. +// Tests showed the method is not stable and hasn't advantage if compared +// with polynomial interpolation ?! G4double G4DataInterpolation::RationalPolInterpolation(G4double pX, - G4double& deltaY ) const + G4double& deltaY ) const { - G4int i, m, k = 0 ; + G4int i=0, m=1, k=0 ; const G4double tolerance = 1.6e-24 ; - G4double mult, difi, diff, cd, y, cof ; + G4double mult=0.0, difi=0.0, cd=0.0, y=0.0, cof=0.0 ; G4double* c = new G4double[fNumber] ; G4double* d = new G4double[fNumber] ; - diff = std::fabs(pX-fArgument[0]) ; + G4double diff = std::fabs(pX-fArgument[0]) ; for(i=0;i 1) { k = (kHigh + kLow) >> 1 ; // compute midpoint 'bisection' if(fArgument[k] > pX) { - kHigh = k ; + kHigh = k ; } else { - kLow = k ; + kLow = k ; } } // kLow and kHigh now bracket the input value of pX - deltaHL = fArgument[kHigh] - fArgument[kLow] ; - if(deltaHL == 0.0) + G4double deltaHL = fArgument[kHigh] - fArgument[kLow] ; + if (!(deltaHL != 0.0)) { - G4Exception( - "Bad fArgument input in G4DataInterpolation::CubicSplineInterpolation") ; + G4Exception("G4DataInterpolation::CubicSplineInterpolation()", + "Error", FatalException, "Bad fArgument input !") ; } - a = (fArgument[kHigh] - pX)/deltaHL ; - b = (pX - fArgument[kLow])/deltaHL ; + G4double a = (fArgument[kHigh] - pX)/deltaHL ; + G4double b = (pX - fArgument[kLow])/deltaHL ; // Final evaluation of cubic spline polynomial for return @@ -347,22 +343,21 @@ G4DataInterpolation::CubicSplineInterpolation(G4double pX) const /////////////////////////////////////////////////////////////////////////// // // Return cubic spline interpolation in the point pX which is located between -// fArgument[index] and fArgument[index+1]. It is usually called in sequence of -// known from external analysis values of index. - +// fArgument[index] and fArgument[index+1]. It is usually called in sequence +// of known from external analysis values of index. G4double G4DataInterpolation::FastCubicSpline(G4double pX, - G4int index) const + G4int index) const { - G4double delta, a, b ; - delta = fArgument[index+1] - fArgument[index] ; - if(delta == 0.0) + G4double delta = fArgument[index+1] - fArgument[index] ; + if (!(delta != 0.0)) { - G4Exception("Bad fArgument input in G4DataInterpolation::FastCubicSpline") ; + G4Exception("G4DataInterpolation::FastCubicSpline()", + "Error", FatalException, "Bad fArgument input !") ; } - a = (fArgument[index+1] - pX)/delta ; - b = (pX - fArgument[index])/delta ; + G4double a = (fArgument[index+1] - pX)/delta ; + G4double b = (pX - fArgument[index])/delta ; // Final evaluation of cubic spline polynomial for return @@ -371,56 +366,52 @@ G4DataInterpolation::FastCubicSpline(G4double pX, (b*b*b - b)*fSecondDerivative[index+1])*delta*delta/6.0 ; } -/////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// // -// Given argument pX, returns index k, so that pX bracketed by fArgument[k] and -// fArgument[k+1] +// Given argument pX, returns index k, so that pX bracketed by fArgument[k] +// and fArgument[k+1] G4int G4DataInterpolation::LocateArgument(G4double pX) const { - G4int kLow, kHigh, k ; - G4bool ascend ; - kLow = -1 ; - kHigh = fNumber ; - ascend = (fArgument[fNumber-1] >= fArgument[0]) ; + G4int kLow=-1, kHigh=fNumber, k=0 ; + G4bool ascend=(fArgument[fNumber-1] >= fArgument[0]) ; while((kHigh - kLow) > 1) { k = (kHigh + kLow) >> 1 ; // compute midpoint 'bisection' if(pX >= fArgument[k] == ascend) { - kLow = k ; + kLow = k ; } else { - kHigh = k ; + kHigh = k ; } } - if(pX == fArgument[0]) + if (!(pX != fArgument[0])) { return 1 ; } - else if(pX == fArgument[fNumber-1]) + else if (!(pX != fArgument[fNumber-1])) { return fNumber - 2 ; } else return kLow ; } -///////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// // -// Given a value pX, returns a value 'index' such that pX is between fArgument[index] -// and fArgument[index+1]. fArgument MUST BE MONOTONIC, either increasing or -// decreasing. If index = -1 or fNumber, this indicates that pX is out of range. -// The value index on input is taken as the initial approximation for index on -// output. - +// Given a value pX, returns a value 'index' such that pX is between +// fArgument[index] and fArgument[index+1]. fArgument MUST BE MONOTONIC, +// either increasing or decreasing. If index = -1 or fNumber, this indicates +// that pX is out of range. The value index on input is taken as the initial +// approximation for index on output. void G4DataInterpolation::CorrelatedSearch( G4double pX, - G4int& index ) const + G4int& index ) const { - G4int kHigh, k, Increment ; + G4int kHigh=0, k=0, Increment=0 ; // ascend = true for ascending order of table, false otherwise G4bool ascend = (fArgument[fNumber-1] >= fArgument[0]) ; if(index < 0 || index > fNumber-1) @@ -433,45 +424,45 @@ G4DataInterpolation::CorrelatedSearch( G4double pX, Increment = 1 ; // What value would be the best ? if((pX >= fArgument[index]) == ascend) { - if(index == fNumber -1) - { - index = fNumber ; - return ; - } - kHigh = index + 1 ; - while((pX >= fArgument[kHigh]) == ascend) - { - index = kHigh ; - Increment += Increment ; // double the Increment - kHigh = index + Increment ; - if(kHigh > (fNumber - 1)) - { - kHigh = fNumber ; - break ; - } - } + if(index == fNumber -1) + { + index = fNumber ; + return ; + } + kHigh = index + 1 ; + while((pX >= fArgument[kHigh]) == ascend) + { + index = kHigh ; + Increment += Increment ; // double the Increment + kHigh = index + Increment ; + if(kHigh > (fNumber - 1)) + { + kHigh = fNumber ; + break ; + } + } } else { - if(index == 0) - { - index = -1 ; - return ; - } + if(index == 0) + { + index = -1 ; + return ; + } kHigh = index-- ; while((pX < fArgument[index]) == ascend) { - kHigh = index ; - Increment <<= 1 ; // double the Increment - if(Increment >= kHigh) - { - index = -1 ; - break ; - } - else - { - index = kHigh - Increment ; - } + kHigh = index ; + Increment <<= 1 ; // double the Increment + if(Increment >= kHigh) + { + index = -1 ; + break ; + } + else + { + index = kHigh - Increment ; + } } } // Value bracketed } @@ -482,18 +473,18 @@ G4DataInterpolation::CorrelatedSearch( G4double pX, k = (kHigh + index) >> 1 ; if((pX >= fArgument[k]) == ascend) { - index = k ; + index = k ; } else { - kHigh = k ; + kHigh = k ; } } - if(pX == fArgument[fNumber-1]) + if (!(pX != fArgument[fNumber-1])) { index = fNumber - 2 ; } - if(pX == fArgument[0]) + if (!(pX != fArgument[0])) { index = 0 ; } @@ -502,4 +493,4 @@ G4DataInterpolation::CorrelatedSearch( G4double pX, // // -////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// diff --git a/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc b/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc index 5a0d4a03ff..fcbc3ada1a 100644 --- a/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc +++ b/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GaussChebyshevQ.cc,v 1.4 2004/11/12 17:38:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4GaussChebyshevQ.cc,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4GaussChebyshevQ.hh" @@ -31,15 +31,14 @@ // Constructor for Gauss-Chebyshev quadrature method G4GaussChebyshevQ::G4GaussChebyshevQ( function pFunction , - G4int nChebyshev ) + G4int nChebyshev ) : G4VGaussianQuadrature(pFunction) { - G4int i ; fNumber = nChebyshev ; // Try to reduce fNumber twice ?? G4double cof = pi/fNumber ; fAbscissa = new G4double[fNumber] ; fWeight = new G4double[fNumber] ; - for(i=0;i maxNumber) { - G4Exception("Too many iterations in Gauss-Hermite constructor") ; + G4Exception("G4GaussHermiteQ::G4GaussHermiteQ()", + "OutOfRange", FatalException, + "Too many iterations in Gauss-Hermite constructor.") ; } fAbscissa[i-1] = newton ; fWeight[i-1] = 2.0/(temp*temp) ; @@ -100,17 +103,16 @@ G4GaussHermiteQ::G4GaussHermiteQ( function pFunction, // ---------------------------------------------------------- // -// Gauss-Hermite method for integration of std::exp(-x*x)*nFunction(x) from minus infinity -// to plus infinity . +// Gauss-Hermite method for integration of std::exp(-x*x)*nFunction(x) +// from minus infinity to plus infinity . -G4double - G4GaussHermiteQ::Integral() const +G4double G4GaussHermiteQ::Integral() const { - G4int i ; G4double integral = 0.0 ; - for(i=0;i maxNumber) { - G4Exception("Too many iterations in G4GaussJacobiQ::G4GaussJacobiQ") ; + G4Exception("G4GaussJacobiQ::G4GaussJacobiQ()", "OutOfRange", + FatalException, "Too many iterations in constructor.") ; } fAbscissa[i-1] = root ; fWeight[i-1] = std::exp(GammaLogarithm((G4double)(alpha+nJacobi)) + - GammaLogarithm((G4double)(beta+nJacobi)) - - GammaLogarithm((G4double)(nJacobi+1.0)) - - GammaLogarithm((G4double)(nJacobi + alphaBeta + 1.0))) - *temp*std::pow(2.0,alphaBeta)/(newton*newton2) ; + GammaLogarithm((G4double)(beta+nJacobi)) - + GammaLogarithm((G4double)(nJacobi+1.0)) - + GammaLogarithm((G4double)(nJacobi + alphaBeta + 1.0))) + *temp*std::pow(2.0,alphaBeta)/(newton*newton2) ; } } // ---------------------------------------------------------- // -// Gauss-Jacobi method for integration of ((1-x)^alpha)*((1+x)^beta)*pFunction(x) +// Gauss-Jacobi method for integration of +// ((1-x)^alpha)*((1+x)^beta)*pFunction(x) // from minus unit to plus unit . G4double G4GaussJacobiQ::Integral() const { - G4int i ; G4double integral = 0.0 ; - for(i=0;i maxNumber) { - G4Exception("Too many iterations in Gauss-Laguerre constructor") ; + G4Exception("G4GaussLaguerreQ::G4GaussLaguerreQ()", + "OutOfRange", FatalException, + "Too many iterations in Gauss-Laguerre constructor") ; } - + fAbscissa[i-1] = newton ; - fWeight[i-1] = -std::exp(GammaLogarithm(alpha + fNumber) - - GammaLogarithm((G4double)fNumber))/(temp*fNumber*temp2) ; + fWeight[i-1] = -std::exp(GammaLogarithm(alpha + fNumber) + - GammaLogarithm((G4double)fNumber))/(temp*fNumber*temp2) ; } } // ----------------------------------------------------------------- // -// Gauss-Laguerre method for integration of std::pow(x,alpha)*std::exp(-x)*pFunction(x) -// from zero up to infinity. pFunction is evaluated in fNumber points for which -// fAbscissa[i] and fWeight[i] arrays were created in +// Gauss-Laguerre method for integration of +// std::pow(x,alpha)*std::exp(-x)*pFunction(x) +// from zero up to infinity. pFunction is evaluated in fNumber points +// for which fAbscissa[i] and fWeight[i] arrays were created in // G4VGaussianQuadrature(double,int) constructor G4double G4GaussLaguerreQ::Integral() const { - G4int i ; G4double integral = 0.0 ; - for(i=0;i tolerance) ; - + fAbscissa[fNumber-i] = newton ; fWeight[fNumber-i] = 2.0/((1.0 - newton*newton)*temp*temp) ; } } - -// ------------------------------------------------------------------------------- +// -------------------------------------------------------------------------- // -// Returns the integral of the function to be pointed by fFunction between a and b, -// by 2*fNumber point Gauss-Legendre integration: the function is evaluated exactly -// 2*fNumber Times at interior points in the range of integration. Since the weights -// and abscissas are, in this case, symmetric around the midpoint of the range of -// integration, there are actually only fNumber distinct values of each. +// Returns the integral of the function to be pointed by fFunction between a +// and b, by 2*fNumber point Gauss-Legendre integration: the function is +// evaluated exactly 2*fNumber times at interior points in the range of +// integration. Since the weights and abscissas are, in this case, symmetric +// around the midpoint of the range of integration, there are actually only +// fNumber distinct values of each. G4double G4GaussLegendreQ::Integral(G4double a, G4double b) const { - G4int i ; - G4double xDiff, xMean, dx, integral ; - - xMean = 0.5*(a + b) ; - xDiff = 0.5*(b - a) ; - integral = 0.0 ; - for(i=0;i temp(degree+1) ; + std::vector pt(degree+1) ; + + p.assign(degree+1,0) ; + qp.assign(degree+1,0) ; + k.assign(degree+1,0) ; + qk.assign(degree+1,0) ; + svk.assign(degree+1,0) ; + + // Make a copy of the coefficients. + // + for (i=0;i<=n;i++) + { p[i] = op[i]; } + + do + { + if (n == 1) // Start the algorithm for one zero. + { + zeror[degree-1] = -p[1]/p[0]; + zeroi[degree-1] = 0.0; + n -= 1; + return degree - n ; + } + if (n == 2) // Calculate the final zero or pair of zeros. + { + Quadratic(p[0],p[1],p[2],&zeror[degree-2],&zeroi[degree-2], + &zeror[degree-1],&zeroi[degree-1]); + n -= 2; + return degree - n ; + } + + // Find largest and smallest moduli of coefficients. + // + max = 0.0; + min = infin; + for (i=0;i<=n;i++) + { + x = std::fabs(p[i]); + if (x > max) { max = x; } + if (x != 0.0 && x < min) { min = x; } + } + + // Scale if there are large or very small coefficients. + // Computes a scale factor to multiply the coefficients of the + // polynomial. The scaling is done to avoid overflow and to + // avoid undetected underflow interfering with the convergence + // criterion. The factor is a power of the base. + // + sc = lo/min; + + if ( sc <= 1.0 && max >= 10.0 + || sc > 1.0 && infin/sc >= max + || infin/sc >= max && max >= 10 ) + { + if (!( sc != 0.0 )) + { sc = smalno ; } + l = (G4int)(std::log(sc)/std::log(base) + 0.5); + factor = std::pow(base*1.0,l); + if (factor != 1.0) + { + for (i=0;i<=n;i++) + { p[i] = factor*p[i]; } // Scale polynomial. + } + } + + // Compute lower bound on moduli of roots. + // + for (i=0;i<=n;i++) + { + pt[i] = (std::fabs(p[i])); + } + pt[n] = - pt[n]; + + // Compute upper estimate of bound. + // + x = std::exp((std::log(-pt[n])-std::log(pt[0])) / (G4double)n); + + // If Newton step at the origin is better, use it. + // + if (pt[n-1] != 0.0) + { + xm = -pt[n]/pt[n-1]; + if (xm < x) { x = xm; } + } + + // Chop the interval (0,x) until ff <= 0 + // + while (1) + { + xm = x*0.1; + ff = pt[0]; + for (i=1;i<=n;i++) + { ff = ff*xm + pt[i]; } + if (ff <= 0.0) { break; } + x = xm; + } + dx = x; + + // Do Newton interation until x converges to two decimal places. + // + while (std::fabs(dx/x) > 0.005) + { + ff = pt[0]; + df = ff; + for (i=1;i 0) { return; } + + // Linear iteration has failed. Flag that it has been + // tried and decrease the convergence criterion. + // + stry = 1; + betas *=0.25; + if (iflag == 0) { goto _restore_variables; } + + // If linear iteration signals an almost double real + // zero attempt quadratic iteration. + // + ui = -(s+s); + vi = s*s; + } + +_quadratic_iteration: + + do + { + QuadraticPolynomialIteration(&ui,&vi,nz); + if (*nz > 0) { return; } + + // Quadratic iteration has failed. Flag that it has + // been tried and decrease the convergence criterion. + // + vtry = 1; + betav *= 0.25; + + // Try linear iteration if it has not been tried and + // the S sequence is converging. + // + if (stry || !spass) { break; } + for (i=0;i 0) { return; } + + // Linear iteration has failed. Flag that it has been + // tried and decrease the convergence criterion. + // + stry = 1; + betas *=0.25; + if (iflag == 0) { break; } + + // If linear iteration signals an almost double real + // zero attempt quadratic iteration. + // + ui = -(s+s); + vi = s*s; + } + while (iflag != 0); + + // Restore variables. + +_restore_variables: + + u = svu; + v = svv; + for (i=0;i 0.01 * std::fabs(lzr)) + { return; } + + // Evaluate polynomial by quadratic synthetic division. + // + QuadraticSyntheticDivision(n,&u,&v,p,qp,&a,&b); + mp = std::fabs(a-szr*b) + std::fabs(szi*b); + + // Compute a rigorous bound on the rounding error in evaluating p. + // + zm = std::sqrt(std::fabs(v)); + ee = 2.0*std::fabs(qp[0]); + t = -szr*b; + for (i=1;i 20) { return; } + if (j >= 2) + { + if (!(relstp > 0.01 || mp < omp || tried)) + { + // A cluster appears to be stalling the convergence. + // Five fixed shift steps are taken with a u,v close to the cluster. + // + if (relstp < eta) { relstp = eta; } + relstp = std::sqrt(relstp); + u = u - u*relstp; + v = v + v*relstp; + QuadraticSyntheticDivision(n,&u,&v,p,qp,&a,&b); + for (i=0;i<5;i++) + { + ComputeScalarFactors(&type); + ComputeNextPolynomial(&type); + } + tried = 1; + j = 0; + } + } + omp = mp; + + // Calculate next k polynomial and new u and v. + // + ComputeScalarFactors(&type); + ComputeNextPolynomial(&type); + ComputeScalarFactors(&type); + ComputeNewEstimate(type,&ui,&vi); + + // If vi is zero the iteration is not converging. + // + if (!(vi != 0.0)) { return; } + relstp = std::fabs((vi-v)/vi); + u = ui; + v = vi; + } +} + +void G4JTPolynomialSolver:: +RealPolynomialIteration(G4double *sss, G4int *nz, G4int *iflag) +{ + // Variable-shift H polynomial iteration for a real zero. + // sss - starting iterate + // nz - number of zeros found + // iflag - flag to indicate a pair of zeros near real axis. + + G4double t=0.; + G4double omp=0.; + G4double pv=0.0, kv=0.0, s= *sss; + G4double ms=0.0, mp=0.0, ee=0.0; + G4int i=1, j=0; + + *nz = 0; + *iflag = 0; + + // Main loop + // + while (1) + { + pv = p[0]; + + // Evaluate p at s. + // + qp[0] = pv; + for (i=1;i<=n;i++) + { + pv = pv*s + p[i]; + qp[i] = pv; + } + mp = std::fabs(pv); + + // Compute a rigorous bound on the error in evaluating p. + // + ms = std::fabs(s); + ee = (mre/(are+mre))*std::fabs(qp[0]); + for (i=1;i<=n;i++) + { + ee = ee*ms + std::fabs(qp[i]); + } + + // Iteration has converged sufficiently if the polynomial + // value is less than 20 times this bound. + // + if (mp <= 20.0*((are+mre)*ee-mre*mp)) + { + *nz = 1; + szr = s; + szi = 0.0; + return; + } + j++; + + // Stop iteration after 10 steps. + // + if (j > 10) { return; } + if (j >= 2) + { + if (!(std::fabs(t) > 0.001*std::fabs(s-t) || mp < omp)) + { + // A cluster of zeros near the real axis has been encountered. + // Return with iflag set to initiate a quadratic iteration. + // + *iflag = 1; + *sss = s; + return; + } // Return if the polynomial value has increased significantly. + } + + omp = mp; + + // Compute t, the next polynomial, and the new iterate. + // + kv = k[0]; + qk[0] = kv; + for (i=1;i std::fabs(k[n-1]*10.0*eta)) { t = -pv/kv; } + s += t; + } +} + +void G4JTPolynomialSolver::ComputeScalarFactors(G4int *type) +{ + // This function calculates scalar quantities used to + // compute the next k polynomial and new estimates of + // the quadratic coefficients. + // type - integer variable set here indicating how the + // calculations are normalized to avoid overflow. + + // Synthetic division of k by the quadratic 1,u,v + // + QuadraticSyntheticDivision(n-1,&u,&v,k,qk,&c,&d); + if (std::fabs(c) <= std::fabs(k[n-1]*100.0*eta)) + { + if (std::fabs(d) <= std::fabs(k[n-2]*100.0*eta)) + { + *type = 3; // Type=3 indicates the quadratic is almost a factor of k. + return; + } + } + + if (std::fabs(d) < std::fabs(c)) + { + *type = 1; // Type=1 indicates that all formulas are divided by c. + e = a/c; + f = d/c; + g = u*e; + h = v*b; + a3 = a*e + (h/c+g)*b; + a1 = b - a*(d/c); + a7 = a + g*d + h*f; + return; + } + *type = 2; // Type=2 indicates that all formulas are divided by d. + e = a/d; + f = c/d; + g = u*b; + h = v*b; + a3 = (a+g)*e + h*(b/d); + a1 = b*f-a; + a7 = (f+u)*a + h; +} + +void G4JTPolynomialSolver::ComputeNextPolynomial(G4int *type) +{ + // Computes the next k polynomials using scalars + // computed in ComputeScalarFactors. + + G4int i=2; + + if (*type == 3) // Use unscaled form of the recurrence if type is 3. + { + k[0] = 0.0; + k[1] = 0.0; + for (i=2;i &pp, std::vector &qq, + G4double *aa, G4double *bb) +{ + // Divides pp by the quadratic 1,uu,vv placing the quotient + // in qq and the remainder in aa,bb. + + G4double cc=0.0; + *bb = pp[0]; + qq[0] = *bb; + *aa = pp[1] - (*bb)*(*uu); + qq[1] = *aa; + for (G4int i=2;i<=nn;i++) + { + cc = pp[i] - (*aa)*(*uu) - (*bb)*(*vv); + qq[i] = cc; + *bb = *aa; + *aa = cc; + } +} + +void G4JTPolynomialSolver::Quadratic(G4double aa,G4double b1, + G4double cc,G4double *ssr,G4double *ssi, + G4double *lr,G4double *li) +{ + + // Calculate the zeros of the quadratic aa*z^2 + b1*z + cc. + // The quadratic formula, modified to avoid overflow, is used + // to find the larger zero if the zeros are real and both + // are complex. The smaller real zero is found directly from + // the product of the zeros c/a. + + G4double bb=0.0, dd=0.0, ee=0.0; + + if (!(aa != 0.0)) // less than two roots + { + if (b1 != 0.0) + { *ssr = -cc/b1; } + else + { *ssr = 0.0; } + *lr = 0.0; + *ssi = 0.0; + *li = 0.0; + return; + } + if (!(cc != 0.0)) // one real root, one zero root + { + *ssr = 0.0; + *lr = -b1/aa; + *ssi = 0.0; + *li = 0.0; + return; + } + + // Compute discriminant avoiding overflow. + // + bb = b1/2.0; + if (std::fabs(bb) < std::fabs(cc)) + { + if (cc < 0.0) + { ee = -aa; } + else + { ee = aa; } + ee = bb*(bb/std::fabs(cc)) - ee; + dd = std::sqrt(std::fabs(ee))*std::sqrt(std::fabs(cc)); + } + else + { + ee = 1.0 - (aa/bb)*(cc/bb); + dd = std::sqrt(std::fabs(ee))*std::fabs(bb); + } + if (ee < 0.0) // complex conjugate zeros + { + *ssr = -bb/aa; + *lr = *ssr; + *ssi = std::fabs(dd/aa); + *li = -(*ssi); + } + else + { + if (bb >= 0.0) // real zeros. + { dd = -dd; } + *lr = (-bb+dd)/aa; + *ssr = 0.0; + if (*lr != 0.0) + { *ssr = (cc/ *lr)/aa; } + *ssi = 0.0; + *li = 0.0; + } +} diff --git a/source/global/HEPNumerics/src/G4SimpleIntegration.cc b/source/global/HEPNumerics/src/G4SimpleIntegration.cc index 4f53844a6a..6cade1e7a1 100644 --- a/source/global/HEPNumerics/src/G4SimpleIntegration.cc +++ b/source/global/HEPNumerics/src/G4SimpleIntegration.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SimpleIntegration.cc,v 1.5 2004/11/12 17:38:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4SimpleIntegration.cc,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Implementation file for simple integration methods // @@ -35,21 +35,21 @@ G4int G4SimpleIntegration::fMaxDepth = 100 ; G4SimpleIntegration::G4SimpleIntegration( function pFunction ) + : fFunction(pFunction), + fTolerance(.0001) { - fFunction = pFunction ; } G4SimpleIntegration::G4SimpleIntegration( function pFunction, - G4double pTolerance) + G4double pTolerance) + : fFunction(pFunction), + fTolerance(pTolerance) { - fFunction = pFunction ; - fTolerance = pTolerance ; } G4SimpleIntegration::~G4SimpleIntegration() { - ; } // Simple integration methods @@ -57,13 +57,12 @@ G4SimpleIntegration::~G4SimpleIntegration() G4double G4SimpleIntegration::Trapezoidal(G4double xInitial, G4double xFinal, - G4int iterationNumber ) + G4int iterationNumber ) { - G4int i ; G4double Step = (xFinal - xInitial)/iterationNumber ; G4double mean = (fFunction(xInitial) + fFunction(xFinal))*0.5 ; G4double x = xInitial ; - for(i=1;ifMaxDepth) { - G4Exception("Function varies too rapidly in G4SimpleIntegration::AdaptGauss") ; + G4Exception("G4SimpleIntegration::AdaptGauss()", "Error", + FatalException, "Function varies too rapidly !") ; } G4double xMean = (xInitial + xFinal)/2.0 ; G4double leftHalf = Gauss(xInitial,xMean) ; diff --git a/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc b/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc index 1c8aaaf2dd..56ac5676c1 100644 --- a/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc +++ b/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VGaussianQuadrature.cc,v 1.5 2004/11/12 17:38:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VGaussianQuadrature.cc,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // Implementation file for G4VGaussianQuadrature virtual base class // @@ -31,14 +31,9 @@ #include "globals.hh" #include "G4VGaussianQuadrature.hh" - - - G4VGaussianQuadrature::G4VGaussianQuadrature( function pFunction ) + : fFunction(pFunction), fAbscissa(0), fWeight(0), fNumber(0) { - fFunction = pFunction ; - fAbscissa = 0; - fWeight = 0; } // ------------------------------------------------------------------- @@ -54,7 +49,6 @@ G4VGaussianQuadrature::~G4VGaussianQuadrature() // -------------------------- Access functions ---------------------------------- - G4double G4VGaussianQuadrature::GetAbscissa(G4int index) const { @@ -67,6 +61,10 @@ G4VGaussianQuadrature::GetWeight(G4int index) const return fWeight[index] ; } +G4int G4VGaussianQuadrature::GetNumber() const +{ + return fNumber ; +} // ---------------------------------------------------------------------------- // @@ -84,19 +82,15 @@ G4VGaussianQuadrature::GammaLogarithm(G4double xx) static G4double cof[6] = { 76.18009172947146, -86.50532032941677, 24.01409824083091, -1.231739572450155, 0.1208650973866179e-2, -0.5395239384953e-5 } ; - register G4int j; G4double x = xx - 1.0; G4double tmp = x + 5.5; tmp -= (x + 0.5) * std::log(tmp); G4double ser = 1.000000000190015; - for ( j = 0; j <= 5; j++ ) + for ( size_t j = 0; j <= 5; j++ ) { x += 1.0; ser += cof[j]/x; } return -tmp + std::log(2.5066282746310005*ser); } - - - diff --git a/source/global/HEPRandom/include/G4Poisson.hh b/source/global/HEPRandom/include/G4Poisson.hh index 8df82fb9b8..b4caaa96f7 100644 --- a/source/global/HEPRandom/include/G4Poisson.hh +++ b/source/global/HEPRandom/include/G4Poisson.hh @@ -22,7 +22,7 @@ // // // $Id: G4Poisson.hh,v 1.7 2004/11/12 17:38:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/HEPRandom/include/G4RandomDirection.hh b/source/global/HEPRandom/include/G4RandomDirection.hh index cf21753275..aeac0d12a7 100644 --- a/source/global/HEPRandom/include/G4RandomDirection.hh +++ b/source/global/HEPRandom/include/G4RandomDirection.hh @@ -22,7 +22,7 @@ // // // $Id: G4RandomDirection.hh,v 1.2 2004/11/12 17:38:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/HEPRandom/include/Randomize.hh b/source/global/HEPRandom/include/Randomize.hh index 04946fd54b..a86646f03b 100644 --- a/source/global/HEPRandom/include/Randomize.hh +++ b/source/global/HEPRandom/include/Randomize.hh @@ -22,7 +22,7 @@ // // // $Id: Randomize.hh,v 1.5 2001/07/11 10:00:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef randomize_h #define randomize_h 1 diff --git a/source/global/History b/source/global/History index 1968f2612d..04ec563bc9 100644 --- a/source/global/History +++ b/source/global/History @@ -1,4 +1,4 @@ -$Id: History,v 1.136 2004/12/02 10:09:14 gcosmo Exp $ +$Id: History,v 1.144 2005/05/19 07:37:32 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,40 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +May 19, 2005 V.Grichine (global-V07-00-06) +- Improved accuracy to G4AnalyticalPolSolver for quartic case. + +May 17, 2005 V.Grichine (global-V07-00-05) +- Added new class G4AnalyticalPolSolver in HEPNumerics module, implementing + the CACM algorithm for solving analytically a polynomial equation up to + the 4th order. + +Apr 22, 2005 G.Cosmo (global-V07-00-04) +- G4Types.hh: extend check for deprecated warning on for + major versions of gcc >= 3. + +Mar 21, 2005 J.Allison (global-V07-00-03) +- G4UnitsTable.hh/.cc: Added G4BestUnit::operator G4String. + +Mar 18, 2005 G.Cosmo +- Fixed compilation warnings on SUN-CC for G4JTPolynomialSolver. + +Mar 15, 2005 G.Cosmo (global-V07-00-02) +- Migrated calls to G4Exception in HEPNumerics to canonical signature. +- Q/A cleanup to clear CodeWizard warnings and minor fixes. +- Moved inline methods to .icc files. +- Minor cosmetics. + +Mar 01, 2005 G.Cosmo (global-V07-00-01) +- Fixed compilation warnings on WIN32-VC for G4JTPolynomialSolver; + removed unnecessary inclusion of . + +Feb 14, 2005 G.Cosmo (global-V07-00-00) +- Added polynom-solver class G4JTPolynomialSolver implementing the + Jenkins-Traub algorithm for real polynomial root finding. To be + used by the twisted-trap shape for precise computation of + intersections. + Dec 02, 2004 G.Cosmo (global-V06-02-05) - Added inclusion of to G4Allocator.hh to make the header self-consistent. diff --git a/source/global/management/include/G4Allocator.hh b/source/global/management/include/G4Allocator.hh index 0d091a7eaa..3e8aae1af8 100644 --- a/source/global/management/include/G4Allocator.hh +++ b/source/global/management/include/G4Allocator.hh @@ -22,7 +22,7 @@ // // // $Id: G4Allocator.hh,v 1.16 2004/11/29 17:53:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4AllocatorPool.hh b/source/global/management/include/G4AllocatorPool.hh index 8af6448aa6..c7c47ff542 100644 --- a/source/global/management/include/G4AllocatorPool.hh +++ b/source/global/management/include/G4AllocatorPool.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AllocatorPool.hh,v 1.2 2004/11/12 16:25:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4AllocatorPool.hh,v 1.3 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------------- @@ -49,7 +49,7 @@ class G4AllocatorPool { public: - G4AllocatorPool( unsigned int n ); + explicit G4AllocatorPool( unsigned int n ); // Create a pool of elements of size n ~G4AllocatorPool(); // Destructor. Return storage to the free store @@ -79,7 +79,7 @@ class G4AllocatorPool class G4PoolChunk { public: - G4PoolChunk(unsigned int sz) + explicit G4PoolChunk(unsigned int sz) : size(sz), mem(new char[size]), next(0) {;} ~G4PoolChunk() { delete [] mem; } const unsigned int size; @@ -92,9 +92,9 @@ class G4AllocatorPool private: - G4PoolChunk* chunks; const unsigned int esize; const unsigned int csize; + G4PoolChunk* chunks; G4PoolLink* head; int nchunks; }; @@ -110,7 +110,7 @@ class G4AllocatorPool inline void* G4AllocatorPool::Alloc() { - if (head==0) Grow(); + if (head==0) { Grow(); } G4PoolLink* p = head; // return first element head = p->next; return p; diff --git a/source/global/management/include/G4ApplicationState.hh b/source/global/management/include/G4ApplicationState.hh index 7c1a9cfacb..7d23dbfdeb 100644 --- a/source/global/management/include/G4ApplicationState.hh +++ b/source/global/management/include/G4ApplicationState.hh @@ -22,7 +22,7 @@ // // // $Id: G4ApplicationState.hh,v 1.3 2002/12/04 17:39:50 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4APPLICATIONSTATE_H diff --git a/source/global/management/include/G4DataVector.hh b/source/global/management/include/G4DataVector.hh index 2743fc8edb..4e4d7835f3 100644 --- a/source/global/management/include/G4DataVector.hh +++ b/source/global/management/include/G4DataVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DataVector.hh,v 1.12 2003/06/06 16:17:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4DataVector.hh,v 1.13 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ @@ -53,7 +53,7 @@ class G4DataVector : public std::vector G4DataVector(); // Default constructor. - G4DataVector(size_t capacity); + explicit G4DataVector(size_t capacity); // Constructor given a 'capacity' defining the initial number of elements. G4DataVector(size_t capacity, G4double value); @@ -87,68 +87,6 @@ class G4DataVector : public std::vector friend std::ostream& operator<<(std::ostream&, const G4DataVector&); }; -inline -void G4DataVector::insertAt(size_t pos, const G4double& a) -{ - iterator i = begin(); - for (size_t ptn=0; (ptnSetGuidance("Select data.txt."); - - readFileCmd = new G4UIcmdWithAString("/run/data",this); - readFileCmd->SetGuidance("Select data.txt/ write the name of the file"); - readFileCmd->SetParameterName("choice",true); - readFileCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - } + iterator i = begin(); + for (size_t ptn=0; (ptn Read(newValue); +inline +G4bool G4DataVector::remove(const G4double& a) +{ + G4bool found = false; + + for (iterator i=begin(); i!=end(); i++) + { + if (!(*i!=a)) + { + erase(i); + found = true; + break; + } + } + return found; } +inline +size_t G4DataVector::removeAll(const G4double& a) +{ + size_t ptn=0; + + for (iterator i=begin(); i!=end(); i++) + { + if (!(*i!=a)) + { + erase(i); + ptn++; + i--; + } + } + return ptn; +} diff --git a/source/global/management/include/G4ExceptionSeverity.hh b/source/global/management/include/G4ExceptionSeverity.hh index ff42133d1f..8de402e552 100644 --- a/source/global/management/include/G4ExceptionSeverity.hh +++ b/source/global/management/include/G4ExceptionSeverity.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExceptionSeverity.hh,v 1.2 2002/08/26 14:56:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Class Description: // diff --git a/source/global/management/include/G4FastVector.hh b/source/global/management/include/G4FastVector.hh index 8e6a662c74..02091fbee6 100644 --- a/source/global/management/include/G4FastVector.hh +++ b/source/global/management/include/G4FastVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastVector.hh,v 1.4 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4LPhysicsFreeVector.hh b/source/global/management/include/G4LPhysicsFreeVector.hh index cb093d0a04..8c782b4521 100644 --- a/source/global/management/include/G4LPhysicsFreeVector.hh +++ b/source/global/management/include/G4LPhysicsFreeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4LPhysicsFreeVector.hh,v 1.7 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------------ diff --git a/source/global/management/include/G4LPhysicsFreeVector.icc b/source/global/management/include/G4LPhysicsFreeVector.icc index 9b1660323b..6d319e95e1 100644 --- a/source/global/management/include/G4LPhysicsFreeVector.icc +++ b/source/global/management/include/G4LPhysicsFreeVector.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LPhysicsFreeVector.icc,v 1.5 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4LPhysicsFreeVector.icc,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------------ @@ -42,7 +42,8 @@ // Want to simultaneously fill the bin and data vectors. inline -void G4LPhysicsFreeVector::PutValues(size_t binNumber, G4double binValue, G4double dataValue) +void G4LPhysicsFreeVector::PutValues(size_t binNumber, + G4double binValue, G4double dataValue) { binVector[binNumber] = binValue; dataVector[binNumber] = dataValue; @@ -56,30 +57,39 @@ void G4LPhysicsFreeVector::PutValues(size_t binNumber, G4double binValue, G4doub inline G4double G4LPhysicsFreeVector::GetValue(G4double theEnergy, G4bool& isOutRange) { - G4double returnValue; + G4double returnValue = 0.; // verboseLevel = 2; - if (theEnergy < edgeMin) { + if (theEnergy < edgeMin) + { isOutRange = true; #ifdef G4VERBOSE - if (verboseLevel > 1) G4cout << "G4LPhysicsFreeVector::GetValue " << - theEnergy << " " << dataVector[0] << " " << isOutRange << G4endl; + if (verboseLevel > 1) + { + G4cout << "G4LPhysicsFreeVector::GetValue " << theEnergy + << " " << dataVector[0] << " " << isOutRange << G4endl; + } #endif returnValue = dataVector[0]; } - else if (theEnergy > edgeMax) { + else if (theEnergy > edgeMax) + { isOutRange = true; #ifdef G4VERBOSE - if (verboseLevel > 1) G4cout << "G4LPhysicsFreeVector::GetValue " << - theEnergy << " " << dataVector[numberOfBin - 1] << " " << - isOutRange << G4endl; + if (verboseLevel > 1) + { + G4cout << "G4LPhysicsFreeVector::GetValue " << theEnergy + << " " << dataVector[numberOfBin - 1] + << " " << isOutRange << G4endl; + } #endif returnValue = dataVector[numberOfBin - 1]; } - else { + else + { isOutRange = false; G4int n = FindBinLocation(theEnergy); @@ -87,9 +97,12 @@ G4double G4LPhysicsFreeVector::GetValue(G4double theEnergy, G4bool& isOutRange) G4double dsde = (dataVector[n + 1] - dataVector[n])/ (binVector[n + 1] - binVector[n]); #ifdef G4VERBOSE - if (verboseLevel > 1) G4cout << "G4LPhysicsFreeVector::GetValue " << - theEnergy << " " << dataVector[n] + (theEnergy - binVector[n])*dsde << - " " << isOutRange << G4endl; + if (verboseLevel > 1) + { + G4cout << "G4LPhysicsFreeVector::GetValue " << theEnergy + << " " << dataVector[n] + (theEnergy - binVector[n])*dsde + << " " << isOutRange << G4endl; + } #endif returnValue = dataVector[n] + (theEnergy - binVector[n])*dsde; } @@ -126,16 +139,20 @@ size_t G4LPhysicsFreeVector::FindBinLocation(G4double theEnergy) const G4int n1 = 0; G4int n2 = numberOfBin/2; G4int n3 = numberOfBin - 1; - while (n1 != n3 - 1) { + while (n1 != n3 - 1) + { if (theEnergy > binVector[n2]) - n1 = n2; + { n1 = n2; } else - n3 = n2; + { n3 = n2; } n2 = n1 + (n3 - n1 + 1)/2; } #ifdef G4VERBOSE - if (verboseLevel > 1) G4cout << - "G4LPhysicsFreeVector::FindBinLocation: returning " << n1 << G4endl; + if (verboseLevel > 1) + { + G4cout << "G4LPhysicsFreeVector::FindBinLocation: returning " + << n1 << G4endl; + } #endif return (size_t)n1; } diff --git a/source/global/management/include/G4OrderedTable.hh b/source/global/management/include/G4OrderedTable.hh index 88f0e45c24..fa3f7573c9 100644 --- a/source/global/management/include/G4OrderedTable.hh +++ b/source/global/management/include/G4OrderedTable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OrderedTable.hh,v 1.11 2003/06/06 16:17:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OrderedTable.hh,v 1.12 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ @@ -60,7 +60,7 @@ class G4OrderedTable : public std::vector G4OrderedTable(); // Deafult constructor. - G4OrderedTable(size_t capacity); + explicit G4OrderedTable(size_t capacity); // Constructor given a 'capacity' defining the initial // number of elements (NULL pointers are filled up) @@ -87,21 +87,21 @@ typedef G4OrderedTable::iterator G4OrderedTableIterator; inline void G4OrderedTable::clearAndDestroy() { - G4DataVector* a; - while (size()>0) { + G4DataVector* a = 0; + while (size()>0) + { a = back(); pop_back(); - for (iterator i=begin(); i!=end(); i++){ - if (*i==a) { + for (iterator i=begin(); i!=end(); i++) + { + if (*i==a) + { erase(i); i--; } } - if ( a ) delete a; + if ( a ) { delete a; } } } - #endif - - diff --git a/source/global/management/include/G4PhysicsFreeVector.hh b/source/global/management/include/G4PhysicsFreeVector.hh index 73572ff063..8e064a1cca 100644 --- a/source/global/management/include/G4PhysicsFreeVector.hh +++ b/source/global/management/include/G4PhysicsFreeVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsFreeVector.hh,v 1.8 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicsFreeVector.hh,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // //-------------------------------------------------------------------- @@ -62,7 +62,7 @@ class G4PhysicsFreeVector : public G4PhysicsVector public: // with description G4PhysicsFreeVector(); - G4PhysicsFreeVector(size_t theNbin); + explicit G4PhysicsFreeVector(size_t theNbin); G4PhysicsFreeVector(const G4DataVector& binVector, const G4DataVector& dataVector); // Constructors: @@ -106,12 +106,13 @@ size_t G4PhysicsFreeVector::FindBinLocation(G4double theEnergy) const size_t lowerBound = 0; size_t upperBound = numberOfBin-1; - while (lowerBound <= upperBound) { + while (lowerBound <= upperBound) + { size_t midBin = (lowerBound + upperBound)/2; if( theEnergy < binVector[midBin] ) - upperBound = midBin-1; + { upperBound = midBin-1; } else - lowerBound = midBin+1; + { lowerBound = midBin+1; } } return upperBound; diff --git a/source/global/management/include/G4PhysicsLinearVector.hh b/source/global/management/include/G4PhysicsLinearVector.hh index 734f0bc911..48752e6182 100644 --- a/source/global/management/include/G4PhysicsLinearVector.hh +++ b/source/global/management/include/G4PhysicsLinearVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsLinearVector.hh,v 1.8 2003/06/06 16:17:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicsLinearVector.hh,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // //-------------------------------------------------------------------- @@ -58,7 +58,7 @@ class G4PhysicsLinearVector : public G4PhysicsVector public: G4PhysicsLinearVector(); - G4PhysicsLinearVector(size_t theNbin); + explicit G4PhysicsLinearVector(size_t theNbin); // Constructors public: // with description diff --git a/source/global/management/include/G4PhysicsLnVector.hh b/source/global/management/include/G4PhysicsLnVector.hh index 876e05837c..43fdeeb1a4 100644 --- a/source/global/management/include/G4PhysicsLnVector.hh +++ b/source/global/management/include/G4PhysicsLnVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsLnVector.hh,v 1.10 2004/11/12 17:38:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4PhysicsLnVector.hh,v 1.11 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // //-------------------------------------------------------------------- @@ -54,7 +54,7 @@ class G4PhysicsLnVector : public G4PhysicsVector public: G4PhysicsLnVector(); - G4PhysicsLnVector(size_t theNbin); + explicit G4PhysicsLnVector(size_t theNbin); // Constructors public: // with description diff --git a/source/global/management/include/G4PhysicsLogVector.hh b/source/global/management/include/G4PhysicsLogVector.hh index 8c4ef8f3d6..12eda29fb5 100644 --- a/source/global/management/include/G4PhysicsLogVector.hh +++ b/source/global/management/include/G4PhysicsLogVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsLogVector.hh,v 1.9 2004/11/12 17:38:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4PhysicsLogVector.hh,v 1.10 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // //-------------------------------------------------------------------- @@ -58,7 +58,7 @@ class G4PhysicsLogVector : public G4PhysicsVector public: G4PhysicsLogVector(); - G4PhysicsLogVector(size_t theNbin); + explicit G4PhysicsLogVector(size_t theNbin); // Constructors diff --git a/source/global/management/include/G4PhysicsOrderedFreeVector.hh b/source/global/management/include/G4PhysicsOrderedFreeVector.hh index c982cfda64..3e086145aa 100644 --- a/source/global/management/include/G4PhysicsOrderedFreeVector.hh +++ b/source/global/management/include/G4PhysicsOrderedFreeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsOrderedFreeVector.hh,v 1.8 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Definition diff --git a/source/global/management/include/G4PhysicsOrderedFreeVector.icc b/source/global/management/include/G4PhysicsOrderedFreeVector.icc index 8d47bfa2b0..702f52189d 100644 --- a/source/global/management/include/G4PhysicsOrderedFreeVector.icc +++ b/source/global/management/include/G4PhysicsOrderedFreeVector.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsOrderedFreeVector.icc,v 1.6 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicsOrderedFreeVector.icc,v 1.7 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Inline Functions Definitions @@ -69,7 +69,8 @@ G4double G4PhysicsOrderedFreeVector::GetMinLowEdgeEnergy() inline void G4PhysicsOrderedFreeVector::DumpValues() { - for (size_t i = 0; i < numberOfBin; i++) { + for (size_t i = 0; i < numberOfBin; i++) + { G4cout << binVector[i] << "\t" << dataVector[i] << G4endl; } } @@ -80,11 +81,12 @@ size_t G4PhysicsOrderedFreeVector::FindBinLocation(G4double theEnergy) const G4int n1 = 0; G4int n2 = numberOfBin/2; G4int n3 = numberOfBin - 1; - while (n1 != n3 - 1) { + while (n1 != n3 - 1) + { if (theEnergy > binVector[n2]) - n1 = n2; + { n1 = n2; } else - n3 = n2; + { n3 = n2; } n2 = n1 + (n3 - n1 + 1)/2; } return (size_t)n1; diff --git a/source/global/management/include/G4PhysicsTable.hh b/source/global/management/include/G4PhysicsTable.hh index 51bf365cb8..8b887b5832 100644 --- a/source/global/management/include/G4PhysicsTable.hh +++ b/source/global/management/include/G4PhysicsTable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsTable.hh,v 1.15 2004/10/29 11:38:08 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicsTable.hh,v 1.16 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ @@ -72,7 +72,7 @@ class G4PhysicsTable : public std::vector G4PhysicsTable(); // Default constructor. - G4PhysicsTable(size_t capacity); + explicit G4PhysicsTable(size_t capacity); // Constructor with capacity. Reserves memory for the // specified capacity. @@ -122,10 +122,8 @@ class G4PhysicsTable : public std::vector void ClearFlag(size_t i); // Get/Clear the flag for the 'i-th' physics vector - public: friend std::ostream& operator<<(std::ostream& out, G4PhysicsTable& table); - protected: G4PhysicsVector* CreatePhysicsVector(G4int type); diff --git a/source/global/management/include/G4PhysicsTable.icc b/source/global/management/include/G4PhysicsTable.icc index 8e171fdec6..62423dc1d3 100644 --- a/source/global/management/include/G4PhysicsTable.icc +++ b/source/global/management/include/G4PhysicsTable.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsTable.icc,v 1.6 2004/10/29 11:38:08 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicsTable.icc,v 1.7 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ @@ -36,11 +36,12 @@ inline void G4PhysicsTable::clearAndDestroy() { - G4PhysicsVector* a; - while (size()>0) { + G4PhysicsVector* a=0; + while (size()>0) + { a = G4PhysCollection::back(); G4PhysCollection::pop_back(); - if ( a ) delete a; + if ( a ) { delete a; } } vecFlag.clear(); @@ -76,11 +77,11 @@ inline void G4PhysicsTable::insertAt (size_t idx, G4PhysicsVector* pvec) { G4PhysicsTableIterator itr=begin(); - for (size_t i=0; i G4PVDataVector; G4PhysicsVectorType type; // The type of PhysicsVector (enumerator) @@ -149,12 +155,6 @@ class G4PhysicsVector G4PVDataVector dataVector; // Vector to keep the crossection/energyloss G4PVDataVector binVector; // Vector to keep the low edge value of bin - inline G4double LinearInterpolation(G4double theEnergy, size_t theLocBin); - // Linear interpolation function - - virtual size_t FindBinLocation(G4double theEnergy) const=0; - // Find the bin# in which theEnergy belongs - pure virtual function - private: G4String comment; diff --git a/source/global/management/include/G4PhysicsVector.icc b/source/global/management/include/G4PhysicsVector.icc index 61d17e1711..0ebdabaa6b 100644 --- a/source/global/management/include/G4PhysicsVector.icc +++ b/source/global/management/include/G4PhysicsVector.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsVector.icc,v 1.7 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicsVector.icc,v 1.8 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- @@ -93,13 +93,13 @@ inline isOutRange = false; // No range check. - size_t locBin; + size_t locBin = 0; - if( theEnergy == lastEnergy ) { + if( !(theEnergy != lastEnergy) ) { return lastValue; - } else if( (theEnergy < lastEnergy) && - (theEnergy >= binVector[lastBin]) ) { + } else if( (theEnergy < lastEnergy) + && (theEnergy >= binVector[lastBin]) ) { locBin = lastBin; lastEnergy = theEnergy; @@ -146,7 +146,7 @@ inline { G4bool status=false; - if(numberOfBin > 0) status=true; + if(numberOfBin > 0) { status=true; } return status; } diff --git a/source/global/management/include/G4PhysicsVectorType.hh b/source/global/management/include/G4PhysicsVectorType.hh index a50532892f..1c894e0ad4 100644 --- a/source/global/management/include/G4PhysicsVectorType.hh +++ b/source/global/management/include/G4PhysicsVectorType.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVectorType.hh,v 1.3 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // -------------------------------------------------------------- // diff --git a/source/global/management/include/G4ReferenceCountedHandle.hh b/source/global/management/include/G4ReferenceCountedHandle.hh index 747d59ff54..a70d80a9f3 100644 --- a/source/global/management/include/G4ReferenceCountedHandle.hh +++ b/source/global/management/include/G4ReferenceCountedHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReferenceCountedHandle.hh,v 1.14 2001/11/07 09:35:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4ReferenceCountedHandle diff --git a/source/global/management/include/G4RotationMatrix.hh b/source/global/management/include/G4RotationMatrix.hh index c17b6f572b..764aa25357 100644 --- a/source/global/management/include/G4RotationMatrix.hh +++ b/source/global/management/include/G4RotationMatrix.hh @@ -22,7 +22,7 @@ // // // $Id: G4RotationMatrix.hh,v 1.3 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4SIunits.hh b/source/global/management/include/G4SIunits.hh index db3347a2bf..852d08eb69 100644 --- a/source/global/management/include/G4SIunits.hh +++ b/source/global/management/include/G4SIunits.hh @@ -22,7 +22,7 @@ // // // $Id: G4SIunits.hh,v 1.3 2003/02/05 15:25:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // ---------------------------------------------------------------------- // diff --git a/source/global/management/include/G4StateManager.hh b/source/global/management/include/G4StateManager.hh index 9d36165c25..e1a9942cb7 100644 --- a/source/global/management/include/G4StateManager.hh +++ b/source/global/management/include/G4StateManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StateManager.hh,v 1.8 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4StateManager.hh,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ------------------------------------------------------------ @@ -102,6 +102,14 @@ public: // with description G4String GetStateString(G4ApplicationState aState) const; // Utility method which returns a string of the state name. +public: + + inline void SetSuppressAbortion(G4int i); + inline G4int GetSuppressAbortion() const; + inline const char* GetMessage() const; + inline void SetExceptionHandler(G4VExceptionHandler* eh); + inline G4VExceptionHandler* GetExceptionHandler() const; + public: //void Pause(); @@ -130,12 +138,8 @@ private: const char* msgptr; G4VExceptionHandler* exceptionHandler; -public: - inline void SetSuppressAbortion(G4int i) { suppressAbortion = i; } - inline G4int GetSuppressAbortion() const { return suppressAbortion; } - inline const char* GetMessage() const { return msgptr; } - inline void SetExceptionHandler(G4VExceptionHandler* eh) { exceptionHandler = eh; } - inline G4VExceptionHandler* GetExceptionHandler() const { return exceptionHandler; } }; +#include "G4StateManager.icc" + #endif diff --git a/examples/extended/geometry/olap/include/OlapVisManager.hh b/source/global/management/include/G4StateManager.icc similarity index 66% rename from examples/extended/geometry/olap/include/OlapVisManager.hh rename to source/global/management/include/G4StateManager.icc index 74a357b272..9cce3dc696 100644 --- a/examples/extended/geometry/olap/include/OlapVisManager.hh +++ b/source/global/management/include/G4StateManager.icc @@ -21,37 +21,40 @@ // ******************************************************************** // // -// $Id: OlapVisManager.hh,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4StateManager.icc,v 1.1 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // -// -------------------------------------------------------------- -// OlapVisManager -// -// Author: Martin Liendl - Martin.Liendl@cern.ch -// -// -------------------------------------------------------------- -// -#ifndef OLAPVISMANAGER_HH -#define OLAPVISMANAGER_HH +// ------------------------------------------------------------ +// GEANT 4 class inline implementation +// ------------------------------------------------------------ -#ifdef G4VIS_USE -#include "G4VisManager.hh" - -class OlapVisManager: public G4VisManager +inline +void G4StateManager::SetSuppressAbortion(G4int i) { + suppressAbortion = i; +} -public: +inline +G4int G4StateManager::GetSuppressAbortion() const +{ + return suppressAbortion; +} - OlapVisManager (G4int verboseLevel = 0); - // Controls initial verbose level of VisManager and VisMessenger. - // Can be changed by /vis/set/verbose. +inline +const char* G4StateManager::GetMessage() const +{ + return msgptr; +} -private: +inline +void G4StateManager::SetExceptionHandler(G4VExceptionHandler* eh) +{ + exceptionHandler = eh; +} - virtual void RegisterGraphicsSystems (); - -}; - -#endif -#endif +inline +G4VExceptionHandler* G4StateManager::GetExceptionHandler() const +{ + return exceptionHandler; +} diff --git a/source/global/management/include/G4String.hh b/source/global/management/include/G4String.hh index 0216ae3cb2..69aa6473b2 100644 --- a/source/global/management/include/G4String.hh +++ b/source/global/management/include/G4String.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4String.hh,v 1.4 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4String.hh,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- @@ -162,8 +162,8 @@ public: // inline G4String strip (G4int stripType=trailing, char c=' '); - inline void toLower ( void ); - inline void toUpper ( void ); + inline void toLower (); + inline void toUpper (); inline G4bool isNull() const; @@ -180,7 +180,7 @@ public: // useful for supplying hash functions to template hash collection ctors // - static inline unsigned hash(const G4String&); + static inline unsigned int hash(const G4String&); }; diff --git a/source/global/management/include/G4String.icc b/source/global/management/include/G4String.icc index 2f7b8ede82..dfeffcd37f 100644 --- a/source/global/management/include/G4String.icc +++ b/source/global/management/include/G4String.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4String.icc,v 1.5 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4String.icc,v 1.7 2005/03/16 13:45:16 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // //--------------------------------------------------------------- @@ -36,10 +36,8 @@ // ************************************************************** G4SubString::G4SubString(const G4SubString&s) + : mystring(s.mystring), mystart(s.mystart), extent(s.extent) { - mystring=s.mystring; - mystart=s.mystart; - extent=s.extent; } G4SubString::G4SubString(G4String& str, str_size s, str_size e) @@ -155,6 +153,7 @@ G4String::G4String ( const std::string &s ) G4String& G4String::operator=(const G4String& s) { + if (&s == this) { return *this; } std_string::operator=(s); return *this; } @@ -250,9 +249,9 @@ G4int G4String::strcasecompare(const char* s1, const char* s2) const char* buf2 = new char[strlen(s2)+1]; for (str_size i=0; i<=strlen(s1); i++) - buf1[i] = tolower(char(s1[i])); + { buf1[i] = tolower(char(s1[i])); } for (str_size j=0; j<=strlen(s2); j++) - buf2[j] = tolower(char(s2[j])); + { buf2[j] = tolower(char(s2[j])); } G4int res = strcmp(buf1, buf2); delete [] buf1; @@ -263,17 +262,17 @@ G4int G4String::strcasecompare(const char* s1, const char* s2) const G4int G4String::compareTo(const char* s, caseCompare mode) { if(mode==exact) - return strcmp(c_str(),s); + { return strcmp(c_str(),s); } else - return strcasecompare(c_str(),s); + { return strcasecompare(c_str(),s); } } G4int G4String::compareTo(const G4String& s, caseCompare mode) { if(mode==exact) - return strcmp(c_str(),s.c_str()); + { return strcmp(c_str(),s.c_str()); } else - return strcasecompare(c_str(),s.c_str()); + { return strcasecompare(c_str(),s.c_str()); } } G4String& G4String::prepend (const char* str) @@ -320,7 +319,7 @@ G4String& G4String::replace(str_size pos, str_size n, const char* s) G4String& G4String::remove(str_size n) { if(n=0;j--) - if (std_string::operator[](j) != c) break; + { if (std_string::operator[](j) != c) { break; } } retVal = substr(0,j+1); } break; case both: { for(i=0;i=0;k--) - if (tmp.std_string::operator[](k) != c) break; + { if (tmp.std_string::operator[](k) != c) { break; } } retVal = tmp.substr(0,k+1); } + break; + default: + break; } return retVal; } -void G4String::toLower ( void ) +void G4String::toLower () { for (str_size i=0; i= 3.0 release // -#if (__GNUC__==3) && (__GNUC_MINOR__>0) +#if (__GNUC__>=3) && (__GNUC_MINOR__>=0) #undef __DEPRECATED #endif diff --git a/source/global/management/include/G4UnitsTable.hh b/source/global/management/include/G4UnitsTable.hh index 6cdedff104..98fd104797 100644 --- a/source/global/management/include/G4UnitsTable.hh +++ b/source/global/management/include/G4UnitsTable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnitsTable.hh,v 1.14 2004/01/21 13:17:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4UnitsTable.hh,v 1.16 2005/03/21 16:04:56 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ----------------------------------------------------------------- @@ -57,7 +57,6 @@ class G4UnitsCategory; typedef std::vector G4UnitsTable; - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... class G4UnitDefinition @@ -66,23 +65,18 @@ public: // with description G4UnitDefinition(const G4String& name, const G4String& symbol, const G4String& category, G4double value); - -public: // without description - + + public: // without description + ~G4UnitDefinition(); G4int operator==(const G4UnitDefinition&) const; G4int operator!=(const G4UnitDefinition&) const; -private: + public: // with description - G4UnitDefinition(const G4UnitDefinition&); - G4UnitDefinition& operator=(const G4UnitDefinition&); - -public: // with description - - const G4String& GetName() const {return Name;} - const G4String& GetSymbol() const {return SymbolName;} - G4double GetValue() const {return Value;} + inline const G4String& GetName() const; + inline const G4String& GetSymbol() const; + inline G4double GetValue() const; void PrintDefinition(); @@ -94,17 +88,20 @@ public: // with description static G4double GetValueOf (const G4String&); static G4String GetCategory(const G4String&); -private: + private: + + G4UnitDefinition(const G4UnitDefinition&); + G4UnitDefinition& operator=(const G4UnitDefinition&); + + private: G4String Name; // SI name G4String SymbolName; // SI symbol G4double Value; // value in the internal system of units - static - G4UnitsTable theUnitsTable; // table of Units - - - size_t CategoryIndex; // category index of this unit + static G4UnitsTable theUnitsTable; // table of Units + + size_t CategoryIndex; // category index of this unit }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -113,31 +110,31 @@ typedef std::vector G4UnitsContainer; class G4UnitsCategory { -public: // without description + public: // without description - G4UnitsCategory(const G4String& name); + explicit G4UnitsCategory(const G4String& name); ~G4UnitsCategory(); G4int operator==(const G4UnitsCategory&) const; G4int operator!=(const G4UnitsCategory&) const; -private: + public: // without description + + inline const G4String& GetName() const; + inline G4UnitsContainer& GetUnitsList(); + inline G4int GetNameMxLen() const; + inline G4int GetSymbMxLen() const; + inline void UpdateNameMxLen(G4int len); + inline void UpdateSymbMxLen(G4int len); + void PrintCategory(); + + private: G4UnitsCategory(const G4UnitsCategory&); G4UnitsCategory& operator=(const G4UnitsCategory&); -public: // without description + private: - const G4String& GetName() const {return Name;} - G4UnitsContainer& GetUnitsList() {return UnitsList;} - G4int GetNameMxLen() const {return NameMxLen;} - G4int GetSymbMxLen() const {return SymbMxLen;} - void UpdateNameMxLen(G4int len) {if (NameMxLen RegisterGraphicsSystem (new MyGraphicsSystem); - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef Em10VisManager_h -#define Em10VisManager_h 1 - -#include "G4VisManager.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class Em10VisManager: public G4VisManager +inline +const G4String& G4UnitDefinition::GetName() const { - public: + return Name; +} - Em10VisManager (); +inline +const G4String& G4UnitDefinition::GetSymbol() const +{ + return SymbolName; +} - private: +inline +G4double G4UnitDefinition::GetValue() const +{ + return Value; +} - void RegisterGraphicsSystems (); +// ------------------- +// --- G4UnitsCategory +// ------------------- -}; +inline +const G4String& G4UnitsCategory::GetName() const +{ + return Name; +} + +inline +G4UnitsContainer& G4UnitsCategory::GetUnitsList() +{ + return UnitsList; +} -#endif +inline +G4int G4UnitsCategory::GetNameMxLen() const +{ + return NameMxLen; +} + +inline +G4int G4UnitsCategory::GetSymbMxLen() const +{ + return SymbMxLen; +} + +inline +void G4UnitsCategory::UpdateNameMxLen(G4int len) +{ + if (NameMxLen=size) result = sync(); + if(count>=size) { result = sync(); } buffer[count] = c; count++; if(c=='\n') diff --git a/source/global/management/include/globals.hh b/source/global/management/include/globals.hh index 61d5dc6e9e..9e55d8d405 100644 --- a/source/global/management/include/globals.hh +++ b/source/global/management/include/globals.hh @@ -22,7 +22,7 @@ // // // $Id: globals.hh,v 1.25 2004/11/12 16:25:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Global Constants and typedefs diff --git a/source/global/management/include/templates.hh b/source/global/management/include/templates.hh index f7e5b97721..5f6f4023f9 100644 --- a/source/global/management/include/templates.hh +++ b/source/global/management/include/templates.hh @@ -22,7 +22,7 @@ // // // $Id: templates.hh,v 1.8 2004/11/12 17:38:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -*- C++ -*- diff --git a/source/global/management/src/G4AllocatorPool.cc b/source/global/management/src/G4AllocatorPool.cc index c993f29abd..268deec5bc 100644 --- a/source/global/management/src/G4AllocatorPool.cc +++ b/source/global/management/src/G4AllocatorPool.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AllocatorPool.cc,v 1.2 2004/11/12 16:25:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4AllocatorPool.cc,v 1.3 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ---------------------------------------------------------------------- @@ -41,11 +41,9 @@ // G4AllocatorPool::G4AllocatorPool( unsigned int sz ) : esize(sz> sizeV; - if (fIn.fail()) return false; + if (fIn.fail()) { return false; } reserve(sizeV); - for(size_t i = 0; i < sizeV ; i++) { - G4double vData; + for(size_t i = 0; i < sizeV ; i++) + { + G4double vData=0.0; fIn >> vData; - if (fIn.fail()) return false; + if (fIn.fail()) { return false; } push_back(vData); } return true ; @@ -105,13 +109,15 @@ G4bool G4DataVector::Retrieve(std::ifstream& fIn, G4bool ascii) G4double* value = new G4double[sizeV]; fIn.read((char*)(value), sizeV*(sizeof(G4double)) ); - if (G4int(fIn.gcount()) != G4int(sizeV*(sizeof(G4double))) ){ + if (G4int(fIn.gcount()) != G4int(sizeV*(sizeof(G4double))) ) + { delete [] value; return false; } reserve(sizeV); - for(size_t i = 0; i < sizeV; i++) { + for(size_t i = 0; i < sizeV; i++) + { push_back(value[i]); } delete [] value; @@ -120,9 +126,9 @@ G4bool G4DataVector::Retrieve(std::ifstream& fIn, G4bool ascii) std::ostream& operator<<(std::ostream& out, const G4DataVector& pv) { - size_t i; out << pv.size() << G4endl; - for(i = 0; i < pv.size(); i++) { + for(size_t i = 0; i < pv.size(); i++) + { out << std::setprecision(12) << pv[i] << G4endl; } diff --git a/source/global/management/src/G4Exception.cc b/source/global/management/src/G4Exception.cc index 8a5001f51b..8f041a913c 100644 --- a/source/global/management/src/G4Exception.cc +++ b/source/global/management/src/G4Exception.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Exception.cc,v 1.18 2004/11/12 16:25:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4Exception.cc,v 1.19 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // ---------------------------------------------------------------------- @@ -40,14 +40,14 @@ void G4Exception(const char* s) { - if(s) - { - G4cerr << s << G4endl; - } - if(G4StateManager::GetStateManager()->SetNewState(G4State_Abort,s)) { + if(s) { G4cerr << s << G4endl; } + if(G4StateManager::GetStateManager()->SetNewState(G4State_Abort,s)) + { G4cerr << G4endl << "*** G4Exception: Aborting execution ***" << G4endl; abort(); - } else { + } + else + { G4cerr << G4endl << "*** G4Exception: Abortion suppressed ***" << G4endl << "*** No guarantee for further execution ***" << G4endl; } @@ -98,10 +98,13 @@ void G4Exception(const char* originOfException, } if(toBeAborted) { - if(G4StateManager::GetStateManager()->SetNewState(G4State_Abort)) { + if(G4StateManager::GetStateManager()->SetNewState(G4State_Abort)) + { G4cerr << G4endl << "*** G4Exception: Aborting execution ***" << G4endl; abort(); - } else { + } + else + { G4cerr << G4endl << "*** G4Exception: Abortion suppressed ***" << G4endl << "*** No guarantee for further execution ***" << G4endl; } diff --git a/source/global/management/src/G4LPhysicsFreeVector.cc b/source/global/management/src/G4LPhysicsFreeVector.cc index ab4e7b3ba9..1c30ec4415 100644 --- a/source/global/management/src/G4LPhysicsFreeVector.cc +++ b/source/global/management/src/G4LPhysicsFreeVector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LPhysicsFreeVector.cc,v 1.8 2001/07/11 10:00:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4LPhysicsFreeVector.cc,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // -------------------------------------------------------------------- @@ -41,17 +41,19 @@ #include G4LPhysicsFreeVector::G4LPhysicsFreeVector() + : verboseLevel(0) { type = T_G4LPhysicsFreeVector; edgeMin = 0.0; edgeMax = 0.0; numberOfBin = 0; - verboseLevel = 0; } -G4LPhysicsFreeVector::G4LPhysicsFreeVector(size_t nbin, G4double binmin, +G4LPhysicsFreeVector::G4LPhysicsFreeVector(size_t nbin, + G4double binmin, G4double binmax) + : verboseLevel(0) { type = T_G4LPhysicsFreeVector; @@ -63,8 +65,8 @@ G4LPhysicsFreeVector::G4LPhysicsFreeVector(size_t nbin, G4double binmin, lastBin = 0; binVector.reserve(nbin); dataVector.reserve(nbin); - verboseLevel = 0; - for (size_t i=0; i #include - G4OrderedTable::G4OrderedTable() : std::vector() { @@ -54,18 +53,19 @@ G4OrderedTable::~G4OrderedTable() } G4bool G4OrderedTable::Store(const G4String& fileName, - G4bool ascii) + G4bool ascii) { std::ofstream fOut; // open output file // if (!ascii) - fOut.open(fileName, std::ios::out|std::ios::binary); + { fOut.open(fileName, std::ios::out|std::ios::binary); } else - fOut.open(fileName, std::ios::out); + { fOut.open(fileName, std::ios::out); } // check if the file has been opened successfully - if (!fOut) { + if (!fOut) + { #ifdef G4VERBOSE G4cerr << "G4OrderedTable::::Store "; G4cerr << " Can not open file " << fileName << G4endl; @@ -76,19 +76,25 @@ G4bool G4OrderedTable::Store(const G4String& fileName, // Number of elements size_t tableSize = size(); - if (!ascii){ + if (!ascii) + { fOut.write( (char*)(&tableSize), sizeof tableSize); - } else { + } + else + { fOut << tableSize << G4endl; } // Data Vector - G4OrderedTableIterator itr; G4int vType = G4DataVector::T_G4DataVector; - for (itr=begin(); itr!=end(); ++itr) { - if (!ascii){ + for (G4OrderedTableIterator itr=begin(); itr!=end(); ++itr) + { + if (!ascii) + { fOut.write( (char*)(&vType), sizeof vType); - } else { + } + else + { fOut << vType << G4endl; } (*itr)->Store(fOut,ascii); @@ -100,17 +106,18 @@ G4bool G4OrderedTable::Store(const G4String& fileName, G4bool G4OrderedTable::Retrieve(const G4String& fileName, - G4bool ascii) + G4bool ascii) { std::ifstream fIn; // open input file // if (ascii) - fIn.open(fileName,std::ios::in|std::ios::binary); + { fIn.open(fileName,std::ios::in|std::ios::binary); } else - fIn.open(fileName,std::ios::in); + { fIn.open(fileName,std::ios::in); } // check if the file has been opened successfully - if (!fIn) { + if (!fIn) + { #ifdef G4VERBOSE G4cerr << "G4OrderedTable::Retrieve "; G4cerr << " Can not open file " << fileName << G4endl; @@ -123,23 +130,31 @@ G4bool G4OrderedTable::Retrieve(const G4String& fileName, clearAndDestroy(); // Number of elements - size_t tableSize; - if (!ascii){ + size_t tableSize=0; + if (!ascii) + { fIn.read((char*)(&tableSize), sizeof tableSize); - } else { + } + else + { fIn >> tableSize; } reserve(tableSize); // Physics Vector - for (size_t idx=0; idx> vType; } - if (vType != G4DataVector::T_G4DataVector) { + if (vType != G4DataVector::T_G4DataVector) + { #ifdef G4VERBOSE G4cerr << "G4OrderedTable::Retrieve "; G4cerr << " illegal Data Vector type " << vType << " in "; @@ -151,10 +166,12 @@ G4bool G4OrderedTable::Retrieve(const G4String& fileName, G4DataVector* pVec = new G4DataVector; - if (! (pVec->Retrieve(fIn,ascii)) ){ + if (! (pVec->Retrieve(fIn,ascii)) ) + { #ifdef G4VERBOSE G4cerr << "G4OrderedTable::Retrieve "; - G4cerr << " error in retreiving " << idx << "-th Physics Vector from file "; + G4cerr << " error in retreiving " << idx + << "-th Physics Vector from file "; G4cerr << fileName << G4endl; #endif fIn.close(); @@ -169,12 +186,12 @@ G4bool G4OrderedTable::Retrieve(const G4String& fileName, } std::ostream& operator<<(std::ostream& out, - G4OrderedTable& right) + G4OrderedTable& right) { // Printout Data Vector - G4OrderedTableIterator itr; size_t i=0; - for (itr=right.begin(); itr!=right.end(); ++itr) { + for (G4OrderedTableIterator itr=right.begin(); itr!=right.end(); ++itr) + { out << std::setw(8) << i << "-th Vector "; out << ": Type " << G4DataVector::T_G4DataVector << G4endl; out << *(*itr); @@ -183,5 +200,3 @@ std::ostream& operator<<(std::ostream& out, out << G4endl; return out; } - - diff --git a/source/global/management/src/G4PhysicsFreeVector.cc b/source/global/management/src/G4PhysicsFreeVector.cc index 27569b85f5..b39ff93448 100644 --- a/source/global/management/src/G4PhysicsFreeVector.cc +++ b/source/global/management/src/G4PhysicsFreeVector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsFreeVector.cc,v 1.8 2001/07/11 10:00:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicsFreeVector.cc,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // //-------------------------------------------------------------------- @@ -62,7 +62,8 @@ G4PhysicsFreeVector::G4PhysicsFreeVector(size_t theNbin) dataVector.reserve(numberOfBin+1); binVector.reserve(numberOfBin+1); - for (size_t i=0; i<=numberOfBin; i++) { + for (size_t i=0; i<=numberOfBin; i++) + { binVector.push_back(0.0); dataVector.push_back(0.0); } @@ -73,7 +74,6 @@ G4PhysicsFreeVector::G4PhysicsFreeVector(size_t theNbin) lastBin = INT_MAX; lastEnergy = -DBL_MAX; lastValue = DBL_MAX; - } @@ -88,7 +88,8 @@ G4PhysicsFreeVector::G4PhysicsFreeVector(const G4DataVector& theBinVector, dataVector.reserve(numberOfBin+1); binVector.reserve(numberOfBin+1); - for (size_t i=0; i
Doxygen. Use - the links at the top of the page to browse the API - documentation. The documentation is also available in - a printer-friendly format [pdf]. - - \subsection zipfiles Zip file access - The two most important classes are \ref zipfile_anchor "ZipFile" and - \ref ZipInputStream_anchor "ZipInputStream". ZipInputStream is an istream - for reading zipfiles. It can be instantiated directly, without the - use of ZipFile. A new ZipInputStream reads from the first entry, and - the user can skip to the next entry by calling - \ref ZipInputStream_getnextentry_anchor "ZipInputStream::getNextEntry()". - - ZipFile scans the central directory of a zipfile and provides an - interface to access that directory. The user may search for entries - with a particular filename using \ref fcoll_getentry_anchor "ZipFile::getEntry()", - or simply get the complete list of entries - with \ref fcoll_entries_anchor "ZipFile::entries()". To get an - istream (ZipInputStream) to a particular entry simply use - \ref fcoll_getinputstream "ZipFile::getInputStream()". - - \ref example_zip_anchor "example_zip.cpp" demonstrates the central - elements of Zipios++. - - A Zip file appended to another file, e.g. a binary program, with the program - \ref appendzip_anchor "appendzip", can be read with - \ref zipfile_openembeddedzipfile "ZipFile::openEmbeddedZipFile()". - - \subsection filecollections FileCollections - - A ZipFile is actually just a special kind of - \ref fcoll_anchor "FileCollection" that - obtains its entries from a .zip Zip archive. Zipios++ also implements - a \ref dircol_anchor "DirectoryCollection" that obtains its entries - from a specified directory, and a \ref collcoll_anchor "CollectionCollection" - that obtains its entries from - other collections. Using a single CollectionCollection any number of - other FileCollections can be placed under its control and accessed - through the same single interface that is used to access a ZipFile or - a DirectoryCollection. A singleton (a unique global instance) - CollectionCollection can be obtained through - - \ref collcoll_inst_anchor "CollectionCollection::inst()" ; - - To save typing CollectionCollection has been typedef'ed to CColl. In - the initialization part of an application FileCollections can be - created, and placed under CColll::inst()'s control using - - \ref collcoll_addcoll_anchor "CColl::inst().addCollection()" - - and later an istream can be obtained using - - \ref fcoll_getinputstream "CColl::inst().getInputStream()". - - \section download Download - Go to Zipios++ project page on SourceForge for tar balls and ChangeLog. - - http://sourceforge.net/project/?group_id=5418 - - \section links Links - zlib. - The compression library that Zipios++ uses to perform the actual - decompression. - - - Java 2 Platform, Standard Edition, v 1.3 API Specification - . Zipios++ is heavily inspired by the java.util.zip package. - - - PKWARE zip format - . A description of the zip file format. - - \section bugs Bugs - Submit bug reports and patches to thomass@deltadata.dk - - - - \htmlonly - Project hosted by - -

- Logo created with - - - \endhtmlonly */ - - -/** \file - Header file that defines FileCollection. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/fcollexceptions.h b/source/visualization/HepRep/include/zipios++/fcollexceptions.h deleted file mode 100644 index d4dad19228..0000000000 --- a/source/visualization/HepRep/include/zipios++/fcollexceptions.h +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef FCOLLEXCEPTIONS_H -#define FCOLLEXCEPTIONS_H - -#include "zipios++/zipios-config.h" - -#include -#include - -namespace zipios { - -using std::string ; -using std::exception ; - -/** An IOException is used to signal an I/O error. - */ -class IOException : public exception { -public: - IOException() throw () ; - explicit IOException( const string &msg ) throw () ; - IOException( const IOException &src ) throw () ; - IOException &operator= ( const IOException &src ) throw () ; - - virtual const char *what() const throw () ; - virtual ~IOException() throw () ; -private: - string _what ; -}; - -/** An FCollException is used to signal a problem with a - FileCollection. */ -class FCollException : public exception { -public: - FCollException() throw () ; - explicit FCollException( const string &msg ) throw () ; - FCollException( const FCollException &src ) throw () ; - FCollException &operator= ( const FCollException &src ) throw () ; - - virtual const char *what() const throw () ; - virtual ~FCollException() throw () ; -private: - string _what ; -}; - -/** An object member function may throw this exception, if the - operation it normally performs is inappropriate or impossible to - perform because of the current state of the object. */ -class InvalidStateException : public exception { -public: - InvalidStateException() throw () ; - explicit InvalidStateException( const string &msg ) throw () ; - InvalidStateException( const InvalidStateException &src ) throw () ; - InvalidStateException &operator= ( const InvalidStateException &src ) throw () ; - - virtual const char *what() const throw () ; - virtual ~InvalidStateException() throw () ; -private: - string _what ; -}; - -/** Basic exception */ -class Exception : public exception { -public: - Exception() throw () ; - explicit Exception( const string &msg ) throw () ; - Exception( const Exception &src ) throw () ; - Exception &operator= ( const Exception &src ) throw () ; - - virtual const char *what() const throw () ; - virtual ~Exception() throw () ; -private: - string _what ; -}; - - -} // namespace -#endif - -/** \file - Header file that defines a number of exceptions used by FileCollection and - its subclasses. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/fileentry.h b/source/visualization/HepRep/include/zipios++/fileentry.h deleted file mode 100644 index 542e06166b..0000000000 --- a/source/visualization/HepRep/include/zipios++/fileentry.h +++ /dev/null @@ -1,240 +0,0 @@ -#ifndef FILEENTRY_H -#define FILEENTRY_H - -#include "zipios++/zipios-config.h" - -#include -#include -#include "zipios++/meta-iostreams.h" - -#include "zipios++/simplesmartptr.h" -#include "zipios++/zipios_defs.h" - -namespace zipios { - -using std::vector ; -using std::ostream ; -using std::istream ; -using std::string ; - -/** The types used with FileEntry::setMethod and - FileEntry::getMethod. The current entries are the types supported - by the zip format. The numbering also matches the numbering used - in the zip file format, ie STORED is indicated by a 0 in the - method field in a zip file and so on. */ -enum StorageMethod { STORED = 0, SHRUNK, REDUCED1, REDUCED2, - REDUCED3, REDUCED4, IMPLODED, RESERVED, - DEFLATED } ; - -class FileEntry ; - -/** \typedef typedef SimpleSmartPointer< FileEntry > EntryPointer - EntryPointer is a SimpleSmartPointer for FileEntry's. */ -typedef SimpleSmartPointer< FileEntry > EntryPointer ; - - -/** ConstEntryPointer is a SimpleSmartPointer for const FileEntry's. */ -typedef SimpleSmartPointer< const FileEntry > ConstEntryPointer ; - -/** Entries is a vector of EntryPointer's */ -typedef vector< EntryPointer > Entries ; - -/** ConstEntries is a vector of ConstEntryPointer's */ -typedef vector< EntryPointer > ConstEntries ; - - - -/** A FileEntry represents an entry in a FileCollection. The interface - is a copy of the ZipEntry interface from the java.util.zip - package. The name has been changed to FileEntry, as FileCollection - is a more general abstraction, that covers other types of file - collections than just zip files. */ -class FileEntry { -public: - - /* Default construcotr, copy constructor and copy assignment - operator are sufficient. */ - - /** Returns the comment of the entry, if it has one. Otherwise it - returns an empty string. - @return the comment associated with the entry, if there is one. - */ - virtual string getComment() const = 0 ; - /** Returns the compressed size of the entry. If the entry is not - stored in a compressed format, the uncompressed size is - returned. - @return the compressed size of the entry. If the entry is stored without - compression the uncompressed size is returned. - */ - virtual uint32 getCompressedSize() const = 0 ; - /** Returns the Crc for the entry, if it has one. FIXME: what is - returned if it doesn't have one? - @return the Crc for the entry, if it has one. - */ - virtual uint32 getCrc() const = 0 ; - /** Returns a vector of bytes of extra data that may be stored with - the entry. - @return A vector< unsigned char > of extra bytes that may potentially - be associated with an entry. - */ - virtual vector< unsigned char > getExtra() const = 0 ; - /** Returns the method used to store the entry in the FileCollection. - @return the storage method used to store the entry in the collection. - @see StorageMethod. - */ - virtual StorageMethod getMethod() const = 0 ; - /** Returns the full filename of the entry, including a path if the - entry is stored in a subfolder. - @return the filename of the entry, including path if the entry is stored - in a sub-folder. - */ - virtual string getName() const = 0 ; - /** Returns the filename of the entry. - @return Returns the filename of the entry. - */ - virtual string getFileName() const = 0 ; - /** Returns the (uncompressed) size of the entry data. - @return Returns the (uncompressed) size of the entry. - */ - virtual uint32 getSize() const = 0 ; - /** Returns the date and time of FIXME: what? - @return the date and time of the entry. - */ - virtual int getTime() const = 0 ; - /** Any method or operator that initializes a FileEntry may set a - flag, that specifies whether the read entry is valid or not. If - it isn't this method returns false. - @return true if the FileEntry has been parsed succesfully. - */ - virtual bool isValid() const = 0 ; - // virtual int hashCode() const = 0 ; - /** Returns true if the entry is a directory. A directory entry is - an entry which name ends with a separator ('/' for Unix systems, - '\' for Windows and DOS systems. - @return true if the entry is a directory. - */ - virtual bool isDirectory() const = 0 ; - - /** Sets the comment field for the FileEntry. - @param comment string with the new comment. - */ - virtual void setComment( const string &comment ) = 0 ; - /** Set the compressed size field of the entry. - @param size value to set the compressed size field of the entry to. - */ - virtual void setCompressedSize( uint32 size ) = 0 ; - /** Sets the crc field. - @param crc value to set the crc field to. - */ - virtual void setCrc( uint32 crc ) = 0 ; - /** Sets the extra field. - @param extra the extra field is set to this value. - */ - virtual void setExtra( const vector< unsigned char > &extra ) = 0 ; - /** Sets the storage method field for the entry. - @param method the method field is set to the specified value. - */ - virtual void setMethod( StorageMethod method ) = 0 ; - /** Sets the name field for the entry. - @param name the name field is set to the specified value. - */ - virtual void setName( const string &name ) = 0 ; - /** Sets the size field for the entry. - @param size the size field is set to this value. - */ - virtual void setSize( uint32 size ) = 0 ; - /** Sets the time field for the entry. - @param time the time field is set to the specified value. - */ - virtual void setTime( int time ) = 0 ; - - /** Returns a human-readable string representation of the entry. - @return a human-readable string representation of the entry. - */ - virtual string toString() const = 0 ; - - /** Create a heap allocated clone of the object this method is called for. The - caller is responsible for deallocating the clone when he is done with it. - @return A heap allocated copy of the object this method is called for. - */ - virtual FileEntry *clone() const = 0 ; - - /** FileEntry destructor. */ - virtual ~FileEntry() {} - -// protected: - class MatchName ; - class MatchFileName ; -protected: - friend class SimpleSmartPointer< FileEntry > ; - friend class SimpleSmartPointer< const FileEntry > ; - void ref() const { _refcount.ref() ; } - unsigned int unref() const { return _refcount.unref() ; } - - ReferenceCount< FileEntry > _refcount ; -}; - -/** Function object to be used with the STL find_if algorithm to - find a FileEntry in a container, which name (as obtained with - FileEntry::getName()) is identical to the name specified in the - MatchName constructor. */ -class FileEntry::MatchName { -public: - explicit MatchName( const string &name ) : _name( name ) {} - bool operator() ( const ConstEntryPointer &entry ) { - return entry->getName() == _name ; - } -private: - string _name ; -}; - -/** Function object to be used with the STL find_if algorithm to - find a FileEntry in a container, which name (as obtained with - FileEntry::getFileName()) is identical to the name specified in the - MatchName constructor. */ -class FileEntry::MatchFileName { -public: - explicit MatchFileName( const string &name ) : _name( name ) {} - bool operator() ( const ConstEntryPointer &entry ) { - return entry->getFileName() == _name ; - } -private: - string _name ; -}; - -ostream &operator<< ( ostream &os, const FileEntry &entry ) ; - -inline ostream &operator<< ( ostream &os, const ConstEntryPointer &entry ) { - os << *entry ; - return os ; -} - - - -} // namespace - -#endif - - -/** \file - Header file that defines FileEntry. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/filepath.h b/source/visualization/HepRep/include/zipios++/filepath.h deleted file mode 100644 index 8ec9ad5d98..0000000000 --- a/source/visualization/HepRep/include/zipios++/filepath.h +++ /dev/null @@ -1,202 +0,0 @@ -#ifndef FILEPATH_H -#define FILEPATH_H - -#include "zipios++/zipios-config.h" - -#include -#include - -namespace zipios { - -using namespace std ; - -/** FilePath represents a path to a file or directory name. FilePath has - member functions to check if the file path is a valid file system entity, - and to check what kind of file system entity it is, e.g. is it a file, a - directory, a pipe etc. -*/ -class FilePath { -public: - /** Constructor. - @param path A string representation of the path. - @param check_exists If true is specified the constructor will - check the existence and type of the path immidiately, instead of - deferring that task until it is needed. */ - FilePath( const string &path = "", bool check_exists = false ) ; - - inline FilePath &operator= ( const string &rhs ) ; - - inline operator string() const ; - - /** Concatenates FilePath objects. A file separator is inserted - if appropriate. */ - inline FilePath operator+ ( const FilePath &name ) const ; - - /** Returns filename of the FilePath object by pruning the path - off. */ - inline FilePath filename() const ; - - - /** @return true If the path is a valid file system entity. */ - inline bool exists() const ; - - /** @return true if the path is a regular file. */ - inline bool isRegular() const ; - - /** @return true if the path is a directory. */ - inline bool isDirectory() const ; - - /** @return true if the path is character special (a character - device file). */ - inline bool isCharSpecial() const ; - - /** @return true if the path is block special (a block device - file). */ - inline bool isBlockSpecial() const ; - - /** @return true if the path is a socket. */ - inline bool isSocket() const ; - - /** @return true if the path is a Fifo (a pipe). */ - inline bool isFifo() const ; - -protected: - - /** Prunes the trailing separator of a specified path. */ - inline void pruneTrailingSeparator() ; - - /** This function sets _checked to true, stats the path, to see if - it exists and to determine what type of file it is. All the query - functions check if _checked is true, and if it isn't they call - check(). This means stat'ing is deferred until it becomes - necessary. */ - void check() const ; - - static const char _separator; - - // FIXME: Should be bitfield - mutable bool _checked ; - mutable bool _exists ; - mutable bool _is_reg ; - mutable bool _is_dir ; - mutable bool _is_char ; - mutable bool _is_block ; - mutable bool _is_socket ; - mutable bool _is_fifo ; - string _path ; -}; - - -// -// Inline member functions -// - -FilePath &FilePath::operator= ( const string &rhs ) { - _path = rhs ; - pruneTrailingSeparator() ; - return *this ; -} - -void FilePath::pruneTrailingSeparator() { - if ( _path.size() > 0 ) - if ( _path[ _path.size() -1 ] == _separator ) - _path.erase( _path.size() - 1 ) ; -} - -FilePath::operator string() const { - return _path ; -} - - -FilePath FilePath::operator+ ( const FilePath &name ) const { - if ( _path.size() > 0 ) - return _path + _separator + name._path ; - else - return name._path ; -} - - -FilePath FilePath::filename() const { - string::size_type pos ; - pos = _path.find_last_of( _separator ) ; - if ( pos != string::npos ) - return _path.substr( pos + 1); - else - return _path ; -} - - -bool FilePath::exists() const { - if ( ! _checked ) - check() ; - return _exists ; -} - - -bool FilePath::isRegular() const { - if ( ! _checked ) - check() ; - return _is_reg ; -} - - -bool FilePath::isDirectory() const { - if ( ! _checked ) - check() ; - return _is_dir ; -} - - -bool FilePath::isCharSpecial() const { - if ( ! _checked ) - check() ; - return _is_char ; -} - - -bool FilePath::isBlockSpecial() const { - if ( ! _checked ) - check() ; - return _is_block ; -} - - -bool FilePath::isSocket() const { - if ( ! _checked ) - check() ; - return _is_socket ; -} - - -bool FilePath::isFifo() const { - if ( ! _checked ) - check() ; - return _is_fifo ; -} - - -} // namespace -#endif - -/** \file - Header file that defines FilePath. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/filterinputstreambuf.h b/source/visualization/HepRep/include/zipios++/filterinputstreambuf.h deleted file mode 100644 index fbe86ce1ea..0000000000 --- a/source/visualization/HepRep/include/zipios++/filterinputstreambuf.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef FILTERINPUTSTREAMBUF_H -#define FILTERINPUTSTREAMBUF_H - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -namespace zipios { - -using std::streambuf ; - -/** An input streambuf filter is a streambuf that filters the input it - gets from the streambuf it is attached to. FilterInputStreambuf is a base class to - derive input streambuf filters from. */ -class FilterInputStreambuf : public streambuf { -public: - /** Constructor. - @param inbuf the streambuf to use for input. - @param del_inbuf if true is specified inbuf will be deleted, when - the FilterInputStreambuf is destructed. - */ - explicit FilterInputStreambuf( streambuf *inbuf, bool del_inbuf = false ) ; - /** Destructor. */ - virtual ~FilterInputStreambuf() ; - -protected: - int _s_pos ; // Position in this streambuf - FIXME: is this used? - streambuf *_inbuf ; - bool _del_inbuf ; -private: - - /** Copy-constructor is private to prevent copying. */ - FilterInputStreambuf( const FilterInputStreambuf &src ) ; - - /** Copy-assignment operator is private to prevent copying. */ - const FilterInputStreambuf &operator= ( const FilterInputStreambuf &src ) ; -}; - - -} // namespace - - -#endif - -/** \file - Header file that defines FilterInputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/filteroutputstreambuf.h b/source/visualization/HepRep/include/zipios++/filteroutputstreambuf.h deleted file mode 100644 index 32cd7a0c38..0000000000 --- a/source/visualization/HepRep/include/zipios++/filteroutputstreambuf.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef FILTEROUTPUTSTREAMBUF_H -#define FILTEROUTPUTSTREAMBUF_H - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -namespace zipios { - -using std::streambuf ; - -/** A FilterOutputStreambuf is a streambuf that filters the data that is written - to it before it passes it on to the output streambuf it is connected to. */ -class FilterOutputStreambuf : public streambuf { -public: - - /** Constructor. - @param outbuf the streambuf to pass the filtered data on to. - @param del_outbuf if true is specified outbuf will be deleted, when - the FilterOutputStreambuf is destructed. */ - explicit FilterOutputStreambuf( streambuf *outbuf, bool del_outbuf = false ) ; - - /** Destructor. */ - virtual ~FilterOutputStreambuf() ; - -protected: - streambuf *_outbuf ; - bool _del_outbuf ; -}; - - -} // namespace - - -#endif - -/** \file - Header file that defines FilterOutputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/gzipoutputstream.h b/source/visualization/HepRep/include/zipios++/gzipoutputstream.h deleted file mode 100644 index 0a92fea524..0000000000 --- a/source/visualization/HepRep/include/zipios++/gzipoutputstream.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef GZIPOUTPUTSTREAM_H -#define GZIPOUTPUTSTREAM_H - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -#include - -#include "zipios++/gzipoutputstreambuf.h" - -namespace zipios { - -/** \anchor GZIPOutputStream_anchor - GZIPOutputStream is an ostream that writes the output to a gz file. The - interface approximates the interface of the Java GZIPOutputStream. */ -class GZIPOutputStream : public std::ostream { -public: - - /** GZIPOutputStream constructor. - @param os ostream to which the compressed zip archive is written. - */ - explicit GZIPOutputStream( std::ostream &os ) ; - - /** GZIPOutputStream constructor. - @filename filename to write the gzip archive to. */ - explicit GZIPOutputStream( const std::string &filename ) ; - - void setFilename( const string &filename ); - void setComment( const string &comment ); - - /** Calls finish and closes the stream. */ - void close() ; - - /** Finishes the stream. */ - void finish() ; - - /** Destructor. */ - virtual ~GZIPOutputStream() ; - -private: - std::ofstream *ofs ; - GZIPOutputStreambuf *ozf ; -}; - -} // namespace. - -#endif - -/** \file - Header file that defines GZIPOutputStream. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/gzipoutputstreambuf.h b/source/visualization/HepRep/include/zipios++/gzipoutputstreambuf.h deleted file mode 100644 index 8605f141a3..0000000000 --- a/source/visualization/HepRep/include/zipios++/gzipoutputstreambuf.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef GZIPOUTPUTSTREAMBUF_H -#define GZIPOUTPUTSTREAMBUF_H - -#include "zipios++/zipios-config.h" - -#include - -#include - -#include "zipios++/deflateoutputstreambuf.h" - -namespace zipios { - -/** GZIPOutputStreambuf is a zip output streambuf filter. */ -class GZIPOutputStreambuf : public DeflateOutputStreambuf { -public: - - /** GZIPOutputStreambuf constructor. A newly constructed GZIPOutputStreambuf - is ready to accept data. - @param outbuf the streambuf to use for output. - @param del_outbuf if true is specified outbuf will be deleted, when - the GZIPOutputStreambuf is destructed. */ - explicit GZIPOutputStreambuf( streambuf *outbuf, bool del_outbuf = false ) ; - - void setFilename( const string &filename ); - void setComment( const string &comment ); - - /** Calls finish. */ - void close() ; - - /** Finishes the compression. */ - void finish() ; - - /** Destructor. */ - virtual ~GZIPOutputStreambuf() ; - -protected: - virtual int overflow( int c = EOF ) ; - virtual int sync() ; - -private: - void writeHeader(); - void writeTrailer(); - void writeInt(uint32 i); - - std::string _filename; - std::string _comment; - bool _open ; -}; - - -} // namespace - - - -#endif - -/** \file - Header file that defines ZipOutputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/inflateinputstreambuf.h b/source/visualization/HepRep/include/zipios++/inflateinputstreambuf.h deleted file mode 100644 index fd04b5282f..0000000000 --- a/source/visualization/HepRep/include/zipios++/inflateinputstreambuf.h +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef INFLATEINPUTSTREAMBUF_H -#define INFLATEINPUTSTREAMBUF_H - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" -#include - -#include - -#include "zipios++/filterinputstreambuf.h" - -namespace zipios { - -using std::vector ; - -/** InflateInputStreambuf is an input stream filter, that inflates the input - from the attached input stream. Deflation/Inflation is a - compression/decompression method used in gzip and zip. The zlib - library is used to perform the actual inflation, this class only - wraps the functionality in an input stream filter. */ -class InflateInputStreambuf : public FilterInputStreambuf { -public: - /** InflateInputStreambuf constructor. - @param inbuf the streambuf to use for input. - @param s_pos a position to reset the inbuf to before reading. Specify - -1 to read from the current position. - @param del_inbuf if true is specified inbuf will be deleted, when - the InflateInputStreambuf is destructed. - */ - explicit InflateInputStreambuf( streambuf *inbuf, int s_pos = -1, bool del_inbuf = false ) ; - virtual ~InflateInputStreambuf() ; - - /** Resets the zlib stream and purges input and output buffers. - repositions the input streambuf at stream_position. - @param stream_position a position to reset the inbuf to before reading. Specify - -1 to read from the current position. - */ - bool reset( int stream_position = -1 ) ; -protected: - virtual int underflow() ; -private: - z_stream _zs ; - bool _zs_initialized ; - const int _invecsize ; - vector< char > _invec ; -protected: // FIXME: reconsider design? - const int _outvecsize ; - vector< char > _outvec ; - -private: - - /** Copy-constructor is private to prevent copying. */ - InflateInputStreambuf( const InflateInputStreambuf &src ) ; - - /** Copy-assignment operator is private to prevent copying. */ - const InflateInputStreambuf &operator= ( const InflateInputStreambuf &src ) ; - -}; - - -} // namespace - - - -#endif - -/** \file - Header file that defines InflateInputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/meta-iostreams.h b/source/visualization/HepRep/include/zipios++/meta-iostreams.h deleted file mode 100644 index f1866ae873..0000000000 --- a/source/visualization/HepRep/include/zipios++/meta-iostreams.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef META_IOSTREAMS_H -#define META_IOSTREAMS_H - -// Includes the different iostream libraries - -#include "zipios++/zipios-config.h" - -#include -#include - -#if defined (HAVE_STD_IOSTREAM) && defined (USE_STD_IOSTREAM) -#include -#else -#include -#endif - -#endif diff --git a/source/visualization/HepRep/include/zipios++/outputstringstream.h b/source/visualization/HepRep/include/zipios++/outputstringstream.h deleted file mode 100644 index 439da046f7..0000000000 --- a/source/visualization/HepRep/include/zipios++/outputstringstream.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef OUTPUTSTRINGSTREAM_H -#define OUTPUTSTRINGSTREAM_H - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" -#include - -namespace zipios { - -#if defined (HAVE_STD_IOSTREAM) && defined (USE_STD_IOSTREAM) - -typedef std::ostringstream OutputStringStream ; - -#else - -#include - -/** OutputStringStream is typedefed to ostringstream if sstream is - part of the standard library (unless Zipios++ has been explicitly - configured not to use it). If sstream is not present - OutputStringStream is a subclass of ostrstream from - strstream.h. In this case OutputStringStream specializes the str() - method, such that the caller does not have to concern himself with - null-terminating the string and unfreezing the ostrstream. */ -class OutputStringStream : public std::ostrstream { -public: - - /** Specialization of ostrstream::str() that takes care of - null-terminating the string and unfreezing the ostrstream. */ - inline string str() { - *this << std::ends ; // null terminate ostrstream - string o_str( std::ostrstream::str() ) ; - freeze( 0 ) ; - return o_str ; - } -private: - // To avoid invoking such a member function in the base - // class if there is one! - string str() const ; -}; - -#endif - -} // namespace - - -#endif - -/** \file - Header file that defines OutputStringStream. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/simplesmartptr.h b/source/visualization/HepRep/include/zipios++/simplesmartptr.h deleted file mode 100644 index 287d510296..0000000000 --- a/source/visualization/HepRep/include/zipios++/simplesmartptr.h +++ /dev/null @@ -1,173 +0,0 @@ -#ifndef SIMPLESMARTPTR_H -#define SIMPLESMARTPTR_H - -#include "zipios++/zipios-config.h" - -namespace zipios { - -/** SimpleSmartPointer is a simple reference counting smart pointer - template. The type pointed to must keep a reference count that is - accessible through the two methods void ref() const and unsigned - int unref() const. The type must also handle the reference count - properly. The easiest way to do that is to use the ReferenceCount - template class. */ -template< class Type > -class SimpleSmartPointer { -public: - Type *operator-> () const { return _p ; } - - Type &operator* () const { return *_p ; } - - SimpleSmartPointer( Type *p = 0 ) : _p( p ) { ref() ; } - - template< class T2 > SimpleSmartPointer( const SimpleSmartPointer< T2 > &src ) - : _p( src.get() ) { ref() ; } - - SimpleSmartPointer( const SimpleSmartPointer &src ) : _p( src.get() ) { - ref() ; - } - - ~SimpleSmartPointer () { if ( unref() == 0 ) deleteIt() ; } - - template< class T2 > - SimpleSmartPointer &operator= ( const SimpleSmartPointer< T2 > &src ) { - ref( src.get() ) ; - if ( unref() == 0 ) - deleteIt() ; - _p = src.get() ; - return *this ; - } - - SimpleSmartPointer &operator= ( const SimpleSmartPointer &src ) { - ref( src.get() ) ; - if ( unref() == 0 ) - deleteIt() ; - _p = src.get() ; - return *this ; - } - - SimpleSmartPointer &operator=( Type *src ) { - _p = src ; - ref() ; - return *this ; - } - - bool operator== ( const Type *p ) const { return _p == p ; } - bool operator!= ( const Type *p ) const { return _p != p ; } - bool operator== ( const SimpleSmartPointer &sp ) const { return _p == sp.get() ; } - bool operator!= ( const SimpleSmartPointer &sp ) const { return _p != sp.get() ; } - bool operator! () const { return ! _p ; } - // This next method is inspired by iostream, and is for use with - // if ( some_smart_pointer ). - operator void*() const { return _p ? (void *)(-1) : (void *)(0) ; } - - Type *get() const { return _p ; } - - /** Returns the reference count - For debugging purposes. */ - unsigned int getReferenceCount() const { return _p->getReferenceCount(); } - - -private: - template< class T2 > - void ref( const T2 *ptr ) { if ( ptr ) ptr->ref() ; } - - void ref() const { if ( _p ) _p->ref() ; } - unsigned int unref() const { - if ( _p ) - return _p->unref(); - else - return 0 ; - } - void deleteIt() { -// if( _p ) -// cerr << "SimpleSmartPointer: Deleting object!" << endl ; - delete _p ; - } - Type *_p ; -}; - - -/** ReferenceCount is useful to ensure proper handling of the - reference count for (objects of) classes handled through a - SimpleSmartPointer. Subclassing ReferenceCount is all a class - needs to become ready for being handled by - SimpleSmartPointer. Another way is to add a ReferenceCount member - variable to a class and write two methods 'void ref() const' and - 'unsigned int unref() const' that invoke the same methods in the - ReferenceCount variable. */ -template< class Type > -class ReferenceCount { - /** SimpleSmartPointer needs to be a friend to invoke the private - ref() and unref() methods. */ - friend class SimpleSmartPointer< Type > ; - friend class SimpleSmartPointer< const Type > ; - /** Type also needs to be a friend to invoke the private ref() and - unref() methods, in case Type doesn't want to inherit - ReferenceCount and thus needs to invoke ref() and unref() - through forwarding member functions. */ - // - // Originally the following template parameter was made a friend. - // This is not allowed by the standard so comment it out: - // - // friend Type ; - // - // Initially hack things by making the necessary classes friends - // even though we don't know really which they are. This is an - // Hideous Hack. - friend class FileEntry ; - friend class Bogus ; - -public: - /** Constructor intializes count to zero. */ - ReferenceCount() : _ref_count( 0 ) {} - - /** Copy-constructor intializes count to zero. It doesn't copy it - from src. */ - ReferenceCount( const ReferenceCount &/*MD:src*/ ) : _ref_count( 0 ) {} - - /** The assignment operator doesn't copy the reference count, it - leaves it unchanged. */ - const ReferenceCount &operator= ( const ReferenceCount &src ) { return *this; } -private: - - /** Increases the reference count. */ - void ref() const { ++_ref_count ; } - - /** Decreases the reference count. */ - unsigned int unref() const { return --_ref_count ; } - - /** Returns the reference count - For debugging purposes. */ - unsigned int getReferenceCount() const { return _ref_count; } - - /** Holds the actual reference count */ - mutable unsigned short _ref_count ; -}; - - - -} // namespace - -#endif - -/** \file - Header file that defines SimpleSmartPointer and ReferenceCount. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/virtualseeker.h b/source/visualization/HepRep/include/zipios++/virtualseeker.h deleted file mode 100644 index e79a0cc054..0000000000 --- a/source/visualization/HepRep/include/zipios++/virtualseeker.h +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef VIRTUALSEEKER_H -#define VIRTUALSEEKER_H - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - - -namespace zipios { - -using std::ios ; -using std::cerr ; -using std::endl ; - -/** VirtualSeeker is a simple class that keeps track of a set of - specified 'virtual' file endings that mark a subset of a real - file. An example of its use (and its reason for existence) is to - keep track of the file endings of a Zip file embedded in another - file. */ -class VirtualSeeker { -public: - inline VirtualSeeker( int start_offset = 0, int end_offset = 0) ; - inline void setOffsets( int start_offset, int end_offset ) ; - inline void getOffsets( int &start_offset, int &end_offset ) const ; - inline int startOffset() const ; - inline int endOffset() const ; - inline void vseekg( istream &is, int offset, ios::seekdir sd ) const ; - inline int vtellg( istream &is ) const ; -private: - // start and end offsets - int _s_off, _e_off ; -}; - - - -VirtualSeeker::VirtualSeeker( int start_offset, int end_offset ) - : _s_off( start_offset ), - _e_off( end_offset ) -{} - - -void VirtualSeeker::setOffsets( int start_offset, int end_offset ) { - _s_off = start_offset ; - _e_off = end_offset ; -} - - -void VirtualSeeker::getOffsets( int &start_offset, int &end_offset ) const { - start_offset = _s_off ; - end_offset = _e_off ; -} - - -int VirtualSeeker::startOffset() const { - return _s_off ; -} - - -int VirtualSeeker::endOffset() const { - return _e_off ; -} - -void VirtualSeeker::vseekg( istream &is, int offset, ios::seekdir sd ) const { - if ( sd == ios::cur ) - is.seekg( offset, sd ) ; - else if ( sd == ios::beg ) - is.seekg( offset + _s_off, sd ) ; - else if ( sd == ios::end ) - is.seekg( offset - _e_off, sd ) ; - else - cerr << "VirtualSeekManager::seekg: error - not supposed to happen!" << endl ; -} - - -int VirtualSeeker::vtellg( istream &is ) const { - return static_cast< int >( is.tellg() ) - _s_off ; -} - - -} // namespace - -#endif - -/** \file - Header file that defines VirtualSeeker. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/zipfile.h b/source/visualization/HepRep/include/zipios++/zipfile.h deleted file mode 100644 index 9d203e36a0..0000000000 --- a/source/visualization/HepRep/include/zipios++/zipfile.h +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef ZIPFILE_H -#define ZIPFILE_H - -#include "zipios++/zipios-config.h" - -#include -#include "zipios++/meta-iostreams.h" - -#include "zipios++/fcoll.h" -#include "zipios++/ziphead.h" -#include "zipios++/virtualseeker.h" - -namespace zipios { - -using std::ifstream ; - -/** \anchor zipfile_anchor - ZipFile is a FileCollection, where the files are stored - in a .zip file. */ -class ZipFile : public FileCollection { -public: - /** \anchor zipfile_openembeddedzipfile - Opens a Zip archive embedded in another file, by writing the zip - archive to the end of the file followed by the start offset of - the zip file. The offset must be written in zip-file byte-order - (little endian). The program appendzip, which is part of the - Zipios++ distribution can be used to append a Zip archive to a - file, e.g. a binary program. - @throw FColException Thrown if the specified file name is not a valid zip - archive. - @throw IOException Thrown if an I/O problem is encountered, while the directory - of the specified zip archive is being read. */ - static ZipFile openEmbeddedZipFile( const string &name ) ; - - /** Default constructor. - */ - ZipFile() {} - - /* Default Copy constructor and copy assignment operator are sufficient. */ - - /** Constructor. Opens the zip file name. If the zip "file" is - embedded in a file that contains other data, e.g. a binary - program, the offset of the zip file start and end must be - specified. - @param name The filename of the zip file to open. - @param s_off Offset relative to the start of the file, that - indicates the beginning of the zip file. - @param e_off Offset relative to the end of the file, that - indicates the end of the zip file. The offset is a positive number, - even though the offset is towards the beginning of the file. - @throw FColException Thrown if the specified file name is not a valid zip - archive. - @throw IOException Thrown if an I/O problem is encountered, while the directory - of the specified zip archive is being read. */ - explicit ZipFile( const string &name, int s_off = 0, int e_off = 0 - /* , ios::open_mode mode = ios::in | ios::binary */ ) ; - - virtual FileCollection *clone() const ; - - /** Destructor. */ - virtual ~ZipFile() ; - - virtual void close() ; - - virtual istream *getInputStream( const ConstEntryPointer &entry ) ; - virtual istream *getInputStream( const string &entry_name, - MatchPath matchpath = MATCH ) ; -private: - VirtualSeeker _vs ; - EndOfCentralDirectory _eocd ; - - bool init( istream &_zipfile ) ; - bool readCentralDirectory( istream &_zipfile ) ; - bool readEndOfCentralDirectory( istream &_zipfile ) ; - bool confirmLocalHeaders( istream &_zipfile ) ; - void setError( string error_str ) ; -}; - - -} - -#endif - -/** \file - Header file that defines ZipFile. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/ziphead.h b/source/visualization/HepRep/include/zipios++/ziphead.h deleted file mode 100644 index ea1d0d3d3b..0000000000 --- a/source/visualization/HepRep/include/zipios++/ziphead.h +++ /dev/null @@ -1,271 +0,0 @@ -#ifndef ZIPHEAD_H -#define ZIPHEAD_H - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" -#include -#include - -#include "zipios++/fileentry.h" -#include "zipios++/zipios_defs.h" - -namespace zipios { - -using std::streampos ; - -class ZipCDirEntry ; - -/** A concrete implementation of the abstract FileEntry base class for - ZipFile entries, specifically for representing the information - present in the local headers of file entries in a zip file. */ -class ZipLocalEntry : public FileEntry { - friend istream &operator>> ( istream &is, ZipLocalEntry &zcdh ) ; - friend ostream &operator<< ( ostream &os, const ZipLocalEntry &zlh ) ; - friend bool operator== ( const ZipLocalEntry &zlh, const ZipCDirEntry &ze ) ; -public: - inline ZipLocalEntry( const string &_filename = "", - const vector< unsigned char > &_extra_field = - vector< unsigned char >() ) - : gp_bitfield( 0 ), - _valid( false ) { - setDefaultExtract() ; - setName( _filename ) ; - setExtra( _extra_field ) ; - } - - void setDefaultExtract() ; - inline ZipLocalEntry &operator=( const class ZipLocalEntry &src ) ; - virtual string getComment() const ; - virtual uint32 getCompressedSize() const ; - virtual uint32 getCrc() const ; - virtual vector< unsigned char > getExtra() const ; - virtual StorageMethod getMethod() const ; - virtual string getName() const ; - virtual string getFileName() const ; - virtual uint32 getSize() const ; - virtual int getTime() const ; - virtual bool isValid() const ; - - virtual bool isDirectory() const ; - - virtual void setComment( const string &comment ) ; - virtual void setCompressedSize( uint32 size ) ; - virtual void setCrc( uint32 crc ) ; - virtual void setExtra( const vector< unsigned char > &extra ) ; - virtual void setMethod( StorageMethod method ) ; - virtual void setName( const string &name ) ; - virtual void setSize( uint32 size ) ; - virtual void setTime( int time ) ; - - virtual string toString() const ; - - int getLocalHeaderSize() const ; - - bool trailingDataDescriptor() const ; - - virtual FileEntry *clone() const ; - - virtual ~ZipLocalEntry() {} -protected: - static const uint32 signature ; - uint16 extract_version ; - uint16 gp_bitfield ; - uint16 compress_method ; - uint16 last_mod_ftime ; - uint16 last_mod_fdate ; - uint32 crc_32 ; - uint32 compress_size ; - uint32 uncompress_size ; - uint16 filename_len ; - uint16 extra_field_len ; - - string filename ; - vector< unsigned char > extra_field ; - - bool _valid ; -}; - -/** A struct containing fields for the entries in a zip file data - descriptor, that trails the compressed data in files that were - created by streaming, ie where the zip compressor cannot seek back - to the local header and store the data. */ -struct DataDescriptor { - uint32 crc_32 ; - uint32 compress_size ; - uint32 uncompress_size ; -}; - -/** Specialization of ZipLocalEntry, that add fields for storing the - extra information, that is only present in the entries in the zip - central directory and not in the local entry headers. */ -class ZipCDirEntry : public ZipLocalEntry { -friend istream &operator>> ( istream &is, ZipCDirEntry &zcdh ) ; -friend ostream &operator<< ( ostream &os, const ZipCDirEntry &zcdh ) ; -friend bool operator== ( const ZipLocalEntry &zlh, const ZipCDirEntry &ze ) ; -public: - - inline ZipCDirEntry( const string &_filename = "", - const string &_file_comment = "", - const vector< unsigned char > &_extra_field = - vector< unsigned char >() ) - : ZipLocalEntry ( _filename, _extra_field ), - disk_num_start ( 0x0 ), - intern_file_attr( 0x0 ), - extern_file_attr( 0x81B40000 ) - // FIXME: I don't understand the external mapping, simply - // copied value for a file with -rw-rw-r-- permissions - // compressed with info-zip - { - setComment( _file_comment ) ; - setDefaultWriter() ; - } - - void setDefaultWriter() ; - - inline ZipCDirEntry &operator=( const class ZipCDirEntry &src ) ; - virtual string toString() const ; - - virtual string getComment() const ; - - virtual void setComment( const string &comment ) ; - - virtual uint32 getLocalHeaderOffset() const ; - virtual void setLocalHeaderOffset( uint32 offset ) ; - - int getCDirHeaderSize() const ; - - virtual FileEntry *clone() const ; - - virtual ~ZipCDirEntry() {} -private: - static const uint32 signature ; - uint16 writer_version ; - - uint16 file_comment_len ; - uint16 disk_num_start ; - uint16 intern_file_attr ; - uint32 extern_file_attr ; - - uint32 rel_offset_loc_head ; - - string file_comment ; -}; - -/** The end of the Central directory structure. This structure is - stored in the end of the zipfile, and contains information about - the zipfile, including the position of the start of the central - directory. */ -class EndOfCentralDirectory { - friend ostream &operator<< ( ostream &os, const EndOfCentralDirectory &eocd ) ; -public: - explicit EndOfCentralDirectory( const string &_zip_comment = "", - uint16 _disk_num = 0, uint16 _cdir_disk_num = 0, - uint16 _cdir_entries = 0, - uint16 _cdir_tot_entries = 0, - uint32 _cdir_size = 0, uint32 _cdir_offset = 0 ) - : disk_num ( _disk_num ), - cdir_disk_num ( _cdir_disk_num ), - cdir_entries ( _cdir_entries ), - cdir_tot_entries ( _cdir_tot_entries ), - cdir_size ( _cdir_size ), - cdir_offset ( _cdir_offset ), - zip_comment_len ( _zip_comment.size() ), - zip_comment ( _zip_comment ) {} - - uint32 offset() const { return cdir_offset ; } - uint16 totalCount() const { return cdir_tot_entries ; } - void setCDirSize( uint32 size ) { cdir_size = size ; } - void setOffset( uint32 offset ) { cdir_offset = offset ; } - - void setTotalCount( uint16 c ) { cdir_entries = c ; cdir_tot_entries = c ; } - int eocdOffSetFromEnd() const { return eocd_offset_from_end ; } - bool read( vector &buf, int pos ) ; -private: - static const uint32 signature; - uint16 disk_num ; - uint16 cdir_disk_num ; - uint16 cdir_entries ; - uint16 cdir_tot_entries ; - uint32 cdir_size ; - uint32 cdir_offset ; - uint16 zip_comment_len ; - - streampos eocd_offset_from_end ; // Not a Zip defined field - string zip_comment; - bool checkSignature( unsigned char *buf ) const ; - inline bool checkSignature( uint32 sig ) const ; -}; - - -bool operator== ( const ZipLocalEntry &zlh, const ZipCDirEntry &ze ) ; -inline bool operator== ( const ZipCDirEntry &ze, const ZipLocalEntry &zlh ) { - return zlh == ze ; -} -inline bool operator!= ( const ZipLocalEntry &zlh, const ZipCDirEntry &ze ) { - return ! ( zlh == ze ) ; -} -inline bool operator!= ( const ZipCDirEntry &ze, const ZipLocalEntry &zlh ) { - return ! ( zlh == ze ) ; -} - -// Inline member functions - -ZipCDirEntry &ZipCDirEntry::operator=( const class ZipCDirEntry &src ) { - writer_version = src.writer_version ; - extract_version = src.extract_version ; - gp_bitfield = src.gp_bitfield ; - compress_method = src.compress_method ; - last_mod_ftime = src.last_mod_ftime ; - last_mod_fdate = src.last_mod_fdate ; - crc_32 = src.crc_32 ; - compress_size = src.compress_size ; - uncompress_size = src.uncompress_size ; - filename_len = src.filename_len ; - extra_field_len = src.extra_field_len ; - file_comment_len = src.file_comment_len ; - disk_num_start = src.disk_num_start ; - intern_file_attr = src.intern_file_attr ; - extern_file_attr = src.extern_file_attr ; - rel_offset_loc_head = src.rel_offset_loc_head ; - - filename = src.filename ; - extra_field = src.extra_field ; - file_comment = src.file_comment ; - - return *this ; -} - -bool EndOfCentralDirectory::checkSignature ( uint32 sig ) const { - return signature == sig ; -} - - -} // namespace - -#endif - - -/** \file - Header file containing classes and functions for reading the central - directory and local header fields in a zip archive. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/zipheadio.h b/source/visualization/HepRep/include/zipios++/zipheadio.h deleted file mode 100644 index 101443a1ad..0000000000 --- a/source/visualization/HepRep/include/zipios++/zipheadio.h +++ /dev/null @@ -1,192 +0,0 @@ -#ifndef ZIPHEADIO_H -#define ZIPHEADIO_H - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" -#include -#include - -#include "zipios++/ziphead.h" -#include "zipios++/zipios_defs.h" - -namespace zipios { - -// byte order conversion functions. -// ztohs (zip-to-host-short) -#ifdef MY_BIG_ENDIAN - -inline uint16 ztohs ( unsigned char *buf ) { - uint16 out ; -// *( reinterpret_cast( &out ) ) = *( buf + 1 ); -// *( reinterpret_cast( &out ) + 1 ) = *( buf ); - out = ( static_cast< uint16 >( buf[ 0 ] ) << 8 ) + - ( static_cast< uint16 >( buf[ 1 ] ) ) ; - - return out; -} - -// ztohl (zip-to-host-long) -inline uint32 ztohl ( unsigned char *buf ) { - uint32 out; - out = ( static_cast< uint32 >( buf[ 0 ] ) << 24 ) + - ( static_cast< uint32 >( buf[ 1 ] ) << 16 ) + - ( static_cast< uint32 >( buf[ 2 ] ) << 8 ) + - ( static_cast< uint32 >( buf[ 3 ] ) ) ; - - return out; -} - -#else - -inline uint16 ztohs ( unsigned char *buf ) { - uint16 out ; - out = ( static_cast< uint16 >( buf[ 1 ] ) << 8 ) + - ( static_cast< uint16 >( buf[ 0 ] ) ) ; - return out; -} - -// ztohl (zip-to-host-long) -inline uint32 ztohl ( unsigned char *buf ) { - uint32 out; - out = ( static_cast< uint32 >( buf[ 3 ] ) << 24 ) + - ( static_cast< uint32 >( buf[ 2 ] ) << 16 ) + - ( static_cast< uint32 >( buf[ 1 ] ) << 8 ) + - ( static_cast< uint32 >( buf[ 0 ] ) ) ; -// cerr << "buf : " << static_cast< int >( buf[ 0 ] ) ; -// cerr << " " << static_cast< int >( buf[ 1 ] ) ; -// cerr << " " << static_cast< int >( buf[ 2 ] ) ; -// cerr << " " << static_cast< int >( buf[ 3 ] ) << endl ; -// cerr << "uint32 " << out << endl ; - return out; -} - - -#endif - -// htozl (host-to-zip-long) -inline uint32 htozl ( unsigned char *buf ) { - return ztohl( buf ) ; -} - -// htozs (host-to-zip-short) -inline uint16 htozs ( unsigned char *buf ) { - return ztohs( buf ) ; -} - - -inline uint32 readUint32 ( istream &is ) { - static const int buf_len = sizeof ( uint32 ) ; - unsigned char buf [ buf_len ] ; - int rsf = 0 ; - while ( rsf < buf_len ) { - is.read ( reinterpret_cast< char * >( buf ) + rsf, buf_len - rsf ) ; - rsf += is.gcount () ; - } - return ztohl ( buf ) ; -} - -inline void writeUint32 ( uint32 host_val, ostream &os ) { - uint32 val = htozl( reinterpret_cast< unsigned char * >( &host_val ) ) ; - os.write( reinterpret_cast< char * >( &val ), sizeof( uint32 ) ) ; -} - -inline uint16 readUint16 ( istream &is ) { - static const int buf_len = sizeof ( uint16 ) ; - unsigned char buf [ buf_len ] ; - int rsf = 0 ; - while ( rsf < buf_len ) { - is.read ( reinterpret_cast< char * >( buf ) + rsf, buf_len - rsf ) ; - rsf += is.gcount () ; - } - return ztohs ( buf ) ; -} - -inline void writeUint16 ( uint16 host_val, ostream &os ) { - uint16 val = htozl( reinterpret_cast< unsigned char * >( &host_val ) ) ; - os.write( reinterpret_cast< char * >( &val ), sizeof( uint16 ) ) ; -} - -inline void readByteSeq ( istream &is, string &con, int count ) { - char *buf = new char [ count + 1 ] ; - int rsf = 0 ; - while ( rsf < count && is ) { - is.read ( buf + rsf, count - rsf ) ; - rsf += is.gcount() ; - } - buf [ count ] = '\0' ; - - con = buf ; - delete [] buf ; -} - -inline void writeByteSeq( ostream &os, const string &con ) { - os << con ; -} - -inline void readByteSeq ( istream &is, unsigned char *buf, int count ) { - int rsf = 0 ; - - while ( rsf < count && is ) { - is.read ( reinterpret_cast< char * >( buf ) + rsf, count - rsf ) ; - rsf += is.gcount() ; - } -} - -inline void writeByteSeq ( ostream &os, const unsigned char *buf, int count ) { - os.rdbuf()->sputn( reinterpret_cast< const char * >( buf ), count ) ; -} - -inline void readByteSeq ( istream &is, vector < unsigned char > &vec, int count ) { - unsigned char *buf = new unsigned char [ count ] ; - int rsf = 0 ; - while ( rsf < count && is ) { - is.read ( reinterpret_cast< char * >( buf ) + rsf, count - rsf ) ; - rsf += is.gcount() ; - } - - vec.insert ( vec.end (), buf, buf + count ) ; - delete [] buf ; -} - -inline void writeByteSeq ( ostream &os, const vector < unsigned char > &vec ) { - os.rdbuf()->sputn( reinterpret_cast< const char * >( &( vec[ 0 ] ) ), vec.size() ) ; -} - -istream& operator>> ( istream &is, ZipLocalEntry &zlh ) ; -istream& operator>> ( istream &is, DataDescriptor &dd ) ; -istream& operator>> ( istream &is, ZipCDirEntry &zcdh ) ; -// istream& operator>> ( istream &is, EndOfCentralDirectory &eocd ) ; - -ostream &operator<< ( ostream &os, const ZipLocalEntry &zlh ) ; -ostream &operator<< ( ostream &os, const ZipCDirEntry &zcdh ) ; -ostream &operator<< ( ostream &os, const EndOfCentralDirectory &eocd ) ; - - -} // namespace - -#endif - -/** \file - Header file that defines I/O functions for the header structures - defined in ziphead.h. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/zipinputstream.h b/source/visualization/HepRep/include/zipios++/zipinputstream.h deleted file mode 100644 index 2849cfc035..0000000000 --- a/source/visualization/HepRep/include/zipios++/zipinputstream.h +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef ZIPINPUTSTREAM_H -#define ZIPINPUTSTREAM_H - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" -#include - -#include "zipios++/ziphead.h" -#include "zipios++/zipinputstreambuf.h" - -namespace zipios { - -using std::ifstream ; - -/** \anchor ZipInputStream_anchor - ZipInputStream is an istream that gets it's input from a zip file. The - interface approximates the interface of the Java - ZipInputStream. */ -class ZipInputStream : public istream { -public: - - /** ZipInputStream constructor. - @param is istream from which the compressed zip archive can be read. - @param pos position to reposition the istream to before reading. */ - explicit ZipInputStream( istream &is, streampos pos = 0 ) ; - - /** ZipInputStream constructor. - @filename filename of a valid zip file. - @param pos position to reposition the istream to before reading. */ - explicit ZipInputStream( const string &filename, streampos pos = 0 ) ; - - int available() ; - /** Closes the current entry, and positions the stream read pointer at - the beginning of the next entry (if there is one). */ - void closeEntry() ; - - /** Closes the istream. */ - void close() ; - -// ZipLocalEntry *createZipCDirEntry( const string &name ) ; - - /** \anchor ZipInputStream_getnextentry_anchor - Opens the next entry in the zip archive and returns a const pointer to a - FileEntry object for the entry. - @return a const FileEntry * containing information about the (now) current - entry. - */ - ConstEntryPointer getNextEntry() ; - - /** Destructor. */ - virtual ~ZipInputStream() ; - -private: - ifstream *ifs ; - ZipInputStreambuf *izf ; - - /** Copy-constructor is private to prevent copying. */ - ZipInputStream( const ZipInputStream &src ) ; - - /** Copy-assignment operator is private to prevent copying. */ - const ZipInputStream &operator= ( const ZipInputStream &src ) ; - -}; - -} // namespace. - -#endif - -/** \file - Header file that defines ZipInputStream. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/zipinputstreambuf.h b/source/visualization/HepRep/include/zipios++/zipinputstreambuf.h deleted file mode 100644 index d16146c34b..0000000000 --- a/source/visualization/HepRep/include/zipios++/zipinputstreambuf.h +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef ZIPINPUTSTREAMBUF_H -#define ZIPINPUTSTREAMBUF_H - -#include "zipios++/zipios-config.h" - -#include - -#include - -#include "zipios++/fcoll.h" -#include "zipios++/inflateinputstreambuf.h" -#include "zipios++/ziphead.h" - -namespace zipios { - -/** ZipInputStreambuf is a zip input streambuf filter. - */ -class ZipInputStreambuf : public InflateInputStreambuf { -public: - /** ZipInputStreambuf constructor. - @param inbuf the streambuf to use for input. - @param s_pos a position to reset the inbuf to before reading. Specify - -1 to read from the current position. - @param del_inbuf if true is specified inbuf will be deleted, when - the ZipInputStreambuf is destructed. - */ - explicit ZipInputStreambuf( streambuf *inbuf, int s_pos = -1, bool del_inbuf = false ) ; - - /** Closes the current entry, and positions the stream read pointer at - the beginning of the next entry (if there is one). */ - void closeEntry() ; - /** Closes the streambuf. */ - void close() ; - - /** Opens the next entry in the zip archive and returns a const pointer to a - FileEntry object for the entry. - @return a const FileEntry * containing information about the (now) current - entry. - */ - ConstEntryPointer getNextEntry() ; - - /** Destructor. */ - virtual ~ZipInputStreambuf() ; -protected: - virtual int underflow() ; -private: - bool _open_entry ; - ZipLocalEntry _curr_entry ; - int _data_start ; // Don't forget entry header has a length too. - int _remain ; // For STORED entry only. the number of bytes that - // hasn't been put in the _outvec yet. - - /** Copy-constructor is private to prevent copying. */ - ZipInputStreambuf( const ZipInputStreambuf &src ) ; - - /** Copy-assignment operator is private to prevent copying. */ - const ZipInputStreambuf &operator= ( const ZipInputStreambuf &src ) ; - -}; - - -} // namespace - - - -#endif - -/** \file - Header file that defines ZipInputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/zipios-config.h b/source/visualization/HepRep/include/zipios++/zipios-config.h deleted file mode 100644 index 2a95905d16..0000000000 --- a/source/visualization/HepRep/include/zipios++/zipios-config.h +++ /dev/null @@ -1,62 +0,0 @@ -// MD: defined for our purposes - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define as __inline if that's what the C compiler calls it. */ -/* #undef inline */ - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define if the std compliant iostream library should be used (if present) */ -#define USE_STD_IOSTREAM 1 - -/* Define if zlib has zError */ -#define HAVE_ZERROR 1 - -/* Define if you have the header file. */ -//#define HAVE_UNISTD_H 1 - -/* Name of package */ -#define PACKAGE "zipios++" - -/* Version number of package */ -#define VERSION "0.1.5" - -/* define if the compiler implements namespaces */ -#define HAVE_NAMESPACES 1 - -/* define if the compiler supports Standard Template Library */ -#define HAVE_STL 1 - -/* define if the compiler supports ISO C++ standard library */ -#define HAVE_STD 1 - -/* define if the compiler has std compliant iostream library */ -// MD defined for Geant4, Solaris and Linux 2.95.2 do not have this... -#if defined (WIN32) || __GNUC__ > 2 -#define HAVE_STD_IOSTREAM 1 -#endif - -//#undef S_ISSOCK -//#define S_ISSOCK(mode) 0 - -#ifdef WIN32 -#ifndef GNU_GCC -# ifdef _MSC_VER -// Disable class-browser warning about truncated template-names -# pragma warning( disable : 4786 ) -# endif //_MSC_VER - -// Needed for FilePath -# define S_ISREG(mode) (((mode) & _S_IFREG) == _S_IFREG) -# define S_ISDIR(mode) (((mode) & _S_IFDIR) == _S_IFDIR) -# define S_ISCHR(mode) (((mode) & _S_IFCHR) == _S_IFCHR) -# define S_ISBLK(mode) 0 -# define S_ISSOCK(mode) 0 -# define S_ISFIFO(mode) (((mode) & _S_IFIFO) == _S_IFIFO) -#endif -#endif - -#include diff --git a/source/visualization/HepRep/include/zipios++/zipios_common.h b/source/visualization/HepRep/include/zipios++/zipios_common.h deleted file mode 100644 index 3c4f7d4e5f..0000000000 --- a/source/visualization/HepRep/include/zipios++/zipios_common.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef ZIPIOS_COMMON_H -#define ZIPIOS_COMMON_H - -#include "zipios++/zipios-config.h" - -#include - -namespace zipios { - -using std::vector; - -static const char separator = '/' ; - -template< class Type > -void operator += ( vector< Type > &v1, const vector< Type > &v2 ) { - typename std::vector::const_iterator cit ; - for ( cit = v2.begin() ; cit != v2.end() ; ++cit ) - v1.push_back( *cit ) ; -} - -template< class T > -inline const T& min( const T& a, const T& b ) { - return b < a ? b : a ; -} - - -} // namespace - -#endif - -/** \file - Header file containing miscellaneous small functions. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/zipios_defs.h b/source/visualization/HepRep/include/zipios++/zipios_defs.h deleted file mode 100644 index 41398f5218..0000000000 --- a/source/visualization/HepRep/include/zipios++/zipios_defs.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef ZIPIOS_DEFS_H -#define ZIPIOS_DEFS_H - -namespace zipios { - -typedef unsigned short uint16 ; -typedef unsigned long uint32 ; - -} // namespace - -#endif - -/** \file - Header file that defines some simple data types. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/zipoutputstream.h b/source/visualization/HepRep/include/zipios++/zipoutputstream.h deleted file mode 100644 index e9abde5575..0000000000 --- a/source/visualization/HepRep/include/zipios++/zipoutputstream.h +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef ZIPOUTPUTSTREAM_H -#define ZIPOUTPUTSTREAM_H - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -#include - -#include "zipios++/ziphead.h" -#include "zipios++/zipoutputstreambuf.h" - -namespace zipios { - -/** \anchor ZipOutputStream_anchor - ZipOutputStream is an ostream that writes the output to a zip file. The - interface approximates the interface of the Java ZipOutputStream. */ -class ZipOutputStream : public std::ostream { -public: - - /** ZipOutputStream constructor. - @param os ostream to which the compressed zip archive is written. - @param pos position to reposition the ostream to before reading. */ - explicit ZipOutputStream( std::ostream &os ) ; - - /** ZipOutputStream constructor. - @filename filename to write the zip archive to. */ - explicit ZipOutputStream( const std::string &filename ) ; - - /** Closes the current entry updates its header with the relevant - size information and positions the stream write pointer for the - next entry header. Puts the stream in EOF state. Call - putNextEntry() to clear the EOF stream state flag. */ - void closeEntry() ; - - /** Calls finish and if the ZipOutputStream was created with a - filename as a parameter that file is closed as well. If the - ZipOutputStream was created with an ostream as its first - parameter nothing but the call to finish happens. */ - void close() ; - - /** Closes the current entry (if one is open), then writes the Zip - Central Directory Structure closing the ZipOutputStream. The - output stream that the zip archive is being written to is not - closed. */ - void finish() ; - - /** \anchor ZipOutputStream_putnextentry_anchor - Begins writing the next entry. - */ - void putNextEntry( const ZipCDirEntry &entry ) ; - - /** \anchor ZipOutputStream_putnextentry2_anchor - Begins writing the next entry. - */ - void putNextEntry(const std::string& entryName); - - /** Sets the global comment for the Zip archive. */ - void setComment( const std::string& comment ) ; - - /** Sets the compression level to be used for subsequent entries. */ - void setLevel( int level ) ; - - /** Sets the compression method to be used. only STORED and DEFLATED are - supported. */ - void setMethod( StorageMethod method ) ; - - /** Destructor. */ - virtual ~ZipOutputStream() ; - -private: - std::ofstream *ofs ; - ZipOutputStreambuf *ozf ; -}; - -} // namespace. - -#endif - -/** \file - Header file that defines ZipOutputStream. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zipios++/zipoutputstreambuf.h b/source/visualization/HepRep/include/zipios++/zipoutputstreambuf.h deleted file mode 100644 index c750e7e6b2..0000000000 --- a/source/visualization/HepRep/include/zipios++/zipoutputstreambuf.h +++ /dev/null @@ -1,116 +0,0 @@ -#ifndef ZIPOUTPUTSTREAMBUF_H -#define ZIPOUTPUTSTREAMBUF_H - -#include "zipios++/zipios-config.h" - -#include - -#include - -#include "zipios++/fcoll.h" -#include "zipios++/deflateoutputstreambuf.h" -#include "zipios++/ziphead.h" - -namespace zipios { - -/** ZipOutputStreambuf is a zip input streambuf filter. */ -class ZipOutputStreambuf : public DeflateOutputStreambuf { -public: - - enum CompressionLevels { NO_COMPRESSION = Z_NO_COMPRESSION, - BEST_SPEED = Z_BEST_SPEED, - BEST_COMPRESSION = Z_BEST_COMPRESSION, - DEFAULT_COMPRESSION = Z_DEFAULT_COMPRESSION } ; - - /** ZipOutputStreambuf constructor. A newly constructed ZipOutputStreambuf - is not ready to accept data, putNextEntry() must be invoked first. - @param outbuf the streambuf to use for input. - @param del_outbuf if true is specified outbuf will be deleted, when - the ZipOutputStreambuf is destructed. */ - explicit ZipOutputStreambuf( streambuf *outbuf, bool del_outbuf = false ) ; - - /** Closes the current entry, and positions the stream read pointer at - the beginning of the next entry (if there is one). */ - void closeEntry() ; - - /** Calls finish. */ - void close() ; - - /** Closes the current entry (if one is open), then writes the Zip - Central Directory Structure closing the ZipOutputStream. The - output stream that the zip archive is being written to is not - closed. */ - void finish() ; - - /** Begins writing the next entry. - Opens the next entry in the zip archive and returns a const pointer to a - FileEntry object for the entry. - @return a const FileEntry * containing information about the (now) current - entry. */ - void putNextEntry( const ZipCDirEntry &entry ) ; - - /** Sets the global comment for the Zip archive. */ - void setComment( const string &comment ) ; - - /** Sets the compression level to be used for subsequent entries. */ - void setLevel( int level ) ; - - /** Sets the compression method to be used. only STORED and DEFLATED are - supported. */ - void setMethod( StorageMethod method ) ; - - /** Destructor. */ - virtual ~ZipOutputStreambuf() ; - -protected: - virtual int overflow( int c = EOF ) ; - virtual int sync() ; - - void setEntryClosedState() ; - void updateEntryHeaderInfo() ; - - // Should/could be moved to zipheadio.h ?! - static void writeCentralDirectory( const vector< ZipCDirEntry > &entries, - EndOfCentralDirectory eocd, - ostream &os ) ; - - - -private: - string _zip_comment ; - vector< ZipCDirEntry > _entries ; - bool _open_entry ; - bool _open ; - StorageMethod _method ; - int _level ; -}; - - -} // namespace - - - -#endif - -/** \file - Header file that defines ZipOutputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/include/zlib/inffast.h b/source/visualization/HepRep/include/zlib/inffast.h deleted file mode 100644 index 1e88d2d97b..0000000000 --- a/source/visualization/HepRep/include/zlib/inffast.h +++ /dev/null @@ -1,11 +0,0 @@ -/* inffast.h -- header to use inffast.c - * Copyright (C) 1995-2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -void inflate_fast OF((z_streamp strm, unsigned start)); diff --git a/source/visualization/HepRep/include/zlib/inffixed.h b/source/visualization/HepRep/include/zlib/inffixed.h deleted file mode 100644 index 75ed4b5978..0000000000 --- a/source/visualization/HepRep/include/zlib/inffixed.h +++ /dev/null @@ -1,94 +0,0 @@ - /* inffixed.h -- table for decoding fixed codes - * Generated automatically by makefixed(). - */ - - /* WARNING: this file should *not* be used by applications. It - is part of the implementation of the compression library and - is subject to change. Applications should only use zlib.h. - */ - - static const code lenfix[512] = { - {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48}, - {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128}, - {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59}, - {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176}, - {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20}, - {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100}, - {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8}, - {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216}, - {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76}, - {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114}, - {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2}, - {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148}, - {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42}, - {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86}, - {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15}, - {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236}, - {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62}, - {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142}, - {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31}, - {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162}, - {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25}, - {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105}, - {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4}, - {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202}, - {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69}, - {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125}, - {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13}, - {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195}, - {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35}, - {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91}, - {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19}, - {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246}, - {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55}, - {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135}, - {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99}, - {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190}, - {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16}, - {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96}, - {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6}, - {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209}, - {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72}, - {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116}, - {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4}, - {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153}, - {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44}, - {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82}, - {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11}, - {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229}, - {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58}, - {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138}, - {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51}, - {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173}, - {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30}, - {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110}, - {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0}, - {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195}, - {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65}, - {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121}, - {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9}, - {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258}, - {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37}, - {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93}, - {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23}, - {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251}, - {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51}, - {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131}, - {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67}, - {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183}, - {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23}, - {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103}, - {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9}, - {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223}, - {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79}, - {0,9,255} - }; - - static const code distfix[32] = { - {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025}, - {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193}, - {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385}, - {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577}, - {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073}, - {22,5,193},{64,5,0} - }; diff --git a/source/visualization/HepRep/include/zlib/inflate.h b/source/visualization/HepRep/include/zlib/inflate.h deleted file mode 100644 index 1365b4df18..0000000000 --- a/source/visualization/HepRep/include/zlib/inflate.h +++ /dev/null @@ -1,118 +0,0 @@ -/* inflate.h -- internal inflate state definition - * Copyright (C) 1995-2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* define NO_GZIP when compiling if you want to disable gzip header and - trailer decoding by inflate(). NO_GZIP would be used to avoid linking in - the crc code when it is not needed. For shared libraries, gzip decoding - should be left enabled. */ -#ifndef NO_GZIP -# define GUNZIP -#endif - -/* Possible inflate modes between inflate() calls */ -typedef enum { - HEAD, /* i: waiting for magic header */ -#ifdef GUNZIP - FLAGS, /* i: waiting for method and flags (gzip) */ - TIME, /* i: waiting for modification time (gzip) */ -/* MD: OS seems to be used */ - GOS, /* i: waiting for extra flags and operating system (gzip) */ - EXLEN, /* i: waiting for extra length (gzip) */ - EXTRA, /* i: waiting for extra bytes (gzip) */ - NAME, /* i: waiting for end of file name (gzip) */ - COMMENT, /* i: waiting for end of comment (gzip) */ - HCRC, /* i: waiting for header crc (gzip) */ -#endif - DICTID, /* i: waiting for dictionary check value */ - DICT, /* waiting for inflateSetDictionary() call */ - TYPE, /* i: waiting for type bits, including last-flag bit */ - TYPEDO, /* i: same, but skip check to exit inflate on new block */ - STORED, /* i: waiting for stored size (length and complement) */ - COPY, /* i/o: waiting for input or output to copy stored block */ - TABLE, /* i: waiting for dynamic block table lengths */ - LENLENS, /* i: waiting for code length code lengths */ - CODELENS, /* i: waiting for length/lit and distance code lengths */ - LEN, /* i: waiting for length/lit code */ - LENEXT, /* i: waiting for length extra bits */ - DIST, /* i: waiting for distance code */ - DISTEXT, /* i: waiting for distance extra bits */ - MATCH, /* o: waiting for output space to copy string */ - LIT, /* o: waiting for output space to write literal */ - CHECK, /* i: waiting for 32-bit check value */ -#ifdef GUNZIP - LENGTH, /* i: waiting for 32-bit length (gzip) */ -#endif - DONE, /* finished check, done -- remain here until reset */ - BAD, /* got a data error -- remain here until reset */ - MEM, /* got an inflate() memory error -- remain here until reset */ - SYNC /* looking for synchronization bytes to restart inflate() */ -} inflate_mode; - -/* - State transitions between above modes - - - (most modes can go to the BAD or MEM mode -- not shown for clarity) - - Process header: - HEAD -> (gzip) or (zlib) - (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME - NAME -> COMMENT -> HCRC -> TYPE - (zlib) -> DICTID or TYPE - DICTID -> DICT -> TYPE - Read deflate blocks: - TYPE -> STORED or TABLE or LEN or CHECK - STORED -> COPY -> TYPE - TABLE -> LENLENS -> CODELENS -> LEN - Read deflate codes: - LEN -> LENEXT or LIT or TYPE - LENEXT -> DIST -> DISTEXT -> MATCH -> LEN - LIT -> LEN - Process trailer: - CHECK -> LENGTH -> DONE - */ - -/* state maintained between inflate() calls. Approximately 7K bytes. */ -struct inflate_state { - inflate_mode mode; /* current inflate mode */ - int last; /* true if processing last block */ - int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ - int havedict; /* true if dictionary provided */ - int flags; /* gzip header method and flags (0 if zlib) */ - unsigned long check; /* protected copy of check value */ - unsigned long total; /* protected copy of output count */ - /* sliding window */ - unsigned wbits; /* log base 2 of requested window size */ - unsigned wsize; /* window size or zero if not using window */ - unsigned whave; /* valid bytes in the window */ - unsigned write; /* window write index */ - unsigned char FAR *window; /* allocated sliding window, if needed */ - /* bit accumulator */ - unsigned long hold; /* input bit accumulator */ - unsigned bits; /* number of bits in "in" */ - /* for string and stored block copying */ - unsigned length; /* literal or length of data to copy */ - unsigned offset; /* distance back to copy string from */ - /* for table and code decoding */ - unsigned extra; /* extra bits needed */ - /* fixed and dynamic code tables */ - code const FAR *lencode; /* starting table for length/literal codes */ - code const FAR *distcode; /* starting table for distance codes */ - unsigned lenbits; /* index bits for lencode */ - unsigned distbits; /* index bits for distcode */ - /* dynamic table building */ - unsigned ncode; /* number of code length code lengths */ - unsigned nlen; /* number of length code lengths */ - unsigned ndist; /* number of distance code lengths */ - unsigned have; /* number of code lengths in lens[] */ - code FAR *next; /* next available space in codes[] */ - unsigned short lens[320]; /* temporary storage for code lengths */ - unsigned short work[288]; /* work area for code table building */ - code codes[ENOUGH]; /* space for code tables */ -}; diff --git a/source/visualization/HepRep/include/zlib/inftrees.h b/source/visualization/HepRep/include/zlib/inftrees.h deleted file mode 100644 index 82d365a7e9..0000000000 --- a/source/visualization/HepRep/include/zlib/inftrees.h +++ /dev/null @@ -1,55 +0,0 @@ -/* inftrees.h -- header to use inftrees.c - * Copyright (C) 1995-2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* Structure for decoding tables. Each entry provides either the - information needed to do the operation requested by the code that - indexed that table entry, or it provides a pointer to another - table that indexes more bits of the code. op indicates whether - the entry is a pointer to another table, a literal, a length or - distance, an end-of-block, or an invalid code. For a table - pointer, the low four bits of op is the number of index bits of - that table. For a length or distance, the low four bits of op - is the number of extra bits to get after the code. bits is - the number of bits in this code or part of the code to drop off - of the bit buffer. val is the actual byte to output in the case - of a literal, the base length or distance, or the offset from - the current table to the next table. Each entry is four bytes. */ -typedef struct { - unsigned char op; /* operation, extra bits, table bits */ - unsigned char bits; /* bits in this part of the code */ - unsigned short val; /* offset in table or code value */ -} code; - -/* op values as set by inflate_table(): - 00000000 - literal - 0000tttt - table link, tttt != 0 is the number of table index bits - 0001eeee - length or distance, eeee is the number of extra bits - 01100000 - end of block - 01000000 - invalid code - */ - -/* Maximum size of dynamic tree. The maximum found in a long but non- - exhaustive search was 1004 code structures (850 for length/literals - and 154 for distances, the latter actually the result of an - exhaustive search). The true maximum is not known, but the value - below is more than safe. */ -#define ENOUGH 1440 -#define MAXD 154 - -/* Type of code to build for inftable() */ -typedef enum { - CODES, - LENS, - DISTS -} codetype; - -extern int inflate_table OF((codetype type, unsigned short FAR *lens, - unsigned codes, code FAR * FAR *table, - unsigned FAR *bits, unsigned short FAR *work)); diff --git a/source/visualization/HepRep/src/BHepRepWriter.cc b/source/visualization/HepRep/src/BHepRepWriter.cc new file mode 100755 index 0000000000..c9165f2813 --- /dev/null +++ b/source/visualization/HepRep/src/BHepRepWriter.cc @@ -0,0 +1,545 @@ +// Copyright FreeHEP, 2005. + +#include "cheprep/config.h" + +#include +#include + +#include "cheprep/BHepRepWriter.h" + +/** + * @author Mark Donszelmann + * @version $Id: BHepRepWriter.cc,v 1.9 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + + // class variables + std::map BHepRepWriter::tags; + std::map BHepRepWriter::attributes; + std::map BHepRepWriter::values; + + BHepRepWriter::BHepRepWriter( std::ostream& os) + : AbstractXMLWriter("heprep"), + os(os), + singlePrecision(true) { + + // resolve endiannes + union { long l; char c[sizeof (long)]; } u; + u.l = 1; + isBigEndian = (u.c[sizeof (long) - 1] == 1); + +// std::cout << "Host is " << (isBigEndian ? "Big-Endian" : "Little-Endian") << "." << std::endl; + + if (tags.size() <= 0) { + // tags + tags["heprep"] = 0x05; + tags["attdef"] = 0x06; + tags["attvalue"] = 0x07; + tags["instance"] = 0x08; + tags["treeid"] = 0x09; + tags["action"] = 0x0a; + tags["instancetree"] = 0x0b; + tags["type"] = 0x0c; + tags["typetree"] = 0x0d; + tags["layer"] = 0x0e; + tags["point"] = 0x0f; + } + + if (attributes.size() <= 0) { + // attribute names + attributes["version"] = 0x05; + attributes["xmlns"] = 0x06; + attributes["xmlns:xsi"] = 0x07; + attributes["xsi:schemaLocation"] = 0x08; + + attributes["valueString"] = 0x10; + attributes["valueColor"] = 0x11; + attributes["valueLong"] = 0x12; + attributes["valueInt"] = 0x13; + attributes["valueBoolean"] = 0x14; + attributes["valueDouble"] = 0x15; + + attributes["name"] = 0x20; + attributes["type"] = 0x22; + attributes["showlabel"] = 0x23; + attributes["desc"] = 0x24; + attributes["category"] = 0x25; + attributes["extra"] = 0x26; + attributes["x"] = 0x27; + attributes["y"] = 0x28; + attributes["z"] = 0x29; + attributes["qualifier"] = 0x2a; + attributes["expression"] = 0x2b; + attributes["typetreename"] = 0x2c; + attributes["typetreeversion"] = 0x2d; + attributes["order"] = 0x2e; + + // for PI + attributes["eof"] = 0x7f; + } + + if (values.size() <= 0) { + // attribute values + values["drawas"] = 0x85; + values["drawasoptions"] = 0x86; + values["visibility"] = 0x87; + + values["label"] = 0x88; + + values["fontname"] = 0x89; + values["fontstyle"] = 0x8a; + values["fontsize"] = 0x8b; + values["fontcolor"] = 0x8c; + values["fonthasframe"] = 0x8d; + values["fontframecolor"] = 0x8e; + values["fontframewidth"] = 0x8f; + values["fonthasbanner"] = 0x90; + values["fontbannercolor"] = 0x91; + + values["color"] = 0x92; + values["framecolor"] = 0x93; + values["layer"] = 0x94; + values["markname"] = 0x95; + values["marksize"] = 0x96; + values["marksizemultiplier"] = 0x97; + values["marktype"] = 0x98; + values["hasframe"] = 0x99; + values["framecolor"] = 0x9a; + values["framewidth"] = 0x9b; + + values["linestyle"] = 0x9c; + values["linewidth"] = 0x9d; + values["linewidthmultiplier"] = 0x9e; + values["linehasarrow"] = 0x9f; + + values["fillcolor"] = 0xa0; + values["filltype"] = 0xa1; + values["fill"] = 0xa2; + + values["radius"] = 0xa3; + values["phi"] = 0xa4; + values["theta"] = 0xa5; + values["omega"] = 0xa6; + values["radius1"] = 0xa7; + values["radius2"] = 0xa8; + values["radius3"] = 0xa9; + values["curvature"] = 0xaa; + values["flylength"] = 0xab; + values["faces"] = 0xac; + + values["text"] = 0xad; + values["hpos"] = 0xae; + values["vpos"] = 0xaf; + values["halign"] = 0xb0; + values["valign"] = 0xb1; + + values["ispickable"] = 0xb2; + values["showparentvalues"] = 0xb3; + values["pickparent"] = 0xb4; + + // attvalue values + values["false"] = 0xd0; + values["true"] = 0xd1; + + values["point"] = 0xd2; + values["line"] = 0xd3; + values["helix"] = 0xd4; + values["polygon"] = 0xd5; + values["circle"] = 0xd6; + values["curve"] = 0xd7; + values["ellipse"] = 0xd8; + values["ellipsoid"] = 0xd9; + values["prism"] = 0xda; + values["cylinder"] = 0xdb; + values["ellipseprism"] = 0xdc; + values["text"] = 0xdd; + + values["nonzero"] = 0xde; + values["evenodd"] = 0xdf; + + values["circle"] = 0xe0; + values["box"] = 0xe1; + values["uptriangle"] = 0xe2; + values["dntriangle"] = 0xe3; + values["diamond"] = 0xe4; + values["cross"] = 0xe5; + values["star"] = 0xe6; + values["plus"] = 0xe7; + values["hline"] = 0xe8; + values["vline"] = 0xe9; + + values["solid"] = 0xea; + values["dotted"] = 0xeb; + values["dashed"] = 0xec; + values["dotdash"] = 0xed; + + values["none"] = 0xee; + values["start"] = 0xef; + values["end"] = 0xf0; + values["both"] = 0xf1; + + values["serif"] = 0xf2; + values["sansserif"] = 0xf3; + values["monotype"] = 0xf4; + values["symbol"] = 0xf5; + + values["plain"] = 0xf6; + values["bold"] = 0xf7; + values["italic"] = 0xf8; + + values["top"] = 0xf9; + values["baseline"] = 0xfa; + values["center"] = 0xfb; + values["bottom"] = 0xfc; + + values["left"] = 0xfd; + values["right"] = 0xfe; + + values["default"] = 0xff; + } + } + + BHepRepWriter::~BHepRepWriter() { + } + + void BHepRepWriter::close() { + } + + void BHepRepWriter::openDoc(std::string version, std::string /* encoding */, bool /* standalone */) { + stringValues.clear(); + + // header + writeByte(WBXML_VERSION); + writeMultiByteInt(UNKNOWN_PID); + writeMultiByteInt(UTF8); + + version = "BinaryHepRep/1.0"; + + // string table + writeMultiByteInt(version.length()+1); + + // BHepRep Header (as part of the string table) + writeString(version); + + } + + void BHepRepWriter::closeDoc(bool /* force */) { + writeByte(PI); + writeByte(attributes["eof"]); + writeByte(END); + } + + void BHepRepWriter::openTag(std::string name) { + writeTag(name, true); + } + + void BHepRepWriter::closeTag() { + writePoints(); + writeByte(END); + } + + void BHepRepWriter::printTag(std::string name) { + writeTag(name); + } + + void BHepRepWriter::writeTag(std::string name, bool hasContent) { + std::string s = name; + std::transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + + // find tag + if (tags.count(s) <= 0) { + std::cerr << "Cannot find tag '" << s << "' in tags table." << std::endl; + return; + } + + // write tag + bool isPoint = (s == "point"); + bool hasAttributes = (stringAttributes.size() > 0) || (doubleAttributes.size() > (unsigned int)(isPoint ? 3 : 0)); + + if (!hasAttributes && isPoint) { + // store the point for the future + points.push_back(doubleAttributes["x"]); + points.push_back(doubleAttributes["y"]); + points.push_back(doubleAttributes["z"]); + return; + } + + writePoints(); + writeByte(tags[s] | ((hasContent || isPoint) ? CONTENT : 0x00) | (hasAttributes ? ATTRIBUTE : 0x00)); + + // write attributes + if (hasAttributes) { + // write string attributes + for (std::map::iterator i = stringAttributes.begin(); i != stringAttributes.end(); i++) { + std::string name = i->first; + std::string value = i->second; + + // write ATTRSTART + writeByte(attributes[name]); + std::string v = value; + std::transform(v.begin(), v.end(), v.begin(), (int(*)(int)) tolower); + if (values.count(v) > 0) { + // write ATTRVALUE + writeByte(values[v]); + } else { + if (stringValues.count(value) <= 0) { + // define this new string + writeStringDefine(value); + int index = stringValues.size(); + stringValues[value] = index; + } else { + // write string ref + writeByte(STR_R); + writeMultiByteInt(stringValues[value]); + } + } + } + stringAttributes.clear(); + + // write color attributes + for (std::map >::iterator i = colorAttributes.begin(); i != colorAttributes.end(); i++) { + std::string name = i->first; + std::vector value = i->second; + // write ATTRSTART + writeByte(attributes[name]); + // write OPAQUE + writeByte(OPAQUE); + writeMultiByteInt(value.size()); + writeByte((int)(value[0] * 0xff) & 0xff); + writeByte((int)(value[1] * 0xff) & 0xff); + writeByte((int)(value[2] * 0xff) & 0xff); + if (value.size() > 3) writeByte((int)(value[3] * 0xff) & 0xff); + } + colorAttributes.clear(); + + // write long attributes + for (std::map::iterator i = longAttributes.begin(); i != longAttributes.end(); i++) { + std::string name = i->first; + int64 value = i->second; + // write ATTRSTART + writeByte(attributes[name]); + // write OPAQUE + writeByte(OPAQUE); + writeMultiByteInt(8); + writeLong(value); + } + longAttributes.clear(); + + // write int attributes + for (std::map::iterator i = intAttributes.begin(); i != intAttributes.end(); i++) { + std::string name = i->first; + int value = i->second; + // write ATTRSTART + writeByte(attributes[name]); + // write OPAQUE + writeByte(OPAQUE); + writeMultiByteInt(4); + writeInt(value); + } + intAttributes.clear(); + + // write boolean attributes + for (std::map::iterator i = booleanAttributes.begin(); i != booleanAttributes.end(); i++) { + std::string name = i->first; + bool value = i->second; + // write ATTRSTART + writeByte(attributes[name]); + // write ATTRVALUE + writeByte(value ? values["true"] : values["false"]); + } + booleanAttributes.clear(); + + // write double attributes + for (std::map::iterator i = doubleAttributes.begin(); i != doubleAttributes.end(); i++) { + std::string name = i->first; + double value = i->second; + if (!isPoint && (name != "x") && (name != "y") && (name != "z")) { + // write ATTRSTART + writeByte(attributes[name]); + // write OPAQUE + writeByte(OPAQUE); + writeMultiByteInt(singlePrecision ? 4 : 8); + writeReal(value); + } + } + doubleAttributes.clear(); + + // end of attributes + writeByte(END); + } + + if (s == "point") { + writeByte(OPAQUE); + writeMultiByteInt(singlePrecision ? 12 : 24); + writeReal(doubleAttributes["x"]); + writeReal(doubleAttributes["y"]); + writeReal(doubleAttributes["z"]); + } + + if (isPoint && !hasContent) { + // end this tag + writeByte(END); + } + } + + void BHepRepWriter::writePoints() { + if (points.size() <= 0) return; + + writeByte(tags["point"] | CONTENT); + writeByte(OPAQUE); + writeMultiByteInt(points.size()*(singlePrecision ? 4 : 8)); + for (std::vector::iterator i = points.begin(); i != points.end(); ) { + writeReal(*i++); + writeReal(*i++); + writeReal(*i++); + } + writeByte(END); + + points.clear(); + } + + void BHepRepWriter::setAttribute(std::string name, char* value) { + setAttribute(name, (std::string)value); + } + + void BHepRepWriter::setAttribute(std::string name, std::string value) { + if (name == "value") name = name.append("String"); + + // make sure the attribute name is defined + if (attributes.count(name) <= 0) { + std::cerr << "Cannot find attribute name '" << name << "' in attributes table, skipped." << std::endl; + return; + } + + stringAttributes[name] = value; + } + + void BHepRepWriter::setAttribute(std::string name, std::vector value) { + if (name == "value") name = name.append("Color"); + + // make sure the attribute name is defined + if (attributes.count(name) <= 0) { + std::cerr << "Cannot find attribute name '" << name << "' in attributes table, skipped." << std::endl; + return; + } + + colorAttributes[name] = value; + } + + void BHepRepWriter::setAttribute(std::string name, int64 value) { + if (name == "value") name = name.append("Long"); + + // make sure the attribute name is defined + if (attributes.count(name) <= 0) { + std::cerr << "Cannot find attribute name '" << name << "' in attributes table, skipped." << std::endl; + return; + } + + longAttributes[name] = value; + } + + void BHepRepWriter::setAttribute(std::string name, int value) { + if (name == "value") name = name.append("Int"); + + // make sure the attribute name is defined + if (attributes.count(name) <= 0) { + std::cerr << "Cannot find attribute name '" << name << "' in attributes table, skipped." << std::endl; + return; + } + + intAttributes[name] = value; + } + + void BHepRepWriter::setAttribute(std::string name, bool value) { + if (name == "value") name = name.append("Boolean"); + + // make sure the attribute name is defined + if (attributes.count(name) <= 0) { + std::cerr << "Cannot find attribute name '" << name << "' in attributes table, skipped." << std::endl; + return; + } + + booleanAttributes[name] = value; + } + + void BHepRepWriter::setAttribute(std::string name, double value) { + if (name == "value") name = name.append("Double"); + + // make sure the attribute name is defined + if (attributes.count(name) <= 0) { + std::cerr << "Cannot find attribute name '" << name << "' in attributes table, skipped." << std::endl; + return; + } + + doubleAttributes[name] = value; + } + + void BHepRepWriter::writeStringDefine(std::string s) { + writeByte(STR_D); + writeString(s); + } + + void BHepRepWriter::writeMultiByteInt(unsigned int ui) { + unsigned char buf[5]; + int idx = 0; + + do { + buf[idx++] = (unsigned char) (ui & 0x7f); + ui = ui >> 7; + } + while (ui != 0); + + while (idx > 1) { + writeByte(buf[--idx] | 0x80); + } + writeByte(buf[0]); + } + + void BHepRepWriter::writeReal(double d) { + if (singlePrecision) { + union { + int i; + float f; + } u; + u.f = (float)d; + writeInt(u.i); + } else { + union { + int64 i; + double d; + } u; + u.d = d; + + writeLong(u.i); + } + } + + void BHepRepWriter::writeLong(int64 i) { + // write network-order + os.put((i >> 56) & 0xff); + os.put((i >> 48) & 0xff); + os.put((i >> 40) & 0xff); + os.put((i >> 32) & 0xff); + os.put((i >> 24) & 0xff); + os.put((i >> 16) & 0xff); + os.put((i >> 8) & 0xff); + os.put((i ) & 0xff); + } + + void BHepRepWriter::writeInt(int i) { + // write network-order + os.put((i >> 24) & 0xff); + os.put((i >> 16) & 0xff); + os.put((i >> 8) & 0xff); + os.put((i ) & 0xff); + } + + void BHepRepWriter::writeByte(unsigned char b) { + os.put((char)b); + } + + void BHepRepWriter::writeString(std::string s) { + os << s; + os.put(0); + } +} // cheprep diff --git a/source/visualization/HepRep/src/DefaultHepRep.cc b/source/visualization/HepRep/src/DefaultHepRep.cc index 411dc6ac9e..e29964aeec 100644 --- a/source/visualization/HepRep/src/DefaultHepRep.cc +++ b/source/visualization/HepRep/src/DefaultHepRep.cc @@ -1,94 +1,103 @@ - -#include "DefaultHepRep.h" - -using namespace std; -using namespace HEPREP; - -DefaultHepRep::DefaultHepRep() { -} - -DefaultHepRep::~DefaultHepRep() { - for (vector::iterator i1 = typeTrees.begin(); i1 != typeTrees.end(); i1++) { - delete (*i1); - } - for (vector::iterator i2 = instanceTrees.begin(); i2 != instanceTrees.end(); i2++) { - delete (*i2); - } -} - -HepRep* DefaultHepRep::copy(HepRepSelectFilter*) { - cerr << "DefaultHepRep::copy(HepRepSelectFilter*) not implemented." << endl; - return NULL; -} - -vector DefaultHepRep::getLayerOrder() { - return layers; -} - -void DefaultHepRep::addLayer(string layer) { - layers.push_back(layer); -} - -void DefaultHepRep::addTypeTree(HepRepTypeTree* typeTree) { - // FIXME check if already exist - typeTrees.push_back(typeTree); -} - -void DefaultHepRep::removeTypeTree(HepRepTypeTree*) { - cerr << "DefaultHepRep::removeTypeTree(HepRepTypeTree*) not implemented." << endl; -} - -HepRepTypeTree* DefaultHepRep::getTypeTree(string, string) { - cerr << "DefaultHepRep::getTypeTree(string, string) not implemented." << endl; - return NULL; -} - -vector DefaultHepRep::getTypeTreeList() { - return typeTrees; -} - -void DefaultHepRep::addInstanceTree(HepRepInstanceTree* instanceTree) { - // FIXME check if already exist - instanceTrees.push_back(instanceTree); -} - -void DefaultHepRep::overlayInstanceTree(HepRepInstanceTree *) { - cerr << "DefaultHepRep::overlayInstanceTree(HepRepInstanceTree * instanceTree) not implemented." << endl; -} - -void DefaultHepRep::removeInstanceTree(HepRepInstanceTree*) { - cerr << "DefaultHepRep::removeInstanceTree(HepRepInstanceTree*) not implemented." << endl; -} - -HepRepInstanceTree* DefaultHepRep::getInstanceTreeTop(string, string) { - cerr << "DefaultHepRep::getInstanceTreeTop(string, string) not implemented." << endl; - return NULL; -} - -HepRepInstanceTree* DefaultHepRep::getInstances(string, string, - vector) { - cerr << "DefaultHepRep::getInstances(string, string, vector) not implemented." << endl; - return NULL; -} - -HepRepInstanceTree* DefaultHepRep::getInstancesAfterAction( - string, - string, - vector, - vector, - bool, - bool, - bool, - vector) { - cerr << "DefaultHepRep::getInstancesAfterAction(string, string, vector, vector, bool, bool, bool, vector) not implemented." << endl; - return NULL; -} - -string DefaultHepRep::checkForException() { - return NULL; -} - -vector DefaultHepRep::getInstanceTreeList() { - return instanceTrees; -} - +// Copyright FreeHEP, 2005. + +#include "cheprep/DefaultHepRep.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRep.cc,v 1.9 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRep::DefaultHepRep() { +} + +DefaultHepRep::~DefaultHepRep() { + for (vector::iterator i1 = typeTrees.begin(); i1 != typeTrees.end(); i1++) { + delete (*i1); + } + for (vector::iterator i2 = instanceTrees.begin(); i2 != instanceTrees.end(); i2++) { + delete (*i2); + } +} + +HepRep* DefaultHepRep::copy(HepRepSelectFilter*) { + cerr << "DefaultHepRep::copy(HepRepSelectFilter*) not implemented." << endl; + return NULL; +} + +vector DefaultHepRep::getLayerOrder() { + return layers; +} + +void DefaultHepRep::addLayer(string layer) { + layers.push_back(layer); +} + +void DefaultHepRep::addTypeTree(HepRepTypeTree* typeTree) { + // FIXME check if already exist + typeTrees.push_back(typeTree); +} + +void DefaultHepRep::removeTypeTree(HepRepTypeTree*) { + cerr << "DefaultHepRep::removeTypeTree(HepRepTypeTree*) not implemented." << endl; +} + +HepRepTypeTree* DefaultHepRep::getTypeTree(string, string) { + cerr << "DefaultHepRep::getTypeTree(string, string) not implemented." << endl; + return NULL; +} + +vector DefaultHepRep::getTypeTreeList() { + return typeTrees; +} + +void DefaultHepRep::addInstanceTree(HepRepInstanceTree* instanceTree) { + // FIXME check if already exist + instanceTrees.push_back(instanceTree); +} + +void DefaultHepRep::overlayInstanceTree(HepRepInstanceTree *) { + cerr << "DefaultHepRep::overlayInstanceTree(HepRepInstanceTree * instanceTree) not implemented." << endl; +} + +void DefaultHepRep::removeInstanceTree(HepRepInstanceTree*) { + cerr << "DefaultHepRep::removeInstanceTree(HepRepInstanceTree*) not implemented." << endl; +} + +HepRepInstanceTree* DefaultHepRep::getInstanceTreeTop(string, string) { + cerr << "DefaultHepRep::getInstanceTreeTop(string, string) not implemented." << endl; + return NULL; +} + +HepRepInstanceTree* DefaultHepRep::getInstances(string, string, + vector) { + cerr << "DefaultHepRep::getInstances(string, string, vector) not implemented." << endl; + return NULL; +} + +HepRepInstanceTree* DefaultHepRep::getInstancesAfterAction( + string, + string, + vector, + vector, + bool, + bool, + bool, + vector) { + cerr << "DefaultHepRep::getInstancesAfterAction(string, string, vector, vector, bool, bool, bool, vector) not implemented." << endl; + return NULL; +} + +string DefaultHepRep::checkForException() { + return NULL; +} + +vector DefaultHepRep::getInstanceTreeList() { + return instanceTrees; +} + +} // cheprep + diff --git a/source/visualization/HepRep/src/DefaultHepRepAction.cc b/source/visualization/HepRep/src/DefaultHepRepAction.cc index eb9294891a..44c8f5cf9b 100644 --- a/source/visualization/HepRep/src/DefaultHepRepAction.cc +++ b/source/visualization/HepRep/src/DefaultHepRepAction.cc @@ -1,27 +1,36 @@ - -#include - -#include "DefaultHepRepAction.h" - -using namespace std; -using namespace HEPREP; - -DefaultHepRepAction::DefaultHepRepAction(string name, string expression) - : name(name), expression(expression) { -} - -DefaultHepRepAction::~DefaultHepRepAction() { -} - -string DefaultHepRepAction::getName() { - return name; -} - -string DefaultHepRepAction::getExpression() { - return expression; -} - -HepRepAction* DefaultHepRepAction::copy() { - return new DefaultHepRepAction(name, expression); -} - +// Copyright FreeHEP, 2005. + +#include + +#include "cheprep/DefaultHepRepAction.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepAction.cc,v 1.8 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRepAction::DefaultHepRepAction(string name, string expression) + : name(name), expression(expression) { +} + +DefaultHepRepAction::~DefaultHepRepAction() { +} + +string DefaultHepRepAction::getName() { + return name; +} + +string DefaultHepRepAction::getExpression() { + return expression; +} + +HepRepAction* DefaultHepRepAction::copy() { + return new DefaultHepRepAction(name, expression); +} + +} // cheprep + diff --git a/source/visualization/HepRep/src/DefaultHepRepAttDef.cc b/source/visualization/HepRep/src/DefaultHepRepAttDef.cc index 451ad6511d..a9b62a9f2e 100644 --- a/source/visualization/HepRep/src/DefaultHepRepAttDef.cc +++ b/source/visualization/HepRep/src/DefaultHepRepAttDef.cc @@ -1,44 +1,52 @@ - -#include -#include -#include -#include - -#include "DefaultHepRepAttDef.h" - -using namespace std; -using namespace HEPREP; - -DefaultHepRepAttDef::DefaultHepRepAttDef(string name, string desc, string category, string extra) - : name(name), desc(desc), category(category), extra(extra) { -} - -DefaultHepRepAttDef::~DefaultHepRepAttDef() { -} - -HepRepAttDef* DefaultHepRepAttDef::copy() { - return new DefaultHepRepAttDef(name, desc, category, extra); -} - -string DefaultHepRepAttDef::getName() { - return name; -} - -string DefaultHepRepAttDef::getLowerCaseName() { - string s = name; - transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); - return s; -} - -string DefaultHepRepAttDef::getDescription() { - return desc; -} - -string DefaultHepRepAttDef::getCategory() { - return category; -} - -string DefaultHepRepAttDef::getExtra() { - return extra; -} - +// Copyright FreeHEP, 2005. + +#include +#include +#include +#include + +#include "cheprep/DefaultHepRepAttDef.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepAttDef.cc,v 1.8 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRepAttDef::DefaultHepRepAttDef(string name, string desc, string category, string extra) + : name(name), desc(desc), category(category), extra(extra) { +} + +DefaultHepRepAttDef::~DefaultHepRepAttDef() { +} + +HepRepAttDef* DefaultHepRepAttDef::copy() { + return new DefaultHepRepAttDef(name, desc, category, extra); +} + +string DefaultHepRepAttDef::getName() { + return name; +} + +string DefaultHepRepAttDef::getLowerCaseName() { + string s = name; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + return s; +} + +string DefaultHepRepAttDef::getDescription() { + return desc; +} + +string DefaultHepRepAttDef::getCategory() { + return category; +} + +string DefaultHepRepAttDef::getExtra() { + return extra; +} + +} // cheprep diff --git a/source/visualization/HepRep/src/DefaultHepRepAttValue.cc b/source/visualization/HepRep/src/DefaultHepRepAttValue.cc index d0bdd66bdc..7af92d1b1c 100644 --- a/source/visualization/HepRep/src/DefaultHepRepAttValue.cc +++ b/source/visualization/HepRep/src/DefaultHepRepAttValue.cc @@ -1,189 +1,232 @@ - -#include -#include -#include -#include -#include -#include - -#include "HEPREP/HepRepConstants.h" - -#include "DefaultHepRepAttValue.h" - -using namespace std; -using namespace HEPREP; - -DefaultHepRepAttValue::DefaultHepRepAttValue(string name, string value, int showLabel) - : name(name), type(HepRepConstants::TYPE_STRING), stringValue(value), showLabelValue(showLabel) { - - init(); -} - -DefaultHepRepAttValue::DefaultHepRepAttValue(string name, long value, int showLabel) - : name(name), type(HepRepConstants::TYPE_LONG), longValue(value), showLabelValue(showLabel) { - - init(); -} - -DefaultHepRepAttValue::DefaultHepRepAttValue(string name, int value, int showLabel) - : name(name), type(HepRepConstants::TYPE_INT), longValue(value), showLabelValue(showLabel) { - - init(); -} - -DefaultHepRepAttValue::DefaultHepRepAttValue(string name, double value, int showLabel) - : name(name), type(HepRepConstants::TYPE_DOUBLE), doubleValue(value), showLabelValue(showLabel) { - - init(); -} - -DefaultHepRepAttValue::DefaultHepRepAttValue(string name, bool value, int showLabel) - : name(name), type(HepRepConstants::TYPE_BOOLEAN), booleanValue(value), showLabelValue(showLabel) { - - init(); -} - -DefaultHepRepAttValue::DefaultHepRepAttValue(string name, vector value, int showLabel) - : name(name), type(HepRepConstants::TYPE_COLOR), colorValue(value), showLabelValue(showLabel) { - - init(); -} - -DefaultHepRepAttValue::~DefaultHepRepAttValue() { -} - -void DefaultHepRepAttValue::init() { - labelStrings[0] = "NAME"; - labelStrings[1] = "DESC"; - labelStrings[2] = "VALUE"; - labelStrings[3] = "EXTRA"; -} - -HepRepAttValue* DefaultHepRepAttValue::copy() { - switch(type) { - case HepRepConstants::TYPE_COLOR: new DefaultHepRepAttValue(name, colorValue, showLabelValue); - case HepRepConstants::TYPE_STRING: new DefaultHepRepAttValue(name, stringValue, showLabelValue); - case HepRepConstants::TYPE_LONG: new DefaultHepRepAttValue(name, longValue, showLabelValue); - case HepRepConstants::TYPE_INT: new DefaultHepRepAttValue(name, (int)longValue, showLabelValue); - case HepRepConstants::TYPE_DOUBLE: new DefaultHepRepAttValue(name, doubleValue, showLabelValue); - case HepRepConstants::TYPE_BOOLEAN: new DefaultHepRepAttValue(name, booleanValue, showLabelValue); - default: return new DefaultHepRepAttValue(name, "Unknown type stored in HepRepAttDef", showLabelValue); - } -} - -string DefaultHepRepAttValue::getName() { - return name; -} - -string DefaultHepRepAttValue::getLowerCaseName() { - string s = name; - transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); - return s; -} - -int DefaultHepRepAttValue::getType() { - return type; -} - -string DefaultHepRepAttValue::getTypeName() { - switch(type) { - case HepRepConstants::TYPE_COLOR: return("Color"); - case HepRepConstants::TYPE_STRING: return("String"); - case HepRepConstants::TYPE_LONG: return("long"); - case HepRepConstants::TYPE_INT: return("int"); - case HepRepConstants::TYPE_DOUBLE: return("double"); - case HepRepConstants::TYPE_BOOLEAN: return("boolean"); - default: return "Unknown type stored in HepRepAttDef"; - } -} - -int DefaultHepRepAttValue::showLabel() { - return showLabelValue; -} - -string DefaultHepRepAttValue::getString() { - if (type != HepRepConstants::TYPE_STRING) cerr << "Trying to access AttValue '" << getName() << "' as 'string'" << endl; - return stringValue; -} - -string DefaultHepRepAttValue::getLowerCaseString() { - if (type != HepRepConstants::TYPE_STRING) cerr << "Trying to access AttValue '" << getName() << "' as 'string'" << endl; - string s = stringValue; - transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); - return s; -} - -long DefaultHepRepAttValue::getLong() { - if (type != HepRepConstants::TYPE_LONG) cerr << "Trying to access AttValue '" << getName() << "' as 'long'" << endl; - return longValue; -} - -int DefaultHepRepAttValue::getInteger() { - if (type != HepRepConstants::TYPE_INT) cerr << "Trying to access AttValue '" << getName() << "' as 'int'" << endl; - return (int)longValue; -} - -double DefaultHepRepAttValue::getDouble() { - if (type != HepRepConstants::TYPE_DOUBLE) cerr << "Trying to access AttValue '" << getName() << "' as 'double'" << endl; - return doubleValue; -} - -bool DefaultHepRepAttValue::getBoolean() { - if (type != HepRepConstants::TYPE_BOOLEAN) cerr << "Trying to access AttValue '" << getName() << "' as 'boolean'" << endl; - return booleanValue; -} - -vector DefaultHepRepAttValue::getColor() { - if (type != HepRepConstants::TYPE_COLOR) cerr << "Trying to access AttValue '" << getName() << "' as 'color'" << endl; - return colorValue; -} - - -string DefaultHepRepAttValue::getAsString() { - char buffer[40]; - switch(type) { - case HepRepConstants::TYPE_COLOR: sprintf(buffer, "%4.2f, %4.2f, %4.2f, %4.2f", - colorValue[0], - colorValue[1], - colorValue[2], - (colorValue.size() > 3) ? colorValue[3] : 1.0); - return buffer; - case HepRepConstants::TYPE_STRING: return getString(); - case HepRepConstants::TYPE_LONG: sprintf(buffer, "%ld", getLong()); - return buffer; - case HepRepConstants::TYPE_INT: sprintf(buffer, "%d", getInteger()); - return buffer; - case HepRepConstants::TYPE_DOUBLE: sprintf(buffer, "%g", getDouble()); - return buffer; - case HepRepConstants::TYPE_BOOLEAN: return (getBoolean()) ? "true" : "false"; - default: return "Unknown typecode"; - } -} - - - -string DefaultHepRepAttValue::toShowLabel() { - string label = ""; - bool first = true; - if (showLabel() == HepRepConstants::SHOW_NONE) { - label = "NONE"; - } else { - for (int i=0; i<16; i++) { - if (((showLabel() >> i) & 0x0001) == 0x0001) { - if (first) { - first = false; - } else { - label.append(", "); - } - if (i < LABELSTRINGS_LEN) { - label.append(labelStrings[i]); - } else { - char hex[20]; - sprintf(hex, "%0x", 1 << i); - label.append(hex); - } - } - } - } - return label; -} +// Copyright FreeHEP, 2005. + +#include "cheprep/config.h" + +#include +#include +#include +#include +#include +#include + +#include "HEPREP/HepRepConstants.h" + +#include "cheprep/DefaultHepRepAttValue.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepAttValue.cc,v 1.10 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +std::string DefaultHepRepAttValue::labelStrings[LABELSTRINGS_LEN]; + +DefaultHepRepAttValue::DefaultHepRepAttValue(string name, string value, int showLabel) + : name(name), type(HepRepConstants::TYPE_STRING), stringValue(value), showLabelValue(showLabel) { + + init(); +} + +DefaultHepRepAttValue::DefaultHepRepAttValue(string name, int64 value, int showLabel) + : name(name), type(HepRepConstants::TYPE_LONG), longValue(value), showLabelValue(showLabel) { + + init(); +} + +DefaultHepRepAttValue::DefaultHepRepAttValue(string name, int value, int showLabel) + : name(name), type(HepRepConstants::TYPE_INT), longValue(value), showLabelValue(showLabel) { + + init(); +} + +DefaultHepRepAttValue::DefaultHepRepAttValue(string name, double value, int showLabel) + : name(name), type(HepRepConstants::TYPE_DOUBLE), doubleValue(value), showLabelValue(showLabel) { + + init(); +} + +DefaultHepRepAttValue::DefaultHepRepAttValue(string name, bool value, int showLabel) + : name(name), type(HepRepConstants::TYPE_BOOLEAN), booleanValue(value), showLabelValue(showLabel) { + + init(); +} + +DefaultHepRepAttValue::DefaultHepRepAttValue(string name, vector value, int showLabel) + : name(name), type(HepRepConstants::TYPE_COLOR), colorValue(value), showLabelValue(showLabel) { + + init(); +} + +DefaultHepRepAttValue::~DefaultHepRepAttValue() { +} + +void DefaultHepRepAttValue::init() { + labelStrings[0] = "NAME"; + labelStrings[1] = "DESC"; + labelStrings[2] = "VALUE"; + labelStrings[3] = "EXTRA"; +} + +HepRepAttValue* DefaultHepRepAttValue::copy() { + switch(type) { + case HepRepConstants::TYPE_COLOR: new DefaultHepRepAttValue(name, colorValue, showLabelValue); + case HepRepConstants::TYPE_STRING: new DefaultHepRepAttValue(name, stringValue, showLabelValue); + case HepRepConstants::TYPE_LONG: new DefaultHepRepAttValue(name, longValue, showLabelValue); + case HepRepConstants::TYPE_INT: new DefaultHepRepAttValue(name, (int)longValue, showLabelValue); + case HepRepConstants::TYPE_DOUBLE: new DefaultHepRepAttValue(name, doubleValue, showLabelValue); + case HepRepConstants::TYPE_BOOLEAN: new DefaultHepRepAttValue(name, booleanValue, showLabelValue); + default: return new DefaultHepRepAttValue(name, "Unknown type stored in HepRepAttDef", showLabelValue); + } +} + +string DefaultHepRepAttValue::getName() { + return name; +} + +string DefaultHepRepAttValue::getLowerCaseName() { + string s = name; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + return s; +} + +int DefaultHepRepAttValue::getType() { + return type; +} + +string DefaultHepRepAttValue::getTypeName() { + switch(type) { + case HepRepConstants::TYPE_COLOR: return("Color"); + case HepRepConstants::TYPE_STRING: return("String"); + case HepRepConstants::TYPE_LONG: return("long"); + case HepRepConstants::TYPE_INT: return("int"); + case HepRepConstants::TYPE_DOUBLE: return("double"); + case HepRepConstants::TYPE_BOOLEAN: return("boolean"); + default: return "Unknown type stored in HepRepAttDef"; + } +} + +int DefaultHepRepAttValue::showLabel() { + return showLabelValue; +} + +string DefaultHepRepAttValue::getString() { + if (type != HepRepConstants::TYPE_STRING) cerr << "Trying to access AttValue '" << getName() << "' as 'string'" << endl; + return stringValue; +} + +string DefaultHepRepAttValue::getLowerCaseString() { + if (type != HepRepConstants::TYPE_STRING) cerr << "Trying to access AttValue '" << getName() << "' as 'string'" << endl; + string s = stringValue; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + return s; +} + +int64 DefaultHepRepAttValue::getLong() { + if (type != HepRepConstants::TYPE_LONG) cerr << "Trying to access AttValue '" << getName() << "' as 'long'" << endl; + return longValue; +} + +int DefaultHepRepAttValue::getInteger() { + if (type != HepRepConstants::TYPE_INT) cerr << "Trying to access AttValue '" << getName() << "' as 'int'" << endl; + return (int64)longValue; +} + +double DefaultHepRepAttValue::getDouble() { + if (type != HepRepConstants::TYPE_DOUBLE) cerr << "Trying to access AttValue '" << getName() << "' as 'double'" << endl; + return doubleValue; +} + +bool DefaultHepRepAttValue::getBoolean() { + if (type != HepRepConstants::TYPE_BOOLEAN) cerr << "Trying to access AttValue '" << getName() << "' as 'boolean'" << endl; + return booleanValue; +} + +vector DefaultHepRepAttValue::getColor() { + if (type != HepRepConstants::TYPE_COLOR) cerr << "Trying to access AttValue '" << getName() << "' as 'color'" << endl; + return colorValue; +} + + +string DefaultHepRepAttValue::getAsString() { + switch(type) { + case HepRepConstants::TYPE_COLOR: return getAsString(getColor()); + case HepRepConstants::TYPE_STRING: return getString(); + case HepRepConstants::TYPE_LONG: return getAsString(getLong()); + case HepRepConstants::TYPE_INT: return getAsString(getInteger()); + case HepRepConstants::TYPE_DOUBLE: return getAsString(getDouble()); + case HepRepConstants::TYPE_BOOLEAN: return getAsString(getBoolean()); + default: return "Unknown typecode"; + } +} + +string DefaultHepRepAttValue::getAsString(vector c) { + char buffer[40]; + sprintf(buffer, "%4.2f, %4.2f, %4.2f, %4.2f", + c[0], + c[1], + c[2], + (c.size() > 3) ? c[3] : 1.0); + return buffer; +} + +string DefaultHepRepAttValue::getAsString(int i) { + char buffer[40]; + sprintf(buffer, "%d", i); + return buffer; +} + +string DefaultHepRepAttValue::getAsString(int64 i) { + char buffer[40]; + sprintf(buffer, CHEPREP_INT64_FORMAT, i); + return buffer; +} + +// NOTE: keep at %g rather than %lg for backward compatibility +string DefaultHepRepAttValue::getAsString(double d) { + char buffer[40]; + sprintf(buffer, "%g", d); + return buffer; +} + +string DefaultHepRepAttValue::getAsString(bool b) { + return b ? "true" : "false"; +} + + + + +string DefaultHepRepAttValue::toShowLabel() { + return toShowLabel(showLabel()); +} + + +string DefaultHepRepAttValue::toShowLabel(int showLabel) { + string label = ""; + bool first = true; + if (showLabel == HepRepConstants::SHOW_NONE) { + label = "NONE"; + } else { + for (int i=0; i<16; i++) { + if (((showLabel >> i) & 0x0001) == 0x0001) { + if (first) { + first = false; + } else { + label.append(", "); + } + if (i < LABELSTRINGS_LEN) { + label.append(labelStrings[i]); + } else { + char hex[20]; + sprintf(hex, "%0x", 1 << i); + label.append(hex); + } + } + } + } + return label; +} + +} // cheprep diff --git a/source/visualization/HepRep/src/DefaultHepRepAttribute.cc b/source/visualization/HepRep/src/DefaultHepRepAttribute.cc index c8432d75ed..58109fce72 100644 --- a/source/visualization/HepRep/src/DefaultHepRepAttribute.cc +++ b/source/visualization/HepRep/src/DefaultHepRepAttribute.cc @@ -1,81 +1,96 @@ - -#include "DefaultHepRepAttribute.h" -#include "DefaultHepRepAttValue.h" - -#include -#include - -using namespace std; -using namespace HEPREP; - - -DefaultHepRepAttribute::DefaultHepRepAttribute() { -} - -DefaultHepRepAttribute::~DefaultHepRepAttribute() { - for (map::iterator i = attValues.begin(); i != attValues.end(); i++) { - delete (*i).second; - } -} - -set DefaultHepRepAttribute::getAttValuesFromNode() { - set attSet; - for (map::iterator i = attValues.begin(); i != attValues.end(); i++) { - if ((*i).first != "layer") attSet.insert((*i).second); - } - return attSet; -} - -void DefaultHepRepAttribute::addAttValue(HepRepAttValue* hepRepAttValue) { - string lowerCaseName = hepRepAttValue->getLowerCaseName(); - if (attValues[lowerCaseName] != NULL) delete attValues[lowerCaseName]; - attValues[lowerCaseName] = hepRepAttValue; -} - -void DefaultHepRepAttribute::addAttValue(string key, char *value, int showLabel) { - addAttValue(key, (std::string)value, showLabel); -} - -void DefaultHepRepAttribute::addAttValue(string key, string value, int showLabel) { - addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); -} - -void DefaultHepRepAttribute::addAttValue(string key, int value, int showLabel) { - addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); -} - -void DefaultHepRepAttribute::addAttValue(string key, double value, int showLabel) { - addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); -} - -void DefaultHepRepAttribute::addAttValue(string key, bool value, int showLabel) { - addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); -} - -void DefaultHepRepAttribute::addAttValue(string key, vector value, int showLabel) { - addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); -} - -void DefaultHepRepAttribute::addAttValue(string key, double red, double green, double blue, double alpha, int showLabel) { - vector color; - color.push_back(red); - color.push_back(green); - color.push_back(blue); - color.push_back(alpha); - addAttValue(new DefaultHepRepAttValue(key, color, showLabel)); -} - -HepRepAttValue* DefaultHepRepAttribute::getAttValueFromNode(string name) { - string s = name; - transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); - return (attValues.count(s) > 0) ? attValues[s] : NULL; -} - -HepRepAttValue* DefaultHepRepAttribute::removeAttValue(string name) { - string s = name; - transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); - HepRepAttValue* attValue = attValues[s]; - attValues.erase(s); - return attValue; -} - +// Copyright FreeHEP, 2005. + +#include "cheprep/config.h" + +#include +#include + +#include "cheprep/DefaultHepRepAttribute.h" +#include "cheprep/DefaultHepRepAttValue.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepAttribute.cc,v 1.8 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + + +DefaultHepRepAttribute::DefaultHepRepAttribute() { +} + +DefaultHepRepAttribute::~DefaultHepRepAttribute() { + for (map::iterator i = attValues.begin(); i != attValues.end(); i++) { + delete (*i).second; + } +} + +set DefaultHepRepAttribute::getAttValuesFromNode() { + set attSet; + for (map::iterator i = attValues.begin(); i != attValues.end(); i++) { + if ((*i).first != "layer") attSet.insert((*i).second); + } + return attSet; +} + +void DefaultHepRepAttribute::addAttValue(HepRepAttValue* hepRepAttValue) { + string lowerCaseName = hepRepAttValue->getLowerCaseName(); + if (attValues[lowerCaseName] != NULL) delete attValues[lowerCaseName]; + attValues[lowerCaseName] = hepRepAttValue; +} + +void DefaultHepRepAttribute::addAttValue(string key, char *value, int showLabel) { + addAttValue(key, (std::string)value, showLabel); +} + +void DefaultHepRepAttribute::addAttValue(string key, string value, int showLabel) { + addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +void DefaultHepRepAttribute::addAttValue(string key, int64 value, int showLabel) { + addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +void DefaultHepRepAttribute::addAttValue(string key, int value, int showLabel) { + addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +void DefaultHepRepAttribute::addAttValue(string key, double value, int showLabel) { + addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +void DefaultHepRepAttribute::addAttValue(string key, bool value, int showLabel) { + addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +void DefaultHepRepAttribute::addAttValue(string key, vector value, int showLabel) { + addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +void DefaultHepRepAttribute::addAttValue(string key, double red, double green, double blue, double alpha, int showLabel) { + vector color; + color.push_back(red); + color.push_back(green); + color.push_back(blue); + color.push_back(alpha); + addAttValue(new DefaultHepRepAttValue(key, color, showLabel)); +} + +HepRepAttValue* DefaultHepRepAttribute::getAttValueFromNode(string name) { + string s = name; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + return (attValues.count(s) > 0) ? attValues[s] : NULL; +} + +HepRepAttValue* DefaultHepRepAttribute::removeAttValue(string name) { + string s = name; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + HepRepAttValue* attValue = attValues[s]; + attValues.erase(s); + return attValue; +} + + +} // cheprep diff --git a/source/visualization/HepRep/src/DefaultHepRepDefinition.cc b/source/visualization/HepRep/src/DefaultHepRepDefinition.cc index d9d2190840..6a3ab0e054 100644 --- a/source/visualization/HepRep/src/DefaultHepRepDefinition.cc +++ b/source/visualization/HepRep/src/DefaultHepRepDefinition.cc @@ -1,45 +1,53 @@ - -#include "DefaultHepRepDefinition.h" -#include "DefaultHepRepAttDef.h" - -#include -#include - -using namespace std; -using namespace HEPREP; - -DefaultHepRepDefinition::DefaultHepRepDefinition() - : DefaultHepRepAttribute() { -} - -DefaultHepRepDefinition::~DefaultHepRepDefinition() { - set list = getAttDefsFromNode(); - for (set::iterator i1 = list.begin(); i1 != list.end(); i1++) { - delete (*i1); - } -} - -set DefaultHepRepDefinition::getAttDefsFromNode() { - set attSet; - for (map::iterator i = attDefs.begin(); i != attDefs.end(); i++) { - attSet.insert((*i).second); - } - return attSet; -} - -void DefaultHepRepDefinition::addAttDef(HepRepAttDef* hepRepAttDef) { - string lowerCaseName = hepRepAttDef->getLowerCaseName(); - if (attDefs[lowerCaseName] != NULL) delete attDefs[lowerCaseName]; - attDefs[lowerCaseName] = hepRepAttDef; -} - -void DefaultHepRepDefinition::addAttDef(string name, string desc, string type, string extra) { - addAttDef(new DefaultHepRepAttDef(name, desc, type, extra)); -} - -HepRepAttDef* DefaultHepRepDefinition::getAttDefFromNode(string name) { - string s = name; - transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); - return (attDefs.count(s) > 0) ? attDefs[s] : NULL; -} - +// Copyright FreeHEP, 2005. + +#include "cheprep/DefaultHepRepDefinition.h" +#include "cheprep/DefaultHepRepAttDef.h" + +#include +#include + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepDefinition.cc,v 1.8 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRepDefinition::DefaultHepRepDefinition() + : DefaultHepRepAttribute() { +} + +DefaultHepRepDefinition::~DefaultHepRepDefinition() { + set list = getAttDefsFromNode(); + for (set::iterator i1 = list.begin(); i1 != list.end(); i1++) { + delete (*i1); + } +} + +set DefaultHepRepDefinition::getAttDefsFromNode() { + set attSet; + for (map::iterator i = attDefs.begin(); i != attDefs.end(); i++) { + attSet.insert((*i).second); + } + return attSet; +} + +void DefaultHepRepDefinition::addAttDef(HepRepAttDef* hepRepAttDef) { + string lowerCaseName = hepRepAttDef->getLowerCaseName(); + if (attDefs[lowerCaseName] != NULL) delete attDefs[lowerCaseName]; + attDefs[lowerCaseName] = hepRepAttDef; +} + +void DefaultHepRepDefinition::addAttDef(string name, string desc, string type, string extra) { + addAttDef(new DefaultHepRepAttDef(name, desc, type, extra)); +} + +HepRepAttDef* DefaultHepRepDefinition::getAttDefFromNode(string name) { + string s = name; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + return (attDefs.count(s) > 0) ? attDefs[s] : NULL; +} + +} // cheprep diff --git a/source/visualization/HepRep/src/DefaultHepRepFactory.cc b/source/visualization/HepRep/src/DefaultHepRepFactory.cc index 333050d483..559c79fdd8 100644 --- a/source/visualization/HepRep/src/DefaultHepRepFactory.cc +++ b/source/visualization/HepRep/src/DefaultHepRepFactory.cc @@ -1,81 +1,90 @@ - -#include -#include - -#include "DefaultHepRepFactory.h" -#include "DefaultHepRepPoint.h" -#include "DefaultHepRepInstance.h" -#include "DefaultHepRepInstanceTree.h" -#include "DefaultHepRepType.h" -#include "DefaultHepRepTypeTree.h" -#include "DefaultHepRep.h" -#include "DefaultHepRepAction.h" -#include "DefaultHepRepTreeID.h" - -using namespace std; -using namespace HEPREP; - - -DefaultHepRepFactory::DefaultHepRepFactory() { -} - -DefaultHepRepFactory::~DefaultHepRepFactory() { -} - -HepRepReader* DefaultHepRepFactory::createHepRepReader (istream*) { - cerr << "DefaultHepRepFactory::createHepRepReader not implemented" << endl; - return NULL; -} - -HepRepReader* DefaultHepRepFactory::createHepRepReader (std::string) { - cerr << "DefaultHepRepFactory::createHepRepReader not implemented" << endl; - return NULL; -} - -HepRepWriter* DefaultHepRepFactory::createHepRepWriter(ostream*, bool, bool) { - cerr << "DefaultHepRepFactory::createHepRepWriter not implemented" << endl; - return NULL; -} - -HepRepPoint* DefaultHepRepFactory::createHepRepPoint (HepRepInstance* instance, - double x, double y, double z) { - return new DefaultHepRepPoint(instance, x, y, z); -} - -HepRepInstance* DefaultHepRepFactory::createHepRepInstance (HepRepInstance* parent, HepRepType* type) { - return new DefaultHepRepInstance(parent, type); -} - -HepRepInstance* DefaultHepRepFactory::createHepRepInstance (HepRepInstanceTree* parent, HepRepType* type) { - return new DefaultHepRepInstance(parent, type); -} - -HepRepTreeID* DefaultHepRepFactory::createHepRepTreeID (string name, string version, string qualifier) { - return new DefaultHepRepTreeID(name, version, qualifier); -} - -HepRepAction* DefaultHepRepFactory::createHepRepAction (string name, string expression) { - return new DefaultHepRepAction(name, expression); -} - -HepRepInstanceTree* DefaultHepRepFactory::createHepRepInstanceTree (string name, string version, - HepRepTreeID* typeTreeID) { - return new DefaultHepRepInstanceTree(name, version, typeTreeID); -} - -HepRepType* DefaultHepRepFactory::createHepRepType (HepRepType* parent, string name) { - return new DefaultHepRepType(parent, name); -} - -HepRepType* DefaultHepRepFactory::createHepRepType (HepRepTypeTree* parent, string name) { - return new DefaultHepRepType(parent, name); -} - -HepRepTypeTree* DefaultHepRepFactory::createHepRepTypeTree (HepRepTreeID* treeID) { - return new DefaultHepRepTypeTree(treeID); -} - -HepRep* DefaultHepRepFactory::createHepRep () { - return new DefaultHepRep(); -} - +// Copyright FreeHEP, 2005. + +#include +#include + +#include "cheprep/DefaultHepRepFactory.h" +#include "cheprep/DefaultHepRepPoint.h" +#include "cheprep/DefaultHepRepInstance.h" +#include "cheprep/DefaultHepRepInstanceTree.h" +#include "cheprep/DefaultHepRepType.h" +#include "cheprep/DefaultHepRepTypeTree.h" +#include "cheprep/DefaultHepRep.h" +#include "cheprep/DefaultHepRepAction.h" +#include "cheprep/DefaultHepRepTreeID.h" + +using namespace std; +using namespace HEPREP; + + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepFactory.cc,v 1.6 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRepFactory::DefaultHepRepFactory() { +} + +DefaultHepRepFactory::~DefaultHepRepFactory() { +} + +HepRepReader* DefaultHepRepFactory::createHepRepReader (istream*) { + cerr << "DefaultHepRepFactory::createHepRepReader not implemented" << endl; + return NULL; +} + +HepRepReader* DefaultHepRepFactory::createHepRepReader (std::string) { + cerr << "DefaultHepRepFactory::createHepRepReader not implemented" << endl; + return NULL; +} + +HepRepWriter* DefaultHepRepFactory::createHepRepWriter(ostream*, bool, bool) { + cerr << "DefaultHepRepFactory::createHepRepWriter not implemented" << endl; + return NULL; +} + +HepRepPoint* DefaultHepRepFactory::createHepRepPoint (HepRepInstance* instance, + double x, double y, double z) { + return new DefaultHepRepPoint(instance, x, y, z); +} + +HepRepInstance* DefaultHepRepFactory::createHepRepInstance (HepRepInstance* parent, HepRepType* type) { + return new DefaultHepRepInstance(parent, type); +} + +HepRepInstance* DefaultHepRepFactory::createHepRepInstance (HepRepInstanceTree* parent, HepRepType* type) { + return new DefaultHepRepInstance(parent, type); +} + +HepRepTreeID* DefaultHepRepFactory::createHepRepTreeID (string name, string version, string qualifier) { + return new DefaultHepRepTreeID(name, version, qualifier); +} + +HepRepAction* DefaultHepRepFactory::createHepRepAction (string name, string expression) { + return new DefaultHepRepAction(name, expression); +} + +HepRepInstanceTree* DefaultHepRepFactory::createHepRepInstanceTree (string name, string version, + HepRepTreeID* typeTreeID) { + return new DefaultHepRepInstanceTree(name, version, typeTreeID); +} + +HepRepType* DefaultHepRepFactory::createHepRepType (HepRepType* parent, string name) { + return new DefaultHepRepType(parent, name); +} + +HepRepType* DefaultHepRepFactory::createHepRepType (HepRepTypeTree* parent, string name) { + return new DefaultHepRepType(parent, name); +} + +HepRepTypeTree* DefaultHepRepFactory::createHepRepTypeTree (HepRepTreeID* treeID) { + return new DefaultHepRepTypeTree(treeID); +} + +HepRep* DefaultHepRepFactory::createHepRep () { + return new DefaultHepRep(); +} + +} // cheprep + diff --git a/source/visualization/HepRep/src/DefaultHepRepInstance.cc b/source/visualization/HepRep/src/DefaultHepRepInstance.cc index ee74c7f6e7..069533667a 100644 --- a/source/visualization/HepRep/src/DefaultHepRepInstance.cc +++ b/source/visualization/HepRep/src/DefaultHepRepInstance.cc @@ -1,79 +1,88 @@ - -#include - -#include "DefaultHepRepInstance.h" - -using namespace std; -using namespace HEPREP; - -DefaultHepRepInstance::DefaultHepRepInstance(HepRepInstance* instance, HepRepType* heprepType) - : DefaultHepRepAttribute(), parent(instance), type(heprepType) { - - if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl; - parent->addInstance(this); -} - -DefaultHepRepInstance::DefaultHepRepInstance(HepRepInstanceTree* instanceTree, HepRepType* heprepType) - : DefaultHepRepAttribute(), parent(NULL), type(heprepType) { - - if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl; - instanceTree->addInstance(this); -} - -DefaultHepRepInstance::~DefaultHepRepInstance() { - parent = NULL; - type = NULL; - for (vector::iterator i1 = instances.begin(); i1 != instances.end(); i1++) { - delete (*i1); - } - for (vector::iterator i2 = points.begin(); i2 != points.end(); i2++) { - delete (*i2); - } -} - -void DefaultHepRepInstance::overlay(HepRepInstance *) { - cerr << "DefaultHepRepInstance::overlay(HepRepInstance * instance) not implemented." << endl; -} - -HepRepInstance* DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstance*, HepRepSelectFilter*) { - cerr << "DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstance*, HepRepSelectFilter*) not implemented." << endl; - return NULL; -} - -HepRepInstance* DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstanceTree*, HepRepSelectFilter*) { - cerr << "DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstanceTree*, HepRepSelectFilter*) not implemented." << endl; - return NULL; -} - -HepRepType* DefaultHepRepInstance::getType() { - return type; -} - -void DefaultHepRepInstance::addPoint(HepRepPoint* point) { - points.push_back(point); -} - -vector DefaultHepRepInstance::getPoints() { - return points; -} - -HepRepInstance* DefaultHepRepInstance::getSuperInstance() { - return parent; -} - -void DefaultHepRepInstance::addInstance(HepRepInstance* instance) { - instances.push_back(instance); -} - -void DefaultHepRepInstance::removeInstance(HepRepInstance*) { - cerr << "DefaultHepRepInstance::removeInstance(HepRepInstance*) not implemented." << endl; -} - -vector DefaultHepRepInstance::getInstances() { - return instances; -} - -HepRepAttValue* DefaultHepRepInstance::getAttValue(string name) { - HepRepAttValue* value = getAttValueFromNode(name); - return (value != NULL) ? value : type->getAttValue(name); -} +// Copyright FreeHEP, 2005. + +#include + +#include "cheprep/DefaultHepRepInstance.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepInstance.cc,v 1.7 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRepInstance::DefaultHepRepInstance(HepRepInstance* instance, HepRepType* heprepType) + : DefaultHepRepAttribute(), parent(instance), type(heprepType) { + + if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl; + parent->addInstance(this); +} + +DefaultHepRepInstance::DefaultHepRepInstance(HepRepInstanceTree* instanceTree, HepRepType* heprepType) + : DefaultHepRepAttribute(), parent(NULL), type(heprepType) { + + if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl; + instanceTree->addInstance(this); +} + +DefaultHepRepInstance::~DefaultHepRepInstance() { + parent = NULL; + type = NULL; + for (vector::iterator i1 = instances.begin(); i1 != instances.end(); i1++) { + delete (*i1); + } + for (vector::iterator i2 = points.begin(); i2 != points.end(); i2++) { + delete (*i2); + } +} + +void DefaultHepRepInstance::overlay(HepRepInstance *) { + cerr << "DefaultHepRepInstance::overlay(HepRepInstance * instance) not implemented." << endl; +} + +HepRepInstance* DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstance*, HepRepSelectFilter*) { + cerr << "DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstance*, HepRepSelectFilter*) not implemented." << endl; + return NULL; +} + +HepRepInstance* DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstanceTree*, HepRepSelectFilter*) { + cerr << "DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstanceTree*, HepRepSelectFilter*) not implemented." << endl; + return NULL; +} + +HepRepType* DefaultHepRepInstance::getType() { + return type; +} + +void DefaultHepRepInstance::addPoint(HepRepPoint* point) { + points.push_back(point); +} + +vector DefaultHepRepInstance::getPoints() { + return points; +} + +HepRepInstance* DefaultHepRepInstance::getSuperInstance() { + return parent; +} + +void DefaultHepRepInstance::addInstance(HepRepInstance* instance) { + instances.push_back(instance); +} + +void DefaultHepRepInstance::removeInstance(HepRepInstance*) { + cerr << "DefaultHepRepInstance::removeInstance(HepRepInstance*) not implemented." << endl; +} + +vector DefaultHepRepInstance::getInstances() { + return instances; +} + +HepRepAttValue* DefaultHepRepInstance::getAttValue(string name) { + HepRepAttValue* value = getAttValueFromNode(name); + return (value != NULL) ? value : type->getAttValue(name); +} + +} // cheprep diff --git a/source/visualization/HepRep/src/DefaultHepRepInstanceTree.cc b/source/visualization/HepRep/src/DefaultHepRepInstanceTree.cc index ce71d1de73..4496c7dec9 100644 --- a/source/visualization/HepRep/src/DefaultHepRepInstanceTree.cc +++ b/source/visualization/HepRep/src/DefaultHepRepInstanceTree.cc @@ -1,50 +1,59 @@ - -#include "DefaultHepRepInstanceTree.h" - -using namespace std; -using namespace HEPREP; - -DefaultHepRepInstanceTree::DefaultHepRepInstanceTree(string name, string version, HepRepTreeID* typeTree) - : DefaultHepRepTreeID(name, version), typeTree(typeTree) { -} - -DefaultHepRepInstanceTree::~DefaultHepRepInstanceTree() { - for (vector::iterator i1 = instances.begin(); i1 != instances.end(); i1++) { - delete (*i1); - } - instances.clear(); -} - -void DefaultHepRepInstanceTree::overlay(HepRepInstanceTree *) { - cerr << "DefaultHepRepInstanceTree::overlay(HepRepInstanceTree * instanceTree) not implemented." << endl; -} - -HepRepInstanceTree* DefaultHepRepInstanceTree::copy(HepRepTypeTree*, HepRepSelectFilter*) { - cerr << "DefaultHepRepInstanceTree::copy(HepRepTypeTree*, HepRepSelectFilter*) not implemented." << endl; - return NULL; -} - -void DefaultHepRepInstanceTree::addInstance(HepRepInstance* instance) { - instances.push_back(instance); -} - -void DefaultHepRepInstanceTree::removeInstance(HepRepInstance*) { - cerr << "DefaultHepRepInstanceTree::removeInstance(HepRepInstance*) not implemented." << endl; -} - -vector DefaultHepRepInstanceTree::getInstances() { - return instances; -} - -void DefaultHepRepInstanceTree::addInstanceTree(HepRepTreeID* treeID) { - instanceTrees.push_back(treeID); -} - -HepRepTreeID* DefaultHepRepInstanceTree::getTypeTree() { - return typeTree; -} - -vector DefaultHepRepInstanceTree::getInstanceTreeList() { - return instanceTrees; -} - +// Copyright FreeHEP, 2005. + +#include "cheprep/DefaultHepRepInstanceTree.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepInstanceTree.cc,v 1.11 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRepInstanceTree::DefaultHepRepInstanceTree(string name, string version, HepRepTreeID* typeTree) + : DefaultHepRepTreeID(name, version), typeTree(typeTree) { +} + +DefaultHepRepInstanceTree::~DefaultHepRepInstanceTree() { + for (vector::iterator i1 = instances.begin(); i1 != instances.end(); i1++) { + delete (*i1); + } + instances.clear(); +} + +void DefaultHepRepInstanceTree::overlay(HepRepInstanceTree *) { + cerr << "DefaultHepRepInstanceTree::overlay(HepRepInstanceTree * instanceTree) not implemented." << endl; +} + +HepRepInstanceTree* DefaultHepRepInstanceTree::copy(HepRepTypeTree*, HepRepSelectFilter*) { + cerr << "DefaultHepRepInstanceTree::copy(HepRepTypeTree*, HepRepSelectFilter*) not implemented." << endl; + return NULL; +} + +void DefaultHepRepInstanceTree::addInstance(HepRepInstance* instance) { + instances.push_back(instance); +} + +void DefaultHepRepInstanceTree::removeInstance(HepRepInstance*) { + cerr << "DefaultHepRepInstanceTree::removeInstance(HepRepInstance*) not implemented." << endl; +} + +vector DefaultHepRepInstanceTree::getInstances() { + return instances; +} + +void DefaultHepRepInstanceTree::addInstanceTree(HepRepTreeID* treeID) { + instanceTrees.push_back(treeID); +} + +HepRepTreeID* DefaultHepRepInstanceTree::getTypeTree() { + return typeTree; +} + +vector DefaultHepRepInstanceTree::getInstanceTreeList() { + return instanceTrees; +} + +} // cheprep + diff --git a/source/visualization/HepRep/src/DefaultHepRepPoint.cc b/source/visualization/HepRep/src/DefaultHepRepPoint.cc index 35a821c250..9ba2487fb9 100644 --- a/source/visualization/HepRep/src/DefaultHepRepPoint.cc +++ b/source/visualization/HepRep/src/DefaultHepRepPoint.cc @@ -1,115 +1,124 @@ - -#include -#include -#include - -#include "DefaultHepRepPoint.h" - -using namespace std; -using namespace HEPREP; - -DefaultHepRepPoint::DefaultHepRepPoint(HepRepInstance* inst, double x, double y, double z) - : DefaultHepRepAttribute(), instance(inst), x(x), y(y), z(z) { - - if (instance == NULL) { - cerr << "HepRepPoints cannot be created without a HepRepInstance." << endl; - } else { - instance->addPoint(this); - } -} - -DefaultHepRepPoint::~DefaultHepRepPoint() { -} - -HepRepInstance* DefaultHepRepPoint::getInstance() { - return instance; -} - -HepRepAttValue* DefaultHepRepPoint::getAttValue(string lowerCaseName) { - HepRepAttValue* value = getAttValueFromNode(lowerCaseName); - return (value != NULL) ? value : instance->getAttValue(lowerCaseName); -} - -HepRepPoint* DefaultHepRepPoint::copy(HepRepInstance* inst) { - return new DefaultHepRepPoint(inst, x, y, z); -} - -double DefaultHepRepPoint::getX() { - return x; -} - -double DefaultHepRepPoint::getY() { - return y; -} - -double DefaultHepRepPoint::getZ() { - return z; -} - -vector* DefaultHepRepPoint::getXYZ(vector* xyz) { - (*xyz)[0] = x; - (*xyz)[1] = y; - (*xyz)[2] = z; - return xyz; -} - -double DefaultHepRepPoint::getRho() { - return std::sqrt(x*x + y*y); -} - -double DefaultHepRepPoint::getPhi() { - return std::atan2(y, x); -} - -double DefaultHepRepPoint::getTheta() { - return std::atan2(getRho(), z); -} - -double DefaultHepRepPoint::getR() { - double r = getRho(); - return std::sqrt(r*r + z*z); -} - -double DefaultHepRepPoint::getEta() { - double ct = std::cos(getTheta()); - return -0.5*std::log((1.-ct)/(1.+ct)); -} - -double DefaultHepRepPoint::getX(double xVertex, double, double) { - return x - xVertex; -} - -double DefaultHepRepPoint::getY(double, double yVertex, double) { - return y - yVertex; -} - -double DefaultHepRepPoint::getZ(double, double, double zVertex) { - return z - zVertex; -} - -double DefaultHepRepPoint::getRho(double xVertex, double yVertex, double zVertex) { - double dx = getX(xVertex, yVertex, zVertex); - double dy = getY(xVertex, yVertex, zVertex); - return std::sqrt(dx*dx + dy*dy); -} - -double DefaultHepRepPoint::getPhi(double xVertex, double yVertex, double zVertex) { - return std::atan2(getY(xVertex, yVertex, zVertex), getX(xVertex, yVertex, zVertex)); -} - -double DefaultHepRepPoint::getTheta(double xVertex, double yVertex, double zVertex) { - return std::atan2(getRho(xVertex, yVertex, zVertex), getZ(xVertex, yVertex, zVertex)); -} - -double DefaultHepRepPoint::getR(double xVertex, double yVertex, double zVertex) { - double dr = getRho(xVertex, yVertex, zVertex); - double dz = getZ(xVertex, yVertex, zVertex); - return std::sqrt(dr*dr + dz*dz); -} - -double DefaultHepRepPoint::getEta(double xVertex, double yVertex, double zVertex) { - double ct = std::cos(getTheta(xVertex, yVertex, zVertex)); - return -0.5*std::log((1.-ct)/(1.+ct)); -} - - +// Copyright FreeHEP, 2005. + +#include +#include +#include + +#include "cheprep/DefaultHepRepPoint.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepPoint.cc,v 1.5 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRepPoint::DefaultHepRepPoint(HepRepInstance* inst, double x, double y, double z) + : DefaultHepRepAttribute(), instance(inst), x(x), y(y), z(z) { + + if (instance == NULL) { + cerr << "HepRepPoints cannot be created without a HepRepInstance." << endl; + } else { + instance->addPoint(this); + } +} + +DefaultHepRepPoint::~DefaultHepRepPoint() { +} + +HepRepInstance* DefaultHepRepPoint::getInstance() { + return instance; +} + +HepRepAttValue* DefaultHepRepPoint::getAttValue(string lowerCaseName) { + HepRepAttValue* value = getAttValueFromNode(lowerCaseName); + return (value != NULL) ? value : instance->getAttValue(lowerCaseName); +} + +HepRepPoint* DefaultHepRepPoint::copy(HepRepInstance* inst) { + return new DefaultHepRepPoint(inst, x, y, z); +} + +double DefaultHepRepPoint::getX() { + return x; +} + +double DefaultHepRepPoint::getY() { + return y; +} + +double DefaultHepRepPoint::getZ() { + return z; +} + +vector* DefaultHepRepPoint::getXYZ(vector* xyz) { + (*xyz)[0] = x; + (*xyz)[1] = y; + (*xyz)[2] = z; + return xyz; +} + +double DefaultHepRepPoint::getRho() { + return sqrt(x*x + y*y); +} + +double DefaultHepRepPoint::getPhi() { + return atan2(y, x); +} + +double DefaultHepRepPoint::getTheta() { + return atan2(getRho(), z); +} + +double DefaultHepRepPoint::getR() { + double r = getRho(); + return sqrt(r*r + z*z); +} + +double DefaultHepRepPoint::getEta() { + double ct = cos(getTheta()); + return -0.5*log((1.-ct)/(1.+ct)); +} + +double DefaultHepRepPoint::getX(double xVertex, double, double) { + return x - xVertex; +} + +double DefaultHepRepPoint::getY(double, double yVertex, double) { + return y - yVertex; +} + +double DefaultHepRepPoint::getZ(double, double, double zVertex) { + return z - zVertex; +} + +double DefaultHepRepPoint::getRho(double xVertex, double yVertex, double zVertex) { + double dx = getX(xVertex, yVertex, zVertex); + double dy = getY(xVertex, yVertex, zVertex); + return sqrt(dx*dx + dy*dy); +} + +double DefaultHepRepPoint::getPhi(double xVertex, double yVertex, double zVertex) { + return atan2(getY(xVertex, yVertex, zVertex), getX(xVertex, yVertex, zVertex)); +} + +double DefaultHepRepPoint::getTheta(double xVertex, double yVertex, double zVertex) { + return atan2(getRho(xVertex, yVertex, zVertex), getZ(xVertex, yVertex, zVertex)); +} + +double DefaultHepRepPoint::getR(double xVertex, double yVertex, double zVertex) { + double dr = getRho(xVertex, yVertex, zVertex); + double dz = getZ(xVertex, yVertex, zVertex); + return sqrt(dr*dr + dz*dz); +} + +double DefaultHepRepPoint::getEta(double xVertex, double yVertex, double zVertex) { + double ct = cos(getTheta(xVertex, yVertex, zVertex)); + return -0.5*log((1.-ct)/(1.+ct)); +} + + +} // cheprep + diff --git a/source/visualization/HepRep/src/DefaultHepRepTreeID.cc b/source/visualization/HepRep/src/DefaultHepRepTreeID.cc index 84e576f545..fa50d4ffe5 100644 --- a/source/visualization/HepRep/src/DefaultHepRepTreeID.cc +++ b/source/visualization/HepRep/src/DefaultHepRepTreeID.cc @@ -1,30 +1,39 @@ - -#include - -#include "DefaultHepRepTreeID.h" - -using namespace std; -using namespace HEPREP; - -DefaultHepRepTreeID::DefaultHepRepTreeID(string name, string version, string qualifier) - : name(name), version(version), qualifier(qualifier) { -} - -DefaultHepRepTreeID::~DefaultHepRepTreeID() { -} - -string DefaultHepRepTreeID::getQualifier() { - return qualifier; -} - -void DefaultHepRepTreeID::setQualifier(string qual) { - this->qualifier = qual; -} - -string DefaultHepRepTreeID::getName() { - return name; -} - -string DefaultHepRepTreeID::getVersion() { - return version; -} +// Copyright FreeHEP, 2005. + +#include + +#include "cheprep/DefaultHepRepTreeID.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepTreeID.cc,v 1.9 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRepTreeID::DefaultHepRepTreeID(string name, string version, string qualifier) + : name(name), version(version), qualifier(qualifier) { +} + +DefaultHepRepTreeID::~DefaultHepRepTreeID() { +} + +string DefaultHepRepTreeID::getQualifier() { + return qualifier; +} + +void DefaultHepRepTreeID::setQualifier(string qual) { + this->qualifier = qual; +} + +string DefaultHepRepTreeID::getName() { + return name; +} + +string DefaultHepRepTreeID::getVersion() { + return version; +} + +} // cheprep diff --git a/source/visualization/HepRep/src/DefaultHepRepType.cc b/source/visualization/HepRep/src/DefaultHepRepType.cc index 2f8a74c16a..f7abb17f53 100644 --- a/source/visualization/HepRep/src/DefaultHepRepType.cc +++ b/source/visualization/HepRep/src/DefaultHepRepType.cc @@ -1,104 +1,113 @@ - -#include "DefaultHepRepType.h" - -using namespace std; -using namespace HEPREP; - -DefaultHepRepType::DefaultHepRepType(HepRepType* parentType, string typeName) - : DefaultHepRepDefinition(), parent(parentType), name(typeName) { - this->description = "No Description"; - this->infoURL = "No Info URL"; - - // HepRepTypes are sometimes used without a parent (top-level) - if (parent != NULL) { - parent->addType(this); - } -} - -DefaultHepRepType::DefaultHepRepType(HepRepTypeTree* parentTypeTree, string typeName) - : DefaultHepRepDefinition(), parent(NULL), name(typeName) { - this->description = "No Description"; - this->infoURL = "No Info URL"; - - parentTypeTree->addType(this); -} - -DefaultHepRepType::~DefaultHepRepType() { - for (vector::iterator i1 = types.begin(); i1 != types.end(); i1++) { - delete (*i1); - } -} - -HepRepType* DefaultHepRepType::getSuperType() { - return parent; -} - -HepRepAttDef* DefaultHepRepType::getAttDef(string defName) { - HepRepAttDef* def = NULL; - HepRepType* type = this; - while ((def == NULL) && (type != NULL)) { - def = type->getAttDefFromNode(defName); - type = type->getSuperType(); - } - if (def == NULL) { - cerr << "ERROR: No HepRepDefaults, trying to get definition for: " << defName << endl; - // FIXME, no HepRepDefaults - } - return def; -} - -/** - * searched for a value with given name. Search up the type tree if needed. - */ -HepRepAttValue* DefaultHepRepType::getAttValue(string attName) { - HepRepAttValue* value = NULL; - HepRepType* type = this; - while ((value == NULL) && (type != NULL)) { - value = type->getAttValueFromNode(attName); - type = type->getSuperType(); - } - if (value == NULL) { - cerr << "ERROR: No HepRepDefaults, trying to get value for: " << attName << endl; - // FIXME, no HepRepDefaults - } - return value; -} - -HepRepType* DefaultHepRepType::copy(HepRepType*) { - cerr << "DefaultHepRepType::copy(HepRepType*) not implemented." << endl; - return NULL; -} - -string DefaultHepRepType::getName() { - return name; -} - -string DefaultHepRepType::getFullName() { - return (getSuperType() == NULL) ? getName() : getSuperType()->getFullName() + "/" + getName(); -} - -string DefaultHepRepType::getDescription() { - return description; -} - -void DefaultHepRepType::setDescription(string desc) { - this->description = desc; -} - -string DefaultHepRepType::getInfoURL() { - return infoURL; -} - -void DefaultHepRepType::setInfoURL(string info) { - this->infoURL = info; -} - -void DefaultHepRepType::addType(HepRepType* type) { - // FIXME should check if type already exists - types.push_back(type); -} - -vector DefaultHepRepType::getTypeList() { - return types; -} - +// Copyright FreeHEP, 2005. + +#include "cheprep/DefaultHepRepType.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepType.cc,v 1.8 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRepType::DefaultHepRepType(HepRepType* parentType, string typeName) + : DefaultHepRepDefinition(), parent(parentType), name(typeName) { + this->description = "No Description"; + this->infoURL = "No Info URL"; + + // HepRepTypes are sometimes used without a parent (top-level) + if (parent != NULL) { + parent->addType(this); + } +} + +DefaultHepRepType::DefaultHepRepType(HepRepTypeTree* parentTypeTree, string typeName) + : DefaultHepRepDefinition(), parent(NULL), name(typeName) { + this->description = "No Description"; + this->infoURL = "No Info URL"; + + parentTypeTree->addType(this); +} + +DefaultHepRepType::~DefaultHepRepType() { + for (vector::iterator i1 = types.begin(); i1 != types.end(); i1++) { + delete (*i1); + } +} + +HepRepType* DefaultHepRepType::getSuperType() { + return parent; +} + +HepRepAttDef* DefaultHepRepType::getAttDef(string defName) { + HepRepAttDef* def = NULL; + HepRepType* type = this; + while ((def == NULL) && (type != NULL)) { + def = type->getAttDefFromNode(defName); + type = type->getSuperType(); + } + if (def == NULL) { + cerr << "ERROR: No HepRepDefaults, trying to get definition for: " << defName << endl; + // FIXME, no HepRepDefaults + } + return def; +} + +/** + * searched for a value with given name. Search up the type tree if needed. + */ +HepRepAttValue* DefaultHepRepType::getAttValue(string attName) { + HepRepAttValue* value = NULL; + HepRepType* type = this; + while ((value == NULL) && (type != NULL)) { + value = type->getAttValueFromNode(attName); + type = type->getSuperType(); + } + if (value == NULL) { + cerr << "ERROR: No HepRepDefaults, trying to get value for: " << attName << endl; + // FIXME, no HepRepDefaults + } + return value; +} + +HepRepType* DefaultHepRepType::copy(HepRepType*) { + cerr << "DefaultHepRepType::copy(HepRepType*) not implemented." << endl; + return NULL; +} + +string DefaultHepRepType::getName() { + return name; +} + +string DefaultHepRepType::getFullName() { + return (getSuperType() == NULL) ? getName() : getSuperType()->getFullName() + "/" + getName(); +} + +string DefaultHepRepType::getDescription() { + return description; +} + +void DefaultHepRepType::setDescription(string desc) { + this->description = desc; +} + +string DefaultHepRepType::getInfoURL() { + return infoURL; +} + +void DefaultHepRepType::setInfoURL(string info) { + this->infoURL = info; +} + +void DefaultHepRepType::addType(HepRepType* type) { + // FIXME should check if type already exists + types.push_back(type); +} + +vector DefaultHepRepType::getTypeList() { + return types; +} + + +} // cheprep diff --git a/source/visualization/HepRep/src/DefaultHepRepTypeTree.cc b/source/visualization/HepRep/src/DefaultHepRepTypeTree.cc index efd3f2c643..e45191fa20 100644 --- a/source/visualization/HepRep/src/DefaultHepRepTypeTree.cc +++ b/source/visualization/HepRep/src/DefaultHepRepTypeTree.cc @@ -1,37 +1,46 @@ - -#include - -#include "DefaultHepRepTypeTree.h" - -using namespace std; -using namespace HEPREP; - -DefaultHepRepTypeTree::DefaultHepRepTypeTree(HepRepTreeID* typeTree) - : DefaultHepRepTreeID(typeTree->getName(), typeTree->getVersion()) { - delete typeTree; -} - -DefaultHepRepTypeTree::~DefaultHepRepTypeTree() { - for (vector::iterator i1 = types.begin(); i1 != types.end(); i1++) { - delete (*i1); - } -} - -HepRepTypeTree* DefaultHepRepTypeTree::copy() { - cerr << "DefaultHepRepTypeTree::copy() not implemented." << endl; - return NULL; -} - -void DefaultHepRepTypeTree::addType(HepRepType* type) { - // FIXME should check if type already exists - types.push_back(type); -} - -vector DefaultHepRepTypeTree::getTypeList() { - return types; -} - -HepRepType* DefaultHepRepTypeTree::getType(string /*typeName*/) { - cerr << "DefaultHepRepTypeTree::getType(string) not implemented." << endl; - return NULL; -} +// Copyright FreeHEP, 2005. + +#include + +#include "cheprep/DefaultHepRepTypeTree.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: DefaultHepRepTypeTree.cc,v 1.7 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +DefaultHepRepTypeTree::DefaultHepRepTypeTree(HepRepTreeID* typeTree) + : DefaultHepRepTreeID(typeTree->getName(), typeTree->getVersion()) { + delete typeTree; +} + +DefaultHepRepTypeTree::~DefaultHepRepTypeTree() { + for (vector::iterator i1 = types.begin(); i1 != types.end(); i1++) { + delete (*i1); + } +} + +HepRepTypeTree* DefaultHepRepTypeTree::copy() { + cerr << "DefaultHepRepTypeTree::copy() not implemented." << endl; + return NULL; +} + +void DefaultHepRepTypeTree::addType(HepRepType* type) { + // FIXME should check if type already exists + types.push_back(type); +} + +vector DefaultHepRepTypeTree::getTypeList() { + return types; +} + +HepRepType* DefaultHepRepTypeTree::getType(string /*typeName*/) { + cerr << "DefaultHepRepTypeTree::getType(string) not implemented." << endl; + return NULL; +} + +} // cheprep diff --git a/source/visualization/HepRep/src/DeflateOutputStreamBuffer.cc b/source/visualization/HepRep/src/DeflateOutputStreamBuffer.cc new file mode 100755 index 0000000000..4c740a235f --- /dev/null +++ b/source/visualization/HepRep/src/DeflateOutputStreamBuffer.cc @@ -0,0 +1,243 @@ +// Copyright FreeHEP, 2005. + +#include "cheprep/DeflateOutputStreamBuffer.h" + +/** + * @author Mark Donszelmann + * @version $Id: DeflateOutputStreamBuffer.cc,v 1.6 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + + using namespace std; + + unsigned long DeflateOutputStreamBuffer::crctable[] = { + 0x00000000L, 0x77073096L, 0xEE0E612CL, 0x990951BAL, + 0x076DC419L, 0x706AF48FL, 0xE963A535L, 0x9E6495A3L, + 0x0EDB8832L, 0x79DCB8A4L, 0xE0D5E91EL, 0x97D2D988L, + 0x09B64C2BL, 0x7EB17CBDL, 0xE7B82D07L, 0x90BF1D91L, + 0x1DB71064L, 0x6AB020F2L, 0xF3B97148L, 0x84BE41DEL, + 0x1ADAD47DL, 0x6DDDE4EBL, 0xF4D4B551L, 0x83D385C7L, + 0x136C9856L, 0x646BA8C0L, 0xFD62F97AL, 0x8A65C9ECL, + 0x14015C4FL, 0x63066CD9L, 0xFA0F3D63L, 0x8D080DF5L, + 0x3B6E20C8L, 0x4C69105EL, 0xD56041E4L, 0xA2677172L, + 0x3C03E4D1L, 0x4B04D447L, 0xD20D85FDL, 0xA50AB56BL, + 0x35B5A8FAL, 0x42B2986CL, 0xDBBBC9D6L, 0xACBCF940L, + 0x32D86CE3L, 0x45DF5C75L, 0xDCD60DCFL, 0xABD13D59L, + 0x26D930ACL, 0x51DE003AL, 0xC8D75180L, 0xBFD06116L, + 0x21B4F4B5L, 0x56B3C423L, 0xCFBA9599L, 0xB8BDA50FL, + 0x2802B89EL, 0x5F058808L, 0xC60CD9B2L, 0xB10BE924L, + 0x2F6F7C87L, 0x58684C11L, 0xC1611DABL, 0xB6662D3DL, + 0x76DC4190L, 0x01DB7106L, 0x98D220BCL, 0xEFD5102AL, + 0x71B18589L, 0x06B6B51FL, 0x9FBFE4A5L, 0xE8B8D433L, + 0x7807C9A2L, 0x0F00F934L, 0x9609A88EL, 0xE10E9818L, + 0x7F6A0DBBL, 0x086D3D2DL, 0x91646C97L, 0xE6635C01L, + 0x6B6B51F4L, 0x1C6C6162L, 0x856530D8L, 0xF262004EL, + 0x6C0695EDL, 0x1B01A57BL, 0x8208F4C1L, 0xF50FC457L, + 0x65B0D9C6L, 0x12B7E950L, 0x8BBEB8EAL, 0xFCB9887CL, + 0x62DD1DDFL, 0x15DA2D49L, 0x8CD37CF3L, 0xFBD44C65L, + 0x4DB26158L, 0x3AB551CEL, 0xA3BC0074L, 0xD4BB30E2L, + 0x4ADFA541L, 0x3DD895D7L, 0xA4D1C46DL, 0xD3D6F4FBL, + 0x4369E96AL, 0x346ED9FCL, 0xAD678846L, 0xDA60B8D0L, + 0x44042D73L, 0x33031DE5L, 0xAA0A4C5FL, 0xDD0D7CC9L, + 0x5005713CL, 0x270241AAL, 0xBE0B1010L, 0xC90C2086L, + 0x5768B525L, 0x206F85B3L, 0xB966D409L, 0xCE61E49FL, + 0x5EDEF90EL, 0x29D9C998L, 0xB0D09822L, 0xC7D7A8B4L, + 0x59B33D17L, 0x2EB40D81L, 0xB7BD5C3BL, 0xC0BA6CADL, + 0xEDB88320L, 0x9ABFB3B6L, 0x03B6E20CL, 0x74B1D29AL, + 0xEAD54739L, 0x9DD277AFL, 0x04DB2615L, 0x73DC1683L, + 0xE3630B12L, 0x94643B84L, 0x0D6D6A3EL, 0x7A6A5AA8L, + 0xE40ECF0BL, 0x9309FF9DL, 0x0A00AE27L, 0x7D079EB1L, + 0xF00F9344L, 0x8708A3D2L, 0x1E01F268L, 0x6906C2FEL, + 0xF762575DL, 0x806567CBL, 0x196C3671L, 0x6E6B06E7L, + 0xFED41B76L, 0x89D32BE0L, 0x10DA7A5AL, 0x67DD4ACCL, + 0xF9B9DF6FL, 0x8EBEEFF9L, 0x17B7BE43L, 0x60B08ED5L, + 0xD6D6A3E8L, 0xA1D1937EL, 0x38D8C2C4L, 0x4FDFF252L, + 0xD1BB67F1L, 0xA6BC5767L, 0x3FB506DDL, 0x48B2364BL, + 0xD80D2BDAL, 0xAF0A1B4CL, 0x36034AF6L, 0x41047A60L, + 0xDF60EFC3L, 0xA867DF55L, 0x316E8EEFL, 0x4669BE79L, + 0xCB61B38CL, 0xBC66831AL, 0x256FD2A0L, 0x5268E236L, + 0xCC0C7795L, 0xBB0B4703L, 0x220216B9L, 0x5505262FL, + 0xC5BA3BBEL, 0xB2BD0B28L, 0x2BB45A92L, 0x5CB36A04L, + 0xC2D7FFA7L, 0xB5D0CF31L, 0x2CD99E8BL, 0x5BDEAE1DL, + 0x9B64C2B0L, 0xEC63F226L, 0x756AA39CL, 0x026D930AL, + 0x9C0906A9L, 0xEB0E363FL, 0x72076785L, 0x05005713L, + 0x95BF4A82L, 0xE2B87A14L, 0x7BB12BAEL, 0x0CB61B38L, + 0x92D28E9BL, 0xE5D5BE0DL, 0x7CDCEFB7L, 0x0BDBDF21L, + 0x86D3D2D4L, 0xF1D4E242L, 0x68DDB3F8L, 0x1FDA836EL, + 0x81BE16CDL, 0xF6B9265BL, 0x6FB077E1L, 0x18B74777L, + 0x88085AE6L, 0xFF0F6A70L, 0x66063BCAL, 0x11010B5CL, + 0x8F659EFFL, 0xF862AE69L, 0x616BFFD3L, 0x166CCF45L, + 0xA00AE278L, 0xD70DD2EEL, 0x4E048354L, 0x3903B3C2L, + 0xA7672661L, 0xD06016F7L, 0x4969474DL, 0x3E6E77DBL, + 0xAED16A4AL, 0xD9D65ADCL, 0x40DF0B66L, 0x37D83BF0L, + 0xA9BCAE53L, 0xDEBB9EC5L, 0x47B2CF7FL, 0x30B5FFE9L, + 0xBDBDF21CL, 0xCABAC28AL, 0x53B39330L, 0x24B4A3A6L, + 0xBAD03605L, 0xCDD70693L, 0x54DE5729L, 0x23D967BFL, + 0xB3667A2EL, 0xC4614AB8L, 0x5D681B02L, 0x2A6F2B94L, + 0xB40BBE37L, 0xC30C8EA1L, 0x5A05DF1BL, 0x2D02EF8DL + }; + + DeflateOutputStreamBuffer::DeflateOutputStreamBuffer(streambuf *buffer) + : buffer(buffer) + , crc(0) + , size(0) +#ifndef CHEPREP_NO_ZLIB + , zStreamOpen(false) + , in(inSize) + , out(outSize) +#endif // CHEPREP_NO_ZLIB + { + +#ifndef CHEPREP_NO_ZLIB + zStream.zalloc = Z_NULL; + zStream.zfree = Z_NULL; + zStream.opaque = Z_NULL; +#endif // CHEPREP_NO_ZLIB + } + + + void DeflateOutputStreamBuffer::init(bool compress) { + +#ifndef CHEPREP_NO_ZLIB + if (compress) { + if (zStreamOpen) return; + + zStream.next_in = reinterpret_cast(&(in[0])); + zStream.avail_in = 0 ; + + zStream.next_out = reinterpret_cast(&(out[0])); + zStream.avail_out = out.size(); + + if (deflateInit2(&zStream, 6, Z_DEFLATED, -MAX_WBITS, 8, Z_DEFAULT_STRATEGY ) != Z_OK) { + cerr << "ERROR: deflateInit2 failed" << endl; + } else { + zStreamOpen = true; + setp(&(in[0]), &(in[0])+inSize); + } + } +#else + // suppress warning about unused var + compress = false; +#endif // CHEPREP_NO_ZLIB + + crc = 0; + size = 0; + } + + void DeflateOutputStreamBuffer::finish() { + +#ifndef CHEPREP_NO_ZLIB + if (zStreamOpen) { + + overflow() ; + + zStream.next_out = reinterpret_cast(&(out[0])); + zStream.avail_out = outSize; + + int err = Z_OK ; + while ( err == Z_OK ) { + if (zStream.avail_out == 0) { + flushOut(); + } + err = deflate(&zStream, Z_FINISH); + } + + flushOut() ; + + if (err != Z_STREAM_END) { + cerr << "ERROR: deflation failed" << endl; + } + + if (deflateEnd(&zStream) != Z_OK) { + cerr << "ERROR: deflateEnd failed" << endl; + } + + zStreamOpen = false ; + } +#endif // CHEPREP_NO_ZLIB + } + + DeflateOutputStreamBuffer::~DeflateOutputStreamBuffer() { + } + + +#ifndef CHEPREP_NO_ZLIB + #define DO1 crc = crctable[(crc ^ (*buf++)) & 0xff] ^ (crc >> 8) + #define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 +#endif // CHEPREP_NO_ZLIB + + + int DeflateOutputStreamBuffer::overflow(int c) { + +#ifndef CHEPREP_NO_ZLIB + if (zStreamOpen) { + zStream.avail_in = pptr() - pbase() ; + zStream.next_in = reinterpret_cast(&(in[0])); + + int len = zStream.avail_in; + unsigned char* buf = zStream.next_in; + + crc = crc ^ 0xffffffffUL; + while (len >= 8) { + DO8; + len -= 8; + } + if (len) do { + DO1; + } while (--len); + crc = crc ^ 0xffffffffUL; + + size += zStream.avail_in; + + zStream.next_out = reinterpret_cast(&(out[0])); + zStream.avail_out = outSize ; + + int err = Z_OK ; + while ((zStream.avail_in > 0 || zStream.avail_out == 0) && err == Z_OK) { + if (zStream.avail_out == 0 ) { + flushOut(); + } + err = deflate(&zStream, Z_NO_FLUSH); + } + + flushOut(); + + setp(&(in[0]), &(in[0]) + inSize); + + if ((err != Z_OK) && (err != Z_STREAM_END)) { + cerr << "ERROR: deflation failed" << endl; + return EOF ; + } + + if ( c != EOF ) { + *pptr() = c ; + pbump(1); + } + + return 0 ; + } else { +#endif // CHEPREP_NO_ZLIB + crc = crc ^ 0xffffffffUL; + crc = crctable[(crc ^ c) & 0xff] ^ (crc >> 8); + crc = crc ^ 0xffffffffUL; + size++; + return buffer->sputc((char)c); +#ifndef CHEPREP_NO_ZLIB + } +#endif // CHEPREP_NO_ZLIB + } + + +#ifndef CHEPREP_NO_ZLIB + bool DeflateOutputStreamBuffer::flushOut() { + int deflatedCount = outSize - zStream.avail_out; + int byteCount = buffer->sputn(&(out[0]), deflatedCount); + + zStream.next_out = reinterpret_cast(&(out[0])); + zStream.avail_out = outSize ; + + return deflatedCount == byteCount ; + } +#endif // CHEPREP_NO_ZLIB + +} // cheprep diff --git a/source/visualization/HepRep/src/G4HepRep.cc b/source/visualization/HepRep/src/G4HepRep.cc index e12cd13c99..5b76906627 100644 --- a/source/visualization/HepRep/src/G4HepRep.cc +++ b/source/visualization/HepRep/src/G4HepRep.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRep.cc,v 1.21 2004/05/27 05:55:20 duns Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /** diff --git a/source/visualization/HepRep/src/G4HepRepFile.cc b/source/visualization/HepRep/src/G4HepRepFile.cc index 6bb2c08061..d4c0f8c720 100644 --- a/source/visualization/HepRep/src/G4HepRepFile.cc +++ b/source/visualization/HepRep/src/G4HepRepFile.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HepRepFile.cc,v 1.8 2003/07/12 19:48:15 duns Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4HepRepFile.cc,v 1.9 2005/06/01 06:50:15 perl Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Joseph Perl 1 October 2001 @@ -49,8 +49,6 @@ G4HepRepFile::~G4HepRepFile() {} G4VSceneHandler* G4HepRepFile::CreateSceneHandler(const G4String& name) { G4VSceneHandler* pScene = new G4HepRepFileSceneHandler(*this, name); - G4cout << G4HepRepFileSceneHandler::GetSceneCount() - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc b/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc index 5650f64336..95d389db3b 100644 --- a/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc +++ b/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HepRepFileSceneHandler.cc,v 1.20 2004/11/11 16:02:08 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4HepRepFileSceneHandler.cc,v 1.37 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Joseph Perl 27th January 2002 @@ -46,9 +46,11 @@ #include "G4NURBS.hh" #include "G4VTrajectory.hh" #include "G4VTrajectoryPoint.hh" +#include "G4TrajectoriesModel.hh" #include "G4VHit.hh" #include "G4AttDef.hh" #include "G4AttValue.hh" +#include "G4AttCheck.hh" //HepRep #include "G4HepRepFileXMLWriter.hh" @@ -56,18 +58,37 @@ G4int G4HepRepFileSceneHandler::fSceneIdCount = 0; // Counter for HepRep scene handlers. -G4int G4HepRepFileSceneHandler::fSceneCount = 0; -// No. of extanct scene handlers. - - G4HepRepFileSceneHandler::G4HepRepFileSceneHandler(G4VGraphicsSystem& system, const G4String& name): G4VSceneHandler(system, fSceneIdCount++, name) { - fSceneCount++; - hepRepXMLWriter = ((G4HepRepFile*)(&system))->GetHepRepXMLWriter(); fileCounter = 0; + int length; + + if (getenv("G4HEPREPFILE_DIR") == NULL) + strcpy(fileDir, ""); + else + length = sprintf (fileDir, "%s%s", getenv("G4HEPREPFILE_DIR"),"/"); + + if (getenv("G4HEPREPFILE_NAME") == NULL) + strcpy(fileName, "G4Data"); + else + strcpy(fileName, getenv("G4HEPREPFILE_NAME")); + + if (getenv("G4HEPREPFILE_OVERWRITE") == NULL) + fileOverwrite = false; + else + fileOverwrite = strcmp(getenv("G4HEPREPFILE_OVERWRITE"),"0"); + + if (getenv("G4HEPREPFILE_CULL") == NULL) + cullInvisibleObjects = false; + else + cullInvisibleObjects = strcmp(getenv("G4HEPREPFILE_CULL"),"0"); + + haveVisible = false; + drawingTraj = false; + drawingHit = false; } @@ -103,154 +124,323 @@ void G4HepRepFileSceneHandler::PrintThings() { #endif -void G4HepRepFileSceneHandler::AddThis(const G4Box& box) { +void G4HepRepFileSceneHandler::AddSolid(const G4Box& box) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Box& box) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Box& box) called for " << box.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(box); // Invoke default action. + + haveVisible = false; + AddHepRepInstance("Prism", NULL); + + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) + return; + + hepRepXMLWriter->addPrimitive(); + + G4double dx = box.GetXHalfLength(); + G4double dy = box.GetYHalfLength(); + G4double dz = box.GetZHalfLength(); + + G4Point3D vertex1(G4Point3D( dx, dy,-dz)); + G4Point3D vertex2(G4Point3D( dx,-dy,-dz)); + G4Point3D vertex3(G4Point3D(-dx,-dy,-dz)); + G4Point3D vertex4(G4Point3D(-dx, dy,-dz)); + G4Point3D vertex5(G4Point3D( dx, dy, dz)); + G4Point3D vertex6(G4Point3D( dx,-dy, dz)); + G4Point3D vertex7(G4Point3D(-dx,-dy, dz)); + G4Point3D vertex8(G4Point3D(-dx, dy, dz)); + + vertex1 = (*fpObjectTransformation) * vertex1; + vertex2 = (*fpObjectTransformation) * vertex2; + vertex3 = (*fpObjectTransformation) * vertex3; + vertex4 = (*fpObjectTransformation) * vertex4; + vertex5 = (*fpObjectTransformation) * vertex5; + vertex6 = (*fpObjectTransformation) * vertex6; + vertex7 = (*fpObjectTransformation) * vertex7; + vertex8 = (*fpObjectTransformation) * vertex8; + + hepRepXMLWriter->addPoint(vertex1.x(), vertex1.y(), vertex1.z()); + hepRepXMLWriter->addPoint(vertex2.x(), vertex2.y(), vertex2.z()); + hepRepXMLWriter->addPoint(vertex3.x(), vertex3.y(), vertex3.z()); + hepRepXMLWriter->addPoint(vertex4.x(), vertex4.y(), vertex4.z()); + hepRepXMLWriter->addPoint(vertex5.x(), vertex5.y(), vertex5.z()); + hepRepXMLWriter->addPoint(vertex6.x(), vertex6.y(), vertex6.z()); + hepRepXMLWriter->addPoint(vertex7.x(), vertex7.y(), vertex7.z()); + hepRepXMLWriter->addPoint(vertex8.x(), vertex8.y(), vertex8.z()); } -void G4HepRepFileSceneHandler::AddThis(const G4Cons& cons) { +void G4HepRepFileSceneHandler::AddSolid(const G4Cons& cons) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Cons& cons) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Cons& cons) called for " << cons.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(cons); // Invoke default action. + + // HepRep does not have a primitive for a cut cone, + // so if this cone is cut, let the base class convert this + // solid to polygons. + if (cons.GetDeltaPhiAngle() < twopi) { + G4VSceneHandler::AddSolid(cons); // Invoke default action. + } else { + haveVisible = false; + AddHepRepInstance("Cylinder", NULL); + + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) + return; + + G4Point3D vertex1(G4Point3D( 0., 0., cons.GetZHalfLength())); + G4Point3D vertex2(G4Point3D( 0., 0.,-cons.GetZHalfLength())); + + vertex1 = (*fpObjectTransformation) * vertex1; + vertex2 = (*fpObjectTransformation) * vertex2; + + // Outer cylinder. + hepRepXMLWriter->addPrimitive(); + hepRepXMLWriter->addAttValue("Radius1",cons.GetOuterRadiusMinusZ()); + hepRepXMLWriter->addAttValue("Radius2",cons.GetOuterRadiusPlusZ()); + hepRepXMLWriter->addPoint(vertex1.x(), vertex1.y(), vertex1.z()); + hepRepXMLWriter->addPoint(vertex2.x(), vertex2.y(), vertex2.z()); + + // Inner cylinder. + hepRepXMLWriter->addPrimitive(); + hepRepXMLWriter->addAttValue("Radius1",cons.GetInnerRadiusMinusZ()); + hepRepXMLWriter->addAttValue("Radius2",cons.GetInnerRadiusPlusZ()); + hepRepXMLWriter->addPoint(vertex1.x(), vertex1.y(), vertex1.z()); + hepRepXMLWriter->addPoint(vertex2.x(), vertex2.y(), vertex2.z()); + } } -void G4HepRepFileSceneHandler::AddThis(const G4Tubs& tubs) { +void G4HepRepFileSceneHandler::AddSolid(const G4Tubs& tubs) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Tubs& tubs) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Tubs& tubs) called for " << tubs.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(tubs); // Invoke default action. + + // HepRep does not have a primitive for a cut cylinder, + // so if this cylinder is cut, let the base class convert this + // solid to polygons. + if (tubs.GetDeltaPhiAngle() < twopi) { + G4VSceneHandler::AddSolid(tubs); // Invoke default action. + } else { + haveVisible = false; + AddHepRepInstance("Cylinder", NULL); + + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) + return; + + G4Point3D vertex1(G4Point3D( 0., 0., tubs.GetZHalfLength())); + G4Point3D vertex2(G4Point3D( 0., 0.,-tubs.GetZHalfLength())); + + vertex1 = (*fpObjectTransformation) * vertex1; + vertex2 = (*fpObjectTransformation) * vertex2; + + // Outer cylinder. + hepRepXMLWriter->addPrimitive(); + hepRepXMLWriter->addAttValue("Radius1", tubs.GetOuterRadius()); + hepRepXMLWriter->addAttValue("Radius2", tubs.GetOuterRadius()); + hepRepXMLWriter->addPoint(vertex1.x(), vertex1.y(), vertex1.z()); + hepRepXMLWriter->addPoint(vertex2.x(), vertex2.y(), vertex2.z()); + + // Inner cylinder. + if (tubs.GetInnerRadius() != 0.) { + hepRepXMLWriter->addPrimitive(); + hepRepXMLWriter->addAttValue("Radius1", tubs.GetInnerRadius()); + hepRepXMLWriter->addAttValue("Radius2", tubs.GetInnerRadius()); + hepRepXMLWriter->addPoint(vertex1.x(), vertex1.y(), vertex1.z()); + hepRepXMLWriter->addPoint(vertex2.x(), vertex2.y(), vertex2.z()); + } + } } -void G4HepRepFileSceneHandler::AddThis(const G4Trd& trd) { +void G4HepRepFileSceneHandler::AddSolid(const G4Trd& trd) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Trd& trd) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Trd& trd) called for " << trd.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(trd); // Invoke default action. + + haveVisible = false; + AddHepRepInstance("Prism", NULL); + + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) + return; + + hepRepXMLWriter->addPrimitive(); + + G4double dx1 = trd.GetXHalfLength1(); + G4double dy1 = trd.GetYHalfLength1(); + G4double dx2 = trd.GetXHalfLength2(); + G4double dy2 = trd.GetYHalfLength2(); + G4double dz = trd.GetZHalfLength(); + + G4Point3D vertex1(G4Point3D( dx1, dy1,-dz)); + G4Point3D vertex2(G4Point3D( dx1,-dy1,-dz)); + G4Point3D vertex3(G4Point3D(-dx1,-dy1,-dz)); + G4Point3D vertex4(G4Point3D(-dx1, dy1,-dz)); + G4Point3D vertex5(G4Point3D( dx2, dy2, dz)); + G4Point3D vertex6(G4Point3D( dx2,-dy2, dz)); + G4Point3D vertex7(G4Point3D(-dx2,-dy2, dz)); + G4Point3D vertex8(G4Point3D(-dx2, dy2, dz)); + + vertex1 = (*fpObjectTransformation) * vertex1; + vertex2 = (*fpObjectTransformation) * vertex2; + vertex3 = (*fpObjectTransformation) * vertex3; + vertex4 = (*fpObjectTransformation) * vertex4; + vertex5 = (*fpObjectTransformation) * vertex5; + vertex6 = (*fpObjectTransformation) * vertex6; + vertex7 = (*fpObjectTransformation) * vertex7; + vertex8 = (*fpObjectTransformation) * vertex8; + + hepRepXMLWriter->addPoint(vertex1.x(), vertex1.y(), vertex1.z()); + hepRepXMLWriter->addPoint(vertex2.x(), vertex2.y(), vertex2.z()); + hepRepXMLWriter->addPoint(vertex3.x(), vertex3.y(), vertex3.z()); + hepRepXMLWriter->addPoint(vertex4.x(), vertex4.y(), vertex4.z()); + hepRepXMLWriter->addPoint(vertex5.x(), vertex5.y(), vertex5.z()); + hepRepXMLWriter->addPoint(vertex6.x(), vertex6.y(), vertex6.z()); + hepRepXMLWriter->addPoint(vertex7.x(), vertex7.y(), vertex7.z()); + hepRepXMLWriter->addPoint(vertex8.x(), vertex8.y(), vertex8.z()); } -void G4HepRepFileSceneHandler::AddThis(const G4Trap& trap) { +void G4HepRepFileSceneHandler::AddSolid(const G4Trap& trap) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Trap& trap) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Trap& trap) called for " << trap.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(trap); // Invoke default action. + G4VSceneHandler::AddSolid(trap); // Invoke default action. } -void G4HepRepFileSceneHandler::AddThis(const G4Sphere& sphere) { +void G4HepRepFileSceneHandler::AddSolid(const G4Sphere& sphere) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Sphere& sphere) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Sphere& sphere) called for " << sphere.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(sphere); // Invoke default action. + G4VSceneHandler::AddSolid(sphere); // Invoke default action. } -void G4HepRepFileSceneHandler::AddThis(const G4Para& para) { +void G4HepRepFileSceneHandler::AddSolid(const G4Para& para) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Para& para) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Para& para) called for " << para.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(para); // Invoke default action. + G4VSceneHandler::AddSolid(para); // Invoke default action. } -void G4HepRepFileSceneHandler::AddThis(const G4Torus& torus) { +void G4HepRepFileSceneHandler::AddSolid(const G4Torus& torus) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Torus& torus) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Torus& torus) called for " << torus.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(torus); // Invoke default action. + G4VSceneHandler::AddSolid(torus); // Invoke default action. } -void G4HepRepFileSceneHandler::AddThis(const G4Polycone& polycone) { +void G4HepRepFileSceneHandler::AddSolid(const G4Polycone& polycone) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Polycone& polycone) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Polycone& polycone) called for " << polycone.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(polycone); // Invoke default action. + G4VSceneHandler::AddSolid(polycone); // Invoke default action. } -void G4HepRepFileSceneHandler::AddThis(const G4Polyhedra& polyhedra) { +void G4HepRepFileSceneHandler::AddSolid(const G4Polyhedra& polyhedra) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Polyhedra& polyhedra) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Polyhedra& polyhedra) called for " << polyhedra.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(polyhedra); // Invoke default action. + G4VSceneHandler::AddSolid(polyhedra); // Invoke default action. } -void G4HepRepFileSceneHandler::AddThis(const G4VSolid& solid) { +void G4HepRepFileSceneHandler::AddSolid(const G4VSolid& solid) { #ifdef G4HEPREPFILEDEBUG G4cout << - "G4HepRepFileSceneHandler::AddThis(const G4Solid& solid) called for " + "G4HepRepFileSceneHandler::AddSolid(const G4Solid& solid) called for " << solid.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(solid); // Invoke default action. + G4VSceneHandler::AddSolid(solid); // Invoke default action. } -void G4HepRepFileSceneHandler::AddThis (const G4VTrajectory& traj) { +void G4HepRepFileSceneHandler::AddCompound (const G4VTrajectory& traj) { #ifdef G4HEPREPFILEDEBUG - G4cout << "G4HepRepFileSceneHandler::AddThis(G4VTrajectory&) " << G4endl; + G4cout << "G4HepRepFileSceneHandler::AddCompound(G4VTrajectory&) " << G4endl; #endif - std::vector* attValues = traj.CreateAttValues(); + G4int drawingMode = ((G4TrajectoriesModel*)fpModel)->GetDrawingMode(); + + // Pointers to hold trajectory attribute values and definitions. + std::vector* rawTrajAttValues = traj.CreateAttValues(); + std::vector* trajAttValues = + new std::vector; + std::map* trajAttDefs = + new std::map; + + // Iterators to use with attribute values and definitions. std::vector::iterator iAttVal; - const std::map* attDefs = traj.GetAttDefs(); std::map::const_iterator iAttDef; G4int i; + // Get trajectory attributes and definitions in standard HepRep style + // (uniform units, 3Vectors decomposed). + if (rawTrajAttValues) { + G4bool error = G4AttCheck(rawTrajAttValues, + traj.GetAttDefs()).Standard(trajAttValues,trajAttDefs); + if (error) { + G4cout << "G4HepRepFileSceneHandler::AddCompound(traj):" + "\nERROR found during conversion to standard trajectory attributes." + << G4endl; + } +#ifdef G4HEPREPFILEDEBUG + G4cout << + "G4HepRepFileSceneHandler::AddCompound(traj): standardised attributes:\n" + << G4AttCheck(trajAttValues,trajAttDefs) << G4endl; +#endif + delete rawTrajAttValues; + } + // Open the HepRep output file if it is not already open. CheckFileOpen(); // Add the Event Data Type if it hasn't already been added. - // If this is the first trajectory or hit, add the Event Data type and define attributes. if (strcmp("Event Data",hepRepXMLWriter->prevTypeName[0])!=0) { hepRepXMLWriter->addType("Event Data",0); hepRepXMLWriter->addInstance(); @@ -260,21 +450,20 @@ void G4HepRepFileSceneHandler::AddThis (const G4VTrajectory& traj) { G4String previousName = hepRepXMLWriter->prevTypeName[1]; hepRepXMLWriter->addType("Trajectories",1); - // If this is the first trajectory of this event... + // If this is the first trajectory of this event, + // specify attribute values common to all trajectories. if (strcmp("Trajectories",previousName)!=0) { - // Specify attribute values common to all trajectories. - hepRepXMLWriter->addAttValue("DrawAs","Line"); hepRepXMLWriter->addAttValue("Layer",100); - // Specify additional attribute definitions for trajectories. // Take all Trajectory attDefs from first trajectory. // Would rather be able to get these attDefs without needing a reference from any // particular trajectory, but don't know how to do that. - if (attValues && attDefs) { - for (iAttVal = attValues->begin(); - iAttVal != attValues->end(); ++iAttVal) { - iAttDef = attDefs->find(iAttVal->GetName()); - if (iAttDef != attDefs->end()) { + // Write out trajectory attribute definitions. + if (trajAttValues && trajAttDefs) { + for (iAttVal = trajAttValues->begin(); + iAttVal != trajAttValues->end(); ++iAttVal) { + iAttDef = trajAttDefs->find(iAttVal->GetName()); + if (iAttDef != trajAttDefs->end()) { // Protect against incorrect use of Category. Anything value other than the // standard ones will be considered to be in the physics category. G4String category = iAttDef->second.GetCategory(); @@ -286,145 +475,249 @@ void G4HepRepFileSceneHandler::AddThis (const G4VTrajectory& traj) { hepRepXMLWriter->addAttDef(iAttVal->GetName(), iAttDef->second.GetDesc(), category, iAttDef->second.GetExtra()); } - } + } } - // Specify additional attribute definitions for trajectory points. // Take all TrajectoryPoint attDefs from first point of first trajectory. // Would rather be able to get these attDefs without needing a reference from any // particular point, but don't know how to do that. - // Note also that until we get the good separation of Types and Instances that comes - // in HepRep2, the user must be careful not to use the same AttName for two - // different Types. - if (traj.GetPointEntries()>0) { + if (drawingMode!=0 && traj.GetPointEntries()>0) { G4VTrajectoryPoint* aTrajectoryPoint = traj.GetPoint(0); - std::vector* pointAttValues - = aTrajectoryPoint->CreateAttValues(); - const std::map* pointAttDefs - = aTrajectoryPoint->GetAttDefs(); - if (pointAttValues && pointAttDefs) { - for (iAttVal = pointAttValues->begin(); - iAttVal != pointAttValues->end(); ++iAttVal) { - iAttDef = - pointAttDefs->find(iAttVal->GetName()); - if (iAttDef != pointAttDefs->end()) { - // Protect against incorrect use of Category. Anything value other than the - // standard ones will be considered to be in the physics category. - G4String category = iAttDef->second.GetCategory(); - if (strcmp(category,"Draw")!=0 && - strcmp(category,"Physics")!=0 && - strcmp(category,"Association")!=0 && - strcmp(category,"PickAction")!=0) - category = "Physics"; - hepRepXMLWriter->addAttDef(iAttVal->GetName(), iAttDef->second.GetDesc(), - category, iAttDef->second.GetExtra()); + + // Pointers to hold trajectory point attribute values and definitions. + std::vector* rawPointAttValues = aTrajectoryPoint->CreateAttValues(); + std::vector* pointAttValues = + new std::vector; + std::map* pointAttDefs = + new std::map; + + // Get first trajectory point's attributes and definitions in standard HepRep style + // (uniform units, 3Vectors decomposed). + if (rawPointAttValues) { + G4bool error = G4AttCheck(rawPointAttValues, + aTrajectoryPoint->GetAttDefs()).Standard(pointAttValues,pointAttDefs); + if (error) { + G4cout << "G4HepRepFileSceneHandler::AddCompound(traj):" + "\nERROR found during conversion to standard first point attributes." << G4endl; + } + + // Write out point attribute definitions. + if (pointAttValues && pointAttDefs) { + for (iAttVal = pointAttValues->begin(); + iAttVal != pointAttValues->end(); ++iAttVal) { + iAttDef = + pointAttDefs->find(iAttVal->GetName()); + if (iAttDef != pointAttDefs->end()) { + // Protect against incorrect use of Category. Anything value other than the + // standard ones will be considered to be in the physics category. + G4String category = iAttDef->second.GetCategory(); + if (strcmp(category,"Draw")!=0 && + strcmp(category,"Physics")!=0 && + strcmp(category,"Association")!=0 && + strcmp(category,"PickAction")!=0) + category = "Physics"; + hepRepXMLWriter->addAttDef(iAttVal->GetName(), iAttDef->second.GetDesc(), + category, iAttDef->second.GetExtra()); + } } } + delete rawPointAttValues; } + + // Clean up point attributes. + if (pointAttValues) + delete pointAttValues; + if (pointAttDefs) + delete pointAttDefs; } - } + } // end of special treatment for when this is the first trajectory. // For every trajectory, add an instance of Type Trajectory. hepRepXMLWriter->addInstance(); - // Set the LineColor attribute according to the particle charge. - float redness = 0.; - float greenness = 0.; - float blueness = 0.; - const G4double charge = traj.GetCharge(); - if(charge>0.) blueness = 1.; // Blue = positive. - else if(charge<0.) redness = 1.; // Red = negative. - else greenness = 1.; // Green = neutral. - hepRepXMLWriter->addAttValue("LineColor",redness,greenness,blueness); - - // Copy the current trajectory's G4AttValues to HepRepAttValues. - if (attValues && attDefs) { - for (iAttVal = attValues->begin(); - iAttVal != attValues->end(); ++iAttVal) { - std::map::const_iterator iAttDef = - attDefs->find(iAttVal->GetName()); - if (iAttDef == attDefs->end()) { - G4cout << "G4HepRepFileSceneHandler::AddThis(traj):" - "\n WARNING: no matching definition for attribute \"" - << iAttVal->GetName() << "\", value: " - << iAttVal->GetValue(); - } - else { - // Use GetDesc rather than GetName once WIRED can handle names with spaces in them. - //hepRepXMLWriter->addAttValue(iAttDef->second.GetDesc(), iAttVal->GetValue()); + // Write out the trajectory's attribute values. + if (trajAttValues) { + for (iAttVal = trajAttValues->begin(); + iAttVal != trajAttValues->end(); ++iAttVal) hepRepXMLWriter->addAttValue(iAttVal->GetName(), iAttVal->GetValue()); - } - } - delete attValues; // AttValues must be deleted after use. + delete trajAttValues; } - // Each trajectory is made of a single primitive, a polyline. - hepRepXMLWriter->addPrimitive(); + // Clean up trajectory attributes. + if (trajAttDefs) + delete trajAttDefs; - // Specify the polyline by using the trajectory points. - for (i = 0; i < traj.GetPointEntries(); i++) { - G4VTrajectoryPoint* aTrajectoryPoint = traj.GetPoint(i); - G4Point3D vertex = aTrajectoryPoint->GetPosition(); - hepRepXMLWriter->addPoint(vertex.x(), vertex.y(), vertex.z()); + // Now that we have written out all of the attributes that are based on the + // trajectory's particulars, call base class to deconstruct trajectory into a polyline. + // Note that this means color will correctly come from the polyline's VisAttribs. + if (drawingMode>=0) { + ((G4TrajectoriesModel*)fpModel)->SetDrawingMode(0); + drawingTraj = true; + G4VSceneHandler::AddCompound(traj); // Invoke default action. + drawingTraj = false; + ((G4TrajectoriesModel*)fpModel)->SetDrawingMode(drawingMode); } - // Create Trajectory Points as a subType of Trajectories. - previousName = hepRepXMLWriter->prevTypeName[2]; - hepRepXMLWriter->addType("Trajectory Points",2); + if (drawingMode!=0) { + // Create Trajectory Points as a subType of Trajectories. + // Note that we should create this heprep type even if there are no actual points. + // This allows the user to tell that points don't exist (admittedly odd) rather + // than that they were omitted by the drawing mode. + previousName = hepRepXMLWriter->prevTypeName[2]; + hepRepXMLWriter->addType("Trajectory Points",2); - // Specify attributes common to all trajectory points. - if (strcmp("Trajectory Points",previousName)!=0) { - hepRepXMLWriter->addAttValue("DrawAs","Point"); - hepRepXMLWriter->addAttValue("Layer",110); - hepRepXMLWriter->addAttValue("Visibility","False"); - } - - for (i = 0; i < traj.GetPointEntries(); i++) { - G4VTrajectoryPoint* aTrajectoryPoint = traj.GetPoint(i); - - // Each point is a separate instance of the type Trajectory Points. - hepRepXMLWriter->addInstance(); - - // Copy the current trajectory point's G4AttValues to HepRepAttValues. - std::vector* pointAttValues - = aTrajectoryPoint->CreateAttValues(); - const std::map* pointAttDefs - = aTrajectoryPoint->GetAttDefs(); - - if (pointAttValues && pointAttDefs) { - std::vector::iterator iAttVal; - for (iAttVal = pointAttValues->begin(); - iAttVal != pointAttValues->end(); ++iAttVal) { - std::map::const_iterator iAttDef = - pointAttDefs->find(iAttVal->GetName()); - if (iAttDef == pointAttDefs->end()) { - G4cout << "\nG4VTrajectory::ShowTrajectory:" - "\n WARNING: no matching definition for trajectory" - " point attribute \"" - << iAttVal->GetName() << "\", value: " - << iAttVal->GetValue(); - } - else { - //hepRepXMLWriter->addAttValue(iAttDef->second.GetDesc(), iAttVal->GetValue()); - hepRepXMLWriter->addAttValue(iAttVal->GetName(), iAttVal->GetValue()); - } - } - delete pointAttValues; // AttValues must be deleted after use. + // Specify attributes common to all trajectory points. + if (strcmp("Trajectory Points",previousName)!=0) { + hepRepXMLWriter->addAttValue("DrawAs","Point"); + hepRepXMLWriter->addAttValue("MarkSize",std::abs(drawingMode)/1000); + hepRepXMLWriter->addAttValue("Layer",110); + hepRepXMLWriter->addAttValue("Visibility","True"); } - // Each trajectory point is made of a single primitive, a point. - hepRepXMLWriter->addPrimitive(); - G4Point3D vertex = aTrajectoryPoint->GetPosition(); - hepRepXMLWriter->addPoint(vertex.x(), vertex.y(), vertex.z()); + // Loop over all points on this trajectory. + for (i = 0; i < traj.GetPointEntries(); i++) { + G4VTrajectoryPoint* aTrajectoryPoint = traj.GetPoint(i); + + // Each point is a separate instance of the type Trajectory Points. + hepRepXMLWriter->addInstance(); + + // Pointers to hold trajectory point attribute values and definitions. + std::vector* rawPointAttValues = aTrajectoryPoint->CreateAttValues(); + std::vector* pointAttValues = + new std::vector; + std::map* pointAttDefs = + new std::map; + + // Get trajectory point attributes and definitions in standard HepRep style + // (uniform units, 3Vectors decomposed). + if (rawPointAttValues) { + G4bool error = G4AttCheck(rawPointAttValues, + aTrajectoryPoint->GetAttDefs()).Standard(pointAttValues,pointAttDefs); + if (error) { + G4cout << "G4HepRepFileSceneHandler::AddCompound(traj):" + "\nERROR found during conversion to standard point attributes." << G4endl; + } + + // Write out point attribute values. + if (pointAttValues) { + std::vector::iterator iAttVal; + for (iAttVal = pointAttValues->begin(); + iAttVal != pointAttValues->end(); ++iAttVal) + hepRepXMLWriter->addAttValue(iAttVal->GetName(), iAttVal->GetValue()); + delete pointAttValues; + } + delete rawPointAttValues; + } + + // Clean up point attributes. + if (pointAttDefs) + delete pointAttDefs; + + // Each trajectory point is made of a single primitive, a point. + hepRepXMLWriter->addPrimitive(); + G4Point3D vertex = aTrajectoryPoint->GetPosition(); + hepRepXMLWriter->addPoint(vertex.x(), vertex.y(), vertex.z()); + } } } -void G4HepRepFileSceneHandler::AddThis (const G4VHit& hit) { +void G4HepRepFileSceneHandler::AddCompound (const G4VHit& hit) { #ifdef G4HEPREPFILEDEBUG - G4cout << "G4HepRepFileSceneHandler::AddThis(G4VHit&) " << G4endl; + G4cout << "G4HepRepFileSceneHandler::AddCompound(G4VHit&) " << G4endl; #endif - G4VSceneHandler::AddThis(hit); // Invoke default action. + + // Pointers to hold hit attribute values and definitions. + std::vector* rawHitAttValues = hit.CreateAttValues(); + std::vector* hitAttValues = + new std::vector; + std::map* hitAttDefs = + new std::map; + + // Iterators to use with attribute values and definitions. + std::vector::iterator iAttVal; + std::map::const_iterator iAttDef; + + // Get hit attributes and definitions in standard HepRep style + // (uniform units, 3Vectors decomposed). + if (rawHitAttValues) { + G4bool error = G4AttCheck(rawHitAttValues, + hit.GetAttDefs()).Standard(hitAttValues,hitAttDefs); + if (error) { + G4cout << "G4HepRepFileSceneHandler::AddCompound(hit):" + "\nERROR found during conversion to standard hit attributes." + << G4endl; + } +#ifdef G4HEPREPFILEDEBUG + G4cout << + "G4HepRepFileSceneHandler::AddCompound(hit): standardised attributes:\n" + << G4AttCheck(hitAttValues,hitAttDefs) << G4endl; +#endif + delete rawHitAttValues; + } + + // Open the HepRep output file if it is not already open. + CheckFileOpen(); + + // Add the Event Data Type if it hasn't already been added. + if (strcmp("Event Data",hepRepXMLWriter->prevTypeName[0])!=0) { + hepRepXMLWriter->addType("Event Data",0); + hepRepXMLWriter->addInstance(); + } + + // Add the Hits Type. + G4String previousName = hepRepXMLWriter->prevTypeName[1]; + hepRepXMLWriter->addType("Hits",1); + + // If this is the first hit of this event, + // specify attribute values common to all hits. + if (strcmp("Hits",previousName)!=0) { + hepRepXMLWriter->addAttValue("Layer",130); + + // Take all Hit attDefs from first hit. + // Would rather be able to get these attDefs without needing a reference from any + // particular hit, but don't know how to do that. + // Write out hit attribute definitions. + if (hitAttValues && hitAttDefs) { + for (iAttVal = hitAttValues->begin(); + iAttVal != hitAttValues->end(); ++iAttVal) { + iAttDef = hitAttDefs->find(iAttVal->GetName()); + if (iAttDef != hitAttDefs->end()) { + // Protect against incorrect use of Category. Anything value other than the + // standard ones will be considered to be in the physics category. + G4String category = iAttDef->second.GetCategory(); + if (strcmp(category,"Draw")!=0 && + strcmp(category,"Physics")!=0 && + strcmp(category,"Association")!=0 && + strcmp(category,"PickAction")!=0) + category = "Physics"; + hepRepXMLWriter->addAttDef(iAttVal->GetName(), iAttDef->second.GetDesc(), + category, iAttDef->second.GetExtra()); + } + } + } + } // end of special treatment for when this is the first hit. + + // For every hit, add an instance of Type Hit. + hepRepXMLWriter->addInstance(); + + // Write out the hit's attribute values. + if (hitAttValues) { + for (iAttVal = hitAttValues->begin(); + iAttVal != hitAttValues->end(); ++iAttVal) + hepRepXMLWriter->addAttValue(iAttVal->GetName(), iAttVal->GetValue()); + delete hitAttValues; + } + + // Clean up hit attributes. + if (hitAttDefs) + delete hitAttDefs; + + // Now that we have written out all of the attributes that are based on the + // hit's particulars, call base class to deconstruct hit into a primitives. + drawingHit = true; + G4VSceneHandler::AddCompound(hit); // Invoke default action. + drawingHit = false; } @@ -437,7 +730,11 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4Polyline& polyline) { PrintThings(); #endif - AddHepRepInstance("Line",polyline); + haveVisible = true; + AddHepRepInstance("Line", polyline); + + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) + return; hepRepXMLWriter->addPrimitive(); @@ -457,7 +754,11 @@ void G4HepRepFileSceneHandler::AddPrimitive (const G4Polymarker& line) { PrintThings(); #endif - AddHepRepInstance("Point",line); + haveVisible = true; + AddHepRepInstance("Point", line); + + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) + return; hepRepXMLWriter->addAttValue("MarkName", "Dot"); hepRepXMLWriter->addAttValue("MarkSize", 4); @@ -496,7 +797,11 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4Circle& circle) { PrintThings(); #endif - AddHepRepInstance("Point",circle); + haveVisible = true; + AddHepRepInstance("Point", circle); + + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) + return; hepRepXMLWriter->addAttValue("MarkName", "Dot"); hepRepXMLWriter->addAttValue("MarkSize", 4); @@ -517,7 +822,11 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4Square& square) { PrintThings(); #endif - AddHepRepInstance("Point",square); + haveVisible = true; + AddHepRepInstance("Point", square); + + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) + return; hepRepXMLWriter->addAttValue("MarkName", "Square"); hepRepXMLWriter->addAttValue("MarkSize", 4); @@ -537,7 +846,11 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) { PrintThings(); #endif - AddHepRepInstance("Polygon",polyhedron); + haveVisible = true; + AddHepRepInstance("Polygon", polyhedron); + + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) + return; if(polyhedron.GetNoFacets()==0)return; @@ -591,14 +904,18 @@ void G4HepRepFileSceneHandler::AddHepRepInstance(const char* primName, // be falsely false if no geometry has yet been drawn. // So I test on both !fpCurrentPV (means no geometry has yet been drawn) // and fReadyForTransients. - if (!fpCurrentPV || fReadyForTransients) { + if (drawingTraj || drawingHit) { + // In this case, HepRep type, layer and instance were already created + // in the AddCompound method. + } + else if (!fpCurrentPV || fReadyForTransients) { if (strcmp("Event Data",hepRepXMLWriter->prevTypeName[0])!=0) { hepRepXMLWriter->addType("Event Data",0); hepRepXMLWriter->addInstance(); } - // Applications have the option of either calling AddThis(G4VTrajectory&) and - // AddThis(G4VHits&), or of just decomposing these into simpler primitives. + // Applications have the option of either calling AddSolid(G4VTrajectory&) and + // AddSolid(G4VHits&), or of just decomposing these into simpler primitives. // In the former case, drawing will be handled above and will include setting of // physics attributes. // In the latter case, which is an older style of working, we end up drawing the @@ -660,6 +977,9 @@ void G4HepRepFileSceneHandler::AddHepRepInstance(const char* primName, hepRepXMLWriter->addInstance(); } + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0) && cullInvisibleObjects) + return; + // Additional attributes. hepRepXMLWriter->addAttValue("Layer",hepRepXMLWriter->typeDepth); hepRepXMLWriter->addAttValue("LVol", fpCurrentLV->GetName()); @@ -675,13 +995,35 @@ void G4HepRepFileSceneHandler::AddHepRepInstance(const char* primName, hepRepXMLWriter->addAttValue("DrawAs",primName); - // Handle color attribute, avoiding drawing anything black on black. - G4Colour colour = GetColour(visible); - float redness = colour.GetRed(); - float greenness = colour.GetGreen(); - float blueness = colour.GetBlue(); + // Handle color attribute. + float redness; + float greenness; + float blueness; - if (redness==0. && greenness==0. && blueness==0.) { + if (fpVisAttribs || haveVisible) { + G4Colour colour; + + if (fpVisAttribs) + colour = fpVisAttribs->GetColour(); + else + colour = GetColour(visible); + + redness = colour.GetRed(); + greenness = colour.GetGreen(); + blueness = colour.GetBlue(); + + // Avoiding drawing anything black on black. + if (redness==0. && greenness==0. && blueness==0.) { + redness = 1.; + greenness = 1.; + blueness = 1.; + } + } else { +#ifdef G4HEPREPFILEDEBUG + G4cout << + "G4HepRepFileSceneHandler::AddHepRepInstance using default colour." + << G4endl; +#endif redness = 1.; greenness = 1.; blueness = 1.; @@ -693,8 +1035,7 @@ void G4HepRepFileSceneHandler::AddHepRepInstance(const char* primName, hepRepXMLWriter->addAttValue("LineColor",redness,greenness,blueness); // Handle visibility attribute. - const G4VisAttributes* visAtts = visible.GetVisAttributes(); - if (visAtts && (visAtts->IsVisible()==0)) + if (fpVisAttribs && (fpVisAttribs->IsVisible()==0)) hepRepXMLWriter->addAttValue("Visibility",false); else hepRepXMLWriter->addAttValue("Visibility",true); @@ -710,15 +1051,16 @@ void G4HepRepFileSceneHandler::CheckFileOpen() { if (!hepRepXMLWriter->isOpen) { char* newFileSpec; - newFileSpec = new char [100]; + newFileSpec = new char [256]; int length; - length = sprintf (newFileSpec, "%s%d%s","G4Data",fileCounter,".heprep"); + + if (fileOverwrite) + length = sprintf (newFileSpec, "%s%s%s",fileDir,fileName,".heprep"); + else + length = sprintf (newFileSpec, "%s%s%d%s",fileDir,fileName,fileCounter,".heprep"); + G4cout << "HepRepFile writing to " << newFileSpec << G4endl; + hepRepXMLWriter->open(newFileSpec); -#ifdef G4HEPREPFILEDEBUG - G4cout << - "G4HepRepFileSceneHandler::CheckFileOpen opened file " << fileCounter - << G4endl; -#endif fileCounter++; hepRepXMLWriter->addAttDef("LVol", "Logical Volume", "Physics",""); @@ -734,11 +1076,14 @@ void G4HepRepFileSceneHandler::CheckFileOpen() { } -void G4HepRepFileSceneHandler::ClearTransientStore () { - G4VSceneHandler::ClearTransientStore (); +void G4HepRepFileSceneHandler::ClearTransientStore() { + G4VSceneHandler::ClearTransientStore(); + // This is typically called after an update and before drawing hits + // of the next event. To simulate the clearing of "transients" + // (hits, etc.) the detector is redrawn... if (fpViewer) { - fpViewer -> SetView (); - fpViewer -> ClearView (); - fpViewer -> DrawView (); + fpViewer -> SetView(); + fpViewer -> ClearView(); + fpViewer -> DrawView(); } } diff --git a/source/visualization/HepRep/src/G4HepRepFileViewer.cc b/source/visualization/HepRep/src/G4HepRepFileViewer.cc index 13173c1115..881da725f5 100644 --- a/source/visualization/HepRep/src/G4HepRepFileViewer.cc +++ b/source/visualization/HepRep/src/G4HepRepFileViewer.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRepFileViewer.cc,v 1.12 2004/03/15 08:00:22 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4HepRepFileViewer.hh" diff --git a/source/visualization/HepRep/src/G4HepRepFileXMLWriter.cc b/source/visualization/HepRep/src/G4HepRepFileXMLWriter.cc index f648d81403..8ba923fe2b 100644 --- a/source/visualization/HepRep/src/G4HepRepFileXMLWriter.cc +++ b/source/visualization/HepRep/src/G4HepRepFileXMLWriter.cc @@ -22,7 +22,7 @@ // //-------------------------------------------------------------------------- // File and Version Information: -// $Id: G4HepRepFileXMLWriter.cc,v 1.1 2003/07/12 19:48:15 duns Exp $ +// $Id: G4HepRepFileXMLWriter.cc,v 1.2 2005/05/28 18:13:23 perl Exp $ // // Description: // Create a HepRep XML File (HepRep version 1). @@ -295,7 +295,7 @@ void G4HepRepFileXMLWriter::open(const char* fileSpec) if (fout.good()) { fout << "" << G4endl; - fout << "" << G4endl; isOpen = true; diff --git a/source/visualization/HepRep/src/G4HepRepMessenger.cc b/source/visualization/HepRep/src/G4HepRepMessenger.cc index 54ff7ecb11..5ae9de4acc 100644 --- a/source/visualization/HepRep/src/G4HepRepMessenger.cc +++ b/source/visualization/HepRep/src/G4HepRepMessenger.cc @@ -20,14 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HepRepMessenger.cc,v 1.6 2004/05/27 05:55:20 duns Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4HepRepMessenger.cc,v 1.9 2005/06/03 00:03:36 duns Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4HepRepMessenger.hh" G4HepRepMessenger::G4HepRepMessenger() : suffix (""), - geometry(true) { + geometry(true), + solids(true), + invisibles(true) { heprepDirectory = new G4UIdirectory("/vis/heprep/"); heprepDirectory->SetGuidance("HepRep commands."); @@ -51,19 +53,28 @@ G4HepRepMessenger::G4HepRepMessenger() : addPointAttributesCommand->SetDefaultValue(false); addPointAttributesCommand->AvailableForStates(G4State_Idle); - setCoordinateSystemCommand = new G4UIcmdWithAString("/vis/heprep/setCoordinateSystem", this); - setCoordinateSystemCommand->SetGuidance("Sets the prefered Coordinate System (e.g. \"xyz\" or \"zxy\"."); - setCoordinateSystemCommand->SetParameterName("coordinateSystem",false); - setCoordinateSystemCommand->SetDefaultValue("xyz"); - setCoordinateSystemCommand->AvailableForStates(G4State_Idle); + useSolidsCommand = new G4UIcmdWithABool("/vis/heprep/useSolids", this); + useSolidsCommand->SetGuidance("Use HepRep Solids, rather than Geant4 Primitives."); + useSolidsCommand->SetParameterName("flag",false); + useSolidsCommand->SetDefaultValue(true); + useSolidsCommand->AvailableForStates(G4State_Idle); + +/* Not Enabled Yet + writeInvisiblesCommand = new G4UIcmdWithABool("/vis/heprep/writeInvisibles", this); + writeInvisiblesCommand->SetGuidance("Write invisible objects."); + writeInvisiblesCommand->SetParameterName("flag",false); + writeInvisiblesCommand->SetDefaultValue(true); + writeInvisiblesCommand->AvailableForStates(G4State_Idle); +*/ } G4HepRepMessenger::~G4HepRepMessenger() { delete setEventNumberSuffixCommand; delete appendGeometryCommand; delete addPointAttributesCommand; + delete useSolidsCommand; +// delete writeInvisiblesCommand; delete heprepDirectory; - delete setCoordinateSystemCommand; } G4String G4HepRepMessenger::GetCurrentValue(G4UIcommand * command) { @@ -73,8 +84,10 @@ G4String G4HepRepMessenger::GetCurrentValue(G4UIcommand * command) { return appendGeometryCommand->ConvertToString(geometry); } else if (command==addPointAttributesCommand) { return addPointAttributesCommand->ConvertToString(pointAttributes); - } else if (command==setCoordinateSystemCommand) { - return coordinateSystem; + } else if (command==useSolidsCommand) { + return useSolidsCommand->ConvertToString(solids); +// } else if (command==writeInvisiblesCommand) { +// return writeInvisiblesCommand->ConvertToString(invisibles); } else { return ""; } @@ -87,9 +100,11 @@ void G4HepRepMessenger::SetNewValue(G4UIcommand * command, G4String newValue) { geometry = appendGeometryCommand->GetNewBoolValue(newValue); } else if (command==addPointAttributesCommand) { pointAttributes = addPointAttributesCommand->GetNewBoolValue(newValue); - } else if (command==setCoordinateSystemCommand) { - coordinateSystem = newValue; - } + } else if (command==useSolidsCommand) { + solids = useSolidsCommand->GetNewBoolValue(newValue); +// } else if (command==writeInvisiblesCommand) { +// invisibles = writeInvisiblesCommand->GetNewBoolValue(newValue); + } } G4String G4HepRepMessenger::getEventNumberSuffix() { @@ -104,6 +119,11 @@ G4bool G4HepRepMessenger::addPointAttributes() { return pointAttributes; } -G4String G4HepRepMessenger::getCoordinateSystem() { - return coordinateSystem; +G4bool G4HepRepMessenger::useSolids() { + return solids; } + +G4bool G4HepRepMessenger::writeInvisibles() { + return invisibles; +} + diff --git a/source/visualization/HepRep/src/G4HepRepSceneHandler.cc b/source/visualization/HepRep/src/G4HepRepSceneHandler.cc index e97c4e8a58..2c229b6a4f 100644 --- a/source/visualization/HepRep/src/G4HepRepSceneHandler.cc +++ b/source/visualization/HepRep/src/G4HepRepSceneHandler.cc @@ -20,12 +20,12 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HepRepSceneHandler.cc,v 1.78 2004/12/07 23:40:58 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4HepRepSceneHandler.cc,v 1.90 2005/06/03 00:03:36 duns Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /** - * @author Mark Donszelmann, Joseph Perl + * @author Mark Donszelmann */ #include @@ -65,9 +65,10 @@ #include "G4Material.hh" #include "G4AttDef.hh" #include "G4AttValue.hh" +#include "G4AttCheck.hh" -// JHepRep -#include "XMLHepRepFactory.h" +// CHepRep +#include "cheprep/XMLHepRepFactory.h" // This #include "G4HepRep.hh" @@ -76,16 +77,17 @@ using namespace HEPREP; +using namespace cheprep; using namespace std; -G4int G4HepRepSceneHandler::sceneCount = 0; +G4int G4HepRepSceneHandler::sceneIdCount = 0; //#define LDEBUG 1 //#define SDEBUG 1 //#define PDEBUG 1 G4HepRepSceneHandler::G4HepRepSceneHandler (G4VGraphicsSystem& system, G4HepRepMessenger& heprepMessenger, const G4String& name) - : G4VSceneHandler (system, sceneCount++, name), + : G4VSceneHandler (system, sceneIdCount++, name), messenger (heprepMessenger), geometryLayer ("Geometry"), eventLayer ("Event"), @@ -99,7 +101,12 @@ G4HepRepSceneHandler::G4HepRepSceneHandler (G4VGraphicsSystem& system, G4HepRepM eventNumber (1), eventNumberWidth (-1), extension (""), + writeBinary (false), + writeZip (false), + writeGZ (false), writeMultipleFiles (false), + currentHit (NULL), + currentTrack (NULL), _heprep (NULL), _heprepGeometry (NULL) { @@ -147,6 +154,9 @@ void G4HepRepSceneHandler::open(G4String name) { eventNumberPrefix = ""; eventNumberSuffix = ""; extension = ""; + writeBinary = false; + writeZip = false; + writeGZ = false; writeMultipleFiles = false; eventNumber = 0; eventNumberWidth = 0; @@ -160,6 +170,9 @@ void G4HepRepSceneHandler::open(G4String name) { eventNumberPrefix = ""; eventNumberSuffix = ""; extension = ""; + writeBinary = false; + writeZip = false; + writeGZ = false; writeMultipleFiles = false; eventNumber = 0; eventNumberWidth = 0; @@ -170,8 +183,9 @@ void G4HepRepSceneHandler::open(G4String name) { if (eventNumberWidth < 0) { // derive filename(s) // check for extensions - const unsigned int numberOfExtensions = 4; - string ext[numberOfExtensions] = {".heprep", ".heprep.xml", ".heprep.zip", ".heprep.gz"}; + const unsigned int numberOfExtensions = 8; + string ext[numberOfExtensions] = {".heprep", ".heprep.xml", ".heprep.zip", ".heprep.gz", + ".bheprep", ".bheprep.xml", ".bheprep.zip", ".bheprep.gz"}; unsigned int i=0; while (i < numberOfExtensions) { int dot = name.size() - ext[i].size(); @@ -182,10 +196,48 @@ void G4HepRepSceneHandler::open(G4String name) { if (i != numberOfExtensions) { extension = ext[i]; + writeBinary = i >= (numberOfExtensions/2); + writeZip = (i == 2) || (i == 6); + writeGZ = (i == 3) || (i == 7); + int dot = name.length() - extension.length(); baseName = (dot >= 0) ? name.substr(0, dot) : ""; - } else { + +#ifndef G4LIB_USE_ZLIB + if (writeGZ) { + cerr << endl; + cerr << "WARNING: the .gz output file you are creating will be a plain file," << endl; + cerr << " since compression support (ZLIB) was not compiled into the Geant4." << endl; + cerr << " To avoid confusion with real gz files, the output filename has been" << endl; + cerr << " extended with the name '.no-gz'." << endl; + cerr << " A plain heprep or bheprep file can be fairly large." << endl; + } + if (writeZip) { + cerr << endl; + cerr << "WARNING: the .zip output file you are creating will not be compressed," << endl; + cerr << " since compression support (ZLIB) was not compiled into the Geant4." << endl; + cerr << " A zip file containing non-compressed heprep or bheprep files can" << endl; + cerr << " be fairly large." << endl; + } + if (writeGZ || writeZip) { + cerr << "SOLUTION: To add compression support using ZLIB, you need to:" << endl; + cerr << " 1. Define G4LIB_USE_ZLIB and recompile the visualization category." << endl; + cerr << " 2. Optionally define G4_LIB_BUILD_ZLIB if your system does not have" << endl; + cerr << " zlib installed (e.g. WIN32-VC)." << endl; + cerr << " 3. Relink your application code." << endl; + cerr << endl; + } + if (writeGZ) { + extension = extension + ".no-gz"; + writeGZ = false; + } +#endif // G4LIB_USE_ZLIB + } else { + // Default for no extension extension = ".heprep.zip"; + writeBinary = false; + writeZip = true; + writeGZ = false; baseName = name; } @@ -292,7 +344,7 @@ bool G4HepRepSceneHandler::closeHepRep(bool final) { if (writeMultipleFiles) { sprintf(name, "%s%s%s#%s", baseName.c_str(), "-geometry", extension.c_str(), "G4GeometryData"); } else { - sprintf(name, "%s%s#%s", "geometry", ".heprep", "G4GeometryData"); + sprintf(name, "%s%s#%s", "geometry", (writeBinary ? ".bheprep" : ".heprep"), "G4GeometryData"); } getEventInstanceTree()->addInstanceTree(factory->createHepRepTreeID(name, "1.0")); } @@ -325,9 +377,13 @@ bool G4HepRepSceneHandler::closeHepRep(bool final) { openFile(G4String(fileName)); } - if (!writeMultipleFiles) writer->addProperty("RecordLoop.ignore", "geometry.heprep"); + char name[128]; + sprintf(name, "%s%s", "geometry", (writeBinary ? ".bheprep" : ".heprep")); + if (!writeMultipleFiles) { + writer->addProperty("RecordLoop.ignore", name); + } - writer->write(_heprepGeometry, G4String("geometry.heprep")); + writer->write(_heprepGeometry, G4String(name)); delete _heprepGeometry; _heprepGeometry = NULL; @@ -351,12 +407,12 @@ bool G4HepRepSceneHandler::closeHepRep(bool final) { // write out the heprep // NOTE: does not work on Solaris 5.2 and Linux 2.95.2 // stringstream eventName; -// eventName << "event-" << setw(eventNumberWidth) << setfill('0') << eventNumber << ".heprep"; +// eventName << "event-" << setw(eventNumberWidth) << setfill('0') << eventNumber << (writeBinary ? ".bheprep" : ".heprep"); // writer->write(_heprep, eventName.str()); // Use instead: char eventName[128]; char eventFormat[128]; - sprintf(eventFormat, "%s%d%s", "event-%0", eventNumberWidth, "d.heprep"); + sprintf(eventFormat, "%s%d%s%s", "event-%0", eventNumberWidth, "d", (writeBinary ? ".bheprep" : ".heprep")); sprintf(eventName, eventFormat, eventNumber); writer->write(_heprep, G4String(eventName)); @@ -391,7 +447,7 @@ void G4HepRepSceneHandler::close() { void G4HepRepSceneHandler::openFile(G4String name) { out = new ofstream(name.c_str(), std::ios::out | std::ios::binary ); - writer = factory->createHepRepWriter(out, extension == ".heprep.zip", (extension == ".heprep.zip") || (extension == ".heprep.gz")); + writer = factory->createHepRepWriter(out, writeZip, writeZip || writeGZ); } void G4HepRepSceneHandler::closeFile() { @@ -427,15 +483,260 @@ void G4HepRepSceneHandler::EndModeling() { G4VSceneHandler::EndModeling(); } +void G4HepRepSceneHandler::AddSolid(const G4Box& box) { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::AddSolid(const G4Box& box)" << endl; +#endif + + if (dontWrite()) return; + + if (!messenger.useSolids()) { + G4VSceneHandler::AddSolid(box); + return; + } + + G4double dx = box.GetXHalfLength(); + G4double dy = box.GetYHalfLength(); + G4double dz = box.GetZHalfLength(); + + G4Point3D vertex1(G4Point3D( dx, dy,-dz)); + G4Point3D vertex2(G4Point3D( dx,-dy,-dz)); + G4Point3D vertex3(G4Point3D(-dx,-dy,-dz)); + G4Point3D vertex4(G4Point3D(-dx, dy,-dz)); + G4Point3D vertex5(G4Point3D( dx, dy, dz)); + G4Point3D vertex6(G4Point3D( dx,-dy, dz)); + G4Point3D vertex7(G4Point3D(-dx,-dy, dz)); + G4Point3D vertex8(G4Point3D(-dx, dy, dz)); + + vertex1 = (transform) * vertex1; + vertex2 = (transform) * vertex2; + vertex3 = (transform) * vertex3; + vertex4 = (transform) * vertex4; + vertex5 = (transform) * vertex5; + vertex6 = (transform) * vertex6; + vertex7 = (transform) * vertex7; + vertex8 = (transform) * vertex8; + + HepRepInstance* instance = getGeometryOrEventInstance(getCalHitType()); + addAttributes(instance, getCalHitType()); + + setAttribute(instance, "DrawAs", G4String("Prism")); + + setVisibility(instance, box); + setLine(instance, box); + setColor(instance, getColorFor(box)); + + factory->createHepRepPoint(instance, vertex1.x(), vertex1.y(), vertex1.z()); + factory->createHepRepPoint(instance, vertex2.x(), vertex2.y(), vertex2.z()); + factory->createHepRepPoint(instance, vertex3.x(), vertex3.y(), vertex3.z()); + factory->createHepRepPoint(instance, vertex4.x(), vertex4.y(), vertex4.z()); + factory->createHepRepPoint(instance, vertex5.x(), vertex5.y(), vertex5.z()); + factory->createHepRepPoint(instance, vertex6.x(), vertex6.y(), vertex6.z()); + factory->createHepRepPoint(instance, vertex7.x(), vertex7.y(), vertex7.z()); + factory->createHepRepPoint(instance, vertex8.x(), vertex8.y(), vertex8.z()); +} + + +void G4HepRepSceneHandler::AddSolid(const G4Cons& cons) { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::AddSolid(const G4Cons& cons)" << endl; +#endif + + if (dontWrite()) return; + + if (!messenger.useSolids() || (cons.GetDeltaPhiAngle() < twopi)) { + G4VSceneHandler::AddSolid(cons); + return; + } + + G4Point3D vertex1(G4Point3D( 0., 0., cons.GetZHalfLength())); + G4Point3D vertex2(G4Point3D( 0., 0.,-cons.GetZHalfLength())); + + vertex1 = (transform) * vertex1; + vertex2 = (transform) * vertex2; + + HepRepInstance* instance = getGeometryInstance(fpCurrentLV, fCurrentDepth); + setAttribute(instance, "DrawAs", G4String("Cylinder")); + + setVisibility(instance, cons); + setLine(instance, cons); + setColor(instance, getColorFor(cons)); + + HepRepType* type = getGeometryType(fpCurrentLV->GetName(), fCurrentDepth); + + // Outer cylinder. + HepRepInstance* outer = factory->createHepRepInstance(instance, type); + outer->addAttValue("pickParent",true); + outer->addAttValue("showParentAttributes",true); + + HepRepPoint* op1 = factory->createHepRepPoint(outer, vertex1.x(), vertex1.y(), vertex1.z()); + op1->addAttValue("Radius",cons.GetOuterRadiusMinusZ()); + + HepRepPoint* op2 = factory->createHepRepPoint(outer, vertex2.x(), vertex2.y(), vertex2.z()); + op2->addAttValue("Radius",cons.GetOuterRadiusPlusZ()); + + // Inner cylinder. + HepRepInstance* inner = factory->createHepRepInstance(instance, type); + inner->addAttValue("pickParent",true); + inner->addAttValue("showParentAttributes",true); + + HepRepPoint* ip1 = factory->createHepRepPoint(inner, vertex1.x(), vertex1.y(), vertex1.z()); + ip1->addAttValue("Radius",cons.GetInnerRadiusMinusZ()); + + HepRepPoint* ip2 = factory->createHepRepPoint(inner, vertex2.x(), vertex2.y(), vertex2.z()); + ip2->addAttValue("Radius",cons.GetInnerRadiusPlusZ()); +} + + +void G4HepRepSceneHandler::AddSolid(const G4Tubs& tubs) { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::AddSolid(const G4Tubs& tubs)" << endl; +#endif + + if (dontWrite()) return; + + if (!messenger.useSolids() || (tubs.GetDeltaPhiAngle() < twopi)) { + G4VSceneHandler::AddSolid(tubs); + return; + } + + G4Point3D vertex1(G4Point3D( 0., 0., tubs.GetZHalfLength())); + G4Point3D vertex2(G4Point3D( 0., 0.,-tubs.GetZHalfLength())); + + vertex1 = (transform) * vertex1; + vertex2 = (transform) * vertex2; + + HepRepInstance* instance = getGeometryInstance(fpCurrentLV, fCurrentDepth); + setAttribute(instance, "DrawAs", G4String("Cylinder")); + + setVisibility(instance, tubs); + setLine(instance, tubs); + setColor(instance, getColorFor(tubs)); + + HepRepType* type = getGeometryType(fpCurrentLV->GetName(), fCurrentDepth); + + // Outer cylinder. + HepRepInstance* outer = factory->createHepRepInstance(instance, type); + outer->addAttValue("Radius",tubs.GetOuterRadius()); + outer->addAttValue("pickParent",true); + outer->addAttValue("showParentAttributes",true); + factory->createHepRepPoint(outer, vertex1.x(), vertex1.y(), vertex1.z()); + factory->createHepRepPoint(outer, vertex2.x(), vertex2.y(), vertex2.z()); + + // Inner cylinder. + if (tubs.GetInnerRadius() > 0.) { + HepRepInstance* inner = factory->createHepRepInstance(instance, type); + inner->addAttValue("Radius",tubs.GetInnerRadius()); + inner->addAttValue("pickParent",true); + inner->addAttValue("showParentAttributes",true); + factory->createHepRepPoint(inner, vertex1.x(), vertex1.y(), vertex1.z()); + factory->createHepRepPoint(inner, vertex2.x(), vertex2.y(), vertex2.z()); + } +} + + +void G4HepRepSceneHandler::AddSolid(const G4Trd& trd) { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::AddSolid(const G4Trd& trd)" << endl; +#endif + if (dontWrite()) return; + + if (!messenger.useSolids()) { + G4VSceneHandler::AddSolid(trd); + return; + } + + G4double dx1 = trd.GetXHalfLength1(); + G4double dy1 = trd.GetYHalfLength1(); + G4double dx2 = trd.GetXHalfLength2(); + G4double dy2 = trd.GetYHalfLength2(); + G4double dz = trd.GetZHalfLength(); + + G4Point3D vertex1(G4Point3D( dx1, dy1,-dz)); + G4Point3D vertex2(G4Point3D( dx1,-dy1,-dz)); + G4Point3D vertex3(G4Point3D(-dx1,-dy1,-dz)); + G4Point3D vertex4(G4Point3D(-dx1, dy1,-dz)); + G4Point3D vertex5(G4Point3D( dx2, dy2, dz)); + G4Point3D vertex6(G4Point3D( dx2,-dy2, dz)); + G4Point3D vertex7(G4Point3D(-dx2,-dy2, dz)); + G4Point3D vertex8(G4Point3D(-dx2, dy2, dz)); + + vertex1 = (transform) * vertex1; + vertex2 = (transform) * vertex2; + vertex3 = (transform) * vertex3; + vertex4 = (transform) * vertex4; + vertex5 = (transform) * vertex5; + vertex6 = (transform) * vertex6; + vertex7 = (transform) * vertex7; + vertex8 = (transform) * vertex8; + + HepRepInstance* instance = getGeometryOrEventInstance(getCalHitType()); + + addAttributes(instance, getCalHitType()); + + setAttribute(instance, "DrawAs", G4String("Prism")); + + setVisibility(instance, trd); + setLine(instance, trd); + setColor(instance, getColorFor(trd)); + + factory->createHepRepPoint(instance, vertex1.x(), vertex1.y(), vertex1.z()); + factory->createHepRepPoint(instance, vertex2.x(), vertex2.y(), vertex2.z()); + factory->createHepRepPoint(instance, vertex3.x(), vertex3.y(), vertex3.z()); + factory->createHepRepPoint(instance, vertex4.x(), vertex4.y(), vertex4.z()); + factory->createHepRepPoint(instance, vertex5.x(), vertex5.y(), vertex5.z()); + factory->createHepRepPoint(instance, vertex6.x(), vertex6.y(), vertex6.z()); + factory->createHepRepPoint(instance, vertex7.x(), vertex7.y(), vertex7.z()); + factory->createHepRepPoint(instance, vertex8.x(), vertex8.y(), vertex8.z()); +} + +void G4HepRepSceneHandler::AddSolid (const G4Trap& trap) { + if (dontWrite()) return; + G4VSceneHandler::AddSolid (trap); +} + +void G4HepRepSceneHandler::AddSolid (const G4Sphere& sphere) { + if (dontWrite()) return; + G4VSceneHandler::AddSolid (sphere); +} + +void G4HepRepSceneHandler::AddSolid (const G4Para& para) { + if (dontWrite()) return; + G4VSceneHandler::AddSolid (para); +} + +void G4HepRepSceneHandler::AddSolid (const G4Torus& torus) { + if (dontWrite()) return; + G4VSceneHandler::AddSolid (torus); +} + +void G4HepRepSceneHandler::AddSolid (const G4Polycone& polycone) { + if (dontWrite()) return; + G4VSceneHandler::AddSolid (polycone); +} + +void G4HepRepSceneHandler::AddSolid (const G4Polyhedra& polyhedra) { + if (dontWrite()) return; + G4VSceneHandler::AddSolid (polyhedra); +} + +void G4HepRepSceneHandler::AddSolid (const G4VSolid& solid) { + if (dontWrite()) return; + G4VSceneHandler::AddSolid(solid); +} + void G4HepRepSceneHandler::AddPrimitive (const G4Polyline& line) { #ifdef PDEBUG cout << "G4HepRepSceneHandler::AddPrimitive(G4Polyline&) " << line.size() << endl; #endif + if (dontWrite()) return; HepRepInstance* instance = factory->createHepRepInstance(getEventInstance(), getTrajectoryType()); + addAttributes(instance, getTrajectoryType()); + setColor(instance, GetColor(line)); setVisibility(instance, line); @@ -454,9 +755,12 @@ void G4HepRepSceneHandler::AddPrimitive (const G4Polymarker& line) { #ifdef PDEBUG cout << "G4HepRepSceneHandler::AddPrimitive(G4Polymarker&) " << line.size() << endl; #endif + if (dontWrite()) return; HepRepInstance* instance = factory->createHepRepInstance(getEventInstance(), getHitType()); + addAttributes(instance, getHitType()); + setColor(instance, GetColor(line)); setVisibility(instance, line); @@ -489,9 +793,12 @@ void G4HepRepSceneHandler::AddPrimitive (const G4Circle& circle) { #ifdef PDEBUG cout << "G4HepRepSceneHandler::AddPrimitive(G4Circle&) " << endl; #endif + if (dontWrite()) return; HepRepInstance* instance = factory->createHepRepInstance(getEventInstance(), getHitType()); + addAttributes(instance, getHitType()); + G4Point3D center = transform * circle.GetPosition(); setColor (instance, GetColor(circle)); @@ -509,18 +816,17 @@ void G4HepRepSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { #ifdef PDEBUG cout << "G4HepRepSceneHandler::AddPrimitive(G4Polyhedron&) " << endl; #endif + if (dontWrite()) return; + G4Normal3D surfaceNormal; G4Point3D vertex; if (polyhedron.GetNoFacets()==0) return; - HepRepInstance* instance; - if (isEventData()) { - instance = factory->createHepRepInstance(getEventInstance(), getCalHitType()); - } else { - instance = getGeometryInstance(fpCurrentLV, fCurrentDepth); - } + HepRepInstance* instance = getGeometryOrEventInstance(getCalHitType()); + addAttributes(instance, getCalHitType()); + setVisibility(instance, polyhedron); G4bool notLastFace; @@ -554,6 +860,8 @@ void G4HepRepSceneHandler::AddPrimitive (const G4Text&) { #ifdef PDEBUG cout << "G4HepRepSceneHandler::AddPrimitive(G4Text&) " << endl; #endif + if (dontWrite()) return; + cout << "G4HepRepSceneHandler::AddPrimitive G4Text : not yet implemented. " << endl; } @@ -562,11 +870,15 @@ void G4HepRepSceneHandler::AddPrimitive (const G4Square& square) { #ifdef PDEBUG cout << "G4HepRepSceneHandler::AddPrimitive(G4Square&) " << endl; #endif + if (dontWrite()) return; + HepRepInstance* instance = factory->createHepRepInstance(getEventInstance(), getHitType()); + addAttributes(instance, getHitType()); + G4Point3D center = transform * square.GetPosition(); - setColor (instance, GetColor(square)); + setColor (instance, getColorFor(square)); setVisibility(instance, square); @@ -575,82 +887,60 @@ void G4HepRepSceneHandler::AddPrimitive (const G4Square& square) { factory->createHepRepPoint(instance, center.x(), center.y(), center.z()); } - -//Method for handling G4NURBS objects for drawing solids. -//Knots and Ctrl Pnts MUST be arrays of GLfloats. void G4HepRepSceneHandler::AddPrimitive (const G4NURBS&) { #ifdef PDEBUG cout << "G4HepRepSceneHandler::AddPrimitive(G4NURBS&) " << endl; #endif + if (dontWrite()) return; + cout << "G4HepRepSceneHandler::AddPrimitive G4NURBS : not yet implemented. " << endl; } +void G4HepRepSceneHandler::AddPrimitive (const G4Scale& scale) { + if (dontWrite()) return; + G4VSceneHandler::AddPrimitive(scale); +} -void G4HepRepSceneHandler::AddThis (const G4VTrajectory& trajectory) { +void G4HepRepSceneHandler::AddCompound (const G4VTrajectory& trajectory) { #ifdef PDEBUG - cout << "G4HepRepSceneHandler::AddThis(G4VTrajectory&) " << endl; + cout << "G4HepRepSceneHandler::AddCompound(G4VTrajectory&) " << endl; #endif - - vector* trajectoryAttValues = trajectory.CreateAttValues(); - const map* trajectoryAttDefs = trajectory.GetAttDefs(); - - HepRepType* trajectoryType = getTrajectoryType(); - addAttDefs(trajectoryType, trajectoryAttDefs); + if (dontWrite()) return; - // these attValues are non-standard, so can only be added when we have the attDef. - double charge = 0; - _trajectoryType->addAttValue("Ch", charge); - G4Color color = getColor(charge); - _trajectoryType->addAttValue("Color", color.GetRed(), color.GetGreen(), color.GetBlue(), color.GetAlpha()); - _trajectoryType->addAttValue("ID", -1); - _trajectoryType->addAttValue("IMom", G4String("")); - _trajectoryType->addAttValue("PDG", -1); - _trajectoryType->addAttValue("PN", G4String("")); - _trajectoryType->addAttValue("PID", -1); - - HepRepInstance* trajectoryInstance = factory->createHepRepInstance(getEventInstance(), trajectoryType); - addAttVals(trajectoryInstance, trajectoryAttDefs, trajectoryAttValues); - - delete trajectoryAttValues; - - setColor(trajectoryInstance, getColor(trajectory.GetCharge())); - setAttribute(trajectoryInstance, "LineWidth", 1.0); - - // Specify the polyline by using the trajectory points. - for (int i = 0; i < trajectory.GetPointEntries(); i++) { - G4VTrajectoryPoint* trajectoryPoint = trajectory.GetPoint(i); - G4Point3D vertex = trajectoryPoint->GetPosition(); - HepRepPoint* point = factory->createHepRepPoint(trajectoryInstance, vertex.x(), vertex.y(), vertex.z()); - - - if (messenger.addPointAttributes()) { - vector* pointAttValues = trajectoryPoint->CreateAttValues(); - const map* pointAttDefs = trajectoryPoint->GetAttDefs(); - addAttVals(point, pointAttDefs, pointAttValues); - delete pointAttValues; - } - } + currentTrack = &trajectory; + G4VSceneHandler::AddCompound(trajectory); + currentTrack = NULL; } +void G4HepRepSceneHandler::AddCompound (const G4VHit& hit) { +#ifdef PDEBUG + cout << "G4HepRepSceneHandler::AddCompound(G4VHit&) " << endl; +#endif + if (dontWrite()) return; + + currentHit = &hit; + G4VSceneHandler::AddCompound(hit); + currentHit = NULL; +} -void G4HepRepSceneHandler::PreAddThis (const G4Transform3D& objectTransformation, +void G4HepRepSceneHandler::PreAddSolid (const G4Transform3D& objectTransformation, const G4VisAttributes& visAttribs) { - G4VSceneHandler::PreAddThis (objectTransformation, visAttribs); + G4VSceneHandler::PreAddSolid (objectTransformation, visAttribs); transform = objectTransformation; #ifdef SDEBUG - cout << "G4HepRepSceneHandler::PreAddThis(G4Transform3D&, G4VisAttributes&)" << endl; + cout << "G4HepRepSceneHandler::PreAddSolid(G4Transform3D&, G4VisAttributes&)" << endl; #endif } -void G4HepRepSceneHandler::PostAddThis () { +void G4HepRepSceneHandler::PostAddSolid () { #ifdef SDEBUG - cout << "G4HepRepSceneHandler::PostAddThis()" << endl; + cout << "G4HepRepSceneHandler::PostAddSolid()" << endl; #endif - G4VSceneHandler::PostAddThis(); + G4VSceneHandler::PostAddSolid(); } @@ -672,6 +962,10 @@ void G4HepRepSceneHandler::EndPrimitives () { } +G4bool G4HepRepSceneHandler::dontWrite() { + return !(messenger.writeInvisibles() || (fpVisAttribs ? (bool)fpVisAttribs->IsVisible() : true)); +} + void G4HepRepSceneHandler::setColor (HepRepAttribute *attribute, const G4Color& color, const G4String& key) { @@ -681,25 +975,31 @@ void G4HepRepSceneHandler::setColor (HepRepAttribute *attribute, " blue : " << color.GetBlue () << endl; #endif - setAttribute(attribute, key, color.GetRed(), color.GetGreen(), color.GetBlue(),color.GetAlpha()); + setAttribute(attribute, key, color.GetRed(), color.GetGreen(), color.GetBlue(), color.GetAlpha()); } -G4Color G4HepRepSceneHandler::getColor (G4double charge) { - float red = 0.; - float green = 0.; - float blue = 0.; - if(charge>0.0) blue = 1.0; // Blue = positive. - else if(charge<0.0) red = 1.0; // Red = negative. - else green = 1.0; // Green = neutral. - return G4Color(red, green, blue); +G4Color G4HepRepSceneHandler::getColorFor (const G4VSolid& /* solid */) { + return fpVisAttribs ? fpVisAttribs->GetColor() : GetColor(NULL); } -void G4HepRepSceneHandler::setVisibility (HepRepAttribute *attribute, const G4Visible& visible) { +G4Color G4HepRepSceneHandler::getColorFor (const G4Visible& visible) { + return GetColor(visible); +} + +void G4HepRepSceneHandler::setVisibility (HepRepAttribute *attribute, const G4VSolid& /* solid */) { + setAttribute(attribute, "Visibility", (fpVisAttribs ? (bool)fpVisAttribs->IsVisible() : true)); +} + +void G4HepRepSceneHandler::setVisibility ( HepRepAttribute *attribute, const G4Visible& visible) { const G4VisAttributes* atts = visible.GetVisAttributes(); setAttribute(attribute, "Visibility", (atts && (atts->IsVisible()==0)) ? false : true); } +void G4HepRepSceneHandler::setLine (HepRepAttribute *attribute, const G4VSolid& /* solid*/) { + setAttribute(attribute, "LineWidth", 1.0); +} + void G4HepRepSceneHandler::setLine (HepRepAttribute *attribute, const G4Visible& visible) { const G4VisAttributes* atts = visible.GetVisAttributes(); @@ -734,6 +1034,49 @@ void G4HepRepSceneHandler::setMarker (HepRepAttribute *attribute, const G4VMarke } } +void G4HepRepSceneHandler::addAttributes(HepRepInstance* instance, HepRepType* type) { + if (currentHit) { + vector* hitAttValues = currentHit->CreateAttValues(); + const map* hitAttDefs = currentHit->GetAttDefs(); + + addAttDefs(getHitType(), hitAttDefs); + + // these attValues are non-standard, so can only be added when we have the attDef. + type->addAttValue("LVol", G4String("")); + type->addAttValue("HitType", G4String("")); + type->addAttValue("ID", -1); + type->addAttValue("Column", -1); + type->addAttValue("Row", -1); + type->addAttValue("Energy", 0.0); + type->addAttValue("Pos", G4String("")); + + addAttVals(instance, hitAttDefs, hitAttValues); + + delete hitAttValues; + + } else if (currentTrack) { + vector* trajectoryAttValues = currentTrack->CreateAttValues(); + const map* trajectoryAttDefs = currentTrack->GetAttDefs(); + + addAttDefs(type, trajectoryAttDefs); + + // these attValues are non-standard, so can only be added when we have the attDef. + type->addAttValue("Ch", 0.0); + type->addAttValue("Color", 1.0, 1.0, 1.0, 1.0); + type->addAttValue("ID", -1); + type->addAttValue("IMom", G4String("")); + type->addAttValue("IMag", 0.0); + type->addAttValue("PDG", -1); + type->addAttValue("PN", G4String("")); + type->addAttValue("PID", -1); + + addAttVals(instance, trajectoryAttDefs, trajectoryAttValues); + + delete trajectoryAttValues; + + } +} + void G4HepRepSceneHandler::setAttribute(HepRepAttribute* attribute, G4String name, G4String value) { HepRepAttValue* attValue = attribute->getAttValue(name); if ((attValue == NULL) || (attValue->getString() != value)) { @@ -857,18 +1200,8 @@ void G4HepRepSceneHandler::addAttDefs(HepRepDefinition* definition, const map::const_iterator attDefIterator = attDefs->begin(); while (attDefIterator != attDefs->end()) { - // Protect against incorrect use of Category. Anything value other than the - // standard ones will be considered to be in the physics category. - G4String category = attDefIterator->second.GetCategory(); - if ((category == "Draw") || - (category == "Physics") || - (category == "Association") || - (category == "PickAction")) { - - category = "Physics"; - } definition->addAttDef(attDefIterator->first, attDefIterator->second.GetDesc(), - category, attDefIterator->second.GetExtra()); + attDefIterator->second.GetCategory(), attDefIterator->second.GetExtra()); attDefIterator++; } } @@ -965,7 +1298,7 @@ void G4HepRepSceneHandler::addAttVals(HepRepAttribute* attribute, const mapaddAttDef( "GeneratorVersion", "Version of the Generator", "General", ""); type->addAttValue("GeneratorVersion", G4RunManagerKernel::GetRunManagerKernel()->GetVersionString()); - - type->addAttDef( "CoordinateSystem", "Coordinate System", "Draw", ""); - type->addAttValue("CoordinateSystem", messenger.getCoordinateSystem()); const G4ViewParameters parameters = GetCurrentViewer()->GetViewParameters(); const G4Vector3D& viewPointDirection = parameters.GetViewpointDirection(); @@ -1003,8 +1333,20 @@ void G4HepRepSceneHandler::addTopLevelAttributes(HepRepType* type) { type->addAttDef( "PointUnit", "Length", "Physics", ""); type->addAttValue("PointUnit", G4String("m")); + + type->addAttDef( "UseSolids", "Use HepRep Solids rather than Geant4 Primitives", "Draw", ""); + type->addAttValue("UseSolids", messenger.useSolids()); + + type->addAttDef( "WriteInvisibles", "Write Invisible Objects", "Draw", ""); + type->addAttValue("WriteInvisibles", messenger.writeInvisibles()); } + +HepRepInstance* G4HepRepSceneHandler::getGeometryOrEventInstance(HepRepType* type) { + return isEventData() ? factory->createHepRepInstance(getEventInstance(), type) + : getGeometryInstance(fpCurrentLV, fCurrentDepth); +} + HepRep* G4HepRepSceneHandler::getHepRep() { if (_heprep == NULL) { // Create the HepRep that holds the Trees. diff --git a/source/visualization/HepRep/src/G4HepRepViewer.cc b/source/visualization/HepRep/src/G4HepRepViewer.cc index f64c9a4aa3..9dc55e3364 100644 --- a/source/visualization/HepRep/src/G4HepRepViewer.cc +++ b/source/visualization/HepRep/src/G4HepRepViewer.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRepViewer.cc,v 1.25 2004/05/27 05:59:08 duns Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /** diff --git a/source/visualization/HepRep/src/GZIPOutputStreamBuffer.cc b/source/visualization/HepRep/src/GZIPOutputStreamBuffer.cc new file mode 100755 index 0000000000..d0c23ee12b --- /dev/null +++ b/source/visualization/HepRep/src/GZIPOutputStreamBuffer.cc @@ -0,0 +1,78 @@ +// Copyright FreeHEP, 2005. + +#include "cheprep/GZIPOutputStreamBuffer.h" + +/** + * @author Mark Donszelmann + * @version $Id: GZIPOutputStreamBuffer.cc,v 1.4 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + + using namespace std; + + GZIPOutputStreamBuffer::GZIPOutputStreamBuffer( streambuf *buffer) + : DeflateOutputStreamBuffer(buffer), + open(false) { + + init(true); + } + + void GZIPOutputStreamBuffer::setFilename( const string &name ) { + filename = name ; + } + + void GZIPOutputStreamBuffer::setComment( const string &c ) { + comment = c ; + } + + void GZIPOutputStreamBuffer::close() { + if (!open) return; + + finish(); + writeTrailer(); + + open = false ; + } + + GZIPOutputStreamBuffer::~GZIPOutputStreamBuffer() { + close() ; + } + + int GZIPOutputStreamBuffer::overflow( int c ) { + if (!open) { + writeHeader(); + open = true; + } + return DeflateOutputStreamBuffer::overflow( c ) ; + } + + void GZIPOutputStreamBuffer::writeHeader() { + unsigned char flag = 0x00; + flag |= (filename == "") ? 0x00 : 0x08; + flag |= (comment == "") ? 0x00 : 0x10; + + putUB(0x1f); // Magic # + putUB(0x8b); // Magic # + putUB(0x08); // Deflater.DEFLATED + putUB(flag); // FLG + putUI(0x00000000); // MTIME + putUB(0x00); // XFLG + putUB(0x00); // OS + + if (filename != "") { + putS(filename); // Filename + putUB(0x00); + } + + if (comment != "") { + putS(comment); // Comment + putUB(0x00); + } + } + + void GZIPOutputStreamBuffer::writeTrailer() { + putUI(getCRC()); + putUI(getSize()); + } + +} // cheprep diff --git a/source/visualization/HepRep/src/IndentPrintWriter.cc b/source/visualization/HepRep/src/IndentPrintWriter.cc index ebc16ed613..38121212a4 100644 --- a/source/visualization/HepRep/src/IndentPrintWriter.cc +++ b/source/visualization/HepRep/src/IndentPrintWriter.cc @@ -1,85 +1,89 @@ - -#include - -#include "IndentPrintWriter.h" - -using namespace std; - -IndentPrintWriter::IndentPrintWriter(ostream* out, int level) - : out(out), - closed(false), - indentLevel(level), - indented(false), - indentString(" ") { -} - -IndentPrintWriter::~IndentPrintWriter() { -} - -void IndentPrintWriter::close() { - if (!closed) { - out->flush(); - ofstream* fout = dynamic_cast(out); - if (fout != NULL) { - fout->close(); - } - closed = true; - } -} - -IndentPrintWriter& IndentPrintWriter::operator<< (const std::string & s) { - if (!indented) doIndent(); - *out << s; - return *this; -} - -IndentPrintWriter& IndentPrintWriter::operator<< (ostream& (*)(ostream&)) { - *out << endl; - indented = false; - return *this; -} - -void IndentPrintWriter::println(const string & s) { - *this << s << endl; -} - -void IndentPrintWriter::print(const string & s) { - *this << s; -} - -void IndentPrintWriter::println() { - *out << endl; - indented = false; -} - -void IndentPrintWriter::doIndent() { - for (int i=0; i + +#include "cheprep/IndentPrintWriter.h" + +using namespace std; + +/** + * @author Mark Donszelmann + * @version $Id: IndentPrintWriter.cc,v 1.14 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +IndentPrintWriter::IndentPrintWriter(ostream* out, int level) + : out(out), + closed(false), + indentLevel(level), + indented(false), + indentString(" ") { +} + +IndentPrintWriter::~IndentPrintWriter() { +} + +void IndentPrintWriter::close() { + if (!closed) { + out->flush(); + closed = true; + } +} + +IndentPrintWriter& IndentPrintWriter::operator<< (const std::string & s) { + if (!indented) doIndent(); + *out << s; + return *this; +} + +IndentPrintWriter& IndentPrintWriter::operator<< (ostream& (*)(ostream&)) { + *out << endl; + indented = false; + return *this; +} + +void IndentPrintWriter::println(const string & s) { + *this << s << endl; +} + +void IndentPrintWriter::print(const string & s) { + *this << s; +} + +void IndentPrintWriter::println() { + *out << endl; + indented = false; +} + +void IndentPrintWriter::doIndent() { + for (int i=0; i -#include - -#include "XMLHepRepWriter.h" -#include "XMLHepRepFactory.h" - -using namespace std; -using namespace HEPREP; - - -XMLHepRepFactory::XMLHepRepFactory() { -} - -XMLHepRepFactory::~XMLHepRepFactory() { -} - -HepRepReader* XMLHepRepFactory::createHepRepReader (istream*) { - cerr << "XMLHepRepFactory::createHepRepReader not implemented" << endl; - return NULL; -} - -HepRepReader* XMLHepRepFactory::createHepRepReader (std::string) { - cerr << "XMLHepRepFactory::createHepRepReader not implemented" << endl; - return NULL; -} - -HepRepWriter* XMLHepRepFactory::createHepRepWriter(ostream* out, bool randomAccess, bool compress) { - return new XMLHepRepWriter(out, randomAccess, compress); -} +// Copyright FreeHEP, 2005. + +#include +#include + +#include "cheprep/XMLHepRepWriter.h" +#include "cheprep/XMLHepRepFactory.h" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: XMLHepRepFactory.cc,v 1.5 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + + +XMLHepRepFactory::XMLHepRepFactory() { +} + +XMLHepRepFactory::~XMLHepRepFactory() { +} + +HepRepReader* XMLHepRepFactory::createHepRepReader (istream*) { + cerr << "XMLHepRepFactory::createHepRepReader not implemented" << endl; + return NULL; +} + +HepRepReader* XMLHepRepFactory::createHepRepReader (std::string) { + cerr << "XMLHepRepFactory::createHepRepReader not implemented" << endl; + return NULL; +} + +HepRepWriter* XMLHepRepFactory::createHepRepWriter(ostream* out, bool randomAccess, bool compress) { + return new XMLHepRepWriter(out, randomAccess, compress); +} + +} // cheprep + diff --git a/source/visualization/HepRep/src/XMLHepRepWriter.cc b/source/visualization/HepRep/src/XMLHepRepWriter.cc index 7e15bbb931..d569e908e1 100644 --- a/source/visualization/HepRep/src/XMLHepRepWriter.cc +++ b/source/visualization/HepRep/src/XMLHepRepWriter.cc @@ -1,253 +1,288 @@ - -#include "XMLHepRepWriter.h" - -#include "DefaultHepRepInstance.h" -#include "DefaultHepRepAttValue.h" - -#define NAMESPACE "heprep" - -using namespace zipios; -using namespace std; -using namespace HEPREP; - -XMLHepRepWriter::XMLHepRepWriter(ostream* out, bool randomAccess, bool compress) { - - this->nameSpace = NAMESPACE; - - if (randomAccess) { - zip = new ZipOutputStream(*out); - zip->setLevel(compress ? 6 : 0); - out = zip; - gz = NULL; - } else { - zip = NULL; - if (compress) { - gz = new GZIPOutputStream(*out); - out = gz; - } else { - gz = NULL; - } - } - xml = new XMLWriter(out, " ", NAMESPACE); -} - -XMLHepRepWriter::~XMLHepRepWriter() { - delete gz; - delete zip; - delete xml; -} - -bool XMLHepRepWriter::addProperty(std::string key, std::string value) { - properties[key] = value; - return true; -} - -bool XMLHepRepWriter::close() { - xml->closeDoc(true); - if (zip != NULL) { - zip->putNextEntry(ZipCDirEntry("heprep.properties")); - - map::iterator i = properties.begin(); - while (i != properties.end()) { - *zip << (*i).first << "=" << (*i).second << endl; - i++; - } - zip->closeEntry(); - zip->finish(); - zip->close(); - } - if (gz != NULL) { - gz->finish(); - gz->close(); - } - xml->close(); - return true; -} - -bool XMLHepRepWriter::write(HepRep* heprep, string name) { - if (zip != NULL) { - zip->putNextEntry(ZipCDirEntry(name)); - } - xml->openDoc(); - xml->setAttribute("version", "2.0"); - xml->setAttribute("xmlns", "http://java.freehep.org/schemas/heprep/2.0"); - xml->setAttribute("xmlns", "xsi", "http://www.w3.org/2001/XMLSchema-instance"); - xml->setAttribute("xsi", "schemaLocation", "http://java.freehep.org/schemas/heprep/2.0 http://java.freehep.org/schemas/heprep/2.0/HepRep.xsd"); - xml->openTag(nameSpace, "heprep"); - write(heprep->getLayerOrder()); - vector typeTreeSet = heprep->getTypeTreeList(); - for (vector::iterator i1=typeTreeSet.begin(); i1 != typeTreeSet.end(); i1++) { - write(*i1); - } - vector instanceTreeSet = heprep->getInstanceTreeList(); - for (vector::iterator i2=instanceTreeSet.begin(); i2 != instanceTreeSet.end(); i2++) { - write(*i2); - } - xml->closeTag(); - xml->closeDoc(); - if (zip != NULL) { - zip->closeEntry(); - } - - return true; -} - -bool XMLHepRepWriter::write(vector layers) { - string layerOrder = ""; - bool comma = false; - for (vector::iterator i=layers.begin(); i != layers.end(); i++) { - if (comma) { - layerOrder.append(", "); - } - layerOrder.append(*i); - comma = true; - } - xml->setAttribute("order", layerOrder); - xml->printTag(nameSpace, "layer"); - return true; -} - -bool XMLHepRepWriter::write(HepRepTypeTree* typeTree) { - xml->setAttribute("name", typeTree->getName()); - xml->setAttribute("version", typeTree->getVersion()); - xml->openTag(nameSpace, "typetree"); - - vector types = typeTree->getTypeList(); - for (vector::iterator i=types.begin(); i != types.end(); i++) { - write(*i); - } - xml->closeTag(); - return true; -} - -bool XMLHepRepWriter::write(HepRepType* type) { - xml->setAttribute("name", type->getName()); - xml->openTag(nameSpace, "type"); - write((HepRepDefinition*)type); - write((HepRepAttribute*)type); - - vector types = type->getTypeList(); - for (vector::iterator i=types.begin(); i != types.end(); i++) { - write(*i); - } - xml->closeTag(); - return true; -} - -bool XMLHepRepWriter::write(HepRepTreeID* treeID) { - xml->setAttribute("qualifier", treeID->getQualifier()); - xml->setAttribute("name", treeID->getName()); - xml->setAttribute("version", treeID->getVersion()); - xml->printTag(nameSpace, "treeid"); - return true; -} - -bool XMLHepRepWriter::write(HepRepAction* action) { - xml->setAttribute("name", action->getName()); - xml->setAttribute("expression", action->getExpression()); - xml->printTag(nameSpace, "action"); - return true; -} - -bool XMLHepRepWriter::write(HepRepInstanceTree* instanceTree) { - xml->setAttribute("name", instanceTree->getName()); - xml->setAttribute("version", instanceTree->getVersion()); - xml->setAttribute("typetreename", instanceTree->getTypeTree()->getName()); - xml->setAttribute("typetreeversion", instanceTree->getTypeTree()->getVersion()); - xml->openTag(nameSpace, "instancetree"); - // refs - vector instanceTreeSet = instanceTree->getInstanceTreeList(); - for (vector::iterator i1=instanceTreeSet.begin(); i1 != instanceTreeSet.end(); i1++) { - write(*i1); - } - - // instances - vector instanceList = instanceTree->getInstances(); - for (vector::iterator i2=instanceList.begin(); i2 != instanceList.end(); i2++) { - write(*i2); - } - xml->closeTag(); - return true; -} - -bool XMLHepRepWriter::write(HepRepInstance* instance) { - // FIXME FREEHEP-356 - xml->setAttribute("type", instance->getType()->getFullName()); - xml->openTag(nameSpace, "instance"); - write((HepRepAttribute*)instance); - - vector pointList = instance->getPoints(); - for (vector::iterator i1=pointList.begin(); i1 != pointList.end(); i1++) { - write(*i1); - } - - vector instanceList = instance->getInstances(); - for (vector::iterator i2=instanceList.begin(); i2 != instanceList.end(); i2++) { - write(*i2); - } - xml->closeTag(); - return true; -} - -bool XMLHepRepWriter::write(HepRepPoint* point) { - xml->setAttribute("x", point->getX()); - xml->setAttribute("y", point->getY()); - xml->setAttribute("z", point->getZ()); - if (point->getAttValuesFromNode().size() != 0) { - xml->openTag(nameSpace, "point"); - write((HepRepAttribute*)point); - xml->closeTag(); - } else { - xml->printTag(nameSpace, "point"); - } - return true; -} - -bool XMLHepRepWriter::write(HepRepAttribute* attribute) { - // BUG FIX. Do something special for layers, because these do not end - // up in the normal iteration. - HepRepAttValue* layerAtt = attribute->getAttValueFromNode("layer"); - if (layerAtt != NULL) write(layerAtt); - - set attSet = attribute->getAttValuesFromNode(); - for (set::iterator i=attSet.begin(); i != attSet.end(); i++) { - write(*i); - } - return true; -} - -bool XMLHepRepWriter::write(HepRepDefinition* definition) { - set list = definition->getAttDefsFromNode(); - for (set::iterator i=list.begin(); i != list.end(); i++) { - write(*i); - } - return true; -} - -bool XMLHepRepWriter::write(HepRepAttValue* attValue) { - string name = attValue->getName(); - - xml->setAttribute("name", name); - xml->setAttribute("value", attValue->getAsString()); - - if (attValue->getType() != HepRepConstants::TYPE_STRING) { - xml->setAttribute("type", attValue->getTypeName()); - } - - if (attValue->showLabel() != HepRepConstants::SHOW_NONE) { - string label = dynamic_cast(attValue)->toShowLabel(); - xml->setAttribute("showlabel", label); - } - xml->printTag(nameSpace, "attvalue"); - return true; -} - -bool XMLHepRepWriter::write(HepRepAttDef* attDef) { - xml->setAttribute("name", attDef->getName()); - xml->setAttribute("desc", attDef->getDescription()); - xml->setAttribute("category", attDef->getCategory()); - xml->setAttribute("extra", attDef->getExtra()); - xml->printTag(nameSpace, "attdef"); - return true; -} - +// Copyright FreeHEP, 2005. + +#include "cheprep/XMLHepRepWriter.h" +#include "cheprep/XMLWriter.h" +#include "cheprep/BHepRepWriter.h" + +#include "cheprep/DefaultHepRepInstance.h" +#include "cheprep/DefaultHepRepAttValue.h" + +#define NAMESPACE "heprep" + +using namespace std; +using namespace HEPREP; + +/** + * @author Mark Donszelmann + * @version $Id: XMLHepRepWriter.cc,v 1.15 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +XMLHepRepWriter::XMLHepRepWriter(ostream* os, bool randomAccess, bool useCompression) + : out(os), + compress(useCompression) { + + this->nameSpace = NAMESPACE; + + if (randomAccess) { + zip = new ZipOutputStream(*os); + out = zip; + gz = NULL; + } else { + zip = NULL; + if (useCompression) { +#ifndef CHEPREP_NO_ZLIB + gz = new GZIPOutputStream(*os); + out = gz; +#else + cerr << "WARNING: the .gz output stream you are creating will be a plain file," << endl; + cerr << "since compression support (ZLIB) was not compiled into the library." << endl; + cerr << "To add ZLIB support, you need to undefine CHEPREP_NO_ZLIB." << endl; + gz = NULL; +#endif + } else { + gz = NULL; + } + } +} + +XMLHepRepWriter::~XMLHepRepWriter() { + delete gz; + delete zip; +} + +bool XMLHepRepWriter::addProperty(std::string key, std::string value) { + properties[key] = value; + return true; +} + +bool XMLHepRepWriter::close() { + if (zip != NULL) { + zip->putNextEntry("heprep.properties", true); + + map::iterator i = properties.begin(); + while (i != properties.end()) { + *zip << (*i).first << "=" << (*i).second << endl; + i++; + } + zip->closeEntry(); + zip->close(); + } + + if (gz != NULL) { + gz->close(); + } + return true; +} + +bool XMLHepRepWriter::write(HepRep* heprep, string name) { + if (zip != NULL) { + zip->putNextEntry(name, compress); + } + + if (name.rfind(".bheprep") == name.length()-8) { + xml = new BHepRepWriter(*out); + } else { + xml = new XMLWriter(out, " ", NAMESPACE); + } + + xml->openDoc(); + xml->setAttribute("version", (string)"2.0"); + xml->setAttribute("xmlns", (string)"http://java.freehep.org/schemas/heprep/2.0"); + xml->setAttribute("xmlns", "xsi", "http://www.w3.org/2001/XMLSchema-instance"); + xml->setAttribute("xsi", "schemaLocation", "http://java.freehep.org/schemas/heprep/2.0 http://java.freehep.org/schemas/heprep/2.0/HepRep.xsd"); + xml->openTag(nameSpace, "heprep"); + write(heprep->getLayerOrder()); + vector typeTreeSet = heprep->getTypeTreeList(); + for (vector::iterator i1=typeTreeSet.begin(); i1 != typeTreeSet.end(); i1++) { + write(*i1); + } + vector instanceTreeSet = heprep->getInstanceTreeList(); + for (vector::iterator i2=instanceTreeSet.begin(); i2 != instanceTreeSet.end(); i2++) { + write(*i2); + } + xml->closeTag(); + xml->closeDoc(); +// xml->close(); + delete xml; + + if (zip != NULL) { + zip->closeEntry(); + } + + return true; +} + +bool XMLHepRepWriter::write(vector layers) { + string layerOrder = ""; + bool comma = false; + for (vector::iterator i=layers.begin(); i != layers.end(); i++) { + if (comma) { + layerOrder.append(", "); + } + layerOrder.append(*i); + comma = true; + } + xml->setAttribute("order", layerOrder); + xml->printTag(nameSpace, "layer"); + return true; +} + +bool XMLHepRepWriter::write(HepRepTypeTree* typeTree) { + xml->setAttribute("name", typeTree->getName()); + xml->setAttribute("version", typeTree->getVersion()); + xml->openTag(nameSpace, "typetree"); + + vector types = typeTree->getTypeList(); + for (vector::iterator i=types.begin(); i != types.end(); i++) { + write(*i); + } + + xml->closeTag(); + return true; +} + +bool XMLHepRepWriter::write(HepRepType* type) { + xml->setAttribute("name", type->getName()); + xml->openTag(nameSpace, "type"); + write((HepRepDefinition*)type); + write((HepRepAttribute*)type); + + vector types = type->getTypeList(); + for (vector::iterator i=types.begin(); i != types.end(); i++) { + write(*i); + } + xml->closeTag(); + return true; +} + +bool XMLHepRepWriter::write(HepRepTreeID* treeID) { + xml->setAttribute("qualifier", treeID->getQualifier()); + xml->setAttribute("name", treeID->getName()); + xml->setAttribute("version", treeID->getVersion()); + xml->printTag(nameSpace, "treeid"); + return true; +} + +bool XMLHepRepWriter::write(HepRepAction* action) { + xml->setAttribute("name", action->getName()); + xml->setAttribute("expression", action->getExpression()); + xml->printTag(nameSpace, "action"); + return true; +} + +bool XMLHepRepWriter::write(HepRepInstanceTree* instanceTree) { + xml->setAttribute("name", instanceTree->getName()); + xml->setAttribute("version", instanceTree->getVersion()); + xml->setAttribute("typetreename", instanceTree->getTypeTree()->getName()); + xml->setAttribute("typetreeversion", instanceTree->getTypeTree()->getVersion()); + xml->openTag(nameSpace, "instancetree"); + // refs + vector instanceTreeSet = instanceTree->getInstanceTreeList(); + for (vector::iterator i1=instanceTreeSet.begin(); i1 != instanceTreeSet.end(); i1++) { + write(*i1); + } + + // instances + vector instanceList = instanceTree->getInstances(); + for (vector::iterator i2=instanceList.begin(); i2 != instanceList.end(); i2++) { + write(*i2); + } + xml->closeTag(); + return true; +} + +bool XMLHepRepWriter::write(HepRepInstance* instance) { + // FIXME FREEHEP-356 + xml->setAttribute("type", instance->getType()->getFullName()); + xml->openTag(nameSpace, "instance"); + write((HepRepAttribute*)instance); + + vector pointList = instance->getPoints(); + for (vector::iterator i1=pointList.begin(); i1 != pointList.end(); i1++) { + write(*i1); + } + + vector instanceList = instance->getInstances(); + for (vector::iterator i2=instanceList.begin(); i2 != instanceList.end(); i2++) { + write(*i2); + } + xml->closeTag(); + return true; +} + +bool XMLHepRepWriter::write(HepRepPoint* point) { + xml->setAttribute("x", point->getX()); + xml->setAttribute("y", point->getY()); + xml->setAttribute("z", point->getZ()); + if (point->getAttValuesFromNode().size() != 0) { + xml->openTag(nameSpace, "point"); + write((HepRepAttribute*)point); + xml->closeTag(); + } else { + xml->printTag(nameSpace, "point"); + } + return true; +} + +bool XMLHepRepWriter::write(HepRepAttribute* attribute) { + // BUG FIX. Do something special for layers, because these do not end + // up in the normal iteration. + HepRepAttValue* layerAtt = attribute->getAttValueFromNode("layer"); + if (layerAtt != NULL) write(layerAtt); + + set attSet = attribute->getAttValuesFromNode(); + for (set::iterator i=attSet.begin(); i != attSet.end(); i++) { + write(*i); + } + return true; +} + +bool XMLHepRepWriter::write(HepRepDefinition* definition) { + set list = definition->getAttDefsFromNode(); + for (set::iterator i=list.begin(); i != list.end(); i++) { + write(*i); + } + return true; +} + +bool XMLHepRepWriter::write(HepRepAttValue* attValue) { + string name = attValue->getName(); + + xml->setAttribute("name", name); + + switch(attValue->getType()) { + default: xml->setAttribute("value", attValue->getAsString()); + break; + case HepRepConstants::TYPE_STRING: xml->setAttribute("value", attValue->getString()); + break; + case HepRepConstants::TYPE_LONG: xml->setAttribute("value", attValue->getLong()); + break; + case HepRepConstants::TYPE_INT: xml->setAttribute("value", attValue->getInteger()); + break; + case HepRepConstants::TYPE_DOUBLE: xml->setAttribute("value", attValue->getDouble()); + break; + case HepRepConstants::TYPE_BOOLEAN: xml->setAttribute("value", attValue->getBoolean()); + break; + case HepRepConstants::TYPE_COLOR: xml->setAttribute("value", attValue->getColor()); + } + + if (attValue->showLabel() != HepRepConstants::SHOW_NONE) { + xml->setAttribute("showlabel", attValue->showLabel()); + } + + xml->printTag(nameSpace, "attvalue"); + return true; +} + +bool XMLHepRepWriter::write(HepRepAttDef* attDef) { + xml->setAttribute("name", attDef->getName()); + xml->setAttribute("desc", attDef->getDescription()); + xml->setAttribute("category", attDef->getCategory()); + xml->setAttribute("extra", attDef->getExtra()); + xml->printTag(nameSpace, "attdef"); + return true; +} + +} // cheprep + diff --git a/source/visualization/HepRep/src/XMLWriter.cc b/source/visualization/HepRep/src/XMLWriter.cc index a89118e389..3bd8f62b4c 100644 --- a/source/visualization/HepRep/src/XMLWriter.cc +++ b/source/visualization/HepRep/src/XMLWriter.cc @@ -1,270 +1,286 @@ - -#include - -#include "XMLWriter.h" - -using namespace std; - -XMLWriter::XMLWriter(ostream* out, string indentString, string defaultNameSpace) - : defaultNameSpace(defaultNameSpace) { - writer = new IndentPrintWriter(out); - writer->setIndentString(indentString); - closed = false; - dtdName = ""; -} - -XMLWriter::~XMLWriter() { - writer->close(); - delete writer; -} - -void XMLWriter::close() { - closeDoc(); - writer->close(); -} - -void XMLWriter::openDoc(string version, string encoding, bool standalone) { - string indentString = writer->getIndentString(); - writer->setIndentString(indentString); - -// if (!XMLCharacterProperties.validVersionNum(version)) throw new RuntimeException("Invalid version number: "+version); - *writer << ""; - *writer << endl; - writer->setIndentString(indentString); -} - -void XMLWriter::referToDTD(string name, string pid, string ref) { - if (dtdName != "") { - cerr << "XMLWriter::ReferToDTD cannot be called twice" << endl; - } - dtdName = name; - *writer << "" << endl; -} - -void XMLWriter::referToDTD(string name, string system) { - if (dtdName != "") { - cerr << "XMLWriter::ReferToDTD cannot be called twice"; - } - dtdName = name; - *writer << "" << endl; -} - -void XMLWriter::closeDoc(bool force) { - if (!closed) { - if (!openTags.empty()) { - if (!force) cerr << "Not all tags were closed before closing XML document:" << endl; - while (!openTags.empty()) { - if (force) { - closeTag(); - } else { - cerr << " " << endl; - openTags.pop(); - } - } - } - closed = true; - } -} - -void XMLWriter::printComment(string comment) { - if (comment.find("--") != string::npos) { - cerr << "XMLWriter::printComment '--' sequence not allowed in comment" << endl; - } - *writer << "" << endl; -} - -void XMLWriter::printPlain(string text) { - *writer << text.c_str(); -} - -void XMLWriter::print(string text) { - *writer << normalizeText(text).c_str(); -} - -void XMLWriter::println(string text) { - print(text); - *writer << endl; -} - -void XMLWriter::openTag(string ns, string name) { - if (ns.compare(defaultNameSpace) == 0) { - openTag(name); - } else { - openTag(ns.append(":").append(name)); - } -} - -void XMLWriter::openTag(string name) { - checkNameValid(name); - if (openTags.empty() && dtdName.compare("") && dtdName.compare(name)) { - cerr << "XMLWriter::openTag(), First tag: '" << name << "' not equal to DTD id: '" << dtdName << "'" << endl; - } - *writer << "<" << name.c_str(); - printAttributes(name.length()); - *writer << ">" << endl; - writer->indent(); - openTags.push(name); -} - -void XMLWriter::closeTag() { - if (openTags.empty()) { - writer->close(); - cerr << "XMLWriter::closeTag(), No open tags" << endl; - } - string name = openTags.top(); - openTags.pop(); - writer->outdent(); - *writer << "" << endl; -} - -void XMLWriter::printTag(string ns, string name) { - if (ns.compare(defaultNameSpace) == 0) { - printTag(name); - } else { - printTag(ns.append(":").append(name)); - } -} - -void XMLWriter::printTag(string name) { - checkNameValid(name); - *writer << "<" << name.c_str(); - printAttributes(name.length()); - *writer << "/>" << endl; -} - -void XMLWriter::setAttribute(string name, string value) { - attributes[name] = value; -} - -void XMLWriter::setAttribute(string ns, string name, string value) { - attributes[ns.append(":").append(name)] = value; -} - -void XMLWriter::setAttribute(string name, double value) { - char buffer[40]; - sprintf(buffer, "%g", value); - attributes[name] = buffer; -} - -void XMLWriter::setAttribute(string ns, string name, double value) { - char buffer[40]; - sprintf(buffer, "%f", value); - attributes[ns.append(":").append(name)] = buffer; -} - -void XMLWriter::printAttributes(int tagLength) { - int width = tagLength + 1; - bool extraIndent = false; - for (map::iterator i = attributes.begin(); i != attributes.end(); i++) { - string key = i->first; - checkNameValid(key); - string value = normalize(i->second); - int length = key.length() + value.length() + 3; - if (width > 0 && width + length + 2*writer->getIndent() > 60) { - width = 0; - *writer << endl; - if (!extraIndent) { - writer->indent(); - extraIndent = true; - } - } else { - width += length; - *writer << " "; - } - *writer << key.c_str() << "=\"" << value.c_str() << "\""; - } - attributes.clear(); - if (extraIndent) writer->outdent(); -} - -string XMLWriter::normalize(string s) { - string str = ""; - char buffer[20]; - - int len = s.length(); - for (int i = 0; i < len; i++) { - char ch = s[i]; - switch (ch) { - case '<': { - str.append("<"); - break; - } - case '>': { - str.append(">"); - break; - } - case '&': { - str.append("&"); - break; - } - case '"': { - str.append("""); - break; - } - case '\r': - case '\n': { - sprintf(buffer, "&#%ud", ch); - str.append(buffer); - str.append(";"); - break; - } - default: { -// if (ch > 0x00FF) { -// sprintf(buffer, "&#x%4.4x", ch); -// str.append(buffer); -// str.append(";"); -// } else { - str.append(&ch, 1); -// } - } - } - } - - return str; -} - -string XMLWriter::normalizeText(string s) { - string str = ""; - - int len = s.length(); - for (int i = 0; i < len; i++) { - char ch = s[i]; - switch (ch) { - case '<': { - str.append("<"); - break; - } - case '>': { - str.append(">"); - break; - } - case '&': { - str.append("&"); - break; - } - default: { -// if (ch > 0x00FF) { -// sprintf(buffer, "&#x%4.4x", ch); -// str.append(buffer); -// str.append(";"); -// } else { - str.append(&ch, 1); -// } - } - } - } - return str; -} - -void XMLWriter::checkNameValid(string) { -// Could be added. -// if (!XMLCharacterProperties.validName(s)) throw new RuntimeException("Invalid name: "+s); -} +// Copyright FreeHEP, 2005. + +#include "cheprep/config.h" + +#include + +#include "cheprep/DefaultHepRepAttValue.h" +#include "cheprep/XMLWriter.h" + +using namespace std; + +/** + * @author Mark Donszelmann + * @version $Id: XMLWriter.cc,v 1.12 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + +XMLWriter::XMLWriter(ostream* out, string indentString, string defaultNameSpace) + : AbstractXMLWriter(defaultNameSpace) { + writer = new IndentPrintWriter(out); + writer->setIndentString(indentString); + closed = false; + dtdName = ""; +} + +XMLWriter::~XMLWriter() { + writer->close(); + delete writer; +} + +void XMLWriter::close() { + closeDoc(); + writer->close(); +} + +void XMLWriter::openDoc(string version, string encoding, bool standalone) { + string indentString = writer->getIndentString(); + writer->setIndentString(indentString); + +// if (!XMLCharacterProperties.validVersionNum(version)) throw new RuntimeException("Invalid version number: "+version); + *writer << ""; + *writer << endl; + writer->setIndentString(indentString); +} + +void XMLWriter::referToDTD(string name, string pid, string ref) { + if (dtdName != "") { + cerr << "XMLWriter::ReferToDTD cannot be called twice" << endl; + } + dtdName = name; + *writer << "" << endl; +} + +void XMLWriter::referToDTD(string name, string system) { + if (dtdName != "") { + cerr << "XMLWriter::ReferToDTD cannot be called twice"; + } + dtdName = name; + *writer << "" << endl; +} + +void XMLWriter::closeDoc(bool force) { + if (!closed) { + if (!openTags.empty()) { + if (!force) cerr << "Not all tags were closed before closing XML document:" << endl; + while (!openTags.empty()) { + if (force) { + closeTag(); + } else { + cerr << " " << endl; + openTags.pop(); + } + } + } + closed = true; + } +} + +void XMLWriter::printComment(string comment) { + if (comment.find("--") != string::npos) { + cerr << "XMLWriter::printComment '--' sequence not allowed in comment" << endl; + } + *writer << "" << endl; +} + +void XMLWriter::printPlain(string text) { + *writer << text.c_str(); +} + +void XMLWriter::print(string text) { + *writer << normalizeText(text).c_str(); +} + +void XMLWriter::println(string text) { + print(text); + *writer << endl; +} + +void XMLWriter::openTag(string name) { + checkNameValid(name); + if (openTags.empty() && dtdName.compare("") && dtdName.compare(name)) { + cerr << "XMLWriter::openTag(), First tag: '" << name << "' not equal to DTD id: '" << dtdName << "'" << endl; + } + *writer << "<" << name.c_str(); + printAttributes(name.length()); + *writer << ">" << endl; + writer->indent(); + openTags.push(name); +} + +void XMLWriter::closeTag() { + if (openTags.empty()) { + writer->close(); + cerr << "XMLWriter::closeTag(), No open tags" << endl; + } + string name = openTags.top(); + openTags.pop(); + writer->outdent(); + *writer << "" << endl; +} + +void XMLWriter::printTag(string name) { + checkNameValid(name); + *writer << "<" << name.c_str(); + printAttributes(name.length()); + *writer << "/>" << endl; +} + +void XMLWriter::setAttribute(string name, char* value) { + setAttribute(name, (string)value); +} + +void XMLWriter::setAttribute(string name, string value) { + attributes[name] = value; + // NOTE: never set type here +} + +void XMLWriter::setAttribute(std::string name, std::vector value) { + if (name == "value") setAttribute("type", (std::string)"Color"); + setAttribute(name, DefaultHepRepAttValue::getAsString(value)); +} + +void XMLWriter::setAttribute(std::string name, int64 value) { + if (name == "value") setAttribute("type", (std::string)"long"); + setAttribute(name, DefaultHepRepAttValue::getAsString(value)); +} + +void XMLWriter::setAttribute(std::string name, int value) { + if (name == "showlabel") { + string label = DefaultHepRepAttValue::toShowLabel(value); + setAttribute("showlabel", label); + } else { + if (name == "value") setAttribute("type", (std::string)"int"); + setAttribute(name, DefaultHepRepAttValue::getAsString(value)); + } +} + +void XMLWriter::setAttribute(std::string name, bool value) { + if (name == "value") setAttribute("type", (std::string)"boolean"); + setAttribute(name, DefaultHepRepAttValue::getAsString(value)); +} + +void XMLWriter::setAttribute(string name, double value) { + if (name == "value") setAttribute("type", (std::string)"double"); + setAttribute(name, DefaultHepRepAttValue::getAsString(value)); +} + +void XMLWriter::printAttributes(int tagLength) { + int width = tagLength + 1; + bool extraIndent = false; + for (map::iterator i = attributes.begin(); i != attributes.end(); i++) { + string key = i->first; + checkNameValid(key); + string value = normalize(i->second); + int length = key.length() + value.length() + 3; + if (width > 0 && width + length + 2*writer->getIndent() > 60) { + width = 0; + *writer << endl; + if (!extraIndent) { + writer->indent(); + extraIndent = true; + } + } else { + width += length; + *writer << " "; + } + *writer << key.c_str() << "=\"" << value.c_str() << "\""; + } + attributes.clear(); + if (extraIndent) writer->outdent(); +} + +string XMLWriter::normalize(string s) { + string str = ""; + char buffer[20]; + + int len = s.length(); + for (int i = 0; i < len; i++) { + char ch = s[i]; + switch (ch) { + case '<': { + str.append("<"); + break; + } + case '>': { + str.append(">"); + break; + } + case '&': { + str.append("&"); + break; + } + case '"': { + str.append("""); + break; + } + case '\r': + case '\n': { + sprintf(buffer, "&#%ud", ch); + str.append(buffer); + str.append(";"); + break; + } + default: { +// if (ch > 0x00FF) { +// sprintf(buffer, "&#x%4.4x", ch); +// str.append(buffer); +// str.append(";"); +// } else { + str.append(&ch, 1); +// } + } + } + } + + return str; +} + +string XMLWriter::normalizeText(string s) { + string str = ""; + + int len = s.length(); + for (int i = 0; i < len; i++) { + char ch = s[i]; + switch (ch) { + case '<': { + str.append("<"); + break; + } + case '>': { + str.append(">"); + break; + } + case '&': { + str.append("&"); + break; + } + default: { +// if (ch > 0x00FF) { +// sprintf(buffer, "&#x%4.4x", ch); +// str.append(buffer); +// str.append(";"); +// } else { + str.append(&ch, 1); +// } + } + } + } + return str; +} + +void XMLWriter::checkNameValid(string) { +// Could be added. +// if (!XMLCharacterProperties.validName(s)) throw new RuntimeException("Invalid name: "+s); +} + + +} // cheprep diff --git a/source/visualization/HepRep/src/ZipOutputStreamBuffer.cc b/source/visualization/HepRep/src/ZipOutputStreamBuffer.cc new file mode 100755 index 0000000000..912ade9093 --- /dev/null +++ b/source/visualization/HepRep/src/ZipOutputStreamBuffer.cc @@ -0,0 +1,144 @@ +// Copyright FreeHEP, 2005. + +#include +#include +#include + +#include "cheprep/ZipOutputStream.h" +#include "cheprep/ZipOutputStreamBuffer.h" +#include "cheprep/ZipEntry.h" + +/** + * @author Mark Donszelmann + * @version $Id: ZipOutputStreamBuffer.cc,v 1.9 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + + ZipOutputStreamBuffer::ZipOutputStreamBuffer(std::streambuf* buffer) + : DeflateOutputStreamBuffer(buffer), + comment("") { + + closed = false; + entry = NULL; + + entries = new std::vector(); + } + + int ZipOutputStreamBuffer::overflow(int c) { + return DeflateOutputStreamBuffer::overflow(c); + } + + void ZipOutputStreamBuffer::closeEntry() { + if (closed) return; + if (entry == NULL) return; + + finish(); + + entry->crc = getCRC(); + // NOTE: pos()::operator- is ambiguous on gcc 4.0, so convert to long first + entry->csize = (long)pos() - entry->data; + entry->size = getSize(); + putUI(EXTSIG); + putUI(entry->crc); // crc + putUI(entry->csize); // compressed size + putUI(entry->size); // uncompressed size + entry = NULL; + } + + + void ZipOutputStreamBuffer::close() { + if (closed) return; + closeEntry(); + + long dirStart = pos(); + for (std::vector::iterator i=entries->begin(); i != entries->end(); i++) { + entry = *i; + putUI(CENSIG); + putUS(VERSIONMADE); // made by version + putUS(VERSIONEXTRACT); // extraction version + putUS(GENFLAG); // general purpose bit flag + putUS(entry->method); // compression method + putUS(entry->time); // time + putUS(entry->date); // date + putUI(entry->crc); // crc + putUI(entry->csize); // compressed size + putUI(entry->size); // uncompressed size + putUS(entry->name.length()); // file name length + putUS(0); // extra field length + putUS(0); // file comment length + putUS(0); // disk number start + putUS(0); // internal file attributes + putUI(0); // external file attributes + putUI(entry->offset); // relative offset of local file header + putS(entry->name); // file name + + // delete entry + delete entry; + entry = NULL; + } + // NOTE: pos()::operator- is ambiguous on gcc 4.0, so convert to long first + long dirSize = (long)pos() - dirStart; + putUI(ENDSIG); + putUS(0); // number of this disk + putUS(0); // number of the disk with the start of central directory + putUS(entries->size()); // total number of entries in the central directory of this disk + putUS(entries->size()); // total number of entries in the central directory + putUI(dirSize); // size of the central directory + putUI(dirStart); // offset of the start of central directory with respect to the starting disk number + putUS(comment.length()); // .ZIP file comment length + putS(comment); // .ZIP file comment + + delete entries; + entries = NULL; + closed = true; + } + + void ZipOutputStreamBuffer::putNextEntry(const std::string& name, bool compress) { + if (closed) return; + + closeEntry(); + +#ifdef CHEPREP_NO_ZLIB + compress = false; +#endif + init(compress); + + entry = new ZipEntry(); + entries->push_back(entry); + + entry->name = name; + entry->method = compress ? 8 : 0; + + time_t ltime; + time( <ime ); + struct tm *utc = gmtime( <ime ); + entry->date = (utc->tm_year - 80) << 9 | (utc->tm_mon + 1) << 5 | utc->tm_mday; + entry->time = utc->tm_hour << 11 | utc->tm_min << 5 | utc->tm_sec >> 1; + + entry->offset = (long)pos(); + putUI(LOCSIG); // signature + putUS(VERSIONEXTRACT); // extraction version + putUS(GENFLAG); // general purpose bit flag + putUS(entry->method); // compression method + putUS(entry->time); // time + putUS(entry->date); // date + putUI(0x00000000); // crc ATEND + putUI(0x00000000); // compressed size ATEND + putUI(0x00000000); // uncompressed size ATEND + putUS(entry->name.length()); // file name length + putUS(0); // extra field length + putS(entry->name); // file name + entry->data = (long)pos(); + entry->crc = 0; + } + + void ZipOutputStreamBuffer::setComment(const std::string& c) { + if (closed) return; + comment = c; + } + + ZipOutputStreamBuffer::~ZipOutputStreamBuffer() { + close(); + } + +} // cheprep diff --git a/source/visualization/HepRep/src/basicentry.cc b/source/visualization/HepRep/src/basicentry.cc deleted file mode 100644 index 40a6008be8..0000000000 --- a/source/visualization/HepRep/src/basicentry.cc +++ /dev/null @@ -1,163 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include - -#include "zipios++/meta-iostreams.h" -#include - -#include "zipios_common.h" -#include "zipios++/basicentry.h" -#include "zipios++/zipios_defs.h" - -#include "outputstringstream.h" - -namespace zipios { - -using std::ifstream ; -using std::ios ; - -// -// Public definitions -// - -BasicEntry::BasicEntry( const string &filename, const string &comment, - const FilePath &basepath ) - : _filename ( filename ), - _comment ( comment ), - _basepath ( basepath ) -{ - string full_path = _basepath + _filename ; - ifstream is( full_path.c_str(), ios::in | ios::binary ) ; - if ( ! is ) { - _valid = false ; - } else { - is.seekg( 0, ios::end ) ; - _size = is.tellg() ; - is.close() ; - _valid = true ; - } -} - -string BasicEntry::getComment() const { - return _comment ; -} - -uint32 BasicEntry::getCompressedSize() const { - return getSize() ; -} - -uint32 BasicEntry::getCrc() const { - return 0 ; -} - -vector< unsigned char > BasicEntry::getExtra() const { - return vector< unsigned char > () ; -} - -StorageMethod BasicEntry::getMethod() const { - return STORED ; -} - -string BasicEntry::getName() const { - return _filename ; -} - -string BasicEntry::getFileName() const { - if ( isDirectory() ) - return string() ; - string::size_type pos ; - pos = _filename.find_last_of( separator ) ; - if ( pos != string::npos ) { // separator found! - // isDirectory() check means pos should not be last, so pos+1 is ok - return _filename.substr(pos + 1) ; - } else { - return _filename ; - } -} - -uint32 BasicEntry::getSize() const { - return _size ; -} - -int BasicEntry::getTime() const { - return 0 ; // FIXME later -} - -bool BasicEntry::isValid() const { - return _valid ; -} - -// virtual int hashCode() const {} -bool BasicEntry::isDirectory() const { - assert( _filename.size() != 0 ) ; - return _filename[ _filename.size() - 1 ] == separator ; -} - - -void BasicEntry::setComment( const string &comment ) { - _comment = comment ; -} - -void BasicEntry::setCompressedSize( uint32 /*MD:size*/ ) { -} - -void BasicEntry::setCrc( uint32 /*MD:crc*/ ) { -} - -void BasicEntry::setExtra( const vector< unsigned char > &/*MD:extra*/ ) { -} - -void BasicEntry::setMethod( StorageMethod /*MD:method*/ ) { -} - -void BasicEntry::setName( const string &name ) { - _filename = name ; -} - -void BasicEntry::setSize( uint32 size ) { - _size = size ; -} - -void BasicEntry::setTime( int /*MD:time*/ ) { -} - - -string BasicEntry::toString() const { - OutputStringStream sout ; - sout << _filename << " (" << _size << " bytes)" ; - return sout.str() ; -} - -FileEntry *BasicEntry::clone() const { - return new BasicEntry( *this ) ; -} - -BasicEntry::~BasicEntry() { -} - - -} // namespace - -/** \file - Implementation of BasicEntry. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/collcoll.cc b/source/visualization/HepRep/src/collcoll.cc deleted file mode 100644 index f48e84b87c..0000000000 --- a/source/visualization/HepRep/src/collcoll.cc +++ /dev/null @@ -1,162 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -#include "zipios++/collcoll.h" -#include "zipios_common.h" - -namespace zipios { - -using std::ifstream ; - -CollectionCollection *CollectionCollection::_inst = 0 ; - - -CollectionCollection::CollectionCollection() { - _valid = true ; // we're valid even though we are empty! -} - - -bool CollectionCollection::addCollection( const FileCollection &collection ) { - if ( ! _valid ) - throw InvalidStateException( "Attempt to add a FileCollection to an invalid CollectionCollection" ) ; - if ( this == &collection || ! collection.isValid() ) - return false ; - _collections.push_back( collection.clone() ) ; - return true ; - -} - -bool CollectionCollection::addCollection( FileCollection *collection ) { - if ( ! _valid ) - throw InvalidStateException( "Attempt to add a FileCollection to an invalid CollectionCollection" ) ; - if ( collection == 0 || this == collection || ! collection->isValid() ) - return false ; - _collections.push_back( collection ) ; - return true ; -} - - -void CollectionCollection::close() { - _valid = false ; -} - - -ConstEntries CollectionCollection::entries() const { - if ( ! _valid ) - throw InvalidStateException( "Attempt to get entries from an invalid CollectionCollection" ) ; - - ConstEntries all_entries ; - std::vector< FileCollection * >::const_iterator it ; - for ( it = _collections.begin() ; it != _collections.end() ; it++ ) - all_entries += (*it)->entries() ; - return all_entries ; -} - - -ConstEntryPointer CollectionCollection::getEntry( const string &name, - MatchPath matchpath ) const { - if ( ! _valid ) - throw InvalidStateException( "Attempt to get an entry from an invalid CollectionCollection" ) ; - // Returns the first matching entry. - std::vector< FileCollection * >::const_iterator it ; - ConstEntryPointer cep ; - - getEntry( name, cep, it, matchpath ) ; - - return cep ; -} - - -istream *CollectionCollection::getInputStream( const ConstEntryPointer &entry ) { - if ( ! _valid ) - throw InvalidStateException( "Attempt to get an input stream from an invalid CollectionCollection" ) ; - - return getInputStream( entry->getName() ) ; -} - - -istream *CollectionCollection::getInputStream( const string &entry_name, - MatchPath matchpath ) { - if ( ! _valid ) - throw InvalidStateException( "Attempt to get an input stream from an invalid CollectionCollection" ) ; - - std::vector< FileCollection * >::const_iterator it ; - ConstEntryPointer cep ; - - getEntry( entry_name, cep, it, matchpath ) ; - - if ( cep == 0 ) - return 0 ; - else - return (*it)->getInputStream( entry_name ) ; - -} - - -int CollectionCollection::size() const { - if ( ! _valid ) - throw InvalidStateException( "Attempt to get the size of an invalid CollectionCollection" ) ; - int sz = 0 ; - std::vector< FileCollection * >::const_iterator it ; - for ( it = _collections.begin() ; it != _collections.end() ; it++ ) - sz += (*it)->size() ; - return sz ; -} - -FileCollection *CollectionCollection::clone() const { - return new CollectionCollection( *this ) ; -} - -CollectionCollection::~CollectionCollection() { - std::vector< FileCollection * >::iterator it ; - for ( it = _collections.begin() ; it != _collections.end() ; ++it ) - delete *it ; -} - - -// -// Protected member functions -// - -void CollectionCollection::getEntry( const string &name, - ConstEntryPointer &cep, - std::vector< FileCollection * >::const_iterator &it, - MatchPath matchpath ) const { - - // Returns the first matching entry. - cep = 0 ; - for ( it = _collections.begin() ; it != _collections.end() ; it++ ) { - cep = (*it)->getEntry( name, matchpath ) ; - if ( cep ) - break ; - } -} - - - -} // namespace - -/** \file - Implementation of CollectionCollection. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/deflateoutputstreambuf.cc b/source/visualization/HepRep/src/deflateoutputstreambuf.cc deleted file mode 100644 index bf43d33927..0000000000 --- a/source/visualization/HepRep/src/deflateoutputstreambuf.cc +++ /dev/null @@ -1,223 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -#include - -#include "zipios++/fcollexceptions.h" -#include "zipios++/deflateoutputstreambuf.h" - -#include "outputstringstream.h" - -namespace zipios { - -using std::cerr ; -using std::endl ; - -DeflateOutputStreambuf::DeflateOutputStreambuf( streambuf *outbuf, bool user_init, - bool del_outbuf ) - : FilterOutputStreambuf( outbuf, del_outbuf ), - _zs_initialized ( false ), - _invecsize ( 1000 ), - _invec ( _invecsize ), - _outvecsize ( 1000 ), - _outvec ( _outvecsize ) -{ - // NOTICE: It is important that this constructor and the methods it - // calls doesn't do anything with the output streambuf _outbuf The - // reason is that this class can be subclassed, and the subclass - // should get a chance to write to the buffer first - - // zlib init: - _zs.zalloc = Z_NULL ; - _zs.zfree = Z_NULL ; - _zs.opaque = Z_NULL ; - - if ( user_init && ! init() ) - cerr << "DeflateOutputStreambuf::reset() failed!\n" ; // FIXME: throw something - -} - - -DeflateOutputStreambuf::~DeflateOutputStreambuf() { - closeStream() ; -} - - -// This method is called in the constructor, so it must not write -// anything to the output streambuf _outbuf (see notice in -// constructor) -bool DeflateOutputStreambuf::init( int comp_level ) { - static const int default_mem_level = 8 ; - - // _zs.next_in and avail_in must be set according to - // HepRep-zlib.h (inline doc). - _zs.next_in = reinterpret_cast< unsigned char * >( &( _invec[ 0 ] ) ) ; - _zs.avail_in = 0 ; - - _zs.next_out = reinterpret_cast< unsigned char * >( &( _outvec[ 0 ] ) ) ; - _zs.avail_out = _outvecsize ; - - int err ; - if( _zs_initialized ) { // just reset it - endDeflation() ; - err = deflateReset( &_zs ) ; - // FIXME: bug, for deflateReset we do not update the compression level - } else { // init it - err = deflateInit2( &_zs, comp_level, Z_DEFLATED, -MAX_WBITS, - default_mem_level, Z_DEFAULT_STRATEGY ) ; - /* windowBits is passed < 0 to tell that no zlib header should be - written. */ - _zs_initialized = true ; - } - - // streambuf init: - setp( &( _invec[ 0 ] ), &( _invec[ 0 ] ) + _invecsize ) ; - - _crc32 = crc32( 0, Z_NULL, 0 ) ; - _overflown_bytes = 0 ; - - if ( err == Z_OK ) - return true ; - else - return false ; -} - - -bool DeflateOutputStreambuf::closeStream() { - int err = Z_OK ; - if( _zs_initialized ) { - endDeflation() ; - err = deflateEnd( &_zs ) ; - _zs_initialized = false ; - } - - if ( err == Z_OK ) - return true ; - else { - cerr << "DeflateOutputStreambuf::closeStream(): deflateEnd failed" ; -#ifdef HAVE_ZERROR - cerr << ": " << zError( err ) ; -#endif - cerr << endl ; - return false ; - } -} - - -int DeflateOutputStreambuf::overflow( int c ) { - _zs.avail_in = pptr() - pbase() ; - _zs.next_in = reinterpret_cast< unsigned char * >( &( _invec[ 0 ] ) ) ; - - _crc32 = crc32( _crc32, _zs.next_in, _zs.avail_in ) ; // update crc32 - _overflown_bytes += _zs.avail_in ; - - _zs.next_out = reinterpret_cast< unsigned char * >( &( _outvec[ 0 ] ) ) ; - _zs.avail_out = _outvecsize ; - - // Deflate until _invec is empty. - int err = Z_OK ; - while ( ( _zs.avail_in > 0 || _zs.avail_out == 0 ) && err == Z_OK ) { - if ( _zs.avail_out == 0 ) - flushOutvec() ; - - err = deflate( &_zs, Z_NO_FLUSH ) ; - } - - flushOutvec() ; - // Update 'put' pointers - setp( &( _invec[ 0 ] ), &( _invec[ 0 ] ) + _invecsize ) ; - - if( err != Z_OK && err != Z_STREAM_END ) { -#if defined (HAVE_STD_IOSTREAM) && defined (USE_STD_IOSTREAM) - // Throw an exception to make istream set badbit - OutputStringStream msgs ; - msgs << "Deflation failed" ; -#ifdef HAVE_ZERROR - msgs << ": " << zError( err ) ; -#endif - throw IOException( msgs.str() ) ; -#endif - cerr << "Deflation failed\n" ; - return EOF ; - } - - if ( c != EOF ) { - *pptr() = c ; - pbump( 1 ) ; - } - - return 0 ; -} - -int DeflateOutputStreambuf::sync() { - // FIXME: Do something -// return overflow() ; - return 0 ; -} - - -bool DeflateOutputStreambuf::flushOutvec() { - int deflated_bytes = _outvecsize - _zs.avail_out ; - int bc = _outbuf->sputn( &( _outvec[ 0 ] ), deflated_bytes ) ; - - _zs.next_out = reinterpret_cast< unsigned char * >( &( _outvec[ 0 ] ) ) ; - _zs.avail_out = _outvecsize ; - - return deflated_bytes == bc ; -} - - -void DeflateOutputStreambuf::endDeflation() { - overflow() ; - - _zs.next_out = reinterpret_cast< unsigned char * >( &( _outvec[ 0 ] ) ) ; - _zs.avail_out = _outvecsize ; - - // Deflate until _invec is empty. - int err = Z_OK ; - - while ( err == Z_OK ) { - if ( _zs.avail_out == 0 ) - flushOutvec() ; - - err = deflate( &_zs, Z_FINISH ) ; - } - - flushOutvec() ; - - if ( err != Z_STREAM_END ) { - cerr << "DeflateOutputStreambuf::endDeflation(): deflation failed:\n" ; -#ifdef HAVE_ZERROR - cerr << ": " << zError( err ) ; -#endif - cerr << endl ; - } -} - - -} // namespace - -/** \file - Implementation of DeflateOutputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/fcoll.cc b/source/visualization/HepRep/src/fcoll.cc deleted file mode 100644 index d13974a4b6..0000000000 --- a/source/visualization/HepRep/src/fcoll.cc +++ /dev/null @@ -1,90 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include -#include -#include - -#include "zipios++/fcoll.h" - -namespace zipios { - -using std::find_if ; - -// FIXME: make InvalidStateException message customized for -// subclasses. maybe make an InvalidStateException factory ;-) - -ConstEntries FileCollection::entries() const { - if ( ! _valid ) - throw InvalidStateException( "Attempt to get entries from an invalid FileCollection" ) ; - - // The constructor below is not in all vector impl. (not those - // without member templates) - // ConstEntries ( _entries.begin(), _entries.end() ) ; - // Instead of using that we copy the vector manually - ConstEntries cep_vec ; - cep_vec.reserve( _entries.size() ) ; - Entries::const_iterator cit ; - for ( cit = _entries.begin() ; cit != _entries.end() ; ++cit ) - cep_vec.push_back( *cit ) ; - - return cep_vec ; -} - -ConstEntryPointer FileCollection::getEntry( const string &name, - MatchPath matchpath ) const { - if ( ! _valid ) - throw InvalidStateException( "Attempt to get an entry from an invalid FileCollection" ) ; - - Entries::const_iterator iter ; - if ( matchpath == MATCH ) - iter = find_if( _entries.begin(), _entries.end(), FileEntry::MatchName( name ) ) ; - else - iter = find_if( _entries.begin(), _entries.end(), FileEntry::MatchFileName( name ) ) ; - if ( iter == _entries.end() ) - return 0 ; - else - return *iter ; -} - -string FileCollection::getName() const { - if ( ! _valid ) - throw InvalidStateException( "Attempt to get the name of an invalid FileCollection" ) ; - return _filename ; -} - - -int FileCollection::size() const { - if ( ! _valid ) - throw InvalidStateException( "Attempt to get size of an invalid FileCollection" ) ; - return _entries.size() ; -} - -FileCollection::~FileCollection() { -} - - -} // namespace - -/** \file - Implementation of FileCollection. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/fcollexceptions.cc b/source/visualization/HepRep/src/fcollexceptions.cc deleted file mode 100644 index 77c895b7f0..0000000000 --- a/source/visualization/HepRep/src/fcollexceptions.cc +++ /dev/null @@ -1,144 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -#include "zipios++/fcollexceptions.h" - -namespace zipios { - -using std::cerr ; -using std::endl ; - -IOException::IOException() throw () - : _what( "I/O exception" ) {} - -IOException::IOException( const string &msg ) throw () - : _what( msg ) {} - -IOException::IOException( const IOException &src ) throw () - : /* MD */ std::exception(), _what( src._what ) {} - - -IOException &IOException::operator= ( const IOException &src ) throw () { - _what = src._what ; - return *this ; -} - - -const char *IOException::what() const throw () { - return _what.c_str() ; -} - -IOException::~IOException() throw () {} - - - - - - -FCollException::FCollException() throw () - : _what( "FileCollection exception" ) {} - -FCollException::FCollException( const string &msg ) throw () - : _what( msg ) {} - -FCollException::FCollException( const FCollException &src ) throw () - : /* MD */ std::exception(), _what( src._what ) {} - - -FCollException &FCollException::operator= ( const FCollException &src ) throw () { - _what = src._what ; - return *this ; -} - - -const char *FCollException::what() const throw () { - return _what.c_str() ; -} - -FCollException::~FCollException() throw () {} - - - - - - -InvalidStateException::InvalidStateException() throw () - : _what( "InvalidState exception" ) {} - -InvalidStateException::InvalidStateException( const string &msg ) throw () - : _what( msg ) {} - -InvalidStateException:: -InvalidStateException( const InvalidStateException &src ) throw () - : /* MD */ std::exception(), _what( src._what ) {} - - -InvalidStateException &InvalidStateException:: -operator= ( const InvalidStateException &src ) throw () { - _what = src._what ; - return *this ; -} - - -const char *InvalidStateException::what() const throw () { - return _what.c_str() ; -} - -InvalidStateException::~InvalidStateException() throw () {} - - - - - -Exception::Exception() throw () - : _what( "Exception" ) {} - -Exception::Exception( const string &msg ) throw () - : _what( msg ) {} - -Exception:: -Exception( const Exception &src ) throw () - : /* MD */ std::exception(), _what( src._what ) {} - - -Exception &Exception:: -operator= ( const Exception &src ) throw () { - _what = src._what ; - return *this ; -} - - -const char *Exception::what() const throw () { - return _what.c_str() ; -} - -Exception::~Exception() throw () {} - - -} // namespace - -/** \file - Implementation of a number of Exceptions used by FileCollection and its - subclasses. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/fileentry.cc b/source/visualization/HepRep/src/fileentry.cc deleted file mode 100644 index 4a76ace7e3..0000000000 --- a/source/visualization/HepRep/src/fileentry.cc +++ /dev/null @@ -1,39 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" -#include - -#include "zipios++/fileentry.h" - -namespace zipios { - -ostream &operator<< ( ostream &os, const FileEntry &entry ) { - os << entry.toString() ; - return os ; -} - -} // namespace - -/** \file - Implementation of FileEntry. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/filepath.cc b/source/visualization/HepRep/src/filepath.cc deleted file mode 100644 index bcce4105f9..0000000000 --- a/source/visualization/HepRep/src/filepath.cc +++ /dev/null @@ -1,77 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include -#include -#include -#include - -#include "zipios++/filepath.h" - -//MD: Linux 2.95 does not have S_ISSOCK under c++ and geant4 -#ifndef S_ISSOCK -#define S_ISSOCK(mode) 0 -#endif - -namespace zipios { - -using namespace std ; - -const char FilePath::_separator = '/' ; - - -FilePath::FilePath( const string &path, bool check_exists ) - : _checked( false ), - _path( path ) { - pruneTrailingSeparator() ; - if ( check_exists ) - exists() ; -} - - -void FilePath::check() const { - _checked = true ; - _exists = false ; - _is_reg = false ; - _is_dir = false ; - _is_char = false ; - _is_block = false ; - _is_socket = false ; - _is_fifo = false ; - - struct stat buf ; - if ( stat( _path.c_str(), &buf ) != -1 ) { - _exists = true ; - _is_reg = S_ISREG ( buf.st_mode ) ; - _is_dir = S_ISDIR ( buf.st_mode ) ; - _is_char = S_ISCHR ( buf.st_mode ) ; - _is_block = S_ISBLK ( buf.st_mode ) ; - _is_socket = S_ISSOCK( buf.st_mode ) ; - _is_fifo = S_ISFIFO( buf.st_mode ) ; - } -} - -} // namespace - -/** \file - Implementation of FilePath. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/filterinputstreambuf.cc b/source/visualization/HepRep/src/filterinputstreambuf.cc deleted file mode 100644 index 054152305d..0000000000 --- a/source/visualization/HepRep/src/filterinputstreambuf.cc +++ /dev/null @@ -1,47 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/filterinputstreambuf.h" - -namespace zipios { - -FilterInputStreambuf::FilterInputStreambuf( streambuf *inbuf, bool del_inbuf ) - : _inbuf( inbuf), - _del_inbuf( del_inbuf ) -{ - if ( _inbuf == NULL ) { - // throw an exception - } -} - - -FilterInputStreambuf::~FilterInputStreambuf() { - if ( _del_inbuf ) - delete _inbuf ; -} - - -} // namespace - -/** \file - Implementation of FilterInputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/filteroutputstreambuf.cc b/source/visualization/HepRep/src/filteroutputstreambuf.cc deleted file mode 100644 index 2fc02293a7..0000000000 --- a/source/visualization/HepRep/src/filteroutputstreambuf.cc +++ /dev/null @@ -1,47 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/filteroutputstreambuf.h" - -namespace zipios { - -FilterOutputStreambuf::FilterOutputStreambuf( streambuf *outbuf, bool del_outbuf ) - : _outbuf( outbuf), - _del_outbuf( del_outbuf ) -{ - if ( _outbuf == NULL ) { - // throw an exception - } -} - - -FilterOutputStreambuf::~FilterOutputStreambuf() { - if ( _del_outbuf ) - delete _outbuf ; -} - - -} // namespace - -/** \file - Implementation of FilterOutputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/gzio.cc b/source/visualization/HepRep/src/gzio.cc deleted file mode 100644 index 4b7a949856..0000000000 --- a/source/visualization/HepRep/src/gzio.cc +++ /dev/null @@ -1,963 +0,0 @@ -/* gzio.c -- IO on .gz files - * Copyright (C) 1995-2003 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - * - * Compile this file with -DNO_GZCOMPRESS to avoid the compression code. - */ - -/* @(#) $Id: gzio.cc,v 1.7 2004/11/22 19:08:59 duns Exp $ */ - -#include - -#include "HepRep-zutil.h" - -#ifdef NO_DEFLATE /* for compatiblity with old definition */ -# define NO_GZCOMPRESS -#endif - -#ifndef NO_DUMMY_DECL -struct internal_state {int dummy;}; /* for buggy compilers */ -#endif - -#ifndef Z_BUFSIZE -# ifdef MAXSEG_64K -# define Z_BUFSIZE 4096 /* minimize memory usage for 16-bit DOS */ -# else -# define Z_BUFSIZE 16384 -# endif -#endif -#ifndef Z_PRINTF_BUFSIZE -# define Z_PRINTF_BUFSIZE 4096 -#endif - -#ifdef __MVS__ -# pragma map (fdopen , "\174\174FDOPEN") - FILE *fdopen(int, const char *); -#endif - -#ifndef STDC -extern voidp malloc OF((uInt size)); -extern void free OF((voidpf ptr)); -#endif - -#define ALLOC(size) malloc(size) -#define TRYFREE(p) {if (p) free(p);} - -static int const gz_magic[2] = {0x1f, 0x8b}; /* gzip magic header */ - -/* gzip flag byte */ -#define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */ -#define HEAD_CRC 0x02 /* bit 1 set: header CRC present */ -#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ -#define ORIG_NAME 0x08 /* bit 3 set: original file name present */ -#define COMMENT 0x10 /* bit 4 set: file comment present */ -#define RESERVED 0xE0 /* bits 5..7: reserved */ - -typedef struct gz_stream { - z_stream stream; - int z_err; /* error code for last stream operation */ - int z_eof; /* set if end of input file */ - FILE *file; /* .gz file */ - Byte *inbuf; /* input buffer */ - Byte *outbuf; /* output buffer */ - uLong crc; /* crc32 of uncompressed data */ - char *msg; /* error message */ - char *path; /* path name for debugging only */ - int transparent; /* 1 if input file is not a .gz file */ - char mode; /* 'w' or 'r' */ - z_off_t start; /* start of compressed data in file (header skipped) */ - z_off_t in; /* bytes into deflate or inflate */ - z_off_t out; /* bytes out of deflate or inflate */ - int back; /* one character push-back */ - int last; /* true if push-back is last character */ -} gz_stream; - - -local gzFile gz_open OF((const char *path, const char *mode, int fd)); -local int do_flush OF((gzFile file, int flush)); -local int get_byte OF((gz_stream *s)); -local void check_header OF((gz_stream *s)); -local int destroy OF((gz_stream *s)); -local void putLong OF((FILE *file, uLong x)); -local uLong getLong OF((gz_stream *s)); - -/* =========================================================================== - Opens a gzip (.gz) file for reading or writing. The mode parameter - is as in fopen ("rb" or "wb"). The file is given either by file descriptor - or path name (if fd == -1). - gz_open returns NULL if the file could not be opened or if there was - insufficient memory to allocate the (de)compression state; errno - can be checked to distinguish the two cases (if errno is zero, the - zlib error is Z_MEM_ERROR). -*/ -local gzFile gz_open (const char *path, const char *mode, int fd) -{ - int err; - int level = Z_DEFAULT_COMPRESSION; /* compression level */ - int strategy = Z_DEFAULT_STRATEGY; /* compression strategy */ - char *p = (char*)mode; - gz_stream *s; - char fmode[80]; /* copy of mode, without the compression level */ - char *m = fmode; - - if (!path || !mode) return Z_NULL; - - s = (gz_stream *)ALLOC(sizeof(gz_stream)); - if (!s) return Z_NULL; - - s->stream.zalloc = (alloc_func)0; - s->stream.zfree = (free_func)0; - s->stream.opaque = (voidpf)0; - s->stream.next_in = s->inbuf = Z_NULL; - s->stream.next_out = s->outbuf = Z_NULL; - s->stream.avail_in = s->stream.avail_out = 0; - s->file = NULL; - s->z_err = Z_OK; - s->z_eof = 0; - s->in = 0; - s->out = 0; - s->back = EOF; - s->crc = crc32(0L, Z_NULL, 0); - s->msg = NULL; - s->transparent = 0; - - s->path = (char*)ALLOC(strlen(path)+1); - if (s->path == NULL) { - return destroy(s), (gzFile)Z_NULL; - } - strcpy(s->path, path); /* do this early for debugging */ - - s->mode = '\0'; - do { - if (*p == 'r') s->mode = 'r'; - if (*p == 'w' || *p == 'a') s->mode = 'w'; - if (*p >= '0' && *p <= '9') { - level = *p - '0'; - } else if (*p == 'f') { - strategy = Z_FILTERED; - } else if (*p == 'h') { - strategy = Z_HUFFMAN_ONLY; - } else if (*p == 'R') { - strategy = Z_RLE; - } else { - *m++ = *p; /* copy the mode */ - } - } while (*p++ && m != fmode + sizeof(fmode)); - if (s->mode == '\0') return destroy(s), (gzFile)Z_NULL; - - if (s->mode == 'w') { -#ifdef NO_GZCOMPRESS - err = Z_STREAM_ERROR; -#else - err = deflateInit2(&(s->stream), level, - Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, strategy); - /* windowBits is passed < 0 to suppress zlib header */ - - s->stream.next_out = s->outbuf = (Byte*)ALLOC(Z_BUFSIZE); -#endif - if (err != Z_OK || s->outbuf == Z_NULL) { - return destroy(s), (gzFile)Z_NULL; - } - } else { - s->stream.next_in = s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); - - err = inflateInit2(&(s->stream), -MAX_WBITS); - /* windowBits is passed < 0 to tell that there is no zlib header. - * Note that in this case inflate *requires* an extra "dummy" byte - * after the compressed stream in order to complete decompression and - * return Z_STREAM_END. Here the gzip CRC32 ensures that 4 bytes are - * present after the compressed stream. - */ - if (err != Z_OK || s->inbuf == Z_NULL) { - return destroy(s), (gzFile)Z_NULL; - } - } - s->stream.avail_out = Z_BUFSIZE; - - errno = 0; - s->file = fd < 0 ? F_OPEN(path, fmode) : (FILE*)fdopen(fd, fmode); - - if (s->file == NULL) { - return destroy(s), (gzFile)Z_NULL; - } - if (s->mode == 'w') { - /* Write a very simple .gz header: - */ - fprintf(s->file, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1], - Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, OS_CODE); - s->start = 10L; - /* We use 10L instead of ftell(s->file) to because ftell causes an - * fflush on some systems. This version of the library doesn't use - * start anyway in write mode, so this initialization is not - * necessary. - */ - } else { - check_header(s); /* skip the .gz header */ - s->start = ftell(s->file) - s->stream.avail_in; - } - - return (gzFile)s; -} - -/* =========================================================================== - Opens a gzip (.gz) file for reading or writing. -*/ -gzFile ZEXPORT gzopen (const char *path, const char *mode) -{ - return gz_open (path, mode, -1); -} - -/* =========================================================================== - Associate a gzFile with the file descriptor fd. fd is not dup'ed here - to mimic the behavio(u)r of fdopen. -*/ -gzFile ZEXPORT gzdopen (int fd, const char *mode) -{ - char name[20]; - - if (fd < 0) return (gzFile)Z_NULL; - sprintf(name, "", fd); /* for debugging */ - - return gz_open (name, mode, fd); -} - -/* =========================================================================== - * Update the compression level and strategy - */ -int ZEXPORT gzsetparams (gzFile file, int level, int strategy) -{ - gz_stream *s = (gz_stream*)file; - - if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; - - /* Make room to allow flushing */ - if (s->stream.avail_out == 0) { - - s->stream.next_out = s->outbuf; - if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) { - s->z_err = Z_ERRNO; - } - s->stream.avail_out = Z_BUFSIZE; - } - - return deflateParams (&(s->stream), level, strategy); -} - -/* =========================================================================== - Read a byte from a gz_stream; update next_in and avail_in. Return EOF - for end of file. - IN assertion: the stream s has been sucessfully opened for reading. -*/ -local int get_byte(gz_stream *s) -{ - if (s->z_eof) return EOF; - if (s->stream.avail_in == 0) { - errno = 0; - s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file); - if (s->stream.avail_in == 0) { - s->z_eof = 1; - if (ferror(s->file)) s->z_err = Z_ERRNO; - return EOF; - } - s->stream.next_in = s->inbuf; - } - s->stream.avail_in--; - return *(s->stream.next_in)++; -} - -/* =========================================================================== - Check the gzip header of a gz_stream opened for reading. Set the stream - mode to transparent if the gzip magic header is not present; set s->err - to Z_DATA_ERROR if the magic header is present but the rest of the header - is incorrect. - IN assertion: the stream s has already been created sucessfully; - s->stream.avail_in is zero for the first time, but may be non-zero - for concatenated .gz files. -*/ -local void check_header(gz_stream *s) -{ - int method; /* method byte */ - int flags; /* flags byte */ - uInt len; - int c; - - /* Assure two bytes in the buffer so we can peek ahead -- handle case - where first byte of header is at the end of the buffer after the last - gzip segment */ - len = s->stream.avail_in; - if (len < 2) { - if (len) s->inbuf[0] = s->stream.next_in[0]; - errno = 0; - len = fread(s->inbuf + len, 1, Z_BUFSIZE >> len, s->file); - if (len == 0 && ferror(s->file)) s->z_err = Z_ERRNO; - s->stream.avail_in += len; - s->stream.next_in = s->inbuf; - if (s->stream.avail_in < 2) { - s->transparent = s->stream.avail_in; - return; - } - } - - /* Peek ahead to check the gzip magic header */ - if (s->stream.next_in[0] != gz_magic[0] || - s->stream.next_in[1] != gz_magic[1]) { - s->transparent = 1; - return; - } - s->stream.avail_in -= 2; - s->stream.next_in += 2; - - /* Check the rest of the gzip header */ - method = get_byte(s); - flags = get_byte(s); - if (method != Z_DEFLATED || (flags & RESERVED) != 0) { - s->z_err = Z_DATA_ERROR; - return; - } - - /* Discard time, xflags and OS code: */ - for (len = 0; len < 6; len++) (void)get_byte(s); - - if ((flags & EXTRA_FIELD) != 0) { /* skip the extra field */ - len = (uInt)get_byte(s); - len += ((uInt)get_byte(s))<<8; - /* len is garbage if EOF but the loop below will quit anyway */ - while (len-- != 0 && get_byte(s) != EOF) ; - } - if ((flags & ORIG_NAME) != 0) { /* skip the original file name */ - while ((c = get_byte(s)) != 0 && c != EOF) ; - } - if ((flags & COMMENT) != 0) { /* skip the .gz file comment */ - while ((c = get_byte(s)) != 0 && c != EOF) ; - } - if ((flags & HEAD_CRC) != 0) { /* skip the header crc */ - for (len = 0; len < 2; len++) (void)get_byte(s); - } - s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK; -} - - /* =========================================================================== - * Cleanup then free the given gz_stream. Return a zlib error code. - Try freeing in the reverse order of allocations. - */ -local int destroy (gz_stream *s) -{ - int err = Z_OK; - - if (!s) return Z_STREAM_ERROR; - - TRYFREE(s->msg); - - if (s->stream.state != NULL) { - if (s->mode == 'w') { -#ifdef NO_GZCOMPRESS - err = Z_STREAM_ERROR; -#else - err = deflateEnd(&(s->stream)); -#endif - } else if (s->mode == 'r') { - err = inflateEnd(&(s->stream)); - } - } - if (s->file != NULL && fclose(s->file)) { -#ifdef ESPIPE - if (errno != ESPIPE) /* fclose is broken for pipes in HP/UX */ -#endif - err = Z_ERRNO; - } - if (s->z_err < 0) err = s->z_err; - - TRYFREE(s->inbuf); - TRYFREE(s->outbuf); - TRYFREE(s->path); - TRYFREE(s); - return err; -} - -/* =========================================================================== - Reads the given number of uncompressed bytes from the compressed file. - gzread returns the number of bytes actually read (0 for end of file). -*/ -int ZEXPORT gzread (gzFile file, voidp buf, unsigned len) -{ - gz_stream *s = (gz_stream*)file; - Bytef *start = (Bytef*)buf; /* starting point for crc computation */ - Byte *next_out; /* == stream.next_out but not forced far (for MSDOS) */ - - if (s == NULL || s->mode != 'r') return Z_STREAM_ERROR; - - if (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO) return -1; - if (s->z_err == Z_STREAM_END) return 0; /* EOF */ - - next_out = (Byte*)buf; - s->stream.next_out = (Bytef*)buf; - s->stream.avail_out = len; - - if (s->stream.avail_out && s->back != EOF) { - *next_out++ = s->back; - s->stream.next_out++; - s->stream.avail_out--; - s->back = EOF; - s->out++; - if (s->last) { - s->z_err = Z_STREAM_END; - return 1; - } - } - - while (s->stream.avail_out != 0) { - - if (s->transparent) { - /* Copy first the lookahead bytes: */ - uInt n = s->stream.avail_in; - if (n > s->stream.avail_out) n = s->stream.avail_out; - if (n > 0) { - zmemcpy(s->stream.next_out, s->stream.next_in, n); - next_out += n; - s->stream.next_out = next_out; - s->stream.next_in += n; - s->stream.avail_out -= n; - s->stream.avail_in -= n; - } - if (s->stream.avail_out > 0) { - s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out, - s->file); - } - len -= s->stream.avail_out; - s->in += len; - s->out += len; - if (len == 0) s->z_eof = 1; - return (int)len; - } - if (s->stream.avail_in == 0 && !s->z_eof) { - - errno = 0; - s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file); - if (s->stream.avail_in == 0) { - s->z_eof = 1; - if (ferror(s->file)) { - s->z_err = Z_ERRNO; - break; - } - if (feof(s->file)) { /* avoid error for empty file */ - s->z_err = Z_STREAM_END; - break; - } - } - s->stream.next_in = s->inbuf; - } - s->in += s->stream.avail_in; - s->out += s->stream.avail_out; - s->z_err = inflate(&(s->stream), Z_NO_FLUSH); - s->in -= s->stream.avail_in; - s->out -= s->stream.avail_out; - - if (s->z_err == Z_STREAM_END) { - /* Check CRC and original size */ - s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); - start = s->stream.next_out; - - if (getLong(s) != s->crc) { - s->z_err = Z_DATA_ERROR; - } else { - (void)getLong(s); - /* The uncompressed length returned by above getlong() may be - * different from s->out in case of concatenated .gz files. - * Check for such files: - */ - check_header(s); - if (s->z_err == Z_OK) { - inflateReset(&(s->stream)); - s->crc = crc32(0L, Z_NULL, 0); - } - } - } - if (s->z_err != Z_OK || s->z_eof) break; - } - s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); - - return (int)(len - s->stream.avail_out); -} - - -/* =========================================================================== - Reads one byte from the compressed file. gzgetc returns this byte - or -1 in case of end of file or error. -*/ -int ZEXPORT gzgetc(gzFile file) -{ - unsigned char c; - - return gzread(file, &c, 1) == 1 ? c : -1; -} - - -/* =========================================================================== - Push one byte back onto the stream. -*/ -int ZEXPORT gzungetc(int c, gzFile file) -{ - gz_stream *s = (gz_stream*)file; - - if (s == NULL || s->mode != 'r' || c == EOF || s->back != EOF) return EOF; - s->back = c; - s->out--; - s->last = (s->z_err == Z_STREAM_END); - if (s->last) s->z_err = Z_OK; - s->z_eof = 0; - return c; -} - - -/* =========================================================================== - Reads bytes from the compressed file until len-1 characters are - read, or a newline character is read and transferred to buf, or an - end-of-file condition is encountered. The string is then terminated - with a null character. - gzgets returns buf, or Z_NULL in case of error. - - The current implementation is not optimized at all. -*/ -char * ZEXPORT gzgets(gzFile file, char *buf, int len) -{ - char *b = buf; - if (buf == Z_NULL || len <= 0) return Z_NULL; - - while (--len > 0 && gzread(file, buf, 1) == 1 && *buf++ != '\n') ; - *buf = '\0'; - return b == buf && len > 0 ? Z_NULL : b; -} - - -#ifndef NO_GZCOMPRESS -/* =========================================================================== - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of bytes actually written (0 in case of error). -*/ -int ZEXPORT gzwrite (gzFile file, voidpc buf, unsigned len) -{ - gz_stream *s = (gz_stream*)file; - - if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; - - s->stream.next_in = (Bytef*)buf; - s->stream.avail_in = len; - - while (s->stream.avail_in != 0) { - - if (s->stream.avail_out == 0) { - - s->stream.next_out = s->outbuf; - if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) { - s->z_err = Z_ERRNO; - break; - } - s->stream.avail_out = Z_BUFSIZE; - } - s->in += s->stream.avail_in; - s->out += s->stream.avail_out; - s->z_err = deflate(&(s->stream), Z_NO_FLUSH); - s->in -= s->stream.avail_in; - s->out -= s->stream.avail_out; - if (s->z_err != Z_OK) break; - } - s->crc = crc32(s->crc, (const Bytef *)buf, len); - - return (int)(len - s->stream.avail_in); -} - - -/* =========================================================================== - Converts, formats, and writes the args to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written (0 in case of error). -*/ -#ifdef STDC -#include - -int ZEXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...) -{ - char buf[Z_PRINTF_BUFSIZE]; - va_list va; - int len; - - buf[sizeof(buf) - 1] = 0; - va_start(va, format); -#ifdef NO_vsnprintf -# ifdef HAS_vsprintf_void - (void)vsprintf(buf, format, va); - va_end(va); - for (len = 0; len < sizeof(buf); len++) - if (buf[len] == 0) break; -# else - len = vsprintf(buf, format, va); - va_end(va); -# endif -#else -# ifdef HAS_vsnprintf_void - (void)vsnprintf(buf, sizeof(buf), format, va); - va_end(va); - len = strlen(buf); -# else - len = vsnprintf(buf, sizeof(buf), format, va); - va_end(va); -# endif -#endif - if (len <= 0 || len >= (int)sizeof(buf) || buf[sizeof(buf) - 1] != 0) - return 0; - return gzwrite(file, buf, (unsigned)len); -} -#else /* not ANSI C */ - -int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - gzFile file; - const char *format; - int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, a19, a20; -{ - char buf[Z_PRINTF_BUFSIZE]; - int len; - - buf[sizeof(buf) - 1] = 0; -#ifdef NO_snprintf -# ifdef HAS_sprintf_void - sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8, - a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); - for (len = 0; len < sizeof(buf); len++) - if (buf[len] == 0) break; -# else - len = sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8, - a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); -# endif -#else -# ifdef HAS_snprintf_void - snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8, - a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); - len = strlen(buf); -# else - len = snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8, - a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); -# endif -#endif - if (len <= 0 || len >= sizeof(buf) || buf[sizeof(buf) - 1] != 0) - return 0; - return gzwrite(file, buf, len); -} -#endif - -/* =========================================================================== - Writes c, converted to an unsigned char, into the compressed file. - gzputc returns the value that was written, or -1 in case of error. -*/ -int ZEXPORT gzputc(gzFile file, int c) -{ - unsigned char cc = (unsigned char) c; /* required for big endian systems */ - - return gzwrite(file, &cc, 1) == 1 ? (int)cc : -1; -} - - -/* =========================================================================== - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - gzputs returns the number of characters written, or -1 in case of error. -*/ -int ZEXPORT gzputs(gzFile file, const char *s) -{ - return gzwrite(file, (char*)s, (unsigned)strlen(s)); -} - - -/* =========================================================================== - Flushes all pending output into the compressed file. The parameter - flush is as in the deflate() function. -*/ -local int do_flush (gzFile file, int flush) -{ - uInt len; - int done = 0; - gz_stream *s = (gz_stream*)file; - - if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; - - s->stream.avail_in = 0; /* should be zero already anyway */ - - for (;;) { - len = Z_BUFSIZE - s->stream.avail_out; - - if (len != 0) { - if ((uInt)fwrite(s->outbuf, 1, len, s->file) != len) { - s->z_err = Z_ERRNO; - return Z_ERRNO; - } - s->stream.next_out = s->outbuf; - s->stream.avail_out = Z_BUFSIZE; - } - if (done) break; - s->out += s->stream.avail_out; - s->z_err = deflate(&(s->stream), flush); - s->out -= s->stream.avail_out; - - /* Ignore the second of two consecutive flushes: */ - if (len == 0 && s->z_err == Z_BUF_ERROR) s->z_err = Z_OK; - - /* deflate has finished flushing only when it hasn't used up - * all the available space in the output buffer: - */ - done = (s->stream.avail_out != 0 || s->z_err == Z_STREAM_END); - - if (s->z_err != Z_OK && s->z_err != Z_STREAM_END) break; - } - return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; -} - -int ZEXPORT gzflush (gzFile file, int flush) -{ - gz_stream *s = (gz_stream*)file; - int err = do_flush (file, flush); - - if (err) return err; - fflush(s->file); - return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; -} -#endif /* NO_GZCOMPRESS */ - -/* =========================================================================== - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error. - SEEK_END is not implemented, returns error. - In this version of the library, gzseek can be extremely slow. -*/ -z_off_t ZEXPORT gzseek (gzFile file, z_off_t offset, int whence) -{ - gz_stream *s = (gz_stream*)file; - - if (s == NULL || whence == SEEK_END || - s->z_err == Z_ERRNO || s->z_err == Z_DATA_ERROR) { - return -1L; - } - - if (s->mode == 'w') { -#ifdef NO_GZCOMPRESS - return -1L; -#else - if (whence == SEEK_SET) { - offset -= s->in; - } - if (offset < 0) return -1L; - - /* At this point, offset is the number of zero bytes to write. */ - if (s->inbuf == Z_NULL) { - s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); /* for seeking */ - if (s->inbuf == Z_NULL) return -1L; - zmemzero(s->inbuf, Z_BUFSIZE); - } - while (offset > 0) { - uInt size = Z_BUFSIZE; - if (offset < Z_BUFSIZE) size = (uInt)offset; - - size = gzwrite(file, s->inbuf, size); - if (size == 0) return -1L; - - offset -= size; - } - return s->in; -#endif - } - /* Rest of function is for reading only */ - - /* compute absolute position */ - if (whence == SEEK_CUR) { - offset += s->out; - } - if (offset < 0) return -1L; - - if (s->transparent) { - /* map to fseek */ - s->back = EOF; - s->stream.avail_in = 0; - s->stream.next_in = s->inbuf; - if (fseek(s->file, offset, SEEK_SET) < 0) return -1L; - - s->in = s->out = offset; - return offset; - } - - /* For a negative seek, rewind and use positive seek */ - if (offset >= s->out) { - offset -= s->out; - } else if (gzrewind(file) < 0) { - return -1L; - } - /* offset is now the number of bytes to skip. */ - - if (offset != 0 && s->outbuf == Z_NULL) { - s->outbuf = (Byte*)ALLOC(Z_BUFSIZE); - if (s->outbuf == Z_NULL) return -1L; - } - if (offset && s->back != EOF) { - s->back = EOF; - s->out++; - offset--; - if (s->last) s->z_err = Z_STREAM_END; - } - while (offset > 0) { - int size = Z_BUFSIZE; - if (offset < Z_BUFSIZE) size = (int)offset; - - size = gzread(file, s->outbuf, (uInt)size); - if (size <= 0) return -1L; - offset -= size; - } - return s->out; -} - -/* =========================================================================== - Rewinds input file. -*/ -int ZEXPORT gzrewind (gzFile file) -{ - gz_stream *s = (gz_stream*)file; - - if (s == NULL || s->mode != 'r') return -1; - - s->z_err = Z_OK; - s->z_eof = 0; - s->back = EOF; - s->stream.avail_in = 0; - s->stream.next_in = s->inbuf; - s->crc = crc32(0L, Z_NULL, 0); - if (!s->transparent) (void)inflateReset(&s->stream); - s->in = 0; - s->out = 0; - return fseek(s->file, s->start, SEEK_SET); -} - -/* =========================================================================== - Returns the starting position for the next gzread or gzwrite on the - given compressed file. This position represents a number of bytes in the - uncompressed data stream. -*/ -z_off_t ZEXPORT gztell (gzFile file) -{ - return gzseek(file, 0L, SEEK_CUR); -} - -/* =========================================================================== - Returns 1 when EOF has previously been detected reading the given - input stream, otherwise zero. -*/ -int ZEXPORT gzeof (gzFile file) -{ - gz_stream *s = (gz_stream*)file; - - /* With concatenated compressed files that can have embedded - * crc trailers, z_eof is no longer the only/best indicator of EOF - * on a gz_stream. Handle end-of-stream error explicitly here. - */ - if (s == NULL || s->mode != 'r') return 0; - if (s->z_eof) return 1; - return s->z_err == Z_STREAM_END; -} - -/* =========================================================================== - Outputs a long in LSB order to the given file -*/ -local void putLong (FILE *file, uLong x) -{ - int n; - for (n = 0; n < 4; n++) { - fputc((int)(x & 0xff), file); - x >>= 8; - } -} - -/* =========================================================================== - Reads a long in LSB order from the given gz_stream. Sets z_err in case - of error. -*/ -local uLong getLong (gz_stream *s) -{ - uLong x = (uLong)get_byte(s); - int c; - - x += ((uLong)get_byte(s))<<8; - x += ((uLong)get_byte(s))<<16; - c = get_byte(s); - if (c == EOF) s->z_err = Z_DATA_ERROR; - x += ((uLong)c)<<24; - return x; -} - -/* =========================================================================== - Flushes all pending output if necessary, closes the compressed file - and deallocates all the (de)compression state. -*/ -int ZEXPORT gzclose (gzFile file) -{ - int err; - gz_stream *s = (gz_stream*)file; - - if (s == NULL) return Z_STREAM_ERROR; - - if (s->mode == 'w') { -#ifdef NO_GZCOMPRESS - return Z_STREAM_ERROR; -#else - err = do_flush (file, Z_FINISH); - if (err != Z_OK) return destroy((gz_stream*)file); - - putLong (s->file, s->crc); - putLong (s->file, (uLong)(s->in & 0xffffffff)); -#endif - } - return destroy((gz_stream*)file); -} - -/* =========================================================================== - Returns the error message for the last error which occured on the - given compressed file. errnum is set to zlib error number. If an - error occured in the file system and not in the compression library, - errnum is set to Z_ERRNO and the application may consult errno - to get the exact error code. -*/ -const char * ZEXPORT gzerror (gzFile file, int *errnum) -{ - char *m; - gz_stream *s = (gz_stream*)file; - - if (s == NULL) { - *errnum = Z_STREAM_ERROR; - return (const char*)ERR_MSG(Z_STREAM_ERROR); - } - *errnum = s->z_err; - if (*errnum == Z_OK) return (const char*)""; - - m = (char*)(*errnum == Z_ERRNO ? zstrerror(errno) : s->stream.msg); - - if (m == NULL || *m == '\0') m = (char*)ERR_MSG(s->z_err); - - TRYFREE(s->msg); - s->msg = (char*)ALLOC(strlen(s->path) + strlen(m) + 3); - if (s->msg == Z_NULL) return (const char*)ERR_MSG(Z_MEM_ERROR); - strcpy(s->msg, s->path); - strcat(s->msg, ": "); - strcat(s->msg, m); - return (const char*)s->msg; -} - -/* =========================================================================== - Clear the error and end-of-file flags, and do the same for the real file. -*/ -void ZEXPORT gzclearerr (gzFile file) -{ - gz_stream *s = (gz_stream*)file; - - if (s == NULL) return; - if (s->z_err != Z_STREAM_END) s->z_err = Z_OK; - s->z_eof = 0; - clearerr(s->file); -} diff --git a/source/visualization/HepRep/src/gzipoutputstream.cc b/source/visualization/HepRep/src/gzipoutputstream.cc old mode 100644 new mode 100755 index 6a428b7ce5..2a2badd303 --- a/source/visualization/HepRep/src/gzipoutputstream.cc +++ b/source/visualization/HepRep/src/gzipoutputstream.cc @@ -1,80 +1,39 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -#include "zipios++/gzipoutputstreambuf.h" -#include "zipios++/gzipoutputstream.h" - -using std::ostream; - -namespace zipios { - -GZIPOutputStream::GZIPOutputStream( std::ostream &os ) - : ostream( 0 ), - ofs( 0 ) -{ - ozf = new GZIPOutputStreambuf( os.rdbuf() ) ; - - init( ozf ) ; -} - -GZIPOutputStream::GZIPOutputStream( const std::string &filename ) - : ostream( 0 ), - ofs( 0 ) -{ - ofs = new std::ofstream( filename.c_str(), std::ios::out | std::ios::binary ) ; - ozf = new GZIPOutputStreambuf( ofs->rdbuf() ) ; - init( ozf ) ; -} - -void GZIPOutputStream::setFilename( const string &filename ) { - ozf->setFilename(filename); -} - -void GZIPOutputStream::setComment( const string &comment ) { - ozf->setComment(comment); -} - -void GZIPOutputStream::close() { - ozf->close() ; - if ( ofs ) - ofs->close() ; -} - - -void GZIPOutputStream::finish() { - ozf->finish() ; -} - - -GZIPOutputStream::~GZIPOutputStream() { - // It's ok to call delete with a Null pointer. - delete ozf ; - delete ofs ; -} - -} // namespace - -/** \file - Implementation of GZIPOutputStream. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ +// Copyright FreeHEP, 2005. + +#include "cheprep/GZIPOutputStreamBuffer.h" +#include "cheprep/GZIPOutputStream.h" + +/** + * @author Mark Donszelmann + * @version $Id: GZIPOutputStream.cc,v 1.4 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + + using namespace std; + + GZIPOutputStream::GZIPOutputStream(ostream &os) + : std::ostream(NULL) { + + buffer = new GZIPOutputStreamBuffer(os.rdbuf()); + init(buffer); + } + + + void GZIPOutputStream::setFilename(const string &filename) { + buffer->setFilename(filename); + } + + void GZIPOutputStream::setComment(const string &comment) { + buffer->setComment(comment); + } + + void GZIPOutputStream::close() { + buffer->close(); + } + + + GZIPOutputStream::~GZIPOutputStream() { + delete buffer; + } + +} // cheprep diff --git a/source/visualization/HepRep/src/gzipoutputstreambuf.cc b/source/visualization/HepRep/src/gzipoutputstreambuf.cc deleted file mode 100644 index ccfcd94e07..0000000000 --- a/source/visualization/HepRep/src/gzipoutputstreambuf.cc +++ /dev/null @@ -1,127 +0,0 @@ - -#include - -#include "zipios++/zipios-config.h" - -#include -#include "zipios++/meta-iostreams.h" - -#include - -#include "zipios++/gzipoutputstreambuf.h" - -namespace zipios { - -using std::ios ; -using std::cerr ; -using std::endl ; - -GZIPOutputStreambuf::GZIPOutputStreambuf( streambuf *outbuf, bool del_outbuf ) - : DeflateOutputStreambuf( outbuf, true, del_outbuf ), - _open ( false ) -{ -} - -void GZIPOutputStreambuf::setFilename( const string &filename ) { - _filename = filename ; -} - -void GZIPOutputStreambuf::setComment( const string &comment ) { - _comment = comment ; -} - -void GZIPOutputStreambuf::close() { - finish() ; -} - -void GZIPOutputStreambuf::finish() { - if( ! _open ) - return ; - - closeStream(); - writeTrailer(); - - _open = false ; -} - -GZIPOutputStreambuf::~GZIPOutputStreambuf() { - finish() ; -} - -int GZIPOutputStreambuf::overflow( int c ) { - if (!_open) { - writeHeader(); - _open = true; - } - return DeflateOutputStreambuf::overflow( c ) ; -} - -int GZIPOutputStreambuf::sync() { - return DeflateOutputStreambuf::sync() ; -} - -void GZIPOutputStreambuf::writeHeader() { - unsigned char flg = 0x00; - flg |= (_filename == "") ? 0x00 : 0x08; - flg |= (_comment == "") ? 0x00 : 0x10; - - ostream os( _outbuf ) ; - os << (unsigned char)0x1f; // Magic # - os << (unsigned char)0x8b; // Magic # - os << (unsigned char)0x08; // Deflater.DEFLATED - os << flg; // FLG - os << (unsigned char)0x00; // MTIME - os << (unsigned char)0x00; // MTIME - os << (unsigned char)0x00; // MTIME - os << (unsigned char)0x00; // MTIME - os << (unsigned char)0x00; // XFLG - os << (unsigned char)0x00; // OS - - if (_filename != "") { - os << _filename.c_str();// Filename - os << (unsigned char)0x00; - } - - if (_comment != "") { - os << _comment.c_str(); // Comment - os << (unsigned char)0x00; - } -} - -void GZIPOutputStreambuf::writeTrailer() { - writeInt(getCrc32()); - writeInt(getCount()); -} - -void GZIPOutputStreambuf::writeInt(uint32 i) { - ostream os( _outbuf ) ; - os << (unsigned char)( i & 0xFF); - os << (unsigned char)((i >> 8) & 0xFF); - os << (unsigned char)((i >> 16) & 0xFF); - os << (unsigned char)((i >> 24) & 0xFF); -} - -} // namespace - -/** \file - Implementation of GZIPOutputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/infback.cc b/source/visualization/HepRep/src/infback.cc deleted file mode 100644 index 35338fcac6..0000000000 --- a/source/visualization/HepRep/src/infback.cc +++ /dev/null @@ -1,609 +0,0 @@ -/* infback.c -- inflate using a call-back interface - * Copyright (C) 1995-2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - this code is largely copied from inflate.c. Normally either infback.o or - inflate.o would be linked into an application--not both. The interface - with inffast.c is retained so that optimized assembler-coded versions of - inflate_fast() can be used with either inflate.c or infback.c. - */ - -#include "HepRep-zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -/* function prototypes */ -local void fixedtables OF((struct inflate_state FAR *state)); - -/* - strm provides memory allocation functions in zalloc and zfree, or - Z_NULL to use the library memory allocation functions. - - windowBits is in the range 8..15, and window is a user-supplied - window and output buffer that is 2**windowBits bytes. - */ -int ZEXPORT inflateBackInit_(z_stream FAR *strm, int windowBits, unsigned char FAR *window, const char *version, int stream_size) -{ - struct inflate_state FAR *state; - - if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || - stream_size != (int)(sizeof(z_stream))) - return Z_VERSION_ERROR; - if (strm == Z_NULL || window == Z_NULL || - windowBits < 8 || windowBits > 15) - return Z_STREAM_ERROR; - strm->msg = Z_NULL; /* in case we return an error */ - if (strm->zalloc == (alloc_func)0) { - strm->zalloc = zcalloc; - strm->opaque = (voidpf)0; - } - if (strm->zfree == (free_func)0) strm->zfree = zcfree; - state = (struct inflate_state FAR *)ZALLOC(strm, 1, - sizeof(struct inflate_state)); - if (state == Z_NULL) return Z_MEM_ERROR; - Tracev((stderr, "inflate: allocated\n")); - /* MD: needs an explicit cast in c++ */ - strm->state = (struct internal_state FAR *)state; - state->wbits = windowBits; - state->wsize = 1U << windowBits; - state->window = window; - state->write = 0; - state->whave = 0; - return Z_OK; -} - -/* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ -local void fixedtables(struct inflate_state FAR *state) -{ -#ifdef BUILDFIXED - static int virgin = 1; - static code *lenfix, *distfix; - static code fixed[544]; - - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - unsigned sym, bits; - static code *next; - - /* literal/length table */ - sym = 0; - while (sym < 144) state->lens[sym++] = 8; - while (sym < 256) state->lens[sym++] = 9; - while (sym < 280) state->lens[sym++] = 7; - while (sym < 288) state->lens[sym++] = 8; - next = fixed; - lenfix = next; - bits = 9; - inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); - - /* distance table */ - sym = 0; - while (sym < 32) state->lens[sym++] = 5; - distfix = next; - bits = 5; - inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); - - /* do this just once */ - virgin = 0; - } -#else /* !BUILDFIXED */ -# include "inffixed.h" -#endif /* BUILDFIXED */ - state->lencode = lenfix; - state->lenbits = 9; - state->distcode = distfix; - state->distbits = 5; -} - -/* Macros for inflateBack(): */ - -/* Load returned state from inflate_fast() */ -#define LOAD() \ - do { \ - put = strm->next_out; \ - left = strm->avail_out; \ - next = strm->next_in; \ - have = strm->avail_in; \ - hold = state->hold; \ - bits = state->bits; \ - } while (0) - -/* Set state from registers for inflate_fast() */ -#define RESTORE() \ - do { \ - strm->next_out = put; \ - strm->avail_out = left; \ - strm->next_in = next; \ - strm->avail_in = have; \ - state->hold = hold; \ - state->bits = bits; \ - } while (0) - -/* Clear the input bit accumulator */ -#define INITBITS() \ - do { \ - hold = 0; \ - bits = 0; \ - } while (0) - -/* Assure that some input is available. If input is requested, but denied, - then return a Z_BUF_ERROR from inflateBack(). */ -#define PULL() \ - do { \ - if (have == 0) { \ - have = in(in_desc, &next); \ - if (have == 0) { \ - next = Z_NULL; \ - ret = Z_BUF_ERROR; \ - goto inf_leave; \ - } \ - } \ - } while (0) - -/* Get a byte of input into the bit accumulator, or return from inflateBack() - with an error if there is no input available. */ -#define PULLBYTE() \ - do { \ - PULL(); \ - have--; \ - hold += (unsigned long)(*next++) << bits; \ - bits += 8; \ - } while (0) - -/* Assure that there are at least n bits in the bit accumulator. If there is - not enough available input to do that, then return from inflateBack() with - an error. */ -#define NEEDBITS(n) \ - do { \ - while (bits < (unsigned)(n)) \ - PULLBYTE(); \ - } while (0) - -/* Return the low n bits of the bit accumulator (n < 16) */ -#define BITS(n) \ - ((unsigned)hold & ((1U << (n)) - 1)) - -/* Remove n bits from the bit accumulator */ -#define DROPBITS(n) \ - do { \ - hold >>= (n); \ - bits -= (unsigned)(n); \ - } while (0) - -/* Remove zero to seven bits as needed to go to a byte boundary */ -#define BYTEBITS() \ - do { \ - hold >>= bits & 7; \ - bits -= bits & 7; \ - } while (0) - -/* Assure that some output space is available, by writing out the window - if it's full. If the write fails, return from inflateBack() with a - Z_BUF_ERROR. */ -#define ROOM() \ - do { \ - if (left == 0) { \ - put = state->window; \ - left = state->wsize; \ - state->whave = left; \ - if (out(out_desc, put, left)) { \ - ret = Z_BUF_ERROR; \ - goto inf_leave; \ - } \ - } \ - } while (0) - -/* - strm provides the memory allocation functions and window buffer on input, - and provides information on the unused input on return. For Z_DATA_ERROR - returns, strm will also provide an error message. - - in() and out() are the call-back input and output functions. When - inflateBack() needs more input, it calls in(). When inflateBack() has - filled the window with output, or when it completes with data in the - window, it calls out() to write out the data. The application must not - change the provided input until in() is called again or inflateBack() - returns. The application must not change the window/output buffer until - inflateBack() returns. - - in() and out() are called with a descriptor parameter provided in the - inflateBack() call. This parameter can be a structure that provides the - information required to do the read or write, as well as accumulated - information on the input and output such as totals and check values. - - in() should return zero on failure. out() should return non-zero on - failure. If either in() or out() fails, than inflateBack() returns a - Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it - was in() or out() that caused in the error. Otherwise, inflateBack() - returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format - error, or Z_MEM_ERROR if it could not allocate memory for the state. - inflateBack() can also return Z_STREAM_ERROR if the input parameters - are not correct, i.e. strm is Z_NULL or the state was not initialized. - */ -int ZEXPORT inflateBack(z_stream FAR *strm, in_func in, void FAR *in_desc, out_func out, void FAR *out_desc) -{ - struct inflate_state FAR *state; - unsigned char FAR *next; /* next input */ - unsigned char FAR *put; /* next output */ - unsigned have, left; /* available input and output */ - unsigned long hold; /* bit buffer */ - unsigned bits; /* bits in bit buffer */ - unsigned copy; /* number of stored or match bytes to copy */ - unsigned char FAR *from; /* where to copy match bytes from */ - /* MD: renamed this to thisOne */ - code thisOne; /* current decoding table entry */ - code last; /* parent table entry */ - unsigned len; /* length to copy for repeats, bits to drop */ - int ret; /* return code */ - static const unsigned short order[19] = /* permutation of code lengths */ - {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; - - /* Check that the strm exists and that the state was initialized */ - if (strm == Z_NULL || strm->state == Z_NULL) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - - /* Reset the state */ - strm->msg = Z_NULL; - state->mode = TYPE; - state->last = 0; - state->whave = 0; - next = strm->next_in; - have = next != Z_NULL ? strm->avail_in : 0; - hold = 0; - bits = 0; - put = state->window; - left = state->wsize; - - /* Inflate until end of block marked as last */ - for (;;) - switch (state->mode) { - case TYPE: - /* determine and dispatch block type */ - if (state->last) { - BYTEBITS(); - state->mode = DONE; - break; - } - NEEDBITS(3); - state->last = BITS(1); - DROPBITS(1); - switch (BITS(2)) { - case 0: /* stored block */ - Tracev((stderr, "inflate: stored block%s\n", - state->last ? " (last)" : "")); - state->mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - Tracev((stderr, "inflate: fixed codes block%s\n", - state->last ? " (last)" : "")); - state->mode = LEN; /* decode codes */ - break; - case 2: /* dynamic block */ - Tracev((stderr, "inflate: dynamic codes block%s\n", - state->last ? " (last)" : "")); - state->mode = TABLE; - break; - case 3: - strm->msg = (char *)"invalid block type"; - state->mode = BAD; - } - DROPBITS(2); - break; - - case STORED: - /* get and verify stored block length */ - BYTEBITS(); /* go to byte boundary */ - NEEDBITS(32); - if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { - strm->msg = (char *)"invalid stored block lengths"; - state->mode = BAD; - break; - } - state->length = (unsigned)hold & 0xffff; - Tracev((stderr, "inflate: stored length %u\n", - state->length)); - INITBITS(); - - /* copy stored block from input to output */ - while (state->length != 0) { - copy = state->length; - PULL(); - ROOM(); - if (copy > have) copy = have; - if (copy > left) copy = left; - zmemcpy(put, next, copy); - have -= copy; - next += copy; - left -= copy; - put += copy; - state->length -= copy; - } - Tracev((stderr, "inflate: stored end\n")); - state->mode = TYPE; - break; - - case TABLE: - /* get dynamic table entries descriptor */ - NEEDBITS(14); - state->nlen = BITS(5) + 257; - DROPBITS(5); - state->ndist = BITS(5) + 1; - DROPBITS(5); - state->ncode = BITS(4) + 4; - DROPBITS(4); -#ifndef PKZIP_BUG_WORKAROUND - if (state->nlen > 286 || state->ndist > 30) { - strm->msg = (char *)"too many length or distance symbols"; - state->mode = BAD; - break; - } -#endif - Tracev((stderr, "inflate: table sizes ok\n")); - - /* get code length code lengths (not a typo) */ - state->have = 0; - while (state->have < state->ncode) { - NEEDBITS(3); - state->lens[order[state->have++]] = (unsigned short)BITS(3); - DROPBITS(3); - } - while (state->have < 19) - state->lens[order[state->have++]] = 0; - state->next = state->codes; - state->lencode = (code const FAR *)(state->next); - state->lenbits = 7; - ret = inflate_table(CODES, state->lens, 19, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid code lengths set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: code lengths ok\n")); - - /* get length and distance code code lengths */ - state->have = 0; - while (state->have < state->nlen + state->ndist) { - for (;;) { - thisOne = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(thisOne.bits) <= bits) break; - PULLBYTE(); - } - if (thisOne.val < 16) { - NEEDBITS(thisOne.bits); - DROPBITS(thisOne.bits); - state->lens[state->have++] = thisOne.val; - } - else { - if (thisOne.val == 16) { - NEEDBITS(thisOne.bits + 2); - DROPBITS(thisOne.bits); - if (state->have == 0) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - len = (unsigned)(state->lens[state->have - 1]); - copy = 3 + BITS(2); - DROPBITS(2); - } - else if (thisOne.val == 17) { - NEEDBITS(thisOne.bits + 3); - DROPBITS(thisOne.bits); - len = 0; - copy = 3 + BITS(3); - DROPBITS(3); - } - else { - NEEDBITS(thisOne.bits + 7); - DROPBITS(thisOne.bits); - len = 0; - copy = 11 + BITS(7); - DROPBITS(7); - } - if (state->have + copy > state->nlen + state->ndist) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - while (copy--) - state->lens[state->have++] = (unsigned short)len; - } - } - - /* build code tables */ - state->next = state->codes; - state->lencode = (code const FAR *)(state->next); - state->lenbits = 9; - ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid literal/lengths set"; - state->mode = BAD; - break; - } - state->distcode = (code const FAR *)(state->next); - state->distbits = 6; - ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, - &(state->next), &(state->distbits), state->work); - if (ret) { - strm->msg = (char *)"invalid distances set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: codes ok\n")); - state->mode = LEN; - - case LEN: - /* use inflate_fast() if we have enough input and output */ - if (have >= 6 && left >= 258) { - RESTORE(); - if (state->whave < state->wsize) - state->whave = state->wsize - left; - inflate_fast(strm, state->wsize); - LOAD(); - break; - } - - /* get a literal, length, or end-of-block code */ - for (;;) { - thisOne = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(thisOne.bits) <= bits) break; - PULLBYTE(); - } - if (thisOne.op && (thisOne.op & 0xf0) == 0) { - last = thisOne; - for (;;) { - thisOne = state->lencode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + thisOne.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - } - DROPBITS(thisOne.bits); - state->length = (unsigned)thisOne.val; - - /* process literal */ - if (thisOne.op == 0) { - Tracevv((stderr, thisOne.val >= 0x20 && thisOne.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", thisOne.val)); - ROOM(); - *put++ = (unsigned char)(state->length); - left--; - state->mode = LEN; - break; - } - - /* process end of block */ - if (thisOne.op & 32) { - Tracevv((stderr, "inflate: end of block\n")); - state->mode = TYPE; - break; - } - - /* invalid code */ - if (thisOne.op & 64) { - strm->msg = (char *)"invalid literal/length code"; - state->mode = BAD; - break; - } - - /* length code -- get extra bits, if any */ - state->extra = (unsigned)(thisOne.op) & 15; - if (state->extra != 0) { - NEEDBITS(state->extra); - state->length += BITS(state->extra); - DROPBITS(state->extra); - } - Tracevv((stderr, "inflate: length %u\n", state->length)); - - /* get distance code */ - for (;;) { - thisOne = state->distcode[BITS(state->distbits)]; - if ((unsigned)(thisOne.bits) <= bits) break; - PULLBYTE(); - } - if ((thisOne.op & 0xf0) == 0) { - last = thisOne; - for (;;) { - thisOne = state->distcode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + thisOne.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - } - DROPBITS(thisOne.bits); - if (thisOne.op & 64) { - strm->msg = (char *)"invalid distance code"; - state->mode = BAD; - break; - } - state->offset = (unsigned)thisOne.val; - - /* get distance extra bits, if any */ - state->extra = (unsigned)(thisOne.op) & 15; - if (state->extra != 0) { - NEEDBITS(state->extra); - state->offset += BITS(state->extra); - DROPBITS(state->extra); - } - if (state->offset > state->wsize - (state->whave < state->wsize ? - left : 0)) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } - Tracevv((stderr, "inflate: distance %u\n", state->offset)); - - /* copy match from window to output */ - do { - ROOM(); - copy = state->wsize - state->offset; - if (copy < left) { - from = put + copy; - copy = left - copy; - } - else { - from = put - state->offset; - copy = left; - } - if (copy > state->length) copy = state->length; - state->length -= copy; - left -= copy; - do { - *put++ = *from++; - } while (--copy); - } while (state->length != 0); - break; - - case DONE: - /* inflate stream terminated properly -- write leftover output */ - ret = Z_STREAM_END; - if (left < state->wsize) { - if (out(out_desc, state->window, state->wsize - left)) - ret = Z_BUF_ERROR; - } - goto inf_leave; - - case BAD: - ret = Z_DATA_ERROR; - goto inf_leave; - - default: /* can't happen, but makes compilers happy */ - ret = Z_STREAM_ERROR; - goto inf_leave; - } - - /* Return unused input */ - inf_leave: - strm->next_in = next; - strm->avail_in = have; - return ret; -} - -int ZEXPORT inflateBackEnd(z_stream FAR *strm) -{ - if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) - return Z_STREAM_ERROR; - ZFREE(strm, strm->state); - strm->state = Z_NULL; - Tracev((stderr, "inflate: end\n")); - return Z_OK; -} diff --git a/source/visualization/HepRep/src/inffast.cc b/source/visualization/HepRep/src/inffast.cc deleted file mode 100644 index 6324318de8..0000000000 --- a/source/visualization/HepRep/src/inffast.cc +++ /dev/null @@ -1,304 +0,0 @@ -/* inffast.c -- fast decoding - * Copyright (C) 1995-2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "HepRep-zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -#ifndef ASMINF - -/* Allow machine dependent optimization for post-increment or pre-increment. - Based on testing to date, - Pre-increment preferred for: - - PowerPC G3 (Adler) - - MIPS R5000 (Randers-Pehrson) - Post-increment preferred for: - - none - No measurable difference: - - Pentium III (Anderson) - - 68060 (Nikl) - */ -#ifdef POSTINC -# define OFF 0 -# define PUP(a) *(a)++ -#else -# define OFF 1 -# define PUP(a) *++(a) -#endif - -/* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state->mode == LEN - strm->avail_in >= 6 - strm->avail_out >= 258 - start >= strm->avail_out - state->bits < 8 - - On return, state->mode is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if strm->avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires strm->avail_out >= 258 for each loop to avoid checking for - output space. - */ -void inflate_fast(z_streamp strm, unsigned start) -{ - struct inflate_state FAR *state; - unsigned char FAR *in; /* local strm->next_in */ - unsigned char FAR *last; /* while in < last, enough input available */ - unsigned char FAR *out; /* local strm->next_out */ - unsigned char FAR *beg; /* inflate()'s initial strm->next_out */ - unsigned char FAR *end; /* while out < end, enough space available */ - unsigned wsize; /* window size or zero if not using window */ - unsigned whave; /* valid bytes in the window */ - unsigned write; /* window write index */ - unsigned char FAR *window; /* allocated sliding window, if wsize != 0 */ - unsigned long hold; /* local strm->hold */ - unsigned bits; /* local strm->bits */ - code const FAR *lcode; /* local strm->lencode */ - code const FAR *dcode; /* local strm->distcode */ - unsigned lmask; /* mask for first level of length codes */ - unsigned dmask; /* mask for first level of distance codes */ - /* MD: renamed this to thisOne */ - code thisOne; /* retrieved table entry */ - unsigned op; /* code bits, operation, extra bits, or */ - /* window position, window bytes to copy */ - unsigned len; /* match length, unused bytes */ - unsigned dist; /* match distance */ - unsigned char FAR *from; /* where to copy match from */ - - /* copy state to local variables */ - state = (struct inflate_state FAR *)strm->state; - in = strm->next_in - OFF; - last = in + (strm->avail_in - 5); - out = strm->next_out - OFF; - beg = out - (start - strm->avail_out); - end = out + (strm->avail_out - 257); - wsize = state->wsize; - whave = state->whave; - write = state->write; - window = state->window; - hold = state->hold; - bits = state->bits; - lcode = state->lencode; - dcode = state->distcode; - lmask = (1U << state->lenbits) - 1; - dmask = (1U << state->distbits) - 1; - - /* decode literals and length/distances until end-of-block or not enough - input data or output space */ - do { - if (bits < 15) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - thisOne = lcode[hold & lmask]; - dolen: - op = (unsigned)(thisOne.bits); - hold >>= op; - bits -= op; - op = (unsigned)(thisOne.op); - if (op == 0) { /* literal */ - Tracevv((stderr, thisOne.val >= 0x20 && thisOne.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", thisOne.val)); - PUP(out) = (unsigned char)(thisOne.val); - } - else if (op & 16) { /* length base */ - len = (unsigned)(thisOne.val); - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - len += (unsigned)hold & ((1U << op) - 1); - hold >>= op; - bits -= op; - } - Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - thisOne = dcode[hold & dmask]; - dodist: - op = (unsigned)(thisOne.bits); - hold >>= op; - bits -= op; - op = (unsigned)(thisOne.op); - if (op & 16) { /* distance base */ - dist = (unsigned)(thisOne.val); - op &= 15; /* number of extra bits */ - if (bits < op) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - if (bits < op) { - hold += (unsigned long)(PUP(in)) << bits; - bits += 8; - } - } - dist += (unsigned)hold & ((1U << op) - 1); - hold >>= op; - bits -= op; - Tracevv((stderr, "inflate: distance %u\n", dist)); - op = (unsigned)(out - beg); /* max distance in output */ - if (dist > op) { /* see if copy from window */ - op = dist - op; /* distance back in window */ - if (op > whave) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } - from = window - OFF; - if (write == 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = out - dist; /* rest from output */ - } - } - else if (write < op) { /* wrap around window */ - from += wsize + write - op; - op -= write; - if (op < len) { /* some from end of window */ - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = window - OFF; - if (write < len) { /* some from start of window */ - op = write; - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = out - dist; /* rest from output */ - } - } - } - else { /* contiguous in window */ - from += write - op; - if (op < len) { /* some from window */ - len -= op; - do { - PUP(out) = PUP(from); - } while (--op); - from = out - dist; /* rest from output */ - } - } - while (len > 2) { - PUP(out) = PUP(from); - PUP(out) = PUP(from); - PUP(out) = PUP(from); - len -= 3; - } - if (len) { - PUP(out) = PUP(from); - if (len > 1) - PUP(out) = PUP(from); - } - } - else { - from = out - dist; /* copy direct from output */ - do { /* minimum length is three */ - PUP(out) = PUP(from); - PUP(out) = PUP(from); - PUP(out) = PUP(from); - len -= 3; - } while (len > 2); - if (len) { - PUP(out) = PUP(from); - if (len > 1) - PUP(out) = PUP(from); - } - } - } - else if ((op & 64) == 0) { /* 2nd level distance code */ - thisOne = dcode[thisOne.val + (hold & ((1U << op) - 1))]; - goto dodist; - } - else { - strm->msg = (char *)"invalid distance code"; - state->mode = BAD; - break; - } - } - else if ((op & 64) == 0) { /* 2nd level length code */ - thisOne = lcode[thisOne.val + (hold & ((1U << op) - 1))]; - goto dolen; - } - else if (op & 32) { /* end-of-block */ - Tracevv((stderr, "inflate: end of block\n")); - state->mode = TYPE; - break; - } - else { - strm->msg = (char *)"invalid literal/length code"; - state->mode = BAD; - break; - } - } while (in < last && out < end); - - /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ - len = bits >> 3; - in -= len; - bits -= len << 3; - hold &= (1U << bits) - 1; - - /* update state and return */ - strm->next_in = in + OFF; - strm->next_out = out + OFF; - strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); - strm->avail_out = (unsigned)(out < end ? - 257 + (end - out) : 257 - (out - end)); - state->hold = hold; - state->bits = bits; - return; -} - -/* - inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe): - - Using bit fields for code structure - - Different op definition to avoid & for extra bits (do & for table bits) - - Three separate decoding do-loops for direct, window, and write == 0 - - Special case for distance > 1 copies to do overlapped load and store copy - - Explicit branch predictions (based on measured branch probabilities) - - Deferring match copy and interspersed it with decoding subsequent codes - - Swapping literal/length else - - Swapping window/direct else - - Larger unrolled copy loops (three is about right) - - Moving len -= 3 statement into middle of loop - */ - -#endif /* !ASMINF */ diff --git a/source/visualization/HepRep/src/inflate.cc b/source/visualization/HepRep/src/inflate.cc deleted file mode 100644 index 16bb745627..0000000000 --- a/source/visualization/HepRep/src/inflate.cc +++ /dev/null @@ -1,1250 +0,0 @@ -/* inflate.c -- zlib decompression - * Copyright (C) 1995-2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - * Change history: - * - * 1.2.beta0 24 Nov 2002 - * - First version -- complete rewrite of inflate to simplify code, avoid - * creation of window when not needed, minimize use of window when it is - * needed, make inffast.c even faster, implement gzip decoding, and to - * improve code readability and style over the previous zlib inflate code - * - * 1.2.beta1 25 Nov 2002 - * - Use pointers for available input and output checking in inffast.c - * - Remove input and output counters in inffast.c - * - Change inffast.c entry and loop from avail_in >= 7 to >= 6 - * - Remove unnecessary second byte pull from length extra in inffast.c - * - Unroll direct copy to three copies per loop in inffast.c - * - * 1.2.beta2 4 Dec 2002 - * - Change external routine names to reduce potential conflicts - * - Correct filename to inffixed.h for fixed tables in inflate.c - * - Make hbuf[] unsigned char to match parameter type in inflate.c - * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset) - * to avoid negation problem on Alphas (64 bit) in inflate.c - * - * 1.2.beta3 22 Dec 2002 - * - Add comments on state->bits assertion in inffast.c - * - Add comments on op field in inftrees.h - * - Fix bug in reuse of allocated window after inflateReset() - * - Remove bit fields--back to byte structure for speed - * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths - * - Change post-increments to pre-increments in inflate_fast(), PPC biased? - * - Add compile time option, POSTINC, to use post-increments instead (Intel?) - * - Make MATCH copy in inflate() much faster for when inflate_fast() not used - * - Use local copies of stream next and avail values, as well as local bit - * buffer and bit count in inflate()--for speed when inflate_fast() not used - * - * 1.2.beta4 1 Jan 2003 - * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings - * - Move a comment on output buffer sizes from inffast.c to inflate.c - * - Add comments in inffast.c to introduce the inflate_fast() routine - * - Rearrange window copies in inflate_fast() for speed and simplification - * - Unroll last copy for window match in inflate_fast() - * - Use local copies of window variables in inflate_fast() for speed - * - Pull out common write == 0 case for speed in inflate_fast() - * - Make op and len in inflate_fast() unsigned for consistency - * - Add FAR to lcode and dcode declarations in inflate_fast() - * - Simplified bad distance check in inflate_fast() - * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new - * source file infback.c to provide a call-back interface to inflate for - * programs like gzip and unzip -- uses window as output buffer to avoid - * window copying - * - * 1.2.beta5 1 Jan 2003 - * - Improved inflateBack() interface to allow the caller to provide initial - * input in strm. - * - Fixed stored blocks bug in inflateBack() - * - * 1.2.beta6 4 Jan 2003 - * - Added comments in inffast.c on effectiveness of POSTINC - * - Typecasting all around to reduce compiler warnings - * - Changed loops from while (1) or do {} while (1) to for (;;), again to - * make compilers happy - * - Changed type of window in inflateBackInit() to unsigned char * - * - * 1.2.beta7 27 Jan 2003 - * - Changed many types to unsigned or unsigned short to avoid warnings - * - Added inflateCopy() function - * - * 1.2.0 9 Mar 2003 - * - Changed inflateBack() interface to provide separate opaque descriptors - * for the in() and out() functions - * - Changed inflateBack() argument and in_func typedef to swap the length - * and buffer address return values for the input function - * - Check next_in and next_out for Z_NULL on entry to inflate() - * - * The history for versions after 1.2.0 are in ChangeLog in zlib distribution. - */ - -#include "HepRep-zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -#ifdef MAKEFIXED -# ifndef BUILDFIXED -# define BUILDFIXED -# endif -#endif - -/* function prototypes */ -local void fixedtables OF((struct inflate_state FAR *state)); -local int updatewindow OF((z_streamp strm, unsigned out)); -#ifdef BUILDFIXED - void makefixed OF((void)); -#endif -local unsigned syncsearch OF((unsigned FAR *have, unsigned char FAR *buf, - unsigned len)); - -int ZEXPORT inflateReset(z_streamp strm) -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - strm->total_in = strm->total_out = state->total = 0; - strm->msg = Z_NULL; - state->mode = HEAD; - state->last = 0; - state->havedict = 0; - state->wsize = 0; - state->whave = 0; - state->hold = 0; - state->bits = 0; - state->lencode = state->distcode = state->next = state->codes; - Tracev((stderr, "inflate: reset\n")); - return Z_OK; -} - -int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, const char *version, int stream_size) -{ - struct inflate_state FAR *state; - - if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || - stream_size != (int)(sizeof(z_stream))) - return Z_VERSION_ERROR; - if (strm == Z_NULL) return Z_STREAM_ERROR; - strm->msg = Z_NULL; /* in case we return an error */ - if (strm->zalloc == (alloc_func)0) { - strm->zalloc = zcalloc; - strm->opaque = (voidpf)0; - } - if (strm->zfree == (free_func)0) strm->zfree = zcfree; - state = (struct inflate_state FAR *) - ZALLOC(strm, 1, sizeof(struct inflate_state)); - if (state == Z_NULL) return Z_MEM_ERROR; - Tracev((stderr, "inflate: allocated\n")); - /* MD: real cast needed */ - strm->state = (struct internal_state FAR *)state; - if (windowBits < 0) { - state->wrap = 0; - windowBits = -windowBits; - } - else { - state->wrap = (windowBits >> 4) + 1; -#ifdef GUNZIP - if (windowBits < 48) windowBits &= 15; -#endif - } - if (windowBits < 8 || windowBits > 15) { - ZFREE(strm, state); - strm->state = Z_NULL; - return Z_STREAM_ERROR; - } - state->wbits = (unsigned)windowBits; - state->window = Z_NULL; - return inflateReset(strm); -} - -int ZEXPORT inflateInit_(z_streamp strm, const char *version, int stream_size) -{ - return inflateInit2_(strm, DEF_WBITS, version, stream_size); -} - -/* - Return state with length and distance decoding tables and index sizes set to - fixed code decoding. Normally this returns fixed tables from inffixed.h. - If BUILDFIXED is defined, then instead this routine builds the tables the - first time it's called, and returns those tables the first time and - thereafter. This reduces the size of the code by about 2K bytes, in - exchange for a little execution time. However, BUILDFIXED should not be - used for threaded applications, since the rewriting of the tables and virgin - may not be thread-safe. - */ -local void fixedtables(struct inflate_state FAR *state) -{ -#ifdef BUILDFIXED - static int virgin = 1; - static code *lenfix, *distfix; - static code fixed[544]; - - /* build fixed huffman tables if first call (may not be thread safe) */ - if (virgin) { - unsigned sym, bits; - static code *next; - - /* literal/length table */ - sym = 0; - while (sym < 144) state->lens[sym++] = 8; - while (sym < 256) state->lens[sym++] = 9; - while (sym < 280) state->lens[sym++] = 7; - while (sym < 288) state->lens[sym++] = 8; - next = fixed; - lenfix = next; - bits = 9; - inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work); - - /* distance table */ - sym = 0; - while (sym < 32) state->lens[sym++] = 5; - distfix = next; - bits = 5; - inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work); - - /* do this just once */ - virgin = 0; - } -#else /* !BUILDFIXED */ -# include "inffixed.h" -#endif /* BUILDFIXED */ - state->lencode = lenfix; - state->lenbits = 9; - state->distcode = distfix; - state->distbits = 5; -} - -#ifdef MAKEFIXED -#include - -/* - Write out the inffixed.h that is #include'd above. Defining MAKEFIXED also - defines BUILDFIXED, so the tables are built on the fly. makefixed() writes - those tables to stdout, which would be piped to inffixed.h. A small program - can simply call makefixed to do this: - - void makefixed(void); - - int main(void) - { - makefixed(); - return 0; - } - - Then that can be linked with zlib built with MAKEFIXED defined and run: - - a.out > inffixed.h - */ -void makefixed() -{ - unsigned low, size; - struct inflate_state state; - - fixedtables(&state); - puts(" /* inffixed.h -- table for decoding fixed codes"); - puts(" * Generated automatically by makefixed()."); - puts(" */"); - puts(""); - puts(" /* WARNING: this file should *not* be used by applications."); - puts(" It is part of the implementation of this library and is"); - puts(" subject to change. Applications should only use zlib.h."); - puts(" */"); - puts(""); - size = 1U << 9; - printf(" static const code lenfix[%u] = {", size); - low = 0; - for (;;) { - if ((low % 7) == 0) printf("\n "); - printf("{%u,%u,%d}", state.lencode[low].op, state.lencode[low].bits, - state.lencode[low].val); - if (++low == size) break; - putchar(','); - } - puts("\n };"); - size = 1U << 5; - printf("\n static const code distfix[%u] = {", size); - low = 0; - for (;;) { - if ((low % 6) == 0) printf("\n "); - printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits, - state.distcode[low].val); - if (++low == size) break; - putchar(','); - } - puts("\n };"); -} -#endif /* MAKEFIXED */ - -/* - Update the window with the last wsize (normally 32K) bytes written before - returning. If window does not exist yet, create it. This is only called - when a window is already in use, or when output has been written during this - inflate call, but the end of the deflate stream has not been reached yet. - It is also called to create a window for dictionary data when a dictionary - is loaded. - - Providing output buffers larger than 32K to inflate() should provide a speed - advantage, since only the last 32K of output is copied to the sliding window - upon return from inflate(), and since all distances after the first 32K of - output will fall in the output data, making match copies simpler and faster. - The advantage may be dependent on the size of the processor's data caches. - */ -local int updatewindow(z_streamp strm, unsigned out) -{ - struct inflate_state FAR *state; - unsigned copy, dist; - - state = (struct inflate_state FAR *)strm->state; - - /* if it hasn't been done already, allocate space for the window */ - if (state->window == Z_NULL) { - state->window = (unsigned char FAR *) - ZALLOC(strm, 1U << state->wbits, - sizeof(unsigned char)); - if (state->window == Z_NULL) return 1; - } - - /* if window not in use yet, initialize */ - if (state->wsize == 0) { - state->wsize = 1U << state->wbits; - state->write = 0; - state->whave = 0; - } - - /* copy state->wsize or less output bytes into the circular window */ - copy = out - strm->avail_out; - if (copy >= state->wsize) { - zmemcpy(state->window, strm->next_out - state->wsize, state->wsize); - state->write = 0; - state->whave = state->wsize; - } - else { - dist = state->wsize - state->write; - if (dist > copy) dist = copy; - zmemcpy(state->window + state->write, strm->next_out - copy, dist); - copy -= dist; - if (copy) { - zmemcpy(state->window, strm->next_out - copy, copy); - state->write = copy; - state->whave = state->wsize; - } - else { - state->write += dist; - if (state->write == state->wsize) state->write = 0; - if (state->whave < state->wsize) state->whave += dist; - } - } - return 0; -} - -/* Macros for inflate(): */ - -/* check function to use adler32() for zlib or crc32() for gzip */ -#ifdef GUNZIP -# define UPDATE(check, buf, len) \ - (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) -#else -# define UPDATE(check, buf, len) adler32(check, buf, len) -#endif - -/* check macros for header crc */ -#ifdef GUNZIP -# define CRC2(check, word) \ - do { \ - hbuf[0] = (unsigned char)(word); \ - hbuf[1] = (unsigned char)((word) >> 8); \ - check = crc32(check, hbuf, 2); \ - } while (0) - -# define CRC4(check, word) \ - do { \ - hbuf[0] = (unsigned char)(word); \ - hbuf[1] = (unsigned char)((word) >> 8); \ - hbuf[2] = (unsigned char)((word) >> 16); \ - hbuf[3] = (unsigned char)((word) >> 24); \ - check = crc32(check, hbuf, 4); \ - } while (0) -#endif - -/* Load registers with state in inflate() for speed */ -#define LOAD() \ - do { \ - put = strm->next_out; \ - left = strm->avail_out; \ - next = strm->next_in; \ - have = strm->avail_in; \ - hold = state->hold; \ - bits = state->bits; \ - } while (0) - -/* Restore state from registers in inflate() */ -#define RESTORE() \ - do { \ - strm->next_out = put; \ - strm->avail_out = left; \ - strm->next_in = next; \ - strm->avail_in = have; \ - state->hold = hold; \ - state->bits = bits; \ - } while (0) - -/* Clear the input bit accumulator */ -#define INITBITS() \ - do { \ - hold = 0; \ - bits = 0; \ - } while (0) - -/* Get a byte of input into the bit accumulator, or return from inflate() - if there is no input available. */ -#define PULLBYTE() \ - do { \ - if (have == 0) goto inf_leave; \ - have--; \ - hold += (unsigned long)(*next++) << bits; \ - bits += 8; \ - } while (0) - -/* Assure that there are at least n bits in the bit accumulator. If there is - not enough available input to do that, then return from inflate(). */ -#define NEEDBITS(n) \ - do { \ - while (bits < (unsigned)(n)) \ - PULLBYTE(); \ - } while (0) - -/* Return the low n bits of the bit accumulator (n < 16) */ -#define BITS(n) \ - ((unsigned)hold & ((1U << (n)) - 1)) - -/* Remove n bits from the bit accumulator */ -#define DROPBITS(n) \ - do { \ - hold >>= (n); \ - bits -= (unsigned)(n); \ - } while (0) - -/* Remove zero to seven bits as needed to go to a byte boundary */ -#define BYTEBITS() \ - do { \ - hold >>= bits & 7; \ - bits -= bits & 7; \ - } while (0) - -/* Reverse the bytes in a 32-bit value */ -#define REVERSE(q) \ - ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \ - (((q) & 0xff00) << 8) + (((q) & 0xff) << 24)) - -/* - inflate() uses a state machine to process as much input data and generate as - much output data as possible before returning. The state machine is - structured roughly as follows: - - for (;;) switch (state) { - ... - case STATEn: - if (not enough input data or output space to make progress) - return; - ... make progress ... - state = STATEm; - break; - ... - } - - so when inflate() is called again, the same case is attempted again, and - if the appropriate resources are provided, the machine proceeds to the - next state. The NEEDBITS() macro is usually the way the state evaluates - whether it can proceed or should return. NEEDBITS() does the return if - the requested bits are not available. The typical use of the BITS macros - is: - - NEEDBITS(n); - ... do something with BITS(n) ... - DROPBITS(n); - - where NEEDBITS(n) either returns from inflate() if there isn't enough - input left to load n bits into the accumulator, or it continues. BITS(n) - gives the low n bits in the accumulator. When done, DROPBITS(n) drops - the low n bits off the accumulator. INITBITS() clears the accumulator - and sets the number of available bits to zero. BYTEBITS() discards just - enough bits to put the accumulator on a byte boundary. After BYTEBITS() - and a NEEDBITS(8), then BITS(8) would return the next byte in the stream. - - NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return - if there is no input available. The decoding of variable length codes uses - PULLBYTE() directly in order to pull just enough bytes to decode the next - code, and no more. - - Some states loop until they get enough input, making sure that enough - state information is maintained to continue the loop where it left off - if NEEDBITS() returns in the loop. For example, want, need, and keep - would all have to actually be part of the saved state in case NEEDBITS() - returns: - - case STATEw: - while (want < need) { - NEEDBITS(n); - keep[want++] = BITS(n); - DROPBITS(n); - } - state = STATEx; - case STATEx: - - As shown above, if the next state is also the next case, then the break - is omitted. - - A state may also return if there is not enough output space available to - complete that state. Those states are copying stored data, writing a - literal byte, and copying a matching string. - - When returning, a "goto inf_leave" is used to update the total counters, - update the check value, and determine whether any progress has been made - during that inflate() call in order to return the proper return code. - Progress is defined as a change in either strm->avail_in or strm->avail_out. - When there is a window, goto inf_leave will update the window with the last - output written. If a goto inf_leave occurs in the middle of decompression - and there is no window currently, goto inf_leave will create one and copy - output to the window for the next call of inflate(). - - In this implementation, the flush parameter of inflate() only affects the - return code (per zlib.h). inflate() always writes as much as possible to - strm->next_out, given the space available and the provided input--the effect - documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers - the allocation of and copying into a sliding window until necessary, which - provides the effect documented in zlib.h for Z_FINISH when the entire input - stream available. So the only thing the flush parameter actually does is: - when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it - will return Z_BUF_ERROR if it has not reached the end of the stream. - */ - -int ZEXPORT inflate(z_streamp strm, int flush) -{ - struct inflate_state FAR *state; - unsigned char FAR *next; /* next input */ - unsigned char FAR *put; /* next output */ - unsigned have, left; /* available input and output */ - unsigned long hold; /* bit buffer */ - unsigned bits; /* bits in bit buffer */ - unsigned in, out; /* save starting available input and output */ - unsigned copy; /* number of stored or match bytes to copy */ - unsigned char FAR *from; /* where to copy match bytes from */ - /* MD: renamed this to thisOne */ - code thisOne; /* current decoding table entry */ - code last; /* parent table entry */ - unsigned len; /* length to copy for repeats, bits to drop */ - int ret; /* return code */ -#ifdef GUNZIP - unsigned char hbuf[4]; /* buffer for gzip header crc calculation */ -#endif - static const unsigned short order[19] = /* permutation of code lengths */ - {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; - - if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL || - (strm->next_in == Z_NULL && strm->avail_in != 0)) - return Z_STREAM_ERROR; - - state = (struct inflate_state FAR *)strm->state; - if (state->mode == TYPE) state->mode = TYPEDO; /* skip check */ - LOAD(); - in = have; - out = left; - ret = Z_OK; - for (;;) - switch (state->mode) { - case HEAD: - if (state->wrap == 0) { - state->mode = TYPEDO; - break; - } - NEEDBITS(16); -#ifdef GUNZIP - if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */ - state->check = crc32(0L, Z_NULL, 0); - CRC2(state->check, hold); - INITBITS(); - state->mode = FLAGS; - break; - } - state->flags = 0; /* expect zlib header */ - if (!(state->wrap & 1) || /* check if zlib header allowed */ -#else - if ( -#endif - ((BITS(8) << 8) + (hold >> 8)) % 31) { - strm->msg = (char *)"incorrect header check"; - state->mode = BAD; - break; - } - if (BITS(4) != Z_DEFLATED) { - strm->msg = (char *)"unknown compression method"; - state->mode = BAD; - break; - } - DROPBITS(4); - if (BITS(4) + 8 > state->wbits) { - strm->msg = (char *)"invalid window size"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: zlib header ok\n")); - strm->adler = state->check = adler32(0L, Z_NULL, 0); - state->mode = hold & 0x200 ? DICTID : TYPE; - INITBITS(); - break; -#ifdef GUNZIP - case FLAGS: - NEEDBITS(16); - state->flags = (int)(hold); - if ((state->flags & 0xff) != Z_DEFLATED) { - strm->msg = (char *)"unknown compression method"; - state->mode = BAD; - break; - } - if (state->flags & 0xe000) { - strm->msg = (char *)"unknown header flags set"; - state->mode = BAD; - break; - } - if (state->flags & 0x0200) CRC2(state->check, hold); - INITBITS(); - state->mode = TIME; - case TIME: - NEEDBITS(32); - if (state->flags & 0x0200) CRC4(state->check, hold); - INITBITS(); -/* MD: OS already in use */ - state->mode = GOS; - case GOS: - NEEDBITS(16); - if (state->flags & 0x0200) CRC2(state->check, hold); - INITBITS(); - state->mode = EXLEN; - case EXLEN: - if (state->flags & 0x0400) { - NEEDBITS(16); - state->length = (unsigned)(hold); - if (state->flags & 0x0200) CRC2(state->check, hold); - INITBITS(); - } - state->mode = EXTRA; - case EXTRA: - if (state->flags & 0x0400) { - copy = state->length; - if (copy > have) copy = have; - if (copy) { - if (state->flags & 0x0200) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - state->length -= copy; - } - if (state->length) goto inf_leave; - } - state->mode = NAME; - case NAME: - if (state->flags & 0x0800) { - if (have == 0) goto inf_leave; - copy = 0; - do { - len = (unsigned)(next[copy++]); - } while (len && copy < have); - if (state->flags & 0x02000) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - if (len) goto inf_leave; - } - state->mode = COMMENT; - case COMMENT: - if (state->flags & 0x1000) { - if (have == 0) goto inf_leave; - copy = 0; - do { - len = (unsigned)(next[copy++]); - } while (len && copy < have); - if (state->flags & 0x02000) - state->check = crc32(state->check, next, copy); - have -= copy; - next += copy; - if (len) goto inf_leave; - } - state->mode = HCRC; - case HCRC: - if (state->flags & 0x0200) { - NEEDBITS(16); - if (hold != (state->check & 0xffff)) { - strm->msg = (char *)"header crc mismatch"; - state->mode = BAD; - break; - } - INITBITS(); - } - strm->adler = state->check = crc32(0L, Z_NULL, 0); - state->mode = TYPE; - break; -#endif - case DICTID: - NEEDBITS(32); - strm->adler = state->check = REVERSE(hold); - INITBITS(); - state->mode = DICT; - case DICT: - if (state->havedict == 0) { - RESTORE(); - return Z_NEED_DICT; - } - strm->adler = state->check = adler32(0L, Z_NULL, 0); - state->mode = TYPE; - case TYPE: - if (flush == Z_BLOCK) goto inf_leave; - case TYPEDO: - if (state->last) { - BYTEBITS(); - state->mode = CHECK; - break; - } - NEEDBITS(3); - state->last = BITS(1); - DROPBITS(1); - switch (BITS(2)) { - case 0: /* stored block */ - Tracev((stderr, "inflate: stored block%s\n", - state->last ? " (last)" : "")); - state->mode = STORED; - break; - case 1: /* fixed block */ - fixedtables(state); - Tracev((stderr, "inflate: fixed codes block%s\n", - state->last ? " (last)" : "")); - state->mode = LEN; /* decode codes */ - break; - case 2: /* dynamic block */ - Tracev((stderr, "inflate: dynamic codes block%s\n", - state->last ? " (last)" : "")); - state->mode = TABLE; - break; - case 3: - strm->msg = (char *)"invalid block type"; - state->mode = BAD; - } - DROPBITS(2); - break; - case STORED: - BYTEBITS(); /* go to byte boundary */ - NEEDBITS(32); - if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) { - strm->msg = (char *)"invalid stored block lengths"; - state->mode = BAD; - break; - } - state->length = (unsigned)hold & 0xffff; - Tracev((stderr, "inflate: stored length %u\n", - state->length)); - INITBITS(); - state->mode = COPY; - case COPY: - copy = state->length; - if (copy) { - if (copy > have) copy = have; - if (copy > left) copy = left; - if (copy == 0) goto inf_leave; - zmemcpy(put, next, copy); - have -= copy; - next += copy; - left -= copy; - put += copy; - state->length -= copy; - break; - } - Tracev((stderr, "inflate: stored end\n")); - state->mode = TYPE; - break; - case TABLE: - NEEDBITS(14); - state->nlen = BITS(5) + 257; - DROPBITS(5); - state->ndist = BITS(5) + 1; - DROPBITS(5); - state->ncode = BITS(4) + 4; - DROPBITS(4); -#ifndef PKZIP_BUG_WORKAROUND - if (state->nlen > 286 || state->ndist > 30) { - strm->msg = (char *)"too many length or distance symbols"; - state->mode = BAD; - break; - } -#endif - Tracev((stderr, "inflate: table sizes ok\n")); - state->have = 0; - state->mode = LENLENS; - case LENLENS: - while (state->have < state->ncode) { - NEEDBITS(3); - state->lens[order[state->have++]] = (unsigned short)BITS(3); - DROPBITS(3); - } - while (state->have < 19) - state->lens[order[state->have++]] = 0; - state->next = state->codes; - state->lencode = (code const FAR *)(state->next); - state->lenbits = 7; - ret = inflate_table(CODES, state->lens, 19, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid code lengths set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: code lengths ok\n")); - state->have = 0; - state->mode = CODELENS; - case CODELENS: - while (state->have < state->nlen + state->ndist) { - for (;;) { - thisOne = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(thisOne.bits) <= bits) break; - PULLBYTE(); - } - if (thisOne.val < 16) { - NEEDBITS(thisOne.bits); - DROPBITS(thisOne.bits); - state->lens[state->have++] = thisOne.val; - } - else { - if (thisOne.val == 16) { - NEEDBITS(thisOne.bits + 2); - DROPBITS(thisOne.bits); - if (state->have == 0) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - len = state->lens[state->have - 1]; - copy = 3 + BITS(2); - DROPBITS(2); - } - else if (thisOne.val == 17) { - NEEDBITS(thisOne.bits + 3); - DROPBITS(thisOne.bits); - len = 0; - copy = 3 + BITS(3); - DROPBITS(3); - } - else { - NEEDBITS(thisOne.bits + 7); - DROPBITS(thisOne.bits); - len = 0; - copy = 11 + BITS(7); - DROPBITS(7); - } - if (state->have + copy > state->nlen + state->ndist) { - strm->msg = (char *)"invalid bit length repeat"; - state->mode = BAD; - break; - } - while (copy--) - state->lens[state->have++] = (unsigned short)len; - } - } - - /* build code tables */ - state->next = state->codes; - state->lencode = (code const FAR *)(state->next); - state->lenbits = 9; - ret = inflate_table(LENS, state->lens, state->nlen, &(state->next), - &(state->lenbits), state->work); - if (ret) { - strm->msg = (char *)"invalid literal/lengths set"; - state->mode = BAD; - break; - } - state->distcode = (code const FAR *)(state->next); - state->distbits = 6; - ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist, - &(state->next), &(state->distbits), state->work); - if (ret) { - strm->msg = (char *)"invalid distances set"; - state->mode = BAD; - break; - } - Tracev((stderr, "inflate: codes ok\n")); - state->mode = LEN; - case LEN: - if (have >= 6 && left >= 258) { - RESTORE(); - inflate_fast(strm, out); - LOAD(); - break; - } - for (;;) { - thisOne = state->lencode[BITS(state->lenbits)]; - if ((unsigned)(thisOne.bits) <= bits) break; - PULLBYTE(); - } - if (thisOne.op && (thisOne.op & 0xf0) == 0) { - last = thisOne; - for (;;) { - thisOne = state->lencode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + thisOne.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - } - DROPBITS(thisOne.bits); - state->length = (unsigned)thisOne.val; - if ((int)(thisOne.op) == 0) { - Tracevv((stderr, thisOne.val >= 0x20 && thisOne.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", thisOne.val)); - state->mode = LIT; - break; - } - if (thisOne.op & 32) { - Tracevv((stderr, "inflate: end of block\n")); - state->mode = TYPE; - break; - } - if (thisOne.op & 64) { - strm->msg = (char *)"invalid literal/length code"; - state->mode = BAD; - break; - } - state->extra = (unsigned)(thisOne.op) & 15; - state->mode = LENEXT; - case LENEXT: - if (state->extra) { - NEEDBITS(state->extra); - state->length += BITS(state->extra); - DROPBITS(state->extra); - } - Tracevv((stderr, "inflate: length %u\n", state->length)); - state->mode = DIST; - case DIST: - for (;;) { - thisOne = state->distcode[BITS(state->distbits)]; - if ((unsigned)(thisOne.bits) <= bits) break; - PULLBYTE(); - } - if ((thisOne.op & 0xf0) == 0) { - last = thisOne; - for (;;) { - thisOne = state->distcode[last.val + - (BITS(last.bits + last.op) >> last.bits)]; - if ((unsigned)(last.bits + thisOne.bits) <= bits) break; - PULLBYTE(); - } - DROPBITS(last.bits); - } - DROPBITS(thisOne.bits); - if (thisOne.op & 64) { - strm->msg = (char *)"invalid distance code"; - state->mode = BAD; - break; - } - state->offset = (unsigned)thisOne.val; - state->extra = (unsigned)(thisOne.op) & 15; - state->mode = DISTEXT; - case DISTEXT: - if (state->extra) { - NEEDBITS(state->extra); - state->offset += BITS(state->extra); - DROPBITS(state->extra); - } - if (state->offset > state->whave + out - left) { - strm->msg = (char *)"invalid distance too far back"; - state->mode = BAD; - break; - } - Tracevv((stderr, "inflate: distance %u\n", state->offset)); - state->mode = MATCH; - case MATCH: - if (left == 0) goto inf_leave; - copy = out - left; - if (state->offset > copy) { /* copy from window */ - copy = state->offset - copy; - if (copy > state->write) { - copy -= state->write; - from = state->window + (state->wsize - copy); - } - else - from = state->window + (state->write - copy); - if (copy > state->length) copy = state->length; - } - else { /* copy from output */ - from = put - state->offset; - copy = state->length; - } - if (copy > left) copy = left; - left -= copy; - state->length -= copy; - do { - *put++ = *from++; - } while (--copy); - if (state->length == 0) state->mode = LEN; - break; - case LIT: - if (left == 0) goto inf_leave; - *put++ = (unsigned char)(state->length); - left--; - state->mode = LEN; - break; - case CHECK: - if (state->wrap) { - NEEDBITS(32); - out -= left; - strm->total_out += out; - state->total += out; - if (out) - strm->adler = state->check = - UPDATE(state->check, put - out, out); - out = left; - if (( -#ifdef GUNZIP - state->flags ? hold : -#endif - REVERSE(hold)) != state->check) { - strm->msg = (char *)"incorrect data check"; - state->mode = BAD; - break; - } - INITBITS(); - Tracev((stderr, "inflate: check matches trailer\n")); - } -#ifdef GUNZIP - state->mode = LENGTH; - case LENGTH: - if (state->wrap && state->flags) { - NEEDBITS(32); - if (hold != (state->total & 0xffffffffUL)) { - strm->msg = (char *)"incorrect length check"; - state->mode = BAD; - break; - } - INITBITS(); - Tracev((stderr, "inflate: length matches trailer\n")); - } -#endif - state->mode = DONE; - case DONE: - ret = Z_STREAM_END; - goto inf_leave; - case BAD: - ret = Z_DATA_ERROR; - goto inf_leave; - case MEM: - return Z_MEM_ERROR; - case SYNC: - default: - return Z_STREAM_ERROR; - } - - /* - Return from inflate(), updating the total counts and the check value. - If there was no progress during the inflate() call, return a buffer - error. Call updatewindow() to create and/or update the window state. - Note: a memory error from inflate() is non-recoverable. - */ - inf_leave: - RESTORE(); - if (state->wsize || (state->mode < CHECK && out != strm->avail_out)) - if (updatewindow(strm, out)) { - state->mode = MEM; - return Z_MEM_ERROR; - } - in -= strm->avail_in; - out -= strm->avail_out; - strm->total_in += in; - strm->total_out += out; - state->total += out; - if (state->wrap && out) - strm->adler = state->check = - UPDATE(state->check, strm->next_out - out, out); - strm->data_type = state->bits + (state->last ? 64 : 0) + - (state->mode == TYPE ? 128 : 0); - if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK) - ret = Z_BUF_ERROR; - return ret; -} - -int ZEXPORT inflateEnd(z_streamp strm) -{ - struct inflate_state FAR *state; - if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (state->window != Z_NULL) ZFREE(strm, state->window); - ZFREE(strm, strm->state); - strm->state = Z_NULL; - Tracev((stderr, "inflate: end\n")); - return Z_OK; -} - -int ZEXPORT inflateSetDictionary(z_streamp strm, const Bytef *dictionary, uInt dictLength) -{ - struct inflate_state FAR *state; - unsigned long id; - - /* check state */ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (state->mode != DICT) return Z_STREAM_ERROR; - - /* check for correct dictionary id */ - id = adler32(0L, Z_NULL, 0); - id = adler32(id, dictionary, dictLength); - if (id != state->check) return Z_DATA_ERROR; - - /* copy dictionary to window */ - if (updatewindow(strm, strm->avail_out)) { - state->mode = MEM; - return Z_MEM_ERROR; - } - if (dictLength > state->wsize) { - zmemcpy(state->window, dictionary + dictLength - state->wsize, - state->wsize); - state->whave = state->wsize; - } - else { - zmemcpy(state->window + state->wsize - dictLength, dictionary, - dictLength); - state->whave = dictLength; - } - state->havedict = 1; - Tracev((stderr, "inflate: dictionary set\n")); - return Z_OK; -} - -/* - Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found - or when out of input. When called, *have is the number of pattern bytes - found in order so far, in 0..3. On return *have is updated to the new - state. If on return *have equals four, then the pattern was found and the - return value is how many bytes were read including the last byte of the - pattern. If *have is less than four, then the pattern has not been found - yet and the return value is len. In the latter case, syncsearch() can be - called again with more data and the *have state. *have is initialized to - zero for the first call. - */ -local unsigned syncsearch(unsigned FAR *have, unsigned char FAR *buf, unsigned len) -{ - unsigned got; - unsigned next; - - got = *have; - next = 0; - while (next < len && got < 4) { - if ((int)(buf[next]) == (got < 2 ? 0 : 0xff)) - got++; - else if (buf[next]) - got = 0; - else - got = 4 - got; - next++; - } - *have = got; - return next; -} - -int ZEXPORT inflateSync(z_streamp strm) -{ - unsigned len; /* number of bytes to look at or looked at */ - unsigned long in, out; /* temporary to save total_in and total_out */ - unsigned char buf[4]; /* to restore bit buffer to byte string */ - struct inflate_state FAR *state; - - /* check parameters */ - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR; - - /* if first time, start search in bit buffer */ - if (state->mode != SYNC) { - state->mode = SYNC; - state->hold <<= state->bits & 7; - state->bits -= state->bits & 7; - len = 0; - while (state->bits >= 8) { - buf[len++] = (unsigned char)(state->hold); - state->hold >>= 8; - state->bits -= 8; - } - state->have = 0; - syncsearch(&(state->have), buf, len); - } - - /* search available input */ - len = syncsearch(&(state->have), strm->next_in, strm->avail_in); - strm->avail_in -= len; - strm->next_in += len; - strm->total_in += len; - - /* return no joy or set up to restart inflate() on a new block */ - if (state->have != 4) return Z_DATA_ERROR; - in = strm->total_in; out = strm->total_out; - inflateReset(strm); - strm->total_in = in; strm->total_out = out; - state->mode = TYPE; - return Z_OK; -} - -/* - Returns true if inflate is currently at the end of a block generated by - Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP - implementation to provide an additional safety check. PPP uses - Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored - block. When decompressing, PPP checks that at the end of input packet, - inflate is waiting for these length bytes. - */ -int ZEXPORT inflateSyncPoint(z_streamp strm) -{ - struct inflate_state FAR *state; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)strm->state; - return state->mode == STORED && state->bits == 0; -} - -int ZEXPORT inflateCopy(z_streamp dest, z_streamp source) -{ - struct inflate_state FAR *state; - struct inflate_state FAR *copy; - unsigned char FAR *window; - - /* check input */ - if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL || - source->zalloc == (alloc_func)0 || source->zfree == (free_func)0) - return Z_STREAM_ERROR; - state = (struct inflate_state FAR *)source->state; - - /* allocate space */ - copy = (struct inflate_state FAR *) - ZALLOC(source, 1, sizeof(struct inflate_state)); - if (copy == Z_NULL) return Z_MEM_ERROR; - window = Z_NULL; - if (state->window != Z_NULL) { - window = (unsigned char FAR *) - ZALLOC(source, 1U << state->wbits, sizeof(unsigned char)); - if (window == Z_NULL) { - ZFREE(source, copy); - return Z_MEM_ERROR; - } - } - - /* copy state */ - *dest = *source; - *copy = *state; - copy->lencode = copy->codes + (state->lencode - state->codes); - copy->distcode = copy->codes + (state->distcode - state->codes); - copy->next = copy->codes + (state->next - state->codes); - if (window != Z_NULL) - zmemcpy(window, state->window, 1U << state->wbits); - copy->window = window; - /* MD: real cast necessary */ - dest->state = (struct internal_state FAR *)copy; - return Z_OK; -} diff --git a/source/visualization/HepRep/src/inflateinputstreambuf.cc b/source/visualization/HepRep/src/inflateinputstreambuf.cc deleted file mode 100644 index 0df92d19ad..0000000000 --- a/source/visualization/HepRep/src/inflateinputstreambuf.cc +++ /dev/null @@ -1,179 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -#include - -#include "zipios++/fcollexceptions.h" -#include "zipios++/inflateinputstreambuf.h" - -#include "outputstringstream.h" - -namespace zipios { - -using std::cerr ; -using std::endl ; - -InflateInputStreambuf::InflateInputStreambuf( streambuf *inbuf, int s_pos, bool del_inbuf ) - : FilterInputStreambuf( inbuf, del_inbuf ), - _zs_initialized ( false ), - _invecsize ( 1000 ), - _invec ( _invecsize ), - _outvecsize ( 1000 ), - _outvec ( _outvecsize ) -{ - // NOTICE: It is important that this constructor and the methods it - // calls doesn't do anything with the input streambuf _inbuf, other - // than repositioning it to the specified position. The reason is - // that this class can be subclassed, and the subclass should get a - // chance to read from the buffer first) - - // zlib init: - _zs.zalloc = Z_NULL ; - _zs.zfree = Z_NULL ; - _zs.opaque = Z_NULL ; - - reset( s_pos ) ; - // We're not checking the return value of reset() and throwing - // an exception in case of an error, because we cannot catch the exception - // in the constructors of subclasses with all compilers. -} - -InflateInputStreambuf::~InflateInputStreambuf() { - // Dealloc z_stream stuff - int err = inflateEnd( &_zs ) ; - if( err != Z_OK ) { - cerr << "~inflatebuf: inflateEnd failed" ; -#ifdef HAVE_ZERROR - cerr << ": " << zError( err ) ; -#endif - cerr << endl ; - } -} - - -int InflateInputStreambuf::underflow() { - // If not underflow don't fill buffer - if ( gptr() < egptr() ) - return static_cast< unsigned char >( *gptr() ) ; - - // Prepare _outvec and get array pointers - _zs.avail_out = _outvecsize ; - _zs.next_out = reinterpret_cast< unsigned char * >( &( _outvec[ 0 ] ) ) ; - - // Inflate until _outvec is full - // eof (or I/O prob) on _inbuf will break out of loop too. - int err = Z_OK ; - while ( _zs.avail_out > 0 && err == Z_OK ) { - if ( _zs.avail_in == 0 ) { // fill _invec - int bc = _inbuf->sgetn( &(_invec[ 0 ] ) , - _invecsize ) ; - // FIXME: handle i/o problems. - _zs.next_in = reinterpret_cast< unsigned char * >( &( _invec[0] ) ) ; - _zs.avail_in = bc ; - // If we could not read any new data (bc == 0) and inflate isn't - // done it will return Z_BUF_ERROR and thus breaks out of the - // loop. This means we don't have to respond to the situation - // where we can't read more bytes here. - } - - err = inflate( &_zs, Z_NO_FLUSH ) ; - } - // Normally the number of inflated bytes will be the - // full length of the output buffer, but if we can't read - // more input from the _inbuf streambuf, we end up with - // less. - int inflated_bytes = _outvecsize - _zs.avail_out ; - setg( &( _outvec[ 0 ] ), - &( _outvec[ 0 ] ), - &( _outvec[ 0 ] ) + inflated_bytes ) ; - // FIXME: look at the error returned from inflate here, if there is - // some way to report it to the InflateInputStreambuf user. - // Until I find out I'll just print a warning to stdout. - if( err != Z_OK && err != Z_STREAM_END ) { -#if defined (HAVE_STD_IOSTREAM) && defined (USE_STD_IOSTREAM) - // Throw an exception to make istream set badbit - OutputStringStream msgs ; - msgs << "InflateInputStreambuf: inflate failed" ; -#ifdef HAVE_ZERROR - msgs << ": " << zError( err ) ; -#endif - throw IOException( msgs.str() ) ; -#endif - // If HAVE_STD_IOSTREAM not defined we just return eof - // if no output is produced, and that happens anyway - } - if (inflated_bytes > 0 ) - return static_cast< unsigned char >( *gptr() ) ; - else - return EOF ; // traits_type::eof() ; -} - - - -// This method is called in the constructor, so it must not -// read anything from the input streambuf _inbuf (see notice in constructor) -bool InflateInputStreambuf::reset( int stream_position ) { - if ( stream_position >= 0 ) { // reposition _inbuf - _inbuf->pubseekpos( stream_position ) ; - } - - // _zs.next_in and avail_in must be set according to - // HepRep-zlib.h (inline doc). - _zs.next_in = reinterpret_cast< unsigned char * >( &( _invec[0] ) ) ; - _zs.avail_in = 0 ; - - int err ; - if( _zs_initialized ) { // just reset it - err = inflateReset( &_zs ) ; - } else { // init it - err = inflateInit2( &_zs, -MAX_WBITS ) ; - /* windowBits is passed < 0 to tell that there is no zlib header. - Note that in this case inflate *requires* an extra "dummy" byte - after the compressed stream in order to complete decompression - and return Z_STREAM_END. We always have an extra "dummy" byte, - because there is always some trailing data after the compressed - data (either the next entry or the central directory. */ - _zs_initialized = true ; - } - - // streambuf init: - // The important thing here, is that - // - the pointers are not NULL (which would mean unbuffered) - // - and that gptr() is not less than egptr() (so we trigger underflow - // the first time data is read). - setg( &( _outvec[ 0 ] ), - &( _outvec[ 0 ] ) + _outvecsize, - &( _outvec[ 0 ] ) + _outvecsize ) ; - - if ( err == Z_OK ) - return true ; - else - return false ; -} - -} // namespace - -/** \file - Implementation of InflateInputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/inftrees.cc b/source/visualization/HepRep/src/inftrees.cc deleted file mode 100644 index 113d096cdd..0000000000 --- a/source/visualization/HepRep/src/inftrees.cc +++ /dev/null @@ -1,316 +0,0 @@ -/* inftrees.c -- generate Huffman trees for efficient decoding - * Copyright (C) 1995-2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "HepRep-zutil.h" -#include "inftrees.h" - -#define MAXBITS 15 - -const char inflate_copyright[] = - " inflate 1.2.1 Copyright 1995-2003 Mark Adler "; -/* - If you use the zlib library in a product, an acknowledgment is welcome - in the documentation of your product. If for some reason you cannot - include such an acknowledgment, I would appreciate that you keep this - copyright string in the executable of your product. - */ - -/* - Build a set of tables to decode the provided canonical Huffman code. - The code lengths are lens[0..codes-1]. The result starts at *table, - whose indices are 0..2^bits-1. work is a writable array of at least - lens shorts, which is used as a work area. type is the type of code - to be generated, CODES, LENS, or DISTS. On return, zero is success, - -1 is an invalid code, and +1 means that ENOUGH isn't enough. table - on return points to the next available entry's address. bits is the - requested root table index bits, and on return it is the actual root - table index bits. It will differ if the request is greater than the - longest code or if it is less than the shortest code. - */ -int inflate_table(codetype type, unsigned short FAR *lens, unsigned codes, code FAR * FAR *table, unsigned FAR *bits, unsigned short FAR *work) -{ - unsigned len; /* a code's length in bits */ - unsigned sym; /* index of code symbols */ - unsigned min, max; /* minimum and maximum code lengths */ - unsigned root; /* number of index bits for root table */ - unsigned curr; /* number of index bits for current table */ - unsigned drop; /* code bits to drop for sub-table */ - int left; /* number of prefix codes available */ - unsigned used; /* code entries in table used */ - unsigned huff; /* Huffman code */ - unsigned incr; /* for incrementing code, index */ - unsigned fill; /* index for replicating entries */ - unsigned low; /* low bits for current root entry */ - unsigned mask; /* mask for low root bits */ - /* MD: renamed this into thisOne */ - code thisOne; /* table entry for duplication */ - code FAR *next; /* next available space in table */ - const unsigned short FAR *base; /* base value table to use */ - const unsigned short FAR *extra; /* extra bits table to use */ - int end; /* use base and extra for symbol > end */ - unsigned short count[MAXBITS+1]; /* number of codes of each length */ - unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ - static const unsigned short lbase[31] = { /* Length codes 257..285 base */ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, - 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; - static const unsigned short lext[31] = { /* Length codes 257..285 extra */ - 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 76, 66}; - static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577, 0, 0}; - static const unsigned short dext[32] = { /* Distance codes 0..29 extra */ - 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, - 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, - 28, 28, 29, 29, 64, 64}; - - /* - Process a set of code lengths to create a canonical Huffman code. The - code lengths are lens[0..codes-1]. Each length corresponds to the - symbols 0..codes-1. The Huffman code is generated by first sorting the - symbols by length from short to long, and retaining the symbol order - for codes with equal lengths. Then the code starts with all zero bits - for the first code of the shortest length, and the codes are integer - increments for the same length, and zeros are appended as the length - increases. For the deflate format, these bits are stored backwards - from their more natural integer increment ordering, and so when the - decoding tables are built in the large loop below, the integer codes - are incremented backwards. - - This routine assumes, but does not check, that all of the entries in - lens[] are in the range 0..MAXBITS. The caller must assure this. - 1..MAXBITS is interpreted as that code length. zero means that that - symbol does not occur in this code. - - The codes are sorted by computing a count of codes for each length, - creating from that a table of starting indices for each length in the - sorted table, and then entering the symbols in order in the sorted - table. The sorted table is work[], with that space being provided by - the caller. - - The length counts are used for other purposes as well, i.e. finding - the minimum and maximum length codes, determining if there are any - codes at all, checking for a valid set of lengths, and looking ahead - at length counts to determine sub-table sizes when building the - decoding tables. - */ - - /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ - for (len = 0; len <= MAXBITS; len++) - count[len] = 0; - for (sym = 0; sym < codes; sym++) - count[lens[sym]]++; - - /* bound code lengths, force root to be within code lengths */ - root = *bits; - for (max = MAXBITS; max >= 1; max--) - if (count[max] != 0) break; - if (root > max) root = max; - if (max == 0) return -1; /* no codes! */ - for (min = 1; min <= MAXBITS; min++) - if (count[min] != 0) break; - if (root < min) root = min; - - /* check for an over-subscribed or incomplete set of lengths */ - left = 1; - for (len = 1; len <= MAXBITS; len++) { - left <<= 1; - left -= count[len]; - if (left < 0) return -1; /* over-subscribed */ - } - if (left > 0 && (type == CODES || (codes - count[0] != 1))) - return -1; /* incomplete set */ - - /* generate offsets into symbol table for each length for sorting */ - offs[1] = 0; - for (len = 1; len < MAXBITS; len++) - offs[len + 1] = offs[len] + count[len]; - - /* sort symbols by length, by symbol order within each length */ - for (sym = 0; sym < codes; sym++) - if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym; - - /* - Create and fill in decoding tables. In this loop, the table being - filled is at next and has curr index bits. The code being used is huff - with length len. That code is converted to an index by dropping drop - bits off of the bottom. For codes where len is less than drop + curr, - those top drop + curr - len bits are incremented through all values to - fill the table with replicated entries. - - root is the number of index bits for the root table. When len exceeds - root, sub-tables are created pointed to by the root entry with an index - of the low root bits of huff. This is saved in low to check for when a - new sub-table should be started. drop is zero when the root table is - being filled, and drop is root when sub-tables are being filled. - - When a new sub-table is needed, it is necessary to look ahead in the - code lengths to determine what size sub-table is needed. The length - counts are used for this, and so count[] is decremented as codes are - entered in the tables. - - used keeps track of how many table entries have been allocated from the - provided *table space. It is checked when a LENS table is being made - against the space in *table, ENOUGH, minus the maximum space needed by - the worst case distance code, MAXD. This should never happen, but the - sufficiency of ENOUGH has not been proven exhaustively, hence the check. - This assumes that when type == LENS, bits == 9. - - sym increments through all symbols, and the loop terminates when - all codes of length max, i.e. all codes, have been processed. This - routine permits incomplete codes, so another loop after this one fills - in the rest of the decoding tables with invalid code markers. - */ - - /* set up for code type */ - switch (type) { - case CODES: - base = extra = work; /* dummy value--not used */ - end = 19; - break; - case LENS: - base = lbase; - base -= 257; - extra = lext; - extra -= 257; - end = 256; - break; - default: /* DISTS */ - base = dbase; - extra = dext; - end = -1; - } - - /* initialize state for loop */ - huff = 0; /* starting code */ - sym = 0; /* starting code symbol */ - len = min; /* starting code length */ - next = *table; /* current table to fill in */ - curr = root; /* current table index bits */ - drop = 0; /* current bits to drop from code for index */ - low = (unsigned)(-1); /* trigger new sub-table when len > root */ - used = 1U << root; /* use root table entries */ - mask = used - 1; /* mask for comparing low */ - - /* check available table space */ - if (type == LENS && used >= ENOUGH - MAXD) - return 1; - - /* process all codes and make table entries */ - for (;;) { - /* create table entry */ - thisOne.bits = (unsigned char)(len - drop); - if ((int)(work[sym]) < end) { - thisOne.op = (unsigned char)0; - thisOne.val = work[sym]; - } - else if ((int)(work[sym]) > end) { - thisOne.op = (unsigned char)(extra[work[sym]]); - thisOne.val = base[work[sym]]; - } - else { - thisOne.op = (unsigned char)(32 + 64); /* end of block */ - thisOne.val = 0; - } - - /* replicate for those indices with low len bits equal to huff */ - incr = 1U << (len - drop); - fill = 1U << curr; - do { - fill -= incr; - next[(huff >> drop) + fill] = thisOne; - } while (fill != 0); - - /* backwards increment the len-bit code huff */ - incr = 1U << (len - 1); - while (huff & incr) - incr >>= 1; - if (incr != 0) { - huff &= incr - 1; - huff += incr; - } - else - huff = 0; - - /* go to next symbol, update count, len */ - sym++; - if (--(count[len]) == 0) { - if (len == max) break; - len = lens[work[sym]]; - } - - /* create new sub-table if needed */ - if (len > root && (huff & mask) != low) { - /* if first time, transition to sub-tables */ - if (drop == 0) - drop = root; - - /* increment past last table */ - next += 1U << curr; - - /* determine length of next table */ - curr = len - drop; - left = (int)(1 << curr); - while (curr + drop < max) { - left -= count[curr + drop]; - if (left <= 0) break; - curr++; - left <<= 1; - } - - /* check for enough space */ - used += 1U << curr; - if (type == LENS && used >= ENOUGH - MAXD) - return 1; - - /* point entry in root table to sub-table */ - low = huff & mask; - (*table)[low].op = (unsigned char)curr; - (*table)[low].bits = (unsigned char)root; - (*table)[low].val = (unsigned short)(next - *table); - } - } - - /* - Fill in rest of table for incomplete codes. This loop is similar to the - loop above in incrementing huff for table indices. It is assumed that - len is equal to curr + drop, so there is no loop needed to increment - through high index bits. When the current sub-table is filled, the loop - drops back to the root table to fill in any remaining entries there. - */ - thisOne.op = (unsigned char)64; /* invalid code marker */ - thisOne.bits = (unsigned char)(len - drop); - thisOne.val = (unsigned short)0; - while (huff != 0) { - /* when done with sub-table, drop back to root table */ - if (drop != 0 && (huff & mask) != low) { - drop = 0; - len = root; - next = *table; - curr = root; - thisOne.bits = (unsigned char)len; - } - - /* put invalid code marker in table */ - next[huff >> drop] = thisOne; - - /* backwards increment the len-bit code huff */ - incr = 1U << (len - 1); - while (huff & incr) - incr >>= 1; - if (incr != 0) { - huff &= incr - 1; - huff += incr; - } - else - huff = 0; - } - - /* set return parameters */ - *table += used; - *bits = root; - return 0; -} diff --git a/source/visualization/HepRep/src/uncompr.cc b/source/visualization/HepRep/src/uncompr.cc deleted file mode 100644 index eeff500430..0000000000 --- a/source/visualization/HepRep/src/uncompr.cc +++ /dev/null @@ -1,57 +0,0 @@ -/* uncompr.c -- decompress a memory buffer - * Copyright (C) 1995-2003 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id: uncompr.cc,v 1.3 2004/11/18 22:45:30 duns Exp $ */ - -#define ZLIB_INTERNAL -#include "HepRep-zlib.h" - -/* =========================================================================== - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total - size of the destination buffer, which must be large enough to hold the - entire uncompressed data. (The size of the uncompressed data must have - been saved previously by the compressor and transmitted to the decompressor - by some mechanism outside the scope of this compression library.) - Upon exit, destLen is the actual size of the compressed buffer. - This function can be used to decompress a whole file at once if the - input file is mmap'ed. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted. -*/ -int ZEXPORT uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen) -{ - z_stream stream; - int err; - - stream.next_in = (Bytef*)source; - stream.avail_in = (uInt)sourceLen; - /* Check for source > 64K on 16-bit machine: */ - if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; - - stream.next_out = dest; - stream.avail_out = (uInt)*destLen; - if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; - - stream.zalloc = (alloc_func)0; - stream.zfree = (free_func)0; - - err = inflateInit(&stream); - if (err != Z_OK) return err; - - err = inflate(&stream, Z_FINISH); - if (err != Z_STREAM_END) { - inflateEnd(&stream); - if (err == Z_NEED_DICT || (err == Z_BUF_ERROR && stream.avail_in == 0)) - return Z_DATA_ERROR; - return err; - } - *destLen = stream.total_out; - - err = inflateEnd(&stream); - return err; -} diff --git a/source/visualization/HepRep/src/zipfile.cc b/source/visualization/HepRep/src/zipfile.cc deleted file mode 100644 index d0ac60da7c..0000000000 --- a/source/visualization/HepRep/src/zipfile.cc +++ /dev/null @@ -1,208 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -#include "zipios++/fcoll.h" -#include "zipios++/zipfile.h" -#include "zipios++/zipinputstream.h" -#include "zipios++/zipios_defs.h" - -#include "backbuffer.h" - -namespace zipios { - -// -// Public -// - -ZipFile ZipFile::openEmbeddedZipFile( const string &name ) { - // open zipfile, read 4 last bytes close file - // create ZipFile object. - ifstream ifs( name.c_str(), ios::in | ios::binary ) ; - ifs.seekg( -4, ios::end ) ; - uint32 start_offset = readUint32( ifs ) ; - ifs.close() ; - return ZipFile( name, start_offset, 4 ) ; -} - - -ZipFile::ZipFile( const string &name , int s_off, int e_off - /* , ios::open_mode mode */ ) - : _vs( s_off, e_off ) { - - _filename = name ; - - ifstream _zipfile( name.c_str(), ios::in | ios::binary ) ; - init( _zipfile ) ; -} - - -FileCollection *ZipFile::clone() const { - return new ZipFile( *this ) ; -} - - -ZipFile::~ZipFile() { - close() ; -} - -void ZipFile::close() { - _valid = false ; - -} - -istream *ZipFile::getInputStream( const ConstEntryPointer &entry ) { - if ( ! _valid ) - throw InvalidStateException( "Attempt to use an invalid FileCollection" ) ; - return getInputStream( entry->getName() ) ; -} - -istream *ZipFile::getInputStream( const string &entry_name, - MatchPath matchpath ) { - if ( ! _valid ) - throw InvalidStateException( "Attempt to use an invalid ZipFile" ) ; - - ConstEntryPointer ent = getEntry( entry_name, matchpath ) ; - - if ( ent == 0 ) - return 0 ; - else - return new ZipInputStream( _filename, - static_cast< const ZipCDirEntry * >( ent.get() )-> - getLocalHeaderOffset() + _vs.startOffset() ) ; -} - - -// -// Private -// - -bool ZipFile::init( istream &_zipfile ) { - - // Check stream error state - if ( ! _zipfile ) { - setError ( "Error reading from file" ) ; - return false ; - } - - _valid = readCentralDirectory( _zipfile ) ; - - return _valid ; -} - - -bool ZipFile::readCentralDirectory ( istream &_zipfile ) { - // Find and read eocd. - if ( ! readEndOfCentralDirectory( _zipfile ) ) - throw FCollException( "Unable to find zip structure: End-of-central-directory" ) ; - - // Position read pointer to start of first entry in central dir. - _vs.vseekg( _zipfile, _eocd.offset(), ios::beg ) ; - - int entry_num = 0 ; - // Giving the default argument in the next line to keep Visual C++ quiet - _entries.resize ( _eocd.totalCount(), 0 ) ; - while ( ( entry_num < _eocd.totalCount() ) ) { - ZipCDirEntry *ent = new ZipCDirEntry ; - _entries[ entry_num ] = ent ; - _zipfile >> *ent ; - if ( ! _zipfile ) { - if ( _zipfile.bad() ) - throw IOException( "Error reading zip file while reading zip file central directory" ) ; - else if ( _zipfile.fail() ) - throw FCollException( "Zip file consistency problem. Failure while reading zip file central directory" ) ; - else if ( _zipfile.eof() ) - throw IOException( "Premature end of file while reading zip file central directory" ) ; - } - ++entry_num ; - } - - // Consistency check. eocd should start here - - int pos = _vs.vtellg( _zipfile ) ; - _vs.vseekg( _zipfile, 0, ios::end ) ; - int remaining = static_cast< int >( _vs.vtellg( _zipfile ) ) - pos ; - if ( remaining != _eocd.eocdOffSetFromEnd() ) - throw FCollException( "Zip file consistency problem. Zip file data fields are inconsistent with zip file layout" ) ; - - // Consistency check 2, are local headers consistent with - // cd headers - if ( ! confirmLocalHeaders( _zipfile ) ) - throw FCollException( "Zip file consistency problem. Zip file data fields are inconsistent with zip file layout" ) ; - - return true ; -} - - -bool ZipFile::readEndOfCentralDirectory ( istream &_zipfile ) { - BackBuffer bb( _zipfile, _vs ) ; - int read_p = -1 ; - bool found = false ; - while ( ! found ) { - if ( read_p < 0 ) - if ( ! bb.readChunk ( read_p ) ) { - found = false ; - break ; - } - if ( _eocd.read( bb, read_p ) ) { - found = true ; - break ; - } - --read_p ; - } - - return found ; -} - -bool ZipFile::confirmLocalHeaders( istream &_zipfile ) { - Entries::const_iterator it ; - ZipCDirEntry *ent ; - int inconsistencies = 0 ; - ZipLocalEntry zlh ; - for ( it = _entries.begin() ; it != _entries.end() ; it++ ) { - ent = static_cast< ZipCDirEntry * >( (*it).get() ) ; - _vs.vseekg( _zipfile, ent->getLocalHeaderOffset(), ios::beg ) ; - _zipfile >> zlh ; - if ( ! _zipfile || zlh != *ent ) { - inconsistencies++ ; - _zipfile.clear() ; - } - } - return ! inconsistencies ; -} - -void ZipFile::setError ( string error_str ) { - _valid = false ; -#ifdef _USE_EXCEPTIONS - throw error_str ; // define exception class instead. -#else - cerr << error_str << endl ; // define operator<< for exception class if such a class replaces string -#endif -} - - -} - -/** \file - The implementation of ZipFile. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/ziphead.cc b/source/visualization/HepRep/src/ziphead.cc deleted file mode 100644 index de3de3c0b0..0000000000 --- a/source/visualization/HepRep/src/ziphead.cc +++ /dev/null @@ -1,294 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" -#include -#include - -#include "zipios_common.h" -#include "zipios++/ziphead.h" -#include "zipios++/zipheadio.h" -#include "zipios++/zipios_defs.h" - -#include "outputstringstream.h" - -namespace zipios { - -using std::ios ; - -bool operator== ( const ZipLocalEntry &zlh, const ZipCDirEntry &ze ) { - // Not all fields need to be identical. Some of the information - // may be put in a data descriptor that trails the compressed - // data, according to the specs (The trailing data descriptor - // can contain crc_32, compress_size and uncompress_size.) - - // Experience has shown that extra_field and extra_field_len - // can differ too. - -// cerr << "----- BEGIN -----" << endl ; -// cerr << ( zlh.extract_version == ze.extract_version ) << endl ; -// cerr << ( zlh.gp_bitfield == ze.gp_bitfield ) << endl ; -// cerr << ( zlh.compress_method == ze.compress_method ) << endl ; -// cerr << ( zlh.last_mod_ftime == ze.last_mod_ftime ) << endl ; -// cerr << ( zlh.last_mod_fdate == ze.last_mod_fdate ) << endl ; - -// cerr << ( zlh.filename_len == ze.filename_len ) << endl ; - -// cerr << ( zlh.filename == ze.filename ) << endl ; -// cerr << "----- END -----" << endl ; - return ( zlh.extract_version == ze.extract_version && - zlh.gp_bitfield == ze.gp_bitfield && - zlh.compress_method == ze.compress_method && - zlh.last_mod_ftime == ze.last_mod_ftime && - zlh.last_mod_fdate == ze.last_mod_fdate && - zlh.filename_len == ze.filename_len && - - zlh.filename == ze.filename ) ; -} - -// -// ZipLocalEntry methods -// - -const uint32 ZipLocalEntry::signature = 0x04034b50 ; - - - -void ZipLocalEntry::setDefaultExtract() { - extract_version = 20 ; // version number -} - -string ZipLocalEntry::getComment() const { - return "" ; // No comment in a local entry -} - -uint32 ZipLocalEntry::getCompressedSize() const { - return compress_size ; -} - -uint32 ZipLocalEntry::getCrc() const { - return crc_32 ; -} - -vector< unsigned char > ZipLocalEntry::getExtra() const { - return extra_field ; -} - -StorageMethod ZipLocalEntry::getMethod() const { - return static_cast< StorageMethod >( compress_method ) ; -} - -string ZipLocalEntry::getName() const { - return filename ; -} - -string ZipLocalEntry::getFileName() const { - if ( isDirectory() ) - return string() ; - string::size_type pos ; - pos = filename.find_last_of( separator ) ; - if ( pos != string::npos ) { // separator found! - // isDirectory() check means pos should not be last, so pos+1 is ok - return filename.substr( pos + 1 ) ; - } else { - return filename ; - } -} - -uint32 ZipLocalEntry::getSize() const { - return uncompress_size ; -} - -int ZipLocalEntry::getTime() const { - return ( last_mod_fdate << 16 ) + last_mod_ftime ; - // FIXME: what to do with this time date thing? (not only here?) -} - -bool ZipLocalEntry::isValid() const { - return _valid ; -} - -bool ZipLocalEntry::isDirectory() const { - assert( filename.size() != 0 ) ; - return filename[ filename.size() - 1 ] == separator ; -} - - -void ZipLocalEntry::setComment( const string &/*MD:comment*/ ) { - // A local entry cannot hold a comment -} - -void ZipLocalEntry::setCompressedSize( uint32 size ) { - compress_size = size ; -} - -void ZipLocalEntry::setCrc( uint32 crc ) { - crc_32 = crc ; -} - -void ZipLocalEntry::setExtra( const vector< unsigned char > &extra ) { - extra_field = extra ; - extra_field_len = extra_field.size() ; -} - -void ZipLocalEntry::setMethod( StorageMethod method ) { - compress_method = static_cast< uint16 >( method ) ; -} - -void ZipLocalEntry::setName( const string &name ) { - filename = name ; - filename_len = filename.size() ; -} - -void ZipLocalEntry::setSize( uint32 size ) { - uncompress_size = size ; -} - -void ZipLocalEntry::setTime( int time ) { - // FIXME: fix time setting here, and ind flist and elsewhere. Define the - // date time semantics before mucking about - how surprising - - // MD: added 2 lines - last_mod_fdate = (time >> 16) & 0x0000FFFF; - last_mod_ftime = time & 0x0000FFFF; -} - -string ZipLocalEntry::toString() const { - OutputStringStream sout ; - sout << filename << " (" << uncompress_size << " bytes, " ; - sout << compress_size << " bytes compressed)" ; - return sout.str() ; -} - -int ZipLocalEntry::getLocalHeaderSize() const { - return 30 + filename.size() + extra_field.size() ; -} - -bool ZipLocalEntry::trailingDataDescriptor() const { - // gp_bitfield bit 3 is one, if this entry uses a trailing data - // descriptor to keep size, compressed size and crc-32 - // fields. - if ( ( gp_bitfield & 4 ) == 1 ) - return true ; - else - return false ; -} - -FileEntry *ZipLocalEntry::clone() const { - return new ZipLocalEntry( *this ) ; -} - - -// -// ZipCDirEntry methods -// - -const uint32 ZipCDirEntry::signature = 0x02014b50 ; - -void ZipCDirEntry::setDefaultWriter() { - writer_version = 0 ; -#ifdef WIN32 - writer_version |= static_cast< uint16 >( 0 ) << 8 ; // Windows, DOS -#else - writer_version |= static_cast< uint16 >( 3 ) << 8 ; // Unix -#endif - writer_version |= 20 ; // version number -} - -string ZipCDirEntry::getComment() const { - return file_comment ; -} - -uint32 ZipCDirEntry::getLocalHeaderOffset() const { - return rel_offset_loc_head ; -} - -void ZipCDirEntry::setLocalHeaderOffset( uint32 offset ) { - rel_offset_loc_head = offset ; -} - - -void ZipCDirEntry::setComment( const string &comment ) { - file_comment = comment ; - file_comment_len = file_comment.size() ; -} - - -string ZipCDirEntry::toString() const { - OutputStringStream sout ; - sout << filename << " (" << uncompress_size << " bytes, " ; - sout << compress_size << " bytes compressed)" ; - return sout.str() ; -} - - -int ZipCDirEntry::getCDirHeaderSize() const { - return 46 + filename.size() + extra_field.size() + file_comment.size() ; -} - - -FileEntry *ZipCDirEntry::clone() const { - return new ZipCDirEntry( *this ) ; -} - - -// -// EndOfCentralDirectory methods -// - -const uint32 EndOfCentralDirectory::signature = 0x06054b50 ; - -bool EndOfCentralDirectory::read( vector &buf, int pos ) { - if ( ( buf.size() - pos < sizeof( uint32 ) ) || - ( ! checkSignature( &( buf[ pos ] ) ) ) ) - return false ; - - eocd_offset_from_end = buf.size() - pos ; - pos += sizeof( uint32 ) ; - disk_num = ztohs( &( buf[ pos ] ) ) ; pos += sizeof( uint16 ) ; - cdir_disk_num = ztohs( &( buf[ pos ] ) ) ; pos += sizeof( uint16 ) ; - cdir_entries = ztohs( &( buf[ pos ] ) ) ; pos += sizeof( uint16 ) ; - cdir_tot_entries = ztohs( &( buf[ pos ] ) ) ; pos += sizeof( uint16 ) ; - cdir_size = ztohl( &( buf[ pos ] ) ) ; pos += sizeof( uint32 ) ; - cdir_offset = ztohl( &( buf[ pos ] ) ) ; pos += sizeof( uint32 ) ; - zip_comment_len = ztohs( &( buf[ pos ] ) ) ; pos += sizeof( uint16 ) ; -// cerr << "Zip comment length = " << zip_comment_len << endl ; -// cerr << "Length of remaining file = " << buf.size() - pos << endl ; - - return true ; // Dummy -} - -bool EndOfCentralDirectory::checkSignature ( unsigned char *buf ) const { -// cerr << "potential header: " << ztohl( buf ) << endl ; - return checkSignature( ztohl( buf ) ) ; -} - - - -} // namespace - - - -/** \file - Implementation of routines for reading the central directory and - local headers of a zip archive. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/zipheadio.cc b/source/visualization/HepRep/src/zipheadio.cc deleted file mode 100644 index bb1ff7d8e2..0000000000 --- a/source/visualization/HepRep/src/zipheadio.cc +++ /dev/null @@ -1,196 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" -#include -#include - -#include "zipios_common.h" -#include "zipios++/zipheadio.h" - -// MD Removed -//#include "outputstringstream.h" - -namespace zipios { - -std::istream& operator>> ( std::istream &is, ZipLocalEntry &zlh ) { - zlh._valid = false ; // set to true upon successful completion. - if ( ! is ) - return is ; - -// // Before reading anything we record the position in the stream -// // This is a field in the central directory entry, but not -// // in the local entry. After all, we know where we are, anyway. -// zlh.rel_offset_loc_head = is.tellg() ; - - if ( zlh.signature != readUint32( is ) ) { - // put stream in error state and return - is.setstate ( std::ios::failbit ) ; - return is ; - } - - zlh.extract_version = readUint16( is ) ; - zlh.gp_bitfield = readUint16( is ) ; - zlh.compress_method = readUint16( is ) ; - zlh.last_mod_ftime = readUint16( is ) ; - zlh.last_mod_fdate = readUint16( is ) ; - zlh.crc_32 = readUint32( is ) ; - zlh.compress_size = readUint32( is ) ; - zlh.uncompress_size = readUint32( is ) ; - zlh.filename_len = readUint16( is ) ; - zlh.extra_field_len = readUint16( is ) ; - - // Read filename and extra_field - readByteSeq( is, zlh.filename, zlh.filename_len ) ; - readByteSeq( is, zlh.extra_field, zlh.extra_field_len ) ; - - if ( is ) - zlh._valid = true ; - return is ; -} - - -std::istream& operator>> ( std::istream &is, DataDescriptor &/*MD:dd*/ ) { - return is ; -} - - -std::istream& operator>> ( std::istream &is, ZipCDirEntry &zcdh ) { - zcdh._valid = false ; // set to true upon successful completion. - if ( ! is ) - return is ; - - if ( zcdh.signature != readUint32( is ) ) { - // put stream in error state and return - is.setstate ( std::ios::failbit ) ; - return is ; - } - - zcdh.writer_version = readUint16( is ) ; - zcdh.extract_version = readUint16( is ) ; - zcdh.gp_bitfield = readUint16( is ) ; - zcdh.compress_method = readUint16( is ) ; - zcdh.last_mod_ftime = readUint16( is ) ; - zcdh.last_mod_fdate = readUint16( is ) ; - zcdh.crc_32 = readUint32( is ) ; - zcdh.compress_size = readUint32( is ) ; - zcdh.uncompress_size = readUint32( is ) ; - zcdh.filename_len = readUint16( is ) ; - zcdh.extra_field_len = readUint16( is ) ; - zcdh.file_comment_len = readUint16( is ) ; - zcdh.disk_num_start = readUint16( is ) ; - zcdh.intern_file_attr = readUint16( is ) ; - zcdh.extern_file_attr = readUint32( is ) ; - zcdh.rel_offset_loc_head = readUint32( is ) ; - - // Read filename and extra_field - readByteSeq( is, zcdh.filename, zcdh.filename_len ) ; - readByteSeq( is, zcdh.extra_field, zcdh.extra_field_len ) ; - readByteSeq( is, zcdh.file_comment, zcdh.file_comment_len ) ; - - if ( is ) - zcdh._valid = true ; - return is ; -} - -std::ostream &operator<< ( std::ostream &os, const ZipLocalEntry &zlh ) { - if ( ! os ) - return os ; - - writeUint32( zlh.signature , os ) ; - writeUint16( zlh.extract_version, os ) ; - writeUint16( zlh.gp_bitfield , os ) ; - writeUint16( zlh.compress_method, os ) ; - writeUint16( zlh.last_mod_ftime , os ) ; - writeUint16( zlh.last_mod_fdate , os ) ; - writeUint32( zlh.crc_32 , os ) ; - writeUint32( zlh.compress_size , os ) ; - writeUint32( zlh.uncompress_size, os ) ; - writeUint16( zlh.filename_len , os ) ; - writeUint16( zlh.extra_field_len, os ) ; - - - // Write filename and extra_field - writeByteSeq( os, zlh.filename ) ; - writeByteSeq( os, zlh.extra_field ) ; - - return os ; -} - -std::ostream &operator<< ( std::ostream &os, const ZipCDirEntry &zcdh ) { - if ( ! os ) - return os ; - - writeUint32( zcdh.signature , os ) ; - writeUint16( zcdh.writer_version , os ) ; - writeUint16( zcdh.extract_version , os ) ; - writeUint16( zcdh.gp_bitfield , os ) ; - writeUint16( zcdh.compress_method , os ) ; - writeUint16( zcdh.last_mod_ftime , os ) ; - writeUint16( zcdh.last_mod_fdate , os ) ; - writeUint32( zcdh.crc_32 , os ) ; - writeUint32( zcdh.compress_size , os ) ; - writeUint32( zcdh.uncompress_size , os ) ; - writeUint16( zcdh.filename_len , os ) ; - writeUint16( zcdh.extra_field_len , os ) ; - writeUint16( zcdh.file_comment_len , os ) ; - writeUint16( zcdh.disk_num_start , os ) ; - writeUint16( zcdh.intern_file_attr , os ) ; - writeUint32( zcdh.extern_file_attr , os ) ; - writeUint32( zcdh.rel_offset_loc_head, os ) ; - - // Write filename and extra_field - writeByteSeq( os, zcdh.filename ) ; - writeByteSeq( os, zcdh.extra_field ) ; - writeByteSeq( os, zcdh.file_comment ) ; - - return os ; -} - -std::ostream &operator<< ( std::ostream &os, const EndOfCentralDirectory &eocd ) { - if ( ! os ) - return os ; - - writeUint32( eocd.signature , os ) ; - writeUint16( eocd.disk_num , os ) ; - writeUint16( eocd.cdir_disk_num , os ) ; - writeUint16( eocd.cdir_entries , os ) ; - writeUint16( eocd.cdir_tot_entries, os ) ; - writeUint32( eocd.cdir_size , os ) ; - writeUint32( eocd.cdir_offset , os ) ; - writeUint16( eocd.zip_comment_len , os ) ; - - writeByteSeq( os, eocd.zip_comment ) ; - - return os ; -} - - - -} // namespace - - - -/** \file - Implementation of I/O functions for the header structures - defined in ziphead.h. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/zipinputstream.cc b/source/visualization/HepRep/src/zipinputstream.cc deleted file mode 100644 index 77d335fd78..0000000000 --- a/source/visualization/HepRep/src/zipinputstream.cc +++ /dev/null @@ -1,82 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -#include "zipios++/zipinputstreambuf.h" -#include "zipios++/zipinputstream.h" - -namespace zipios { - -ZipInputStream::ZipInputStream( std::istream &is, std::streampos pos ) -// MD: removed std:: - : istream( 0 ), -// SGIs basic_ifstream calls istream with 0, but calls basic_ios constructor first?? - ifs( 0 ) -{ - izf = new ZipInputStreambuf( is.rdbuf(), pos ) ; -// this->rdbuf( izf ) ; is replaced by: - this->init( izf ) ; -} - -ZipInputStream::ZipInputStream( const std::string &filename, std::streampos pos ) -// MD: removed std:: - : istream( 0 ), - ifs( 0 ) -{ - ifs = new std::ifstream( filename.c_str(), std::ios::in |std:: ios::binary ) ; - izf = new ZipInputStreambuf( ifs->rdbuf(), pos ) ; -// this->rdbuf( izf ) ; is replaced by: - this->init( izf ) ; -} - -int ZipInputStream::available() { - return 1 ; // FIXME: Dummy implementation -} - -void ZipInputStream::closeEntry() { - izf->closeEntry() ; -} - -void ZipInputStream::close() { - izf->close() ; -} - -// ZipLocalEntry *ZipInputStream::createZipCDirEntry( const string -// &name ) {} - -ConstEntryPointer ZipInputStream::getNextEntry() { - clear() ; // clear eof and other flags. - return izf->getNextEntry() ; -} - -ZipInputStream::~ZipInputStream() { - // It's ok to call delete with a Null pointer. - delete izf ; - delete ifs ; -} - -} // namespace - -/** \file - Implementation of ZipInputStream. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/zipinputstreambuf.cc b/source/visualization/HepRep/src/zipinputstreambuf.cc deleted file mode 100644 index 1b027ecaa0..0000000000 --- a/source/visualization/HepRep/src/zipinputstreambuf.cc +++ /dev/null @@ -1,140 +0,0 @@ - -#include "zipios++/zipios-config.h" - -#include -#include "zipios++/meta-iostreams.h" - -#include - -#include "zipios++/zipinputstreambuf.h" -#include "zipios_common.h" - -namespace zipios { - -using std::ios ; -using std::cerr ; -using std::endl ; - -ZipInputStreambuf::ZipInputStreambuf( streambuf *inbuf, int s_pos, bool del_inbuf ) - : InflateInputStreambuf( inbuf, s_pos, del_inbuf ), - _open_entry( false ) -{ - ConstEntryPointer entry = getNextEntry() ; - - if ( ! entry->isValid() ) { - ; // FIXME: throw something? - } -} - -void ZipInputStreambuf::closeEntry() { - if ( ! _open_entry ) - return ; - - // check if we're positioned correctly, otherwise position us correctly - int position = _inbuf->pubseekoff(0, ios::cur, - ios::in); - if ( position != _data_start + static_cast< int >( _curr_entry.getCompressedSize() ) ) - _inbuf->pubseekoff(_data_start + _curr_entry.getCompressedSize(), - ios::beg, ios::in) ; - -} - -void ZipInputStreambuf::close() { -} - -ConstEntryPointer ZipInputStreambuf::getNextEntry() { - if ( _open_entry ) - closeEntry() ; - - // read the zip local header - istream is( _inbuf ) ; // istream does not destroy the streambuf. - is >> _curr_entry ; - if ( _curr_entry.isValid() ) { - _data_start = _inbuf->pubseekoff(0, ios::cur, - ios::in); - if ( _curr_entry.getMethod() == DEFLATED ) { - _open_entry = true ; - reset() ; // reset inflatestream data structures -// cerr << "deflated" << endl ; - } else if ( _curr_entry.getMethod() == STORED ) { - _open_entry = true ; - _remain = _curr_entry.getSize() ; - // Force underflow on first read: - setg( &( _outvec[ 0 ] ), - &( _outvec[ 0 ] ) + _outvecsize, - &( _outvec[ 0 ] ) + _outvecsize ) ; -// cerr << "stored" << endl ; - } else { - _open_entry = false ; // Unsupported compression format. - throw FCollException( "Unsupported compression format" ) ; - } - } else { - _open_entry = false ; - } - - if ( _curr_entry.isValid() && _curr_entry.trailingDataDescriptor() ) - throw FCollException( "Trailing data descriptor in zip file not supported" ) ; - return new ZipLocalEntry( _curr_entry ) ; -} - - -ZipInputStreambuf::~ZipInputStreambuf() { -} - - -int ZipInputStreambuf::underflow() { - if ( ! _open_entry ) - return EOF ; // traits_type::eof() - if ( _curr_entry.getMethod() == DEFLATED ) - return InflateInputStreambuf::underflow() ; - - // Ok, we're are stored, so we handle it ourselves. - int num_b = min( _remain, _outvecsize ) ; - int g = _inbuf->sgetn( &(_outvec[ 0 ] ) , num_b ) ; - setg( &( _outvec[ 0 ] ), - &( _outvec[ 0 ] ), - &( _outvec[ 0 ] ) + g ) ; - _remain -= g ; - if ( g > 0 ) - return static_cast< unsigned char >( *gptr() ) ; - else - return EOF ; // traits_type::eof() -} - - -// FIXME: We need to check somew -// -// // gp_bitfield bit 3 is one, if the length of the zip entry -// // is stored in a trailer. -// if ( is->good && ( _curr_entry.gp_bitfield & 4 ) != 1 ) -// return true ; -// else { -// is->clear() ; -// return false ; -// } - - -} // namespace - -/** \file - Implementation of ZipInputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/HepRep/src/zipoutputstream.cc b/source/visualization/HepRep/src/zipoutputstream.cc old mode 100644 new mode 100755 index 01ecea996d..1e14252631 --- a/source/visualization/HepRep/src/zipoutputstream.cc +++ b/source/visualization/HepRep/src/zipoutputstream.cc @@ -1,103 +1,44 @@ - -#include "zipios++/zipios-config.h" - -#include "zipios++/meta-iostreams.h" - -#include "zipios++/zipoutputstreambuf.h" -#include "zipios++/zipoutputstream.h" - -namespace zipios { - -ZipOutputStream::ZipOutputStream( std::ostream &os ) -// MD: removed std:: - : ostream( 0 ), -// SGIs basic_ifstream calls istream with 0, but calls basic_ios constructor first?? - ofs( 0 ) -{ - ozf = new ZipOutputStreambuf( os.rdbuf() ) ; - - init( ozf ) ; -} - - -ZipOutputStream::ZipOutputStream( const std::string &filename ) -// MD: removed std:: - : ostream( 0 ), - ofs( 0 ) -{ - ofs = new std::ofstream( filename.c_str(), std::ios::out | std::ios::binary ) ; - ozf = new ZipOutputStreambuf( ofs->rdbuf() ) ; - this->init( ozf ) ; -} - -void ZipOutputStream::closeEntry() { - ozf->closeEntry() ; -} - - -void ZipOutputStream::close() { - ozf->close() ; - if ( ofs ) - ofs->close() ; -} - - -void ZipOutputStream::finish() { - ozf->finish() ; -} - - -void ZipOutputStream::putNextEntry( const ZipCDirEntry &entry ) { - ozf->putNextEntry( entry ) ; -} - -void ZipOutputStream::putNextEntry(const std::string& entryName) { - putNextEntry( ZipCDirEntry(entryName)); -} - - -void ZipOutputStream::setComment( const std::string &comment ) { - ozf->setComment( comment ) ; -} - - -void ZipOutputStream::setLevel( int level ) { - ozf->setLevel( level ) ; -} - - -void ZipOutputStream::setMethod( StorageMethod method ) { - ozf->setMethod( method ) ; -} - - -ZipOutputStream::~ZipOutputStream() { - // It's ok to call delete with a Null pointer. - delete ozf ; - delete ofs ; -} - -} // namespace - -/** \file - Implementation of ZipOutputStream. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ +// Copyright FreeHEP, 2005. + +#include +#include +#include + +#include "cheprep/ZipOutputStreamBuffer.h" +#include "cheprep/ZipOutputStream.h" + +/** + * @author Mark Donszelmann + * @version $Id: ZipOutputStream.cc,v 1.9 2005/06/02 21:28:45 duns Exp $ + */ +namespace cheprep { + + ZipOutputStream::ZipOutputStream(std::ostream& os) : std::ostream(0) { + buffer = new ZipOutputStreamBuffer(os.rdbuf()); + + init(buffer); + } + + void ZipOutputStream::closeEntry() { + buffer->closeEntry(); + } + + + void ZipOutputStream::close() { + buffer->close(); + } + + void ZipOutputStream::putNextEntry(const std::string& name, bool compress) { + buffer->putNextEntry(name, compress); + } + + void ZipOutputStream::setComment(const std::string& comment ) { + buffer->setComment(comment); + } + + ZipOutputStream::~ZipOutputStream() { + close(); + delete buffer; + } + +} // cheprep diff --git a/source/visualization/HepRep/src/zipoutputstreambuf.cc b/source/visualization/HepRep/src/zipoutputstreambuf.cc deleted file mode 100644 index 36e9781d2e..0000000000 --- a/source/visualization/HepRep/src/zipoutputstreambuf.cc +++ /dev/null @@ -1,204 +0,0 @@ - -#include - -#include "zipios++/zipios-config.h" - -#include -#include "zipios++/meta-iostreams.h" - -#include - -#include "zipios++/zipoutputstreambuf.h" - -namespace zipios { - -using std::ios ; -using std::cerr ; -using std::endl ; -//using std::min ; - -ZipOutputStreambuf::ZipOutputStreambuf( streambuf *outbuf, bool del_outbuf ) - : DeflateOutputStreambuf( outbuf, false, del_outbuf ), - _open_entry( false ), - _open ( true ), - _method ( DEFLATED ), - _level ( 6 ) -{ -} - - -void ZipOutputStreambuf::closeEntry() { - if ( ! _open_entry ) - return ; - - closeStream() ; - - updateEntryHeaderInfo() ; - setEntryClosedState( ) ; -} - - -void ZipOutputStreambuf::close() { - finish() ; -} - - -void ZipOutputStreambuf::finish() { - if( ! _open ) - return ; - closeEntry() ; - ostream os( _outbuf ) ; - writeCentralDirectory( _entries, EndOfCentralDirectory( _zip_comment), os ) ; - _open = false ; -} - - -ZipOutputStreambuf::~ZipOutputStreambuf() { - finish() ; -} - - -void ZipOutputStreambuf::putNextEntry( const ZipCDirEntry &entry ) { - if ( _open_entry ) - closeEntry() ; - - if ( ! init( _level ) ) - cerr << "ZipOutputStreambuf::putNextEntry(): init() failed!\n" ; - - _entries.push_back( entry ) ; - ZipCDirEntry &ent = _entries.back() ; - - ostream os( _outbuf ) ; - - // Update entry header info - ent.setLocalHeaderOffset( os.tellp() ) ; - ent.setMethod( _method ) ; - - os << static_cast< ZipLocalEntry >( ent ) ; - - _open_entry = true ; -} - - -void ZipOutputStreambuf::setComment( const string &comment ) { - _zip_comment = comment ; -} - - -void ZipOutputStreambuf::setLevel( int level ) { - _level = level ; -} - - -void ZipOutputStreambuf::setMethod( StorageMethod method ) { - _method = method ; - if( method == STORED ) - setLevel( NO_COMPRESSION ) ; - else if ( method == DEFLATED ) { - if( _level == NO_COMPRESSION ) - setLevel( DEFAULT_COMPRESSION ) ; - } else - throw FCollException( "Specified compression method not supported" ) ; -} - -// -// Protected and private methods -// - -int ZipOutputStreambuf::overflow( int c ) { - return DeflateOutputStreambuf::overflow( c ) ; -// // FIXME: implement - -// cout << "ZipOutputStreambuf::overflow() not implemented yet!\n" ; -// return EOF ; -} - - - -int ZipOutputStreambuf::sync() { - return DeflateOutputStreambuf::sync() ; -// // FIXME: implement -// cout << "ZipOutputStreambuf::sync() not implemented yet!\n" ; -// return EOF ; -} - - - -void ZipOutputStreambuf::setEntryClosedState() { - _open_entry = false ; - // FIXME: update put pointers to trigger overflow on write. overflow - // should then return EOF while _open_entry is false. -} - - -void ZipOutputStreambuf::updateEntryHeaderInfo() { - if ( ! _open_entry ) - return ; - - ostream os( _outbuf ) ; - int curr_pos = os.tellp() ; - - // update fields in _entries.back() - ZipCDirEntry &entry = _entries.back() ; - entry.setSize( getCount() ) ; - entry.setCrc( getCrc32() ) ; - entry.setCompressedSize( curr_pos - entry.getLocalHeaderOffset() - - entry.getLocalHeaderSize() ) ; - - // MD: added line, current date and time - time_t ltime; - time( <ime ); - struct tm *now; - now = localtime( <ime ); - int dosTime = (now->tm_year - 80) << 25 | (now->tm_mon + 1) << 21 | now->tm_mday << 16 | - now->tm_hour << 11 | now->tm_min << 5 | now->tm_sec >> 1; - entry.setTime(dosTime); - - // write ZipLocalEntry header to header position - os.seekp( entry.getLocalHeaderOffset() ) ; - os << static_cast< ZipLocalEntry >( entry ) ; - os.seekp( curr_pos ) ; -} - - -void ZipOutputStreambuf::writeCentralDirectory( const vector< ZipCDirEntry > &entries, - EndOfCentralDirectory eocd, - ostream &os ) { - int cdir_start = os.tellp() ; - std::vector< ZipCDirEntry >::const_iterator it ; - int cdir_size = 0 ; - - for ( it = entries.begin() ; it != entries.end() ; ++it ) { - os << *it ; - cdir_size += it->getCDirHeaderSize() ; - } - eocd.setOffset( cdir_start ) ; - eocd.setCDirSize( cdir_size ) ; - eocd.setTotalCount( entries.size() ) ; - os << eocd ; -} - -} // namespace - -/** \file - Implementation of ZipOutputStreambuf. -*/ - -/* - Zipios++ - a small C++ library that provides easy access to .zip files. - Copyright (C) 2000 Thomas Søndergaard - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ diff --git a/source/visualization/History b/source/visualization/History index 7eb4ea7943..c22e79499a 100644 --- a/source/visualization/History +++ b/source/visualization/History @@ -1,4 +1,4 @@ -$Id: History,v 1.266 2004/12/10 18:15:46 gcosmo Exp $ +$Id: History,v 1.296 2005/06/07 17:10:55 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +24,217 @@ committal in the CVS repository ! History file for visualization category --------------------------------------- +7th June 2005 John Allison (vis-V07-00-19) +- visXXX-V07-00-00: Fixed compiler warnings. +- visman-V07-00-02: bug fix. +- modeling-V07-00-02: bug fix. +- Incorporates vis-gmk-V07-00-00 - a fix for addition of zlib to + SUBLIBS and SUBDIRS (Gabriele) + +2nd June 2005 Joseph Perl (vis-V07-00-18) +- Candidate tag for release. +- Includes Mark's additional changes for HepRep2. +- Includes Mark's fix for gcc-4.0 compilation. + +2nd June 2005 Joseph Perl (vis-V07-00-17) +- Candidate tag for release. May or may not be final. +- Undid Gabriele's fix to G4HepRepFileSceneHandler.cc. + +2nd June 2005 John Allison +- Removed scene handler count and made small cosmetic improvements. + +2nd June 2005 Joseph Perl (vis-V07-00-16) +- Incorporate improvements to HepRepFile and HepRepXML + +30th May 2005 John Allison (vis-V07-00-15) +- opengl-V07-00-03: Fixed compilation problem in OpenGL on SUN. +- HepRepFile: Fixed bug introduced in ClearTransientStore. (Joseph Perl) + +27th May 2005 John Allison +- DAWN-V07-00-00, VRML-V07-00-00: + Fixed bug introduced in ClearTransientStore. +- openinventor-V07-00-00 and 01: + fixes for CLHEP and marker sizes. +- vis-HepRep-V07-00-01 and vis-zlib-V07-00-00 (Mark Donszelmann) + Migration to G4LIB_BUILD_ZLIB and some developments. +- management: + o Reduced text size of scale annotation to 12 pixels. + o Fixed default values in /vis/scene/add/text. + +12th May 2005 John Allison +- Moved zlib to externals/zlib. + +6th May 2005 John Allison (vis-V07-00-14) +- OpenGL: fixed bug (views not refreshed - opengl-V07-00-02). +- Improved ASSCIITree guidance. +- G4VisExecutive: Replaced printing of available graphics systems. + Now corresponds to behaviour of most old examples vis managers. +- Fixed some pedantic warnings from gcc 4. +- G4PhysicalVolumeModel: SetCopyNo of replicas and paramaterised + volumes (modeling-V07-00-00). + +5th May 2005 John Allison +- Introduced zlib directory. + +22nd April 2005 John Allison +- OpenGL: Implemented text for X-Windows viewers (opengl-V07-00-00/1). + +10th April 2005 John Allison (visman-V07-00-00) +- G4VisCommandsSceneAdd.cc: 2nd attempt to fix access to fpVisManager + from nested class for SUN. + +16th March 2005 John Allison (vis-V07-00-13) +- G4VisCommandsSceneAdd.cc: fixed access to fpVisManager from nested class. +- For gcc 2.95.2: Fixed G4String return for viewer commands. +- Added constructor and virtual destructor to G4VUserVisAction. + +15th March 2005 John Allison (vis-V07-00-12) +- Added return type G4int to G4ViewParameters::SetNoOfSides and + G4ModelingParameters::SetNoOfSides. They return no. of sides, i.e., + sides per circle in polyhedron contruction, that are actually set; + there is a lower limit of 12. +- G4PhysicalVolumeModel: bug fix: no. of rotation steps correctly applied. + +10th March 2005 John Allison (vis-V07-00-11) +- Reviewed all vis commands. Improved guidance, simplified and + rationalised the commands. + +9th March 2005 John Allison +- Removed "remove" and "edit" commands. +- G4VisManager: removed "Delete" methods. (Removing or deleting an + existing scene, scene handler or viewer is very messy and not + necessary. When a user creates a new one, he/she may leave the old + one around without harm. It may be left unused or selected again later + if the user wants.) +- Removed automatic parameter candidate specification for commands + that take an argument that is a scene, scene handler or viewer + name - it is checked in SetNewValue methods. (The code was just + too complicated and, anyway, the result hindered, rather than + helped the user, because it restricted the parameter values and + mis-typing gave obscure messages. Now the messages are clearer and, + as the guidance points out, the list of possible names can be + obtained with a "list" command.) +- Made "list" commands flag current items. +- Improved guidance for /vis/scene commands. Still to do (groan!): + /vis/scene/add + /vis/sceneHandler + /vis/viewer + +9th March 2005 John Allison (vis-V07-00-10, needs greps-V07-00-01) +- Refined logo and scale. +- Improved physical volume clipping. +- G4VisManager: Added default G4Transform3D::Identity to + objectTransformation argument in Draw methods. + +4th March 2005 John Allison (vis-V07-00-09) +- Added first implementation of cutaway - a clipping box for physical + volume tree: + vis/scene/add/volume ! ! ! box km 0 1 0 1 0 1 + (Does not seem properly to clip volumes wholly inside clipping volume.) + +3rd March 2005 John Allison (vis-V07-00-08) +- Introduced /vis/scene/add/logo. +- Added Set methods to G4VModel. +- Added argument to G4CallbackModel::operator()(const G4Transform3D&) so that + the model could implement a given transformation. Provided default for + G4VUserVisAction::(const G4Transform3D& = G4Transform3D::Identity). +- Improved guidance for: + compound commands + ASCIITree commands +- Used std::istrstream::istrstream(std::string) throughout. + +23rd February 2005 John Allison (vis-V07-00-07) +- Protected scene handlers for the case of the drawing of solids NOT + from a physical volume tree: + G4FRSceneFunc.icc + G4OpenGLSceneHandler.cc + G4OpenGLStoredSceneHandler.cc + G4ASCIITreeSceneHandler.cc + G4GAGTreeSceneHandler.cc +- Fixed a problem with ClearTransientStore. ClearTransientStore + should restrict itself to its job. In the following files, + ClearTransientStore also redraws the view. In other places, a draw + command often follows, so it is not needed here. In fact it can + cause a double recursive descent into DrawView, so the existing code + has been commented out (JA - 23/Jan/05): + G4FRSceneFunc.icc + G4HepRepFileSceneHandler.cc + G4OpenGLImmediateSceneHandler.cc + G4OpenGLStoredSceneHandler.cc + G4VRML1SceneHandlerFunc.icc + G4VRML2SceneHandlerFunc.icc + G4XXXSceneHandler.cc +- Removed (commented out) some code that forced extra kernel visits, + purportedly to overcome a problem in OpenGLStored methods. Let's + fix OpenGL if necessary: + G4VSceneHandler.cc + G4VViewer.cc +- Commented out SetView and ClearView in /vis/viewer/refresh: + G4VisCommandsViewer.cc +- Changed signature of G4VViewer::SetNeedKernelVisit(G4bool) for compatibility. + +19th February 2005 John Allison (vis-V07-00-06 with greps-V07-00-00) +- Added G4VUserVisAction and G4CallbackModel. +- Implemented /vis/scene/add/userAction. +- Fixed bug in /vis/viewer/update (check existence of scene handler and scene). + +15th February 2005 John Allison (vis-V07-00-05) +- Introduced drawing of readout geometry for logical volumes. +- For drawing of logical volumes, introduced boolean flags to control + drawing of: + o boolean components (if any) + o voxels (if any) (note: voxels are not created until start of run) + o readout geometry (if any) +- Augmented commands /vis/specify and /vis/scene/add/logicalVolume to use + above flags. +- G4ASCIITree: Added printing of names of sensitive detector (if any) and + readout geometry (if any). + +15th February 2005 John Allison (vis-V07-00-04) +- Updated READMEs for G4VisExecutive. Removed references to OPACS. + +9th February 2005 John Allison (vis-V07-00-03) +- Migration from AddThis to AddSolid and AddCompound: fixed previously + missed FukuiRendererSceneHander. + +4th February 2005 John Allison (vis-V07-00-02) +- Introduced G4VisExecutive. MyVisManager deprecated. + +27th January 2005 John Allison (vis-V07-00-01, needs intercoms-V07-00-00) +- Migration from AddThis to AddSolid and AddCompound. +- AddSolid: Methods for adding solids to the scene handler. They + must always be called in the triplet PreAddSolid, AddSolid and + PostAddSolid. The transformation and visualization attributes + must be set by the call to PreAddSolid. A possible default + implementation is to request the solid to provide a G4Polyhedron + or similar primitive - see, for example, G4VSceneHandler. +- AddCompound: Methods for adding "compound" GEANT4 objects to the scene + handler. These methods may either (a) invoke "user code" that + uses the "user interface", G4VVisManager (see, for example, + G4VSceneHandler in the Visualization Category, which for + trajectories uses G4VTrajectory::DrawTrajectory, via + G4TrajectoriesModel in the Modeling Category) or (b) invoke + AddPrimitives below (between calls to Begin/EndPrimitives) or (c) + use graphics-system-specific code or (d) any combination of the + above. + +26th January 2005 John Allison (vis-V07-00-00) +- G4VisManager:: removed optional argument + const G4Transform3D& objectTransformation = G4Transform3D::Identity + from Draw methods for a hit and trajectory. +- Trapped illegal nesting of Begin/EndPrimitives. +- Added fpCurrentMaterial to G4VSceneHandler and relevant derived + classes and models for work with G4PhysicalVolumeModel via + EstablishSpecials. So now, the material is also available (in addition + to current depth, logical and physical volum) during drawing of geometry + items. +- Changed ASCIITree to use G4VSolid::GetCubicVolume and + G4LogicalVolume::GetMass. +- Changed G4PhysicalVolumeMassScene to use G4VSolid::GetCubicVolume. +- Improved guidance for /vis/viewer/set/hiddenMarker. +- G4VisCommandsViewerSet: made Up and Viewpoint vectors unit for safety. +- Some additions to test area. + 10th December 2004 Gabriele Cosmo (vis-V06-02-09) - Replaced M_PI with CLHEP's pi. diff --git a/source/visualization/OpenGL/History b/source/visualization/OpenGL/History index 7993a05007..664e38548d 100644 --- a/source/visualization/OpenGL/History +++ b/source/visualization/OpenGL/History @@ -1,4 +1,4 @@ -$Id: History,v 1.42 2004/11/18 15:19:05 johna Exp $ +$Id: History,v 1.46 2005/05/29 23:18:56 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,35 @@ committal in the CVS repository ! History file for visualization/OpenGL ------------------------------------- +30th May 2005 John Allison (opengl-V07-00-03) +- Fixed compilation problem in OpenGL on SUN. (Replaced multimap by + map of vectors in G4OpenGLFontBaseStore.) + +4th May 2005 John Allison (opengl-V07-00-02) +- Restored sequence Set/Clear/DrawView in ClearTransientStore. (It + was taken out to prevent recursive calling, but that seems to be OK, + and it is needed to implement refresh at end of event/run.) + +22nd April 2005 John Allison (opengl-V07-00-01) +- Rationalised work of opengl-V07-00-00. Functionality unchanged. + o G4OpenGLViewer.hh: Created virtual void CreateFontLists(){}. + o In all concrete viewers, added call to CreateFontLists(). + o Moved font code for X to G4OpenGLXViewer::CreateFontLists(). + o There is no longer a need to implement in the XmViewer, since it + now inherits. Thus the font code now only appears once for X. + o Awaiting implementation for WIN32. + +17th April 2005 John Allison (opengl-V07-00-00) +- Based on vis-V07-00-13. +- Implemented text for X-Windows viewers. Uses glXUseXFont, which + creates display lists for nominated fonts. Simple-minded scheme in + which each viewer creates its own font display lists for a variety + of sizes, which are accessed by the scene handler through a new + class, G4OpenGLFontBaseStore. Affected methods: + G4OpenGLXViewer::CreateMainWindow() + G4OpenGLXmViewer::CreateMainWindow() + G4OpenGLSceneHandler::AddPrimitive (const G4Text& text) + 18th November 2004 John Allison (opengl-V06-02-07) - Removed redundant fLastVP from G4OpenGLStoredSceneHandler. diff --git a/source/visualization/OpenGL/include/G4OpenGL.hh b/source/visualization/OpenGL/include/G4OpenGL.hh index 5838de5216..e637588505 100644 --- a/source/visualization/OpenGL/include/G4OpenGL.hh +++ b/source/visualization/OpenGL/include/G4OpenGL.hh @@ -20,6 +20,11 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4OpenGL.hh,v 1.3 2005/04/17 16:08:43 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +// G.Barrand. + #ifndef G4OpenGL_h #define G4OpenGL_h diff --git a/examples/advanced/radioprotection/include/RemSimRunMessenger.hh b/source/visualization/OpenGL/include/G4OpenGLFontBaseStore.hh similarity index 61% rename from examples/advanced/radioprotection/include/RemSimRunMessenger.hh rename to source/visualization/OpenGL/include/G4OpenGLFontBaseStore.hh index 4b73a3fc2c..c04d1ce038 100644 --- a/examples/advanced/radioprotection/include/RemSimRunMessenger.hh +++ b/source/visualization/OpenGL/include/G4OpenGLFontBaseStore.hh @@ -20,41 +20,39 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4OpenGLFontBaseStore.hh,v 1.2 2005/05/27 10:56:06 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // -// ***************************************** -// * * -// * RemSimDetectrorMessenger.hh * -// * * -// ***************************************** -// -// $Id: RemSimRunMessenger.hh,v 1.2 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ -// -// Code developed by: S.Guatelli, guatelli@ge.infn.it -// -#ifndef RemSimRunMessenger_h -#define RemSimRunMessenger_h 1 +// J.Allison Apr 2005. + +// Class Description: +// Facilitates sharing of font bases between scene handler and viewers. + +#ifndef G4OPENGLFONTBASESTORE_HH +#define G4OPENGLFONTBASESTORE_HH #include "globals.hh" -#include "G4UImessenger.hh" +#include +#include -class RemSimRunAction; -class RemSimRunAction; -class G4UIdirectory; -class G4UIcmdWithAString; +class G4VViewer; -class RemSimRunMessenger: public G4UImessenger -{ +class G4OpenGLFontBaseStore { public: - RemSimRunMessenger(RemSimRunAction* ); - ~RemSimRunMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - + static void AddFontBase(G4VViewer*, G4int fontBase, + G4double size, const G4String& fontName); + static G4int GetFontBase(G4VViewer*, G4double size); private: - RemSimRunAction* run; - G4UIdirectory* runDir; - G4UIcmdWithAString* readFileCmd; //change data.txt + struct FontInfo { + FontInfo(): + fFontName(""), fSize(0), fFontBase(-1) {} + FontInfo(const G4String& fontName, G4double size, G4int fontBase): + fFontName(fontName), fSize(size), fFontBase(fontBase) {} + G4String fFontName; + G4double fSize; // In terms of G4VMarker Screen Size. + G4int fFontBase; + }; + static std::map > fFontBaseMap; }; -#endif +#endif diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh index bfbc7484d4..7150050033 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateSceneHandler.hh,v 1.6 2001/08/09 20:16:56 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLImmediateSceneHandler.hh,v 1.7 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 @@ -52,11 +52,9 @@ public: void BeginModeling (); void EndModeling (); void ClearTransientStore (); - static G4int GetSceneCount (); private: static G4int fSceneIdCount; // static counter for OpenGLImmediate scenes. - static G4int fSceneCount; // No. of extanct scene handlers. }; #endif diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh index 3af0f1c6ba..d4c77bc7db 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateViewer.hh,v 1.7 2002/10/16 10:44:13 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh index bb8592ee46..4a028ca3f8 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateWin32.hh,v 1.6 2002/10/16 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // OpenGLImmediateWin32 graphics system factory. diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh index 42f9ddad84..fc90e03895 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateWin32Viewer.hh,v 1.7 2002/10/16 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4OpenGLImmediateWin32Viewer : a class derived from diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh index 095282e62b..a60223d17c 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateX.hh,v 1.6 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh index b19a8e8222..8ebbe14196 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateXViewer.hh,v 1.7 2001/07/14 21:47:42 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh index b6175f7c2d..dd1c99ad38 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateXm.hh,v 1.6 2001/07/11 10:08:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh index b1ad8dacfe..a8943457d8 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateXmViewer.hh,v 1.7 2001/07/14 21:47:43 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh index 82bd415e23..94c328f2eb 100644 --- a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLSceneHandler.hh,v 1.17 2004/07/09 15:44:20 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLSceneHandler.hh,v 1.18 2005/01/27 20:04:52 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 27th March 1996 @@ -61,19 +61,19 @@ public: G4VSceneHandler::AddPrimitive (scale); } - void AddThis (const G4Box&); - void AddThis (const G4Cons&); - void AddThis (const G4Tubs&); - void AddThis (const G4Trd&); - void AddThis (const G4Trap&); - void AddThis (const G4Sphere&); - void AddThis (const G4Para&); - void AddThis (const G4Torus&); - void AddThis (const G4Polycone&); - void AddThis (const G4Polyhedra&); - void AddThis (const G4VSolid&); - void AddThis (const G4VTrajectory&); - void AddThis (const G4VHit&); + void AddSolid (const G4Box&); + void AddSolid (const G4Cons&); + void AddSolid (const G4Tubs&); + void AddSolid (const G4Trd&); + void AddSolid (const G4Trap&); + void AddSolid (const G4Sphere&); + void AddSolid (const G4Para&); + void AddSolid (const G4Torus&); + void AddSolid (const G4Polycone&); + void AddSolid (const G4Polyhedra&); + void AddSolid (const G4VSolid&); + void AddCompound (const G4VTrajectory&); + void AddCompound (const G4VHit&); protected: G4OpenGLSceneHandler (G4VGraphicsSystem& system, diff --git a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc index 8d40aa8922..af45d5e9ae 100644 --- a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc +++ b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc @@ -21,52 +21,52 @@ // ******************************************************************** // // -// $Id: G4OpenGLSceneHandler.icc,v 1.5 2001/08/09 20:16:06 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLSceneHandler.icc,v 1.6 2005/01/27 20:04:55 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 20th January 1998 -inline void G4OpenGLSceneHandler::AddThis (const G4Box& box) { - G4VSceneHandler::AddThis (box); +inline void G4OpenGLSceneHandler::AddSolid (const G4Box& box) { + G4VSceneHandler::AddSolid (box); } -inline void G4OpenGLSceneHandler::AddThis (const G4Cons& cons) { - G4VSceneHandler::AddThis (cons); +inline void G4OpenGLSceneHandler::AddSolid (const G4Cons& cons) { + G4VSceneHandler::AddSolid (cons); } -inline void G4OpenGLSceneHandler::AddThis (const G4Tubs& tubs) { - G4VSceneHandler::AddThis (tubs); +inline void G4OpenGLSceneHandler::AddSolid (const G4Tubs& tubs) { + G4VSceneHandler::AddSolid (tubs); } -inline void G4OpenGLSceneHandler::AddThis (const G4Trd& trd) { - G4VSceneHandler::AddThis (trd); +inline void G4OpenGLSceneHandler::AddSolid (const G4Trd& trd) { + G4VSceneHandler::AddSolid (trd); } -inline void G4OpenGLSceneHandler::AddThis (const G4Trap& trap) { - G4VSceneHandler::AddThis (trap); +inline void G4OpenGLSceneHandler::AddSolid (const G4Trap& trap) { + G4VSceneHandler::AddSolid (trap); } -inline void G4OpenGLSceneHandler::AddThis (const G4Sphere& sphere) { - G4VSceneHandler::AddThis (sphere); +inline void G4OpenGLSceneHandler::AddSolid (const G4Sphere& sphere) { + G4VSceneHandler::AddSolid (sphere); } -inline void G4OpenGLSceneHandler::AddThis (const G4Para& para) { - G4VSceneHandler::AddThis (para); +inline void G4OpenGLSceneHandler::AddSolid (const G4Para& para) { + G4VSceneHandler::AddSolid (para); } -inline void G4OpenGLSceneHandler::AddThis (const G4Torus& torus) { - G4VSceneHandler::AddThis (torus); +inline void G4OpenGLSceneHandler::AddSolid (const G4Torus& torus) { + G4VSceneHandler::AddSolid (torus); } -inline void G4OpenGLSceneHandler::AddThis (const G4Polycone& polycone) { - G4VSceneHandler::AddThis (polycone); +inline void G4OpenGLSceneHandler::AddSolid (const G4Polycone& polycone) { + G4VSceneHandler::AddSolid (polycone); } -inline void G4OpenGLSceneHandler::AddThis (const G4Polyhedra& polyhedra) { - G4VSceneHandler::AddThis (polyhedra); +inline void G4OpenGLSceneHandler::AddSolid (const G4Polyhedra& polyhedra) { + G4VSceneHandler::AddSolid (polyhedra); } -inline void G4OpenGLSceneHandler::AddThis (const G4VSolid& vsolid) { - G4VSceneHandler::AddThis (vsolid); +inline void G4OpenGLSceneHandler::AddSolid (const G4VSolid& vsolid) { + G4VSceneHandler::AddSolid (vsolid); } diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh index f70d9db985..f7644cfc21 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredSceneHandler.hh,v 1.15 2004/11/18 15:19:23 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLStoredSceneHandler.hh,v 1.16 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 @@ -53,7 +53,6 @@ public: void EndPrimitives (); void BeginModeling (); void EndModeling (); - static G4int GetSceneCount (); private: friend class G4OpenGLStoredViewer; // ..allows access to P/TODLs. @@ -61,7 +60,6 @@ private: void ClearTransientStore (); void RequestPrimitives (const G4VSolid& solid); static G4int fSceneIdCount; // static counter for OpenGLStored scenes. - static G4int fSceneCount; // No. of extanct scene handlers. G4int fDisplayListId; // Workspace. G4bool fMemoryForDisplayLists; // avoid memory overflow @@ -79,10 +77,6 @@ private: std::map > fSolidMap; }; -inline G4int G4OpenGLStoredSceneHandler::GetSceneCount () { - return fSceneCount; -} - #endif #endif diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh index 0336b263e0..a5852317f5 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredViewer.hh,v 1.8 2001/08/14 18:03:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh b/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh index ac4f56b221..b26f9be5f7 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredWin32.hh,v 1.6 2002/10/16 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // OpenGLStoredWin32 graphics system factory. diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh index 9d0dce5f9f..897a198c40 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredWin32Viewer.hh,v 1.5 2002/10/16 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4OpenGLStoredWin32Viewer : a class derived from diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredX.hh b/source/visualization/OpenGL/include/G4OpenGLStoredX.hh index 9e78208ebb..961eb0137b 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredX.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredX.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredX.hh,v 1.6 2001/07/11 10:08:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh index 898e4319f4..5f51891bc0 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredXViewer.hh,v 1.5 2001/07/14 21:47:46 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh index 4578138a96..b8ab6bb610 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredXm.hh,v 1.5 2001/07/11 10:08:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh index ab80923e51..a22bdb0b0b 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredXmViewer.hh,v 1.5 2001/07/14 21:47:47 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh b/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh index 79fc6360fd..c534fc3b3a 100644 --- a/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh +++ b/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLTransform3D.hh,v 1.6 2004/04/07 15:17:12 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 24th October 1996 diff --git a/source/visualization/OpenGL/include/G4OpenGLViewer.hh b/source/visualization/OpenGL/include/G4OpenGLViewer.hh index 1da68386ec..7fca2271ce 100644 --- a/source/visualization/OpenGL/include/G4OpenGLViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLViewer.hh,v 1.9 2002/10/16 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLViewer.hh,v 1.10 2005/04/22 12:02:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 27th March 1996 @@ -54,6 +54,7 @@ protected: void HLRSecondPass (); void HLRThirdPass (); void InitializeGLView (); + virtual void CreateFontLists () {} G4bool white_background, //the OpenGL clear colour doublebuffer, //are we using a double buffered visual? transparency_enabled, //is alpha blending enabled? diff --git a/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh index 69f02557a0..37c5d9c8e0 100644 --- a/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLWin32Viewer.hh,v 1.11 2003/06/25 09:01:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4OpenGLWin32Viewer : Class to provide WindowsNT specific diff --git a/source/visualization/OpenGL/include/G4OpenGLXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLXViewer.hh index 4f3f116e1f..87a5ae8260 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXViewer.hh,v 1.20 2004/07/09 15:44:21 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLXViewer.hh,v 1.21 2005/04/22 12:02:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 7th February 1997 @@ -60,6 +60,7 @@ protected: void GetXConnection (); void CreateGLXContext (XVisualInfo* vi); virtual void CreateMainWindow (); + virtual void CreateFontLists (); static int snglBuf_RGBA[12]; static int dblBuf_RGBA[13]; diff --git a/source/visualization/OpenGL/include/G4OpenGLXmBox.hh b/source/visualization/OpenGL/include/G4OpenGLXmBox.hh index d1731b19e2..11ed6da074 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmBox.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmBox.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmBox.hh,v 1.6 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Box container class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh b/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh index f36c479743..f47cbbf473 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmFourArrowButtons.hh,v 1.5 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Four arrow buttons class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh b/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh index 63ad42248d..b709c40e36 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmFramedBox.hh,v 1.6 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Framed box container class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh b/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh index 9bebe93e0c..777e28a508 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmPushButton.hh,v 1.6 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Push button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh b/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh index 344089da3b..9017fbbcff 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmRadioButton.hh,v 1.6 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Radio button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmResources.hh b/source/visualization/OpenGL/include/G4OpenGLXmResources.hh index f55fc92915..b098442907 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmResources.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmResources.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmResources.hh,v 1.4 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Default resources file for GEANT4 OpenGL Motif windows. diff --git a/source/visualization/OpenGL/include/G4OpenGLXmSeparator.hh b/source/visualization/OpenGL/include/G4OpenGLXmSeparator.hh index 8590cf7c9c..c5fdc0d66b 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmSeparator.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmSeparator.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmSeparator.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Separator class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh b/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh index d433819b2a..375acb7159 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmSliderBar.hh,v 1.6 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Slider bar class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh b/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh index 6bd681d307..bf34b25311 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmTextField.hh,v 1.6 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Text field class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh b/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh index f13bcfb6a7..7cb0eefb87 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmTopLevelShell.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Top level shell class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh index 04c2adcc46..f798e13f9a 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetComponent.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Base class for all Motif component widgets diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh index a926c520d0..f6d6b1b5bc 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetContainer.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Base class for all Motif container widgets diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh index d14b30564a..341be85caa 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetObject.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Virtual base class for all Motif widgets. diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh index f773013a4c..4b6b39a439 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetShell.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // //Base class for all Motif window widgets (shells) diff --git a/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh index feb51f6945..1d9fbdf251 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmViewer.hh,v 1.7 2004/07/23 15:23:50 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLFontBaseStore.cc b/source/visualization/OpenGL/src/G4OpenGLFontBaseStore.cc new file mode 100644 index 0000000000..28e940feaf --- /dev/null +++ b/source/visualization/OpenGL/src/G4OpenGLFontBaseStore.cc @@ -0,0 +1,56 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4OpenGLFontBaseStore.cc,v 1.2 2005/05/27 10:56:06 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// + +#include "G4OpenGLFontBaseStore.hh" + +std::map > +G4OpenGLFontBaseStore::fFontBaseMap; + +void G4OpenGLFontBaseStore::AddFontBase +(G4VViewer* viewer,G4int fontBase, + G4double size, const G4String& fontName) { + fFontBaseMap[viewer].push_back(FontInfo(fontName, size, fontBase)); +} + +G4int G4OpenGLFontBaseStore::GetFontBase(G4VViewer* viewer, G4double size) { + G4int fontBase = -1; + std::map >::const_iterator i; + i = fFontBaseMap.find(viewer); + if (i != fFontBaseMap.end()) { + G4double sizeDiscrepancy = 9999.; + std::vector::const_iterator j, k; + for (j = i->second.begin(); j != i->second.end(); ++j) { + G4double d = std::abs(size - j->fSize); + if (d < sizeDiscrepancy) { + sizeDiscrepancy = d; + k = j; + } + } + fontBase = k->fFontBase; + } + return fontBase; +} diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc index 8952ce8678..a3c074f1a5 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateSceneHandler.cc,v 1.10 2004/07/01 15:29:10 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLImmediateSceneHandler.cc,v 1.13 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 @@ -57,14 +57,10 @@ G4OpenGLImmediateSceneHandler::G4OpenGLImmediateSceneHandler (G4VGraphicsSystem& system, const G4String& name): G4OpenGLSceneHandler (system, fSceneIdCount++, name) -{ - fSceneCount++; -} +{} G4OpenGLImmediateSceneHandler::~G4OpenGLImmediateSceneHandler () -{ - fSceneCount--; -} +{} #include @@ -107,7 +103,7 @@ void G4OpenGLImmediateSceneHandler::ClearTransientStore () { G4VSceneHandler::ClearTransientStore (); - // For immediate mode, clear screen and re-draw detector. + // Make sure screen corresponds to graphical database... if (fpViewer) { fpViewer -> SetView (); fpViewer -> ClearView (); @@ -115,12 +111,6 @@ void G4OpenGLImmediateSceneHandler::ClearTransientStore () { } } -G4int G4OpenGLImmediateSceneHandler::GetSceneCount () { - return fSceneCount; -} - G4int G4OpenGLImmediateSceneHandler::fSceneIdCount = 0; -G4int G4OpenGLImmediateSceneHandler::fSceneCount = 0; - #endif diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc index 6451585af1..b48ab7f415 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateViewer.cc,v 1.6 2002/10/16 10:44:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc index 394faa81d2..7358621cf5 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateWin32.cc,v 1.8 2002/10/16 10:44:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLImmediateWin32.cc,v 1.9 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // OpenGLImmediateWin32 graphics system factory. @@ -45,8 +45,6 @@ G4OpenGLImmediateWin32::G4OpenGLImmediateWin32 (): G4VSceneHandler* G4OpenGLImmediateWin32::CreateSceneHandler (const G4String& name) { G4VSceneHandler* pScene = new G4OpenGLImmediateSceneHandler (*this, name); - G4cout << G4OpenGLImmediateSceneHandler::GetSceneCount () - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc index cd2f39cdc3..2a9ecdb048 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.7 2003/06/10 17:13:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.9 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4OpenGLImmediateWin32Viewer : a class derived from G4OpenGLWin32Viewer and @@ -35,12 +35,12 @@ #include "G4ios.hh" G4OpenGLImmediateWin32Viewer::G4OpenGLImmediateWin32Viewer -(G4OpenGLImmediateSceneHandler& scene, +(G4OpenGLImmediateSceneHandler& sceneHandler, const G4String& name): -G4OpenGLViewer (scene), -G4OpenGLWin32Viewer (scene), -G4OpenGLImmediateViewer (scene), -G4VViewer (scene, scene.IncrementViewCount (), name) { +G4OpenGLViewer (sceneHandler), +G4OpenGLWin32Viewer (sceneHandler), +G4OpenGLImmediateViewer (sceneHandler), +G4VViewer (sceneHandler, sceneHandler.IncrementViewCount (), name) { if (fViewId < 0) return; // In case error in base class instantiation. } @@ -51,6 +51,7 @@ void G4OpenGLImmediateWin32Viewer::Initialise () { CreateGLWin32Context (); CreateMainWindow (); + CreateFontLists (); // If a double buffer context has been forced upon us, ignore the // back buffer for this OpenGLImmediate view. diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc index cda12aff4a..e9f12009ae 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateX.cc,v 1.8 2002/02/24 01:48:02 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLImmediateX.cc,v 1.9 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 27th March 1996 @@ -47,8 +47,6 @@ G4OpenGLImmediateX::~G4OpenGLImmediateX () {} G4VSceneHandler* G4OpenGLImmediateX::CreateSceneHandler (const G4String& name) { G4VSceneHandler* pScene = new G4OpenGLImmediateSceneHandler (*this, name); - G4cout << G4OpenGLImmediateSceneHandler::GetSceneCount () - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc index a46b5c9dfc..45d06d3e3a 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateXViewer.cc,v 1.9 2004/04/07 15:18:22 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLImmediateXViewer.cc,v 1.11 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 7th February 1997 @@ -36,12 +36,12 @@ #include "G4ios.hh" G4OpenGLImmediateXViewer:: -G4OpenGLImmediateXViewer (G4OpenGLImmediateSceneHandler& scene, +G4OpenGLImmediateXViewer (G4OpenGLImmediateSceneHandler& sceneHandler, const G4String& name) - : G4VViewer (scene, scene.IncrementViewCount (), name), - G4OpenGLViewer (scene), - G4OpenGLXViewer (scene), - G4OpenGLImmediateViewer (scene) + : G4VViewer (sceneHandler, sceneHandler.IncrementViewCount (), name), + G4OpenGLViewer (sceneHandler), + G4OpenGLXViewer (sceneHandler), + G4OpenGLImmediateViewer (sceneHandler) { if (fViewId < 0) return; // In case error in base class instantiation. @@ -59,8 +59,8 @@ G4OpenGLImmediateXViewer::~G4OpenGLImmediateXViewer () {} void G4OpenGLImmediateXViewer::Initialise () { CreateGLXContext (vi_immediate); - CreateMainWindow (); + CreateFontLists (); InitializeGLView (); diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc index cb9a7ab1dc..e67854f097 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateXm.cc,v 1.9 2004/04/07 15:18:22 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLImmediateXm.cc,v 1.10 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 @@ -47,8 +47,6 @@ G4OpenGLImmediateXm::~G4OpenGLImmediateXm () {} G4VSceneHandler* G4OpenGLImmediateXm::CreateSceneHandler (const G4String& name) { G4VSceneHandler* pScene = new G4OpenGLImmediateSceneHandler (*this, name); - G4cout << G4OpenGLImmediateSceneHandler::GetSceneCount () - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc index ceec8ad5db..15a6ab6f79 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateXmViewer.cc,v 1.9 2004/04/07 15:18:22 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLImmediateXmViewer.cc,v 1.11 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 @@ -36,12 +36,12 @@ #include "G4ios.hh" G4OpenGLImmediateXmViewer:: -G4OpenGLImmediateXmViewer(G4OpenGLImmediateSceneHandler& scene, +G4OpenGLImmediateXmViewer(G4OpenGLImmediateSceneHandler& sceneHandler, const G4String& name) - : G4VViewer (scene, scene.IncrementViewCount (), name), - G4OpenGLViewer (scene), - G4OpenGLXmViewer (scene), - G4OpenGLImmediateViewer (scene) + : G4VViewer (sceneHandler, sceneHandler.IncrementViewCount (), name), + G4OpenGLViewer (sceneHandler), + G4OpenGLXmViewer (sceneHandler), + G4OpenGLImmediateViewer (sceneHandler) { if (fViewId < 0) return; // In case error in base class instantiation. @@ -59,8 +59,8 @@ G4OpenGLImmediateXmViewer::~G4OpenGLImmediateXmViewer () {} void G4OpenGLImmediateXmViewer::Initialise () { CreateGLXContext (vi_immediate); - CreateMainWindow (); + CreateFontLists (); InitializeGLView (); diff --git a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc index e961a7238c..fe4ee63d04 100644 --- a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLSceneHandler.cc,v 1.29 2004/12/10 18:16:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4OpenGLSceneHandler.cc,v 1.32 2005/04/17 16:08:43 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 27th March 1996 @@ -42,6 +42,7 @@ #include "G4OpenGLSceneHandler.hh" #include "G4OpenGLViewer.hh" +#include "G4OpenGLFontBaseStore.hh" #include "G4OpenGLTransform3D.hh" #include "G4Point3D.hh" #include "G4Normal3D.hh" @@ -115,26 +116,43 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyline& line) void G4OpenGLSceneHandler::AddPrimitive (const G4Text& text) { - static G4int callCount (0); - ++callCount; - const G4Colour& c = GetColour (text); // Picks up default if none. MarkerSizeType sizeType; G4double size = GetMarkerSize (text, sizeType); G4ThreeVector position (*fpObjectTransformation * text.GetPosition ()); - if (callCount <= 10 || callCount%100 == 0) { - G4cout << - "G4OpenGLSceneHandler::AddPrimitive (const G4Text&) call count " - << callCount << - "\n Not implemented yet. Called with text \"" - << text.GetText () - << "\"\n at " << position - << ", size " << size - << ", offsets " << text.GetXOffset () << ", " << text.GetYOffset () - << ", type " << G4int(sizeType) - << ", colour " << c - << G4endl; + G4String textString = text.GetText(); + + G4int font_base = G4OpenGLFontBaseStore::GetFontBase(fpViewer,size); + if (font_base < 0) { + static G4int callCount = 0; + ++callCount; + if (callCount <= 10 || callCount%100 == 0) { + G4cout << + "G4OpenGLSceneHandler::AddPrimitive (const G4Text&) call count " + << callCount << + "\n No fonts available." + "\n Called with text \"" + << text.GetText () + << "\"\n at " << position + << ", size " << size + << ", offsets " << text.GetXOffset () << ", " << text.GetYOffset () + << ", type " << G4int(sizeType) + << ", colour " << c + << G4endl; + } + return; } + const char* textCString = textString.c_str(); + glColor3d (c.GetRed (), c.GetGreen (), c.GetBlue ()); + glDisable (GL_DEPTH_TEST); + glDisable (GL_LIGHTING); + + glRasterPos3f(position.x(),position.y(),position.z()); + // No action on offset or layout at present. + glPushAttrib(GL_LIST_BIT); + glListBase(font_base); + glCallLists(strlen(textCString), GL_UNSIGNED_BYTE, (GLubyte *)textCString); + glPopAttrib(); } void G4OpenGLSceneHandler::AddPrimitive (const G4Circle& circle) { @@ -462,11 +480,15 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { } if (edgeCount > 4) { G4cerr << - "G4OpenGLSceneHandler::AddPrimitive(G4Polyhedron): WARNING" + "G4OpenGLSceneHandler::AddPrimitive(G4Polyhedron): WARNING"; + if (fpCurrentPV) { + G4cerr << "\n Volume " << fpCurrentPV->GetName() << ", Solid " << fpCurrentLV->GetSolid()->GetName() << - " (" << fpCurrentLV->GetSolid()->GetEntityType() << - "\n G4Polyhedron facet with " << edgeCount << " edges"; + " (" << fpCurrentLV->GetSolid()->GetEntityType(); + } + G4cerr<< + "\n G4Polyhedron facet with " << edgeCount << " edges" << G4endl; } // Do it all over again (twice) for hlr... @@ -629,12 +651,12 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4NURBS& nurb) { gluDeleteNurbsRenderer (gl_nurb); } -void G4OpenGLSceneHandler::AddThis(const G4VTrajectory& traj) { - G4VSceneHandler::AddThis(traj); // For now. +void G4OpenGLSceneHandler::AddCompound(const G4VTrajectory& traj) { + G4VSceneHandler::AddCompound(traj); // For now. } -void G4OpenGLSceneHandler::AddThis(const G4VHit& hit) { - G4VSceneHandler::AddThis(hit); // For now. +void G4OpenGLSceneHandler::AddCompound(const G4VHit& hit) { + G4VSceneHandler::AddCompound(hit); // For now. } #endif diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc index 099363ac93..22df609a94 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredSceneHandler.cc,v 1.17 2004/07/01 15:29:13 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLStoredSceneHandler.cc,v 1.20 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 @@ -47,14 +47,10 @@ G4OpenGLStoredSceneHandler::G4OpenGLStoredSceneHandler (G4VGraphicsSystem& syste G4OpenGLSceneHandler (system, fSceneIdCount++, name), fMemoryForDisplayLists (true), fTopPODL (0) -{ - fSceneCount++; -} +{} G4OpenGLStoredSceneHandler::~G4OpenGLStoredSceneHandler () -{ - fSceneCount--; -} +{} void G4OpenGLStoredSceneHandler::BeginPrimitives (const G4Transform3D& objectTransformation) { @@ -206,7 +202,7 @@ void G4OpenGLStoredSceneHandler::RequestPrimitives (const G4VSolid& solid) { // Stop-gap solution for display List re-use. A proper // implementation would use geometry hierarchy. const G4VSolid* pSolid = &solid; - if (!(fpCurrentPV -> IsReplicated ()) && + if (fpCurrentPV && !(fpCurrentPV -> IsReplicated ()) && (fSolidMap.find (pSolid) != fSolidMap.end ())) { fDisplayListId = fSolidMap [pSolid]; fPODLList.push_back (fDisplayListId); @@ -221,6 +217,4 @@ void G4OpenGLStoredSceneHandler::RequestPrimitives (const G4VSolid& solid) { G4int G4OpenGLStoredSceneHandler::fSceneIdCount = 0; -G4int G4OpenGLStoredSceneHandler::fSceneCount = 0; - #endif diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc index 7b6c579372..2e2b4006b3 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredViewer.cc,v 1.11 2004/11/18 15:19:40 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc b/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc index 41cf4c86e5..f7084fdefe 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredWin32.cc,v 1.11 2004/04/07 15:18:22 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLStoredWin32.cc,v 1.12 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // OpenGLStoredWin32 graphics system factory. @@ -46,8 +46,6 @@ G4OpenGLStoredWin32::G4OpenGLStoredWin32 (): G4VSceneHandler* G4OpenGLStoredWin32::CreateSceneHandler (const G4String& name) { G4VSceneHandler* pScene = new G4OpenGLStoredSceneHandler (*this, name); - G4cout << G4OpenGLStoredSceneHandler::GetSceneCount () - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc index 5f0fca029b..e105424dcb 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.7 2003/06/10 17:13:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.9 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Class G4OpenGLStoredWin32Viewer : a class derived from G4OpenGLWin32Viewer and @@ -35,12 +35,12 @@ #include "G4ios.hh" G4OpenGLStoredWin32Viewer::G4OpenGLStoredWin32Viewer -(G4OpenGLStoredSceneHandler& scene, +(G4OpenGLStoredSceneHandler& sceneHandler, const G4String& name): -G4OpenGLViewer (scene), -G4OpenGLWin32Viewer (scene), -G4OpenGLStoredViewer (scene), -G4VViewer (scene, scene.IncrementViewCount (), name) { +G4OpenGLViewer (sceneHandler), +G4OpenGLWin32Viewer (sceneHandler), +G4OpenGLStoredViewer (sceneHandler), +G4VViewer (sceneHandler, sceneHandler.IncrementViewCount (), name) { if (fViewId < 0) return; // In case error in base class instantiation. } @@ -51,6 +51,7 @@ void G4OpenGLStoredWin32Viewer::Initialise () { CreateGLWin32Context (); CreateMainWindow (); + CreateFontLists (); // clear the buffers and window. ClearView (); diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredX.cc b/source/visualization/OpenGL/src/G4OpenGLStoredX.cc index 8bc842f48b..b08d912ce6 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredX.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredX.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredX.cc,v 1.9 2004/04/07 15:18:22 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLStoredX.cc,v 1.10 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 @@ -48,8 +48,6 @@ G4OpenGLStoredX::~G4OpenGLStoredX () {} G4VSceneHandler* G4OpenGLStoredX::CreateSceneHandler (const G4String& name) { G4VSceneHandler* pScene = new G4OpenGLStoredSceneHandler (*this, name); - G4cout << G4OpenGLStoredSceneHandler::GetSceneCount () - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc index 1f6e778434..7fa31bb2d3 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredXViewer.cc,v 1.10 2004/04/07 15:18:22 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLStoredXViewer.cc,v 1.12 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 7th February 1997 @@ -36,12 +36,12 @@ #include "G4ios.hh" G4OpenGLStoredXViewer:: -G4OpenGLStoredXViewer (G4OpenGLStoredSceneHandler& scene, +G4OpenGLStoredXViewer (G4OpenGLStoredSceneHandler& sceneHandler, const G4String& name) - : G4VViewer (scene, scene.IncrementViewCount (), name), - G4OpenGLViewer (scene), - G4OpenGLXViewer (scene), - G4OpenGLStoredViewer (scene) + : G4VViewer (sceneHandler, sceneHandler.IncrementViewCount (), name), + G4OpenGLViewer (sceneHandler), + G4OpenGLXViewer (sceneHandler), + G4OpenGLStoredViewer (sceneHandler) { if (fViewId < 0) return; // In case error in base class instantiation. @@ -58,8 +58,8 @@ G4OpenGLStoredXViewer::~G4OpenGLStoredXViewer () {} void G4OpenGLStoredXViewer::Initialise () { CreateGLXContext (vi_stored); - CreateMainWindow (); + CreateFontLists (); InitializeGLView (); diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc index c1ee1c50ea..e2b32305a8 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredXm.cc,v 1.7 2002/02/24 01:48:20 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLStoredXm.cc,v 1.8 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 @@ -45,8 +45,6 @@ G4OpenGLStoredXm::G4OpenGLStoredXm (): G4VSceneHandler* G4OpenGLStoredXm::CreateSceneHandler (const G4String& name) { G4VSceneHandler* pScene = new G4OpenGLStoredSceneHandler (*this, name); - G4cout << G4OpenGLStoredSceneHandler::GetSceneCount () - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc index 7fb8bdb574..4118372730 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredXmViewer.cc,v 1.9 2004/04/07 15:18:23 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLStoredXmViewer.cc,v 1.11 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 @@ -36,12 +36,12 @@ #include "G4ios.hh" G4OpenGLStoredXmViewer:: -G4OpenGLStoredXmViewer (G4OpenGLStoredSceneHandler& scene, +G4OpenGLStoredXmViewer (G4OpenGLStoredSceneHandler& sceneHandler, const G4String& name) - : G4VViewer (scene, scene.IncrementViewCount (), name), - G4OpenGLViewer (scene), - G4OpenGLXmViewer (scene), - G4OpenGLStoredViewer (scene) + : G4VViewer (sceneHandler, sceneHandler.IncrementViewCount (), name), + G4OpenGLViewer (sceneHandler), + G4OpenGLXmViewer (sceneHandler), + G4OpenGLStoredViewer (sceneHandler) { if (fViewId < 0) return; // In case error in base class instantiation. @@ -59,8 +59,8 @@ G4OpenGLStoredXmViewer::~G4OpenGLStoredXmViewer () {} void G4OpenGLStoredXmViewer::Initialise () { CreateGLXContext (vi_stored); - CreateMainWindow (); + CreateFontLists (); InitializeGLView (); diff --git a/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc b/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc index 707984c066..871ea2149e 100644 --- a/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc +++ b/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLTransform3D.cc,v 1.7 2004/09/13 12:12:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 24th October 1996 diff --git a/source/visualization/OpenGL/src/G4OpenGLViewer.cc b/source/visualization/OpenGL/src/G4OpenGLViewer.cc index 943e97085a..5f11cd12ef 100644 --- a/source/visualization/OpenGL/src/G4OpenGLViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLViewer.cc,v 1.19 2004/07/09 15:44:26 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 27th March 1996 diff --git a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc index 2f34944f8d..eae384a503 100644 --- a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLWin32Viewer.cc,v 1.14 2004/11/15 12:13:08 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // G4OpenGLWin32Viewer : Class to provide WindowsNT specific diff --git a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc index bf5ae47437..6c70686b5d 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXViewer.cc,v 1.23 2004/12/07 23:40:59 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4OpenGLXViewer.cc,v 1.25 2005/04/22 12:02:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 7th February 1997 @@ -33,6 +33,8 @@ #include "G4OpenGLXViewer.hh" +#include "G4OpenGLFontBaseStore.hh" + #include "G4ios.hh" #include "G4VisExtent.hh" @@ -146,6 +148,7 @@ void G4OpenGLXViewer::GetXConnection () { << G4endl; return; } + } void G4OpenGLXViewer::CreateGLXContext (XVisualInfo* v) { @@ -278,6 +281,44 @@ void G4OpenGLXViewer::CreateMainWindow () { // connect the context to a window glXMakeCurrent (dpy, win, cx); + +} + +void G4OpenGLXViewer::CreateFontLists () { + + std::map fonts; // G4VMarker screen size and font name. + fonts[10.] = "-adobe-courier-bold-r-normal--10-100-75-75-m-60-iso8859-1"; + fonts[11.] = "-adobe-courier-bold-r-normal--11-80-100-100-m-60-iso8859-1"; + fonts[12.] = "-adobe-courier-bold-r-normal--12-120-75-75-m-70-iso8859-1"; + fonts[13.] = "fixed"; + fonts[14.] = "-adobe-courier-bold-r-normal--14-100-100-100-m-90-iso8859-1"; + fonts[17.] = "-adobe-courier-bold-r-normal--17-120-100-100-m-100-iso8859-1"; + fonts[18.] = "-adobe-courier-bold-r-normal--18-180-75-75-m-110-iso8859-1"; + fonts[20.] = "-adobe-courier-bold-r-normal--20-140-100-100-m-110-iso8859-1"; + fonts[24.] = "-adobe-courier-bold-r-normal--24-240-75-75-m-150-iso8859-1"; + fonts[25.] = "-adobe-courier-bold-r-normal--25-180-100-100-m-150-iso8859-1"; + fonts[34.] = "-adobe-courier-bold-r-normal--34-240-100-100-m-200-iso8859-1"; + std::map::const_iterator i; + for (i = fonts.begin(); i != fonts.end(); ++i) { + XFontStruct* font_info = XLoadQueryFont(dpy, i->second); + if (!font_info) { + G4cerr << + "G4OpenGLXViewer: XLoadQueryFont failed for font\n " + << i->second + << G4endl; + continue; + } + G4int font_base = glGenLists(256); + if (!font_base) { + G4cerr << "G4OpenGLXViewer: out of display lists for fonts." + << G4endl; + continue; + } + G4int first = font_info->min_char_or_byte2; + G4int last = font_info->max_char_or_byte2; + glXUseXFont(font_info->fid, first, last-first+1,font_base+first); + G4OpenGLFontBaseStore::AddFontBase(this,font_base,i->first,i->second); + } } G4OpenGLXViewer::G4OpenGLXViewer (G4OpenGLSceneHandler& scene): @@ -357,7 +398,6 @@ vi_stored (0) // glClearColor (0., 0., 0., 0.); // glClearDepth (1.); - } G4OpenGLXViewer::~G4OpenGLXViewer () { diff --git a/source/visualization/OpenGL/src/G4OpenGLXmBox.cc b/source/visualization/OpenGL/src/G4OpenGLXmBox.cc index 3dd94251ef..dcd785da22 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmBox.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmBox.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmBox.cc,v 1.5 2001/07/11 10:08:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Box container class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc b/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc index e30131d244..6334bbd664 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmConvenienceRoutines.cc,v 1.10 2004/12/07 23:40:59 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc b/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc index e6bf0ec6dd..004ce46904 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmFourArrowButtons.cc,v 1.4 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Four arrow buttons class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc b/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc index 5739254c03..8b69212cf6 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmFramedBox.cc,v 1.5 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Framed box container class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc index 73e3e039bd..8d5e17b929 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmMainMenubarCallbacks.cc,v 1.11 2004/07/01 15:29:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc index e0bde39686..c707534da7 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmPanningCallbacks.cc,v 1.7 2004/07/01 15:28:09 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc b/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc index 997d539e35..cc3c7e4ebb 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmPushButton.cc,v 1.5 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Push button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc b/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc index 04f244f095..422240dac8 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmRadioButton.cc,v 1.5 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Radio button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc index 565e4f4831..47e5e36076 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmRotationCallbacks.cc,v 1.13 2004/12/10 18:16:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc b/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc index bd072a3655..6011705161 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmSeparator.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Separator class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc b/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc index 2d064db5f0..a71e051380 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmSliderBar.cc,v 1.6 2004/12/07 23:40:59 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Slider bar class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc index be64237b9b..9c466833d8 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXmStyleCallbacks.cc,v 1.7 2004/07/23 15:23:58 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLXmStyleCallbacks.cc,v 1.8 2005/02/23 11:24:52 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 16th April 1997 @@ -129,7 +129,7 @@ void G4OpenGLXmViewer::background_color_callback (Widget w, if (!pView->white_background) { pView->white_background = true; if (pView->GetViewParameters().GetDrawingStyle() == G4ViewParameters::hlr) { - pView->SetNeedKernelVisit (); + pView->SetNeedKernelVisit (true); } } break; @@ -138,7 +138,7 @@ void G4OpenGLXmViewer::background_color_callback (Widget w, if (pView->white_background) { pView->white_background = false; if (pView->GetViewParameters().GetDrawingStyle() == G4ViewParameters::hlr) { - pView->SetNeedKernelVisit (); + pView->SetNeedKernelVisit (true); } } break; @@ -273,7 +273,7 @@ void G4OpenGLXmViewer::aux_edge_callback (Widget w, G4Exception("Unrecognised case in aux_edge_callback."); } - pView->SetNeedKernelVisit (); + pView->SetNeedKernelVisit (true); pView->SetView (); pView->ClearView (); pView->DrawView (); diff --git a/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc b/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc index 331550db86..0becebeda5 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmTextField.cc,v 1.6 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Text field class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc b/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc index 4ed6a6e1ae..2b1ababc45 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmTopLevelShell.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Top level shell class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc index 0fe3861586..194b037b77 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetComponent.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Base class for all Motif component widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc index 92aed62448..fb754b130a 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetContainer.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Base class for all Motif container widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc index 712f2ea434..d88099e10c 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetObject.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Virtual base class for all Motif widgets. diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc index 6c75057cad..fd36d68f2a 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetShell.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // //Base class for all Motif shell widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc index 19c051c885..b17edb78f5 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXmViewer.cc,v 1.14 2004/07/23 15:24:01 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenGLXmViewer.cc,v 1.16 2005/04/22 12:02:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc index 92eaf9a3f4..c0e4540826 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmWindowHandlingCallbacks.cc,v 1.5 2001/07/11 10:08:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 16th June 1997 diff --git a/source/visualization/OpenInventor/History b/source/visualization/OpenInventor/History index 5f21774b54..d9791b61b8 100644 --- a/source/visualization/OpenInventor/History +++ b/source/visualization/OpenInventor/History @@ -1,4 +1,4 @@ -$Id: History,v 1.60 2004/12/02 15:31:18 gcosmo Exp $ +$Id: History,v 1.65 2005/06/02 16:51:56 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,21 @@ committal in the CVS repository ! History file for visualization/OpenInventor ------------------------------------------- +2nd June 2005 John Allison (openinventor-V07-00-02) +- Changed char* to const char* in gl2psMsg. + +27th May 2005 John Allison (openinventor-V07-00-01) +- Implemented marker sizes. + +25th May 2005 Guy Barrand (openinventor-V07-00-00) +- G4OpenInventorTransform3D.cc : use the CLHEP::Transform3D::operator(i,j) + to initialize the m array in order to be compatible with new versions + of CLHEP. + +19th March 2005 Guy Barrand +- SoCounterAction.cc : remove extra ';' at end of SO_ACTION_SOURCE. + Code with ';;' does not compile with the "-pedantic" mode of g++-3.4. + 26th November 2004 Guy Barrand (openinventor-V06-02-02) - G4OpenInventorXtViewer, SoPolyhedron, SoCounterAction.h : correct some warnings on g++-3.2.1 (reported by Tom Roberts). diff --git a/source/visualization/OpenInventor/include/G4OpenInventor.hh b/source/visualization/OpenInventor/include/G4OpenInventor.hh index 6cf311b7a4..9b53c926d9 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventor.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventor.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventor.hh,v 1.7 2004/04/08 09:39:37 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // Guy Barrand 26 Mar 1998. // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh index decf86cc6b..91b91797ed 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorSceneHandler.hh,v 1.23 2004/11/24 14:59:38 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenInventorSceneHandler.hh,v 1.26 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // J Kallenbach 27th Aug 1996 @@ -65,6 +65,8 @@ public: void AddPrimitive (const G4Scale& scale) { G4VSceneHandler::AddPrimitive (scale); } + void ClearStore (); + void ClearTransientStore (); // // Primitives for use of HEPVis @@ -72,18 +74,17 @@ public: void BeginPrimitives (const G4Transform3D& objectTransformation); void EndPrimitives (); void EndModeling (); - static G4int GetSceneCount (); - void PreAddThis (const G4Transform3D& objectTransformation, + void PreAddSolid (const G4Transform3D& objectTransformation, const G4VisAttributes& visAttribs); private: - void ClearStore (); - void ClearTransientStore (); - void RequestPrimitives (const G4VSolid& solid); - G4double GetMarkerSize ( const G4VMarker& mark ) ; + //void RequestPrimitives (const G4VSolid& solid); + //G4double GetMarkerSize ( const G4VMarker& mark ) ; + enum G4OIMarker {G4OICircle, G4OISquare}; + void AddCircleSquare (G4OIMarker markerType, const G4VMarker&); + private: static G4int fSceneIdCount; // static counter for OpenInventor scenes. - static G4int fSceneCount; private: // // Stop-gap solution of structure re-use. @@ -101,8 +102,6 @@ private: bool fPreviewAndFull; }; -#include "G4OpenInventorSceneHandler.icc" - #endif #endif diff --git a/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh b/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh index 44a646cb8e..3bbd150bea 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorTransform3D.hh,v 1.6 2004/11/22 14:20:19 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // jck 17 Dec 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorWin.hh b/source/visualization/OpenInventor/include/G4OpenInventorWin.hh index ad133732c4..bc9f7a66df 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorWin.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorWin.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorWin.hh,v 1.1 2004/04/08 09:37:30 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh b/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh index 2d38e0a368..b2093ed493 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorWin32.hh,v 1.6 2004/04/08 09:39:38 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/include/G4OpenInventorWinViewer.hh b/source/visualization/OpenInventor/include/G4OpenInventorWinViewer.hh index f2c8d6a033..21797ee6be 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorWinViewer.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorWinViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorWinViewer.hh,v 1.7 2004/11/25 13:39:54 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Jeff Kallenbach 01 Aug 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorX.hh b/source/visualization/OpenInventor/include/G4OpenInventorX.hh index 9898db922b..884b25d9d2 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorX.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorX.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorX.hh,v 1.6 2004/04/08 09:39:38 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 27th March 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorXt.hh b/source/visualization/OpenInventor/include/G4OpenInventorXt.hh index 00ac476335..854281e6c9 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorXt.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorXt.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorXt.hh,v 1.1 2004/04/08 09:37:30 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Andrew Walkden 27th March 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorXtViewer.hh b/source/visualization/OpenInventor/include/G4OpenInventorXtViewer.hh index 67e62b0bfa..de84851ef1 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorXtViewer.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorXtViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorXtViewer.hh,v 1.12 2004/11/25 13:39:54 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Jeff Kallenbach 01 Aug 1996 diff --git a/source/visualization/OpenInventor/include/HEPVis/SbMath.h b/source/visualization/OpenInventor/include/HEPVis/SbMath.h index 245a34fd02..ea5fa14166 100644 --- a/source/visualization/OpenInventor/include/HEPVis/SbMath.h +++ b/source/visualization/OpenInventor/include/HEPVis/SbMath.h @@ -22,7 +22,7 @@ // // // $Id: SbMath.h,v 1.3 2004/12/07 23:40:59 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef HEPVis_SbMath_h #define HEPVis_SbMath_h diff --git a/source/visualization/OpenInventor/include/HEPVis/nodekits/SoDetectorTreeKit.h b/source/visualization/OpenInventor/include/HEPVis/nodekits/SoDetectorTreeKit.h index 1e2c0203a8..08d2b99fdc 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodekits/SoDetectorTreeKit.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodekits/SoDetectorTreeKit.h @@ -22,7 +22,7 @@ // // // $Id: SoDetectorTreeKit.h,v 1.3 2004/11/22 22:57:01 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/include/HEPVis/nodes/SoBox.h b/source/visualization/OpenInventor/include/HEPVis/nodes/SoBox.h index dddcb243e5..100350528a 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodes/SoBox.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodes/SoBox.h @@ -22,7 +22,7 @@ // // // $Id: SoBox.h,v 1.2 2004/06/14 09:27:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/include/HEPVis/nodes/SoCons.h b/source/visualization/OpenInventor/include/HEPVis/nodes/SoCons.h index 4f2a03b757..6f116d3496 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodes/SoCons.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodes/SoCons.h @@ -22,7 +22,7 @@ // // // $Id: SoCons.h,v 1.2 2004/06/14 09:27:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrap.h b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrap.h index 3cbb134a60..1f4cdc71d5 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrap.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrap.h @@ -22,7 +22,7 @@ // // // $Id: SoTrap.h,v 1.3 2004/11/23 21:51:05 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrd.h b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrd.h index 42202214d3..b23facc6ba 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrd.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrd.h @@ -22,7 +22,7 @@ // // // $Id: SoTrd.h,v 1.2 2004/06/14 09:27:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTubs.h b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTubs.h index 98f510c4ae..726a4255fd 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTubs.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTubs.h @@ -22,7 +22,7 @@ // // // $Id: SoTubs.h,v 1.2 2004/06/14 09:27:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/G4OpenInventor.cc b/source/visualization/OpenInventor/src/G4OpenInventor.cc index 1328c03ae0..bbfa651983 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventor.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventor.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventor.cc,v 1.16 2004/11/22 20:02:48 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenInventor.cc,v 1.17 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifdef G4VIS_BUILD_OI_DRIVER @@ -64,8 +64,6 @@ G4VInteractorManager* G4OpenInventor::GetInteractorManager () { } G4VSceneHandler* G4OpenInventor::CreateSceneHandler (const G4String& name) { G4VSceneHandler* p = new G4OpenInventorSceneHandler (*this, name); - G4cout << G4OpenInventorSceneHandler::GetSceneCount () - << ' ' << fName << " scene handlers extanct." << G4endl; return p; } diff --git a/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc b/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc index 7080cee821..40e0adb3f6 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorSceneHandler.cc,v 1.35 2004/11/25 15:35:36 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenInventorSceneHandler.cc,v 1.38 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Jeff Kallenbach 01 Aug 1996 @@ -101,8 +101,6 @@ G4Point3D translation; G4int G4OpenInventorSceneHandler::fSceneIdCount = 0; -G4int G4OpenInventorSceneHandler::fSceneCount = 0; - G4OpenInventorSceneHandler::G4OpenInventorSceneHandler (G4OpenInventor& system, const G4String& name) :G4VSceneHandler (system, fSceneIdCount++, name) @@ -115,8 +113,6 @@ G4OpenInventorSceneHandler::G4OpenInventorSceneHandler (G4OpenInventor& system, ,fStyleCache(0) ,fPreviewAndFull(false) { - fSceneCount++; - fStyleCache = new SoStyleCache; fStyleCache->ref(); @@ -139,7 +135,6 @@ G4OpenInventorSceneHandler::~G4OpenInventorSceneHandler () { fRoot->unref(); fStyleCache->unref(); - fSceneCount--; } // @@ -191,8 +186,6 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polyline& line) { } void G4OpenInventorSceneHandler::AddPrimitive (const G4Polymarker& polymarker) { - //G4VSceneHandler::AddPrimitive (polymarker); - G4int pointn = polymarker.size(); if(pointn<=0) return; @@ -215,20 +208,80 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polymarker& polymarker) { coordinate3->point.setValues(0,pointn,points); fCurrentSeparator->addChild(coordinate3); + const G4VMarker& marker = polymarker; + G4bool userSpecified = (marker.GetWorldSize() || marker.GetScreenSize()); + const G4VMarker& def = fpViewer -> GetViewParameters().GetDefaultMarker(); + //const G4Vector3D& viewpointDirection = + // fpViewer -> GetViewParameters().GetViewpointDirection(); + //const G4Vector3D& up = fpViewer->GetViewParameters().GetUpVector(); + G4double scale = fpViewer -> GetViewParameters().GetGlobalMarkerScale(); + G4double size = scale * + userSpecified ? marker.GetWorldSize() : def.GetWorldSize(); + G4double screenSize = 0; // Calculate marker in screen size... + if (size) { // Size specified in world coordinates. + screenSize = 10.; // This needs to be much more sophisticated! + } else { // Size specified in screen coordinates (pixels). + screenSize = scale * + userSpecified ? marker.GetScreenSize() : def.GetScreenSize(); + } + SoMarkerSet* markerSet = new SoMarkerSet; markerSet->numPoints = pointn; + + G4VMarker::FillStyle style = marker.GetFillStyle(); switch (polymarker.GetMarkerType()) { default: - // Are available 5_5, 7_7 and 9_9 - case G4Polymarker::dots:{ - markerSet->markerIndex = SoMarkerSet::CIRCLE_LINE_5_5; - }break; - case G4Polymarker::circles:{ - markerSet->markerIndex = SoMarkerSet::CIRCLE_LINE_7_7; - }break; - case G4Polymarker::squares:{ - markerSet->markerIndex = SoMarkerSet::SQUARE_LINE_7_7; - }break; + // Are available 5_5, 7_7 and 9_9 + case G4Polymarker::dots: + if (screenSize <= 5.) { + markerSet->markerIndex = SoMarkerSet::CIRCLE_FILLED_5_5; + } else if (screenSize <= 7.) { + markerSet->markerIndex = SoMarkerSet::CIRCLE_FILLED_7_7; + } else { + markerSet->markerIndex = SoMarkerSet::CIRCLE_FILLED_9_9; + } + break; + case G4Polymarker::circles: + if (screenSize <= 5.) { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::CIRCLE_FILLED_5_5; + } else { + markerSet->markerIndex = SoMarkerSet::CIRCLE_LINE_5_5; + } + } else if (screenSize <= 7.) { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::CIRCLE_FILLED_7_7; + } else { + markerSet->markerIndex = SoMarkerSet::CIRCLE_LINE_7_7; + } + } else { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::CIRCLE_FILLED_9_9; + } else { + markerSet->markerIndex = SoMarkerSet::CIRCLE_LINE_9_9; + } + } + break; + case G4Polymarker::squares: + if (screenSize <= 5.) { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::SQUARE_FILLED_5_5; + } else { + markerSet->markerIndex = SoMarkerSet::SQUARE_LINE_5_5; + } + } else if (screenSize <= 7.) { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::SQUARE_FILLED_7_7; + } else { + markerSet->markerIndex = SoMarkerSet::SQUARE_LINE_7_7; + } + } else { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::SQUARE_FILLED_9_9; + } else { + markerSet->markerIndex = SoMarkerSet::SQUARE_LINE_9_9; + } + } } fCurrentSeparator->addChild(markerSet); @@ -278,56 +331,22 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Text& text) { // Method for handling G4Circle objects // void G4OpenInventorSceneHandler::AddPrimitive (const G4Circle& circle) { - // - // Color - // - const G4Colour& c = GetColour (circle); - SoMaterial* material = - fStyleCache->getMaterial((float)c.GetRed(), - (float)c.GetGreen(), - (float)c.GetBlue(), - (float)(1-c.GetAlpha())); - fCurrentSeparator->addChild(material); - - // - // Dimensions - // - // (userSpecified and defaultMarker are unused - what was intended here?) - //G4double userSpecified = circle.GetWorldSize() || circle.GetScreenSize(); - //const G4VMarker& defaultMarker = - // fpViewer -> GetViewParameters().GetDefaultMarker(); - - G4double size = GetMarkerSize ( circle ); - - // - // Position - // - - const G4Point3D cCtr = circle.GetPosition(); - - SoTranslation *cTrans = new SoTranslation; - cTrans->translation.setValue((float)cCtr.x(), - (float)cCtr.y(), - (float)cCtr.z()); - fCurrentSeparator->addChild(cTrans); - - // - // Sphere - // - - SoSphere *g4Sphere = new SoSphere(); - g4Sphere->radius = (float)size; - fCurrentSeparator->addChild(g4Sphere); + AddCircleSquare(G4OICircle, circle); } // // Method for handling G4Square objects - defaults to wireframe // -void G4OpenInventorSceneHandler::AddPrimitive (const G4Square& Square) { +void G4OpenInventorSceneHandler::AddPrimitive (const G4Square& square) { + AddCircleSquare(G4OISquare, square); +} + +void G4OpenInventorSceneHandler::AddCircleSquare +(G4OIMarker markerType, const G4VMarker& marker) { // // Color // - const G4Colour& c = GetColour (Square); + const G4Colour& c = GetColour (marker); SoMaterial* material = fStyleCache->getMaterial((float)c.GetRed(), (float)c.GetGreen(), @@ -335,29 +354,134 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Square& Square) { (float)(1-c.GetAlpha())); fCurrentSeparator->addChild(material); - // - // Size - // - G4double sSize = GetMarkerSize(Square); - sSize = sSize * 2.0; + // A few useful quantities... + G4Point3D centre = marker.GetPosition(); + G4bool userSpecified = (marker.GetWorldSize() || marker.GetScreenSize()); + const G4VMarker& def = fpViewer -> GetViewParameters().GetDefaultMarker(); + //const G4Vector3D& viewpointDirection = + // fpViewer -> GetViewParameters().GetViewpointDirection(); + //const G4Vector3D& up = fpViewer->GetViewParameters().GetUpVector(); + G4double scale = fpViewer -> GetViewParameters().GetGlobalMarkerScale(); + G4double size = scale * + userSpecified ? marker.GetWorldSize() : def.GetWorldSize(); + G4double screenSize = 0; // Calculate marker in screen size... + if (size) { // Size specified in world coordinates. + screenSize = 10.; // This needs to be much more sophisticated! + } else { // Size specified in screen coordinates (pixels). + screenSize = scale * + userSpecified ? marker.GetScreenSize() : def.GetScreenSize(); + } + // Borrowed from AddPrimitive(G4Polymarker) - inefficient? + SbVec3f* points = new SbVec3f[1]; + points[0].setValue((float)centre.x(), + (float)centre.y(), + (float)centre.z()); + SoCoordinate3* coordinate3 = new SoCoordinate3; + coordinate3->point.setValues(0,1,points); + fCurrentSeparator->addChild(coordinate3); + SoMarkerSet* markerSet = new SoMarkerSet; + markerSet->numPoints = 1; + + G4VMarker::FillStyle style = marker.GetFillStyle(); + switch (markerType) { + case G4OICircle: + if (screenSize <= 5.) { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::CIRCLE_FILLED_5_5; + } else { + markerSet->markerIndex = SoMarkerSet::CIRCLE_LINE_5_5; + } + } else if (screenSize <= 7.) { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::CIRCLE_FILLED_7_7; + } else { + markerSet->markerIndex = SoMarkerSet::CIRCLE_LINE_7_7; + } + } else { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::CIRCLE_FILLED_9_9; + } else { + markerSet->markerIndex = SoMarkerSet::CIRCLE_LINE_9_9; + } + } + break; + case G4OISquare: + if (screenSize <= 5.) { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::SQUARE_FILLED_5_5; + } else { + markerSet->markerIndex = SoMarkerSet::SQUARE_LINE_5_5; + } + } else if (screenSize <= 7.) { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::SQUARE_FILLED_7_7; + } else { + markerSet->markerIndex = SoMarkerSet::SQUARE_LINE_7_7; + } + } else { + if (style == G4VMarker::filled) { + markerSet->markerIndex = SoMarkerSet::SQUARE_FILLED_9_9; + } else { + markerSet->markerIndex = SoMarkerSet::SQUARE_LINE_9_9; + } + } + break; + } + fCurrentSeparator->addChild(markerSet); + + delete [] points; +} + +/* Old method +// +// Method for handling G4Square objects - defaults to wireframe +// +void G4OpenInventorSceneHandler::AddPrimitive (const G4Square& square) { // - // Position + // Color // - const G4Point3D sOrig = Square.GetPosition(); - + const G4Colour& c = GetColour (square); + SoMaterial* material = + fStyleCache->getMaterial((float)c.GetRed(), + (float)c.GetGreen(), + (float)c.GetBlue(), + (float)(1-c.GetAlpha())); + fCurrentSeparator->addChild(material); + + // A few useful quantities... + const G4VMarker& marker = square; + G4Point3D centre = marker.GetPosition(); + G4bool userSpecified = (marker.GetWorldSize() || marker.GetScreenSize()); + const G4VMarker& def = fpViewer -> GetViewParameters().GetDefaultMarker(); + //const G4Vector3D& viewpointDirection = + // fpViewer -> GetViewParameters().GetViewpointDirection(); + //const G4Vector3D& up = fpViewer->GetViewParameters().GetUpVector(); + G4double scale = fpViewer -> GetViewParameters().GetGlobalMarkerScale(); + G4double size = scale * + userSpecified ? marker.GetWorldSize() : def.GetWorldSize(); + G4double screenSize = 0, worldSize = 0; // Calculate marker in world size... + if (size) { // Size specified in world coordinates. + worldSize = size; + } else { // Size specified in screen coordinates (pixels). + screenSize = scale * + userSpecified ? marker.GetScreenSize() : def.GetScreenSize(); + worldSize = 1. * cm; // Needs to be more sophisticated!! + } + SoTranslation *sTrans = new SoTranslation; - sTrans->translation.setValue((float)sOrig.x(), - (float)sOrig.y(), - (float)sOrig.z()); + sTrans->translation.setValue((float)centre.x(), + (float)centre.y(), + (float)centre.z()); fCurrentSeparator->addChild(sTrans); SoCube *g4Square = new SoCube(); - g4Square->width = (float)sSize; - g4Square->height = (float)sSize; - g4Square->depth = (float)sSize; + g4Square->width = (float)worldize; + g4Square->height = (float)worldSize; + g4Square->depth = (float)worldSize; fCurrentSeparator->addChild(g4Square); } +*/ // // Method for handling G4Polyhedron objects for drawing solids. @@ -502,17 +626,21 @@ void G4OpenInventorSceneHandler::ClearStore () { } void G4OpenInventorSceneHandler::ClearTransientStore () { + G4VSceneHandler::ClearTransientStore (); + fTransientRoot->removeAllChildren(); } +/* void G4OpenInventorSceneHandler::RequestPrimitives (const G4VSolid& solid) { // Stop-gap solution for display List re-use. // A proper implementation would use geometry hierarchy. // G4VSceneHandler::RequestPrimitives (solid); } +*/ -void G4OpenInventorSceneHandler::PreAddThis +void G4OpenInventorSceneHandler::PreAddSolid (const G4Transform3D& objectTransformation, const G4VisAttributes& visAttribs) { @@ -520,7 +648,7 @@ void G4OpenInventorSceneHandler::PreAddThis // G4VPhysicalVolume. This is true at present, but beware! We // might have to think about the cast in the following code. - G4VSceneHandler::PreAddThis (objectTransformation, visAttribs); + G4VSceneHandler::PreAddSolid (objectTransformation, visAttribs); // Stores arguments away for future use, e.g., AddPrimitives. // This routines prepares to add solids to the scene database. @@ -571,7 +699,7 @@ void G4OpenInventorSceneHandler::PreAddThis G4bool isAuxEdgeVisible = GetAuxEdgeVisible (pVisAttribs); fReducedWireFrame = !isAuxEdgeVisible; - //printf("debug : PreAddThis : %g %g %g : %d\n", + //printf("debug : PreAddSolid : %g %g %g : %d\n", //red,green,blue,pVisAttribs->IsVisible()); if(!fpCurrentLV || !fpCurrentPV) return; //GB @@ -624,14 +752,26 @@ void G4OpenInventorSceneHandler::PreAddThis G4LogicalVolume* MotherVolume = fpCurrentPV->GetMotherLogical(); if (MotherVolume) { if (fSeparatorMap.find(MotherVolume) != fSeparatorMap.end()) { - //printf("debug : PreAddThis : mother found in map\n"); + //printf("debug : PreAddSolid : mother found in map\n"); fSeparatorMap[MotherVolume]->addChild(detectorTreeKit); } else { - //printf("debug : PreAddThis : mother not found in map !!!\n"); + //printf("debug : PreAddSolid : mother not found in map !!!\n"); fDetectorRoot->addChild(detectorTreeKit); + /* + do { + SoSeparator* dummySeparator = + (SoSeparator*) g4DetectorTreeKit->getPart("dummySeparator",TRUE); + dummySeparator->renderCaching = SoSeparator::OFF; //???? + dummySeparator->addChild(transform); + fSeparatorMap[MotherVolume] = dummySeparator; + MotherVolume = MotherVolume->GetPhysicalVolume()->GetMotherLogical(); + } while + (MotherVolume && + fSeparatorMap.find(MotherVolume) == fSeparatorMap.end()); + */ } } else { - //printf("debug : PreAddThis : has no mother\n"); + //printf("debug : PreAddSolid : has no mother\n"); fDetectorRoot->addChild(detectorTreeKit); } @@ -646,7 +786,7 @@ void G4OpenInventorSceneHandler::PreAddThis fCurrentSeparator = fSeparatorMap[MotherVolume]; } else { /* - G4cerr << "G4OpenInventorSceneHandler::PreAddThis() : WARNING :" + G4cerr << "G4OpenInventorSceneHandler::PreAddSolid() : WARNING :" << " volume " << fpCurrentPV->GetName() << " has invisible mother (" << MotherVolume->GetName() << ")." << G4endl; @@ -658,6 +798,7 @@ void G4OpenInventorSceneHandler::PreAddThis } } else { fCurrentSeparator = fDetectorRoot; + /* Fix here as above!!! */ } SoMaterial* material = @@ -685,6 +826,7 @@ void G4OpenInventorSceneHandler::PreAddThis } +/* G4double G4OpenInventorSceneHandler::GetMarkerSize ( const G4VMarker& mark ) { //----- return value ( marker radius in 3d units) @@ -732,13 +874,14 @@ G4double G4OpenInventorSceneHandler::GetMarkerSize ( const G4VMarker& mark ) return size ; } // G4OpenInventorSceneHandler::GetMarkerSize () +*/ -//void G4OpenInventorSceneHandler::AddThis(const G4VTrajectory& traj) { -// G4VSceneHandler::AddThis(traj); // For now. +//void G4OpenInventorSceneHandler::AddSolid(const G4VTrajectory& traj) { +// G4VSceneHandler::AddSolid(traj); // For now. //} -//void G4OpenInventorSceneHandler::AddThis(const G4VHit& hit) { -// G4VSceneHandler::AddThis(hit); // For now. +//void G4OpenInventorSceneHandler::AddSolid(const G4VHit& hit) { +// G4VSceneHandler::AddSolid(hit); // For now. //} #endif diff --git a/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc b/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc index 3b34313bd4..ed1b678380 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorTransform3D.cc,v 1.6 2004/11/22 14:20:19 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4OpenInventorTransform3D.cc,v 1.7 2005/05/25 08:16:06 gbarrand Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // jck 17 Dec 1996 @@ -39,22 +39,24 @@ G4OpenInventorTransform3D::G4OpenInventorTransform3D (const G4Transform3D &t) : G4Transform3D (t) { - m[0] = xx; - m[1] = yx; - m[2] = zx; +#define elem(i,j) ((float)t(i,j)) + m[0] = elem(0,0); //xx + m[1] = elem(1,0); //yx + m[2] = elem(2,0); //zx m[3] = 0; - m[4] = xy; - m[5] = yy; - m[6] = zy; + m[4] = elem(0,1); //xy + m[5] = elem(1,1); //yy + m[6] = elem(2,1); //zy m[7] = 0; - m[8] = xz; - m[9] = yz; - m[10] = zz; + m[8] = elem(0,2); //xz + m[9] = elem(1,2); //yz + m[10] = elem(2,2); //zz m[11] = 0; - m[12] = dx; - m[13] = dy; - m[14] = dz; + m[12] = elem(0,3); //dx + m[13] = elem(1,3); //dy + m[14] = elem(2,3); //dz m[15] = 1; +#undef elem } SbMatrix* G4OpenInventorTransform3D::GetSbMatrix () const { diff --git a/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc index 28204096ea..f8fc55af04 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc @@ -226,16 +226,20 @@ void G4OpenInventorViewer::SetView () { if(camera->isOfType(SoOrthographicCamera::getClassTypeId())) { if (fVP.GetFieldHalfAngle() == 0.) { //FIXME : ((SoOrthographicCamera*)camera)->height.setValue(); + //FIXME : (Don't think we have to do that.) } else { //FIXME : Have to set a perspective camera ! //FIXME : viewer->setCameraType(SoPerspectiveCamera::getClassTypeId()) + //FIXME : ((SoPerspectiveCamera*)camera)->heightAngle.setValue + //FIXME : (2.*fVP.GetFieldHalfAngle()); } } else if(camera->isOfType(SoPerspectiveCamera::getClassTypeId())) { if (fVP.GetFieldHalfAngle() == 0.) { //FIXME : Have to set an orthographic camera ! //FIXME : viewer->setCameraType(SoOrthographicCamera::getClassTypeId()) } else { - //FIXME : ((SoPerspectiveCamera*)camera)->heightAngle.setValue(); + //FIXME : ((SoPerspectiveCamera*)camera)->heightAngle.setValue + //FIXME : (2.*fVP.GetFieldHalfAngle()); } } diff --git a/source/visualization/OpenInventor/src/G4OpenInventorWin.cc b/source/visualization/OpenInventor/src/G4OpenInventorWin.cc index 97e084505a..420d1cd128 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorWin.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorWin.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorWin.cc,v 1.4 2004/04/08 10:49:57 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc index 39ac775fa8..0e737e2701 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorWinViewer.cc,v 1.22 2004/11/25 14:45:06 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /* * jck : 05 Feb 1997 : Initial Implementation diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXt.cc b/source/visualization/OpenInventor/src/G4OpenInventorXt.cc index 91fcbb667c..52143f7f2b 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXt.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXt.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorXt.cc,v 1.2 2004/11/22 15:00:48 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Jeff Kallenbach 01 Aug 1996 diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc index fe89ba570e..0a04fa8910 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorXtViewer.cc,v 1.21 2004/11/26 08:38:51 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /* * jck 05 Feb 1997 - Initial Implementation diff --git a/source/visualization/OpenInventor/src/SbPainter.cc b/source/visualization/OpenInventor/src/SbPainter.cc old mode 100755 new mode 100644 diff --git a/source/visualization/OpenInventor/src/SbPainterPS.cc b/source/visualization/OpenInventor/src/SbPainterPS.cc old mode 100755 new mode 100644 diff --git a/source/visualization/OpenInventor/src/SoBox.cc b/source/visualization/OpenInventor/src/SoBox.cc index e8884c89be..b7b4922c99 100644 --- a/source/visualization/OpenInventor/src/SoBox.cc +++ b/source/visualization/OpenInventor/src/SoBox.cc @@ -23,7 +23,7 @@ // // // $Id: SoBox.cc,v 1.7 2004/12/16 12:33:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*----------------------------HEPVis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/SoCons.cc b/source/visualization/OpenInventor/src/SoCons.cc index d15f118446..aa99ffd579 100644 --- a/source/visualization/OpenInventor/src/SoCons.cc +++ b/source/visualization/OpenInventor/src/SoCons.cc @@ -23,7 +23,7 @@ // // // $Id: SoCons.cc,v 1.7 2004/12/16 12:33:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------HEPVis---------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/SoCounterAction.cc b/source/visualization/OpenInventor/src/SoCounterAction.cc index 40add0b806..ebc79a11e4 100644 --- a/source/visualization/OpenInventor/src/SoCounterAction.cc +++ b/source/visualization/OpenInventor/src/SoCounterAction.cc @@ -38,7 +38,7 @@ #include #include -SO_ACTION_SOURCE(SoCounterAction); +SO_ACTION_SOURCE(SoCounterAction) void SoCounterAction::initClass(void){ SO_ACTION_INIT_CLASS(SoCounterAction,SoAction); diff --git a/source/visualization/OpenInventor/src/SoDetectorTreeKit.cc b/source/visualization/OpenInventor/src/SoDetectorTreeKit.cc index cd6870df21..717c40d1fc 100644 --- a/source/visualization/OpenInventor/src/SoDetectorTreeKit.cc +++ b/source/visualization/OpenInventor/src/SoDetectorTreeKit.cc @@ -23,7 +23,7 @@ // // // $Id: SoDetectorTreeKit.cc,v 1.9 2004/12/16 12:33:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------HEPVis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/SoImageWriter.cc b/source/visualization/OpenInventor/src/SoImageWriter.cc old mode 100755 new mode 100644 diff --git a/source/visualization/OpenInventor/src/SoMarkerSet.cc b/source/visualization/OpenInventor/src/SoMarkerSet.cc old mode 100755 new mode 100644 diff --git a/source/visualization/OpenInventor/src/SoPolyhedron.cc b/source/visualization/OpenInventor/src/SoPolyhedron.cc old mode 100755 new mode 100644 diff --git a/source/visualization/OpenInventor/src/SoTrap.cc b/source/visualization/OpenInventor/src/SoTrap.cc index 5241eaf36c..b904fb28cf 100644 --- a/source/visualization/OpenInventor/src/SoTrap.cc +++ b/source/visualization/OpenInventor/src/SoTrap.cc @@ -23,7 +23,7 @@ // // // $Id: SoTrap.cc,v 1.7 2004/12/16 12:33:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------HEPVis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/SoTrd.cc b/source/visualization/OpenInventor/src/SoTrd.cc index 262d6d2fa1..463b648f7b 100644 --- a/source/visualization/OpenInventor/src/SoTrd.cc +++ b/source/visualization/OpenInventor/src/SoTrd.cc @@ -23,7 +23,7 @@ // // // $Id: SoTrd.cc,v 1.7 2004/12/16 12:33:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------HEPVis---------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/SoTubs.cc b/source/visualization/OpenInventor/src/SoTubs.cc index 4f2e4abcc4..99056fe255 100644 --- a/source/visualization/OpenInventor/src/SoTubs.cc +++ b/source/visualization/OpenInventor/src/SoTubs.cc @@ -23,7 +23,7 @@ // // // $Id: SoTubs.cc,v 1.7 2004/12/16 12:33:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-ref-00 $ +// GEANT4 tag $Name: geant4-07-01 $ // /*-----------------------------HEPVis---------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/gl2ps.cc b/source/visualization/OpenInventor/src/gl2ps.cc index 4fd1fe74f8..c0ea695636 100644 --- a/source/visualization/OpenInventor/src/gl2ps.cc +++ b/source/visualization/OpenInventor/src/gl2ps.cc @@ -26,7 +26,7 @@ * GL2PS, an OpenGL to PostScript Printing Library * Copyright (C) 1999-2003 Christophe Geuzaine * - * $Id: gl2ps.cc,v 1.8 2004/12/15 15:43:10 gunter Exp $ + * $Id: gl2ps.cc,v 1.9 2005/06/02 16:51:56 allison Exp $ * * E-mail: geuz@geuz.org * URL: http://www.geuz.org/gl2ps/ @@ -60,7 +60,7 @@ GL2PScontext *gl2ps = NULL; /* Some 'system' utility routines */ -void gl2psMsg(GLint level, char *fmt, ...){ +void gl2psMsg(GLint level, const char *fmt, ...){ va_list args; if(!(gl2ps->options & GL2PS_SILENT)){ diff --git a/source/visualization/README b/source/visualization/README index 60f3409d6b..7709c65335 100644 --- a/source/visualization/README +++ b/source/visualization/README @@ -1,4 +1,4 @@ -$Id: README,v 1.11 2001/11/13 07:06:01 stanaka Exp $ +$Id: README,v 1.12 2005/02/15 14:08:11 johna Exp $ Note: Specific graphics systems must be instantiated in a high level library to avoid circular dependencies. Also, some specifically need @@ -9,15 +9,15 @@ RegisterGraphicsSystems() cannot be called from G4VisManager's constructor; it is called from G4VisManager::Initialise(). So we ask the user: (a) to write a subclass of G4VisManager and implement - RegisterGraphicsSystems(). See - visualization/include/MyVisManager.hh/cc as an example. + RegisterGraphicsSystems(). This is most easily done by + including G4VisExecutive.hh. (b) instantiate the subclass. (c) invoke the Initialise() method of the subclass. For example, in your main(): ... #ifdef G4VIS_USE // Instantiate and initialise Visualization Manager. - G4VisManager* visManager = new MyVisManager; + G4VisManager* visManager = new G4VisExecutive; visManager -> SetVerboseLevel (Verbose); visManager -> Initialise (); #endif @@ -26,7 +26,7 @@ For example, in your main(): See, for example, examples/novices/N02/exampleN02.cc. 1) Decide which graphics systems drivers you want. By default you get: - ASCIITree, DAWNFILE, GAGTree, HepRepFile, RayTracer, VRMLFILE. + ASCIITree, DAWNFILE, GAGTree, HepRepFile, HepRepXML, RayTracer, VRMLFILE. For others, the choice depends on what graphics libraries you have access to. Set the appropriate environment variables. Here are @@ -36,8 +36,6 @@ See, for example, examples/novices/N02/exampleN02.cc. # with network connection # (for remote visualization) - setenv G4VIS_BUILD_OPACS_DRIVER 1 # Uses OPACS graphics libraries - setenv G4VIS_BUILD_OPENGLX_DRIVER 1 # Uses OpenGL libraries setenv G4VIS_BUILD_OPENGLXM_DRIVER 1 # Uses OpenGL and Motif # libraries @@ -57,11 +55,11 @@ See, for example, examples/novices/N02/exampleN02.cc. setenv DAWN_HOME /user/local/bin set path=( $path $DAWN_HOME ) - setenv OPACS_HOME ~/private/GEANT4/OPACS - setenv OGLHOME /usr/local setenv OGLFLAGS "-I$(OGLHOME)/include" setenv OGLLIBS "-L$OGLHOME/lib -lMesaGLU -lMesaGL" + + setenv OIVHOME /usr/local If you are going to use widgets, then you might need to set the environment variable: @@ -90,7 +88,8 @@ See, for example, examples/novices/N02/exampleN02.cc. ******************************************************************* NOTE THAT IF YOU CHANGE ANY OF THE ABOVE ENVIRONMENT VARIABLES THEN - YOU WILL HAVE TO REPEAT THE ABOVE OPERATIONS. + YOU WILL HAVE TO REPEAT THE ABOVE OPERATIONS, INCLUDING REBUILDING + THE LIBRARY MAP. ******************************************************************* @@ -102,7 +101,6 @@ See, for example, examples/novices/N02/exampleN02.cc. installed in (1,2) above. Here are the current possibilities: setenv G4VIS_USE_DAWN 1 - setenv G4VIS_USE_OPACS 1 setenv G4VIS_USE_OPENGLX 1 setenv G4VIS_USE_OPENGLXM 1 setenv G4VIS_USE_OIX 1 @@ -114,7 +112,7 @@ See, for example, examples/novices/N02/exampleN02.cc. examples/novices/N02/exampleN02.cc to see a use of this. The graphics systems are instantiated and registered when you - execute MyVisManager::Initialise() (or MyVisManager::Initialize()). + execute G4VisExecutive::Initialise() (or G4VisExecutive::Initialize()). Note also that you can register graphics systems directly, e.g., pVisManager->RegisterGraphicsSystem ( new DAWNFILE ). You can also register your own graphics system, e.g., @@ -134,9 +132,9 @@ See, for example, examples/novices/N02/exampleN02.cc. ******************************************************************* NOTE THAT IF YOU CHANGE ANY OF THE ABOVE ENVIRONMENT VARIABLES THEN YOU WILL HAVE TO REPEAT THE ABOVE gmake clean AND gmake COMMANDS, OR - AT THE VERY LEAST, RECOMPILE YOUR MAIN PROGRAM AND YOUR DERIVED VIS - MANAGER CLASS, E.G., - touch myprog.cc; touch src/MyVisManager.cc; gmake + AT THE VERY LEAST, RECOMPILE YOUR PROGRAM THAT INCLUDES G4VisExecutive.hh, + E.G., + touch myprog.cc; gmake ******************************************************************* @@ -200,18 +198,6 @@ export DAWN_GUI_ALWAYS=1 #export G4DAWNFILE_VIEWER=NONE # Uncomment if DAWN is not available. #export PATH=$PATH:$DAWN_HOME # Now in /usr/local. -########## OPACS graphics - export G4VIS_BUILD_OPACS_DRIVER=1 - export G4VIS_USE_OPACS=1 - export OPACS_HOME=$disc2/OPACS - export OPACS_VERSION=v3 - export OPACS_SYSTEM=Linux-gxx - export OCONFIG=Linux - . $OPACS_HOME/OPACS/$OPACS_VERSION/setup.sh - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$disc2/HEPVis/new/Linux-gxx-SF/ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$disc2/SoFree/new/Linux-gxx - OPATH="$OPATH $G4INSTALL/source/visualization/test/OPACS" - ########### OpenGL export G4VIS_BUILD_OPENGLX_DRIVER=1 export G4VIS_USE_OPENGLX=1 @@ -237,8 +223,6 @@ export G4UI_USE_TERMINAL=1 export G4UI_BUILD_GAG_SESSION=1 export G4UI_USE_GAG=1 export G4UI_BUILD_XM_SESSION=1 -export G4UI_USE_XM=1 -export G4UI_BUILD_WO_SESSION=1 export G4UI_USE_WO=1 ### #export G4UI_BUILD_XAW_SESSION=1 ### #export G4UI_USE_XAW=1 @@ -258,329 +242,48 @@ fi Appendix B: Sample session -------------------------- -The Visualization Manager has been constructed with verbosity == 1. +The Visualization Manager has been constructed with verbosity == c +(confirmations). -$ test19 tcsh 1 RunManager is constructing.... -********************************************** - Geant4 version $Name: geant4-07-00-cand-01 $ - (29-Jun-2001) - Copyright : Geant4 Collaboration -********************************************** -conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. - e+e- energies according Bethe-Heitler - PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -... -Constructing Visualization Manager.... -Initialising Visualization Manager.... -The following graphics systems drivers are supported in the GEANT4 distribution: +************************************************************* + Geant4 version $Name: geant4-07-01 $ (17-December-2004) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* - ASCIITree (prints geometry hierarchy) - - DAWN (socket connection to the Fukui Renderer DAWN) High quality technical renderer. - Features: exact hidden line, hidden surface algorithms. - high (unlimited) resolution. - renders to PostScript for viewing and/or hardcopy. - remote rendering. - off-line rendering. - graphical user interface. - Disadvantages: compute intensive, takes time (use a fast graphics - system, such as OpenGL, to select view, then copy - to this renderer - /vis~/copy/view, /vis~/set/view). - - DAWNFILE (file connection to the Fukui Renderer DAWN ) High quality technical renderer. - Features: exact hidden line, hidden surface algorithms. - high (unlimited) resolution. - renders to PostScript for viewing and/or hardcopy. - remote rendering. - off-line rendering. - graphical user interface. - connection via g4.prim file to Fukui Renderer DAWN etc. - Disadvantages: compute intensive, takes time (use a fast graphics - system, such as OpenGL, to select view, then copy - view parameters to this renderer: - "/vis/viewer/set/all ". - - GAGTree (prints geometry hierarchy, connectable to GAG - user interface) - - OPACS (the Orsay Package) - - OpenGLIX (direct/immediate drawing on X Windows) - Dumb single buffered X Window, No Graphics Database. - Advantages: does not gobble server memory. - good for drawing steps and hits. - Disadvantages: needs G4 kernel for re-Draw. - cannot take advantage of graphics accelerators. - - OpenGLSX (display List/stored drawing on X Windows) - Dumb double buffered X Window with Graphics Database. - Advantages: uses display lists as graphics database. - fastest possible redraw, e.g., on simple change - of viewpoint. - uses client-server model for remote viewing - (but only if you have a full client-server - implementation of OpenGL, i.e., not Mesa). - Disadvantages: not advised for viewing large numbers of steps - and/or hits, because it gobbles memory for database. - - OpenGLIXm (with Motif widgets) - Smart single buffered X Window, No Graphics Database. - Advantages: resizeable, and has Motif-based view-control panel. - does not gobble server memory. - good for drawing steps and hits. - Disadvantages: currently locks out GEANT4 commands, until "exit". - needs G4 kernel for re-Draw. - cannot take advantage of graphics accelerators. - - OpenGLSXm (with Motif widgets) - Smart double buffered X Window with Graphics Database. - Advantages: resizeable, and has Motif-based view-control panel. - uses display lists as graphics database. - fastest possible redraw, e.g., on simple change - of viewpoint. - uses client-server model for remote viewing - (but only if you have a full client-server - implementation of OpenGL, i.e., not Mesa). - Disadvantages: currently locks out GEANT4 commands, until "exit". - not advised for viewing large numbers of steps - and/or hits, because it gobbles memory for database. - - Open Inventor Open Inventor Window/View/Scene. - Advantages: Open Inventor feature set (interactivity, scene control). - Disadvantages: Requires Open Inventor license ($$), Hepvis library (Free). - - RayTracer (produces JPEG file) - - VRML1 (produces VRML 1 file over network) - - VRML1FILE (produces VRML 1 file locally ) - - VRML2 (produces VRML 2 file over network) - - VRML2FILE (produces VRML 2 file locally ) - -The following graphics systems drivers are installed on your system: - ASCII Tree (produces ASCII file of geometry hierarchy) - DAWN (socket connection to the Fukui Renderer DAWN) - DAWNFILE (file connection to the Fukui Renderer DAWN) - GAG Tree (produces ascii file of geometry hierarchy for GAG) - OPACS (the Orsay Package) - OpenGLIX (direct/immediate drawing on X Windows) - OpenGLSX (display List/stored drawing on X Windows) - OpenGLIXm (with Motif widgets) - OpenGLSXm (with Motif widgets) - Open Inventor X11 - RayTracer (produces JPEG file) - VRML1 (produces VRML 1 file over network) - VRML2 (produces VRML 2 file over network) - VRML1FILE (produces VRML 1 file locally) - VRML2FILE (produces VRML 2 file locally) - -You have instantiated your own Visualization Manager, inheriting - G4VisManager and implementing RegisterGraphicsSystems(), in which - you should, normally, instantiate drivers which do not need - external packages or libraries, namely: - ASCIITree, DAWNFILE, GAGTree, RayTracer, VRMLFILE - and, optionally, drivers under control of the following - environment variables: - G4VIS_USE_DAWN - G4VIS_USE_OPACS - G4VIS_USE_OPENGLX - G4VIS_USE_OPENGLXM - G4VIS_USE_OIX - G4VIS_USE_VRML - See visualization/include/MyVisManager.hh/cc, for example. - In your main() you will have something like: - #ifdef G4VIS_USE - G4VisManager* visManager = new MyVisManager; - visManager -> SetVerboseLevel (Verbose); - visManager -> Initialize (); - #endif - (Don't forget to delete visManager;) -Registering additional graphics systems.... +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... G4VisManager::RegisterGraphicsSystem: ASCIITree (ATree) registered. G4VisManager::RegisterGraphicsSystem: DAWNFILE (DAWNFILE) registered. G4VisManager::RegisterGraphicsSystem: GAGTree (GAGTree) registered. +G4VisManager::RegisterGraphicsSystem: G4HepRep (HepRepXML) registered. +G4VisManager::RegisterGraphicsSystem: G4HepRepFile (HepRepFile) registered. G4VisManager::RegisterGraphicsSystem: RayTracer (RayTracer) registered. G4VisManager::RegisterGraphicsSystem: VRML1FILE (VRML1FILE) registered. G4VisManager::RegisterGraphicsSystem: VRML2FILE (VRML2FILE) registered. -G4VisManager::RegisterGraphicsSystem: FukuiRenderer (DAWN) registered. -G4VisManager::RegisterGraphicsSystem: Wo registered. -G4VisManager::RegisterGraphicsSystem: Xo registered. G4VisManager::RegisterGraphicsSystem: OpenGLImmediateX (OGLIX) registered. G4VisManager::RegisterGraphicsSystem: OpenGLStoredX (OGLSX) registered. G4VisManager::RegisterGraphicsSystem: OpenGLImmediateXm (OGLIXm) registered. G4VisManager::RegisterGraphicsSystem: OpenGLStoredXm (OGLSXm) registered. -G4VisManager::RegisterGraphicsSystem: OpenInventorX (OIX) registered. -G4VisManager::RegisterGraphicsSystem: VRML1 (VRML1) registered. -G4VisManager::RegisterGraphicsSystem: VRML2 (VRML2) registered. +G4VisManager::RegisterGraphicsSystem: OpenInventorXt (OIX) registered. You have successfully chosen to use the following graphics systems. Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) - FukuiRenderer (DAWN) - Wo - Xo OpenGLImmediateX (OGLIX) OpenGLStoredX (OGLSX) OpenGLImmediateXm (OGLIXm) OpenGLStoredXm (OGLSXm) - OpenInventorX (OIX) - VRML1 (VRML1) - VRML2 (VRML2) -Reading test19.g4m file.... -# This is test19.g4m -# -# Switch on echoing of commands and history mechanism. -# -/control/saveHistory -# -# John's personal preferences -/vis/viewer/set/lightsMove true -G4VisCommandsViewerSet::SetNewValue: no current viewer. -/vis/viewer/set/hiddenMarker true -G4VisCommandsViewerSet::SetNewValue: no current viewer. -#/vis/verbose 10 -# -# See list of detector possibilities. -/test19det/detector -Available detectors: -0) Part of original test calorimeter -1) Example1 (LBNO, no rotation) -2) Example2 (embryo LBNO, rotated volumes) -3) A parametrised volume -4) MyDetector -Choose by specifying integer parameter. -# Select detector. -#/test19det/detector 1 -#/test19det/detector 4 -# -# Initialise run, i.e., create geometry, set cuts, etc. -/run/initialize -# -# Set gun for demo (detector 1) -#/gun/particle e+ -#/gun/position 0 -100 0 cm -#/gun/direction 0 1 0 -# -# for drawing the tracks -/tracking/storeTrajectory 1 -# if too many tracks cause core dump =storeTrajectory 0 -# -# Create empty scene. -/vis/scene/create -/vis/scene/notifyHandlers -G4Scene::AddWorldIfEmpty: The scene was empty, - "world" has been added. -New empty scene "scene-0" created. -# -# Add volume to scene - "world" is default. -/vis/scene/add/volume -G4Scene::AddRunDurationModel: model "G4PhysicalVolumeModel expHall_P.0" - is already in the run-duration list of scene "scene-0". -/vis/scene/notifyHandlers -# -# See list of graphics systems possibilities. -help /vis/sceneHandler/create -# -# Create a scene handler for a specific graphics system. -# Edit the next line(s) to choose another graphic system -#/vis/sceneHandler/create DAWNFILE -#/vis/sceneHandler/create DAWN -#/vis/sceneHandler/create OGLIXm -#/vis/sceneHandler/create OGLSXm -#/vis/sceneHandler/create OGLIX -/vis/sceneHandler/create OGLSX -G4VisManager::SetCurrentGraphicsSystem: system now OpenGLStoredX -Graphics system set to OpenGLStoredX -1 OpenGLStoredX scene handlers extanct. -New scene handler "scene-handler-0" created. -/vis/sceneHandler/attach -Scene "scene-0" attached to scene handler "scene-handler-0. -#/vis/sceneHandler/create VRML1 -#/vis/sceneHandler/create VRML1FILE -#/vis/sceneHandler/create Xo -#/vis/sceneHandler/create Wo -# -# Add world volume. -/vis/scene/add/volume -G4Scene::AddRunDurationModel: model "G4PhysicalVolumeModel expHall_P.0" - is already in the run-duration list of scene "scene-0". -/vis/scene/notifyHandlers -/vis/scene/add/axes 0 0 0 2 m -/vis/scene/notifyHandlers -Axes have been added to scene "scene-0". -/vis/scene/add/text 0 0 0 mm 50 -120 -200 exampleN03 -/vis/scene/notifyHandlers -Text "exampleN03" has been added to scene "scene-0". -# -# Add scale -/vis/scene/add/scale -/vis/scene/notifyHandlers -Scale of 1 m has been added to scene "scene-0". -# -# Create a viewer. -/vis/viewer/create -Got standard cmap -Window name: viewer-0 (OpenGLStoredX) -G4VisManager::CreateViewer: new viewer created: view parameters are: - View parameters and options: - Drawing style: wireframe - Representation style: polyhedron - Culling: on - Culling invisible objects: on - Density culling: off - Culling daughters covered by opaque mothers: off - Section flag: false - Cutaway flag: false - Explode flag: false - No. of sides used in circle polygon approximation: 24 - Viewpoint direction: (0,0,1) - Up vector: (0,1,0) - Field half angle: 0 - Zoom factor: 1 - Current target point: (0,0,0) - Dolly distance: 0 - Light does not move with camera - Relative lightpoint direction: (1,1,1) - Actual lightpoint direction: (1,1,1) - Derived parameters for standard view of object of unit radius: - Camera distance: 1 - Near distance: 1e-06 - Far distance: 2 - Front half height: 1 - View geometry: true - View hits : true - View digits : true - Default VisAttributes: - G4VisAttributes: visible, daughters visible, colour: (1,1,1,1) - linestyle: solid, line width: 1 - drawing style unforced - Default TextVisAttributes: - G4VisAttributes: visible, daughters visible, colour: (0,0,1,1) - linestyle: solid, line width: 1 - drawing style unforced - Default marker: G4VMarker: position: (0,0,0), world size: 0, screen size: 5 - fill style: no fill - No Visualization Attributes - Global marker scale: 1 - Marker not hidden by surfaces. - Window size hint: 600x600 - Auto refresh: false - NOTE: objects with visibility flag set to "false" will not be drawn! - "/vis/set/culling off" to Draw such objects. - Also see other "/vis/set" commands. -New viewer "viewer-0 (OpenGLStoredX)" created. -# -/vis/viewer/set/lineSegmentsPerCircle 100 -Number of line segements per circle in polygon approximation is 100 -/vis/viewer/refresh -Refreshing viewer "viewer-0 (OpenGLStoredX)"... + OpenInventorXt (OIX) ... diff --git a/source/visualization/README.adding_graphics_system b/source/visualization/README.adding_graphics_system index 5f2580dd2b..56ab0ab03d 100644 --- a/source/visualization/README.adding_graphics_system +++ b/source/visualization/README.adding_graphics_system @@ -12,7 +12,7 @@ To add a graphics system: 2) Add to SUBDIRS and SUBLIBS in visualization/GNUmakefile. -3) Look at the XXX graphics system teamplate in visualization/XXX and +3) Look at the XXX graphics system skeleton in visualization/XXX and use it to build your graphics system. You might also find it useful to look at ASCIITree (and VTree) as diff --git a/source/visualization/README.built_in_commands b/source/visualization/README.built_in_commands index 610dcbca34..0b308c2743 100644 --- a/source/visualization/README.built_in_commands +++ b/source/visualization/README.built_in_commands @@ -370,7 +370,7 @@ NI /vis/viewer/set/cutawayPlane ... /vis/viewer/set/hiddenMarker [true|false] default: true - Markers are hidden by/seen though closer objects. + Markers are hidden by (if true) or seen through (if false) closer objects. /vis/viewer/set/lightsMove with-camera|with-object Note: parameter will be parsed for \"cam\" or \"obj\". diff --git a/source/visualization/RayTracer/include/G4RTJpeg.hh b/source/visualization/RayTracer/include/G4RTJpeg.hh index ee7c7183d8..f458f16318 100644 --- a/source/visualization/RayTracer/include/G4RTJpeg.hh +++ b/source/visualization/RayTracer/include/G4RTJpeg.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTJpeg.hh,v 1.5 2001/07/11 10:09:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTJpegCoder.hh b/source/visualization/RayTracer/include/G4RTJpegCoder.hh index ce52a34c60..0ea8679f06 100644 --- a/source/visualization/RayTracer/include/G4RTJpegCoder.hh +++ b/source/visualization/RayTracer/include/G4RTJpegCoder.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegCoder.hh,v 1.5 2001/07/11 10:09:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh b/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh index 2687b675c3..c677815c16 100644 --- a/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh +++ b/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegCoderTables.hh,v 1.5 2001/07/11 10:09:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class description: diff --git a/source/visualization/RayTracer/include/G4RTJpegMaker.hh b/source/visualization/RayTracer/include/G4RTJpegMaker.hh index 122a4668f1..7bea983daa 100644 --- a/source/visualization/RayTracer/include/G4RTJpegMaker.hh +++ b/source/visualization/RayTracer/include/G4RTJpegMaker.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegMaker.hh,v 1.5 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTMessenger.hh b/source/visualization/RayTracer/include/G4RTMessenger.hh index 57f3f0c185..ab84a62089 100644 --- a/source/visualization/RayTracer/include/G4RTMessenger.hh +++ b/source/visualization/RayTracer/include/G4RTMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTMessenger.hh,v 1.5 2003/09/18 11:13:24 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTOutBitStream.hh b/source/visualization/RayTracer/include/G4RTOutBitStream.hh index 2268852b74..dfc50d850a 100644 --- a/source/visualization/RayTracer/include/G4RTOutBitStream.hh +++ b/source/visualization/RayTracer/include/G4RTOutBitStream.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTOutBitStream.hh,v 1.6 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTSimpleScanner.hh b/source/visualization/RayTracer/include/G4RTSimpleScanner.hh index 37d6c10893..de63e84c15 100644 --- a/source/visualization/RayTracer/include/G4RTSimpleScanner.hh +++ b/source/visualization/RayTracer/include/G4RTSimpleScanner.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTSimpleScanner.hh,v 1.1 2003/09/18 11:14:02 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTSteppingAction.hh b/source/visualization/RayTracer/include/G4RTSteppingAction.hh index 075498273d..0826914b81 100644 --- a/source/visualization/RayTracer/include/G4RTSteppingAction.hh +++ b/source/visualization/RayTracer/include/G4RTSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTSteppingAction.hh,v 1.4 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RTTrackingAction.hh b/source/visualization/RayTracer/include/G4RTTrackingAction.hh index 6708acad04..d2c2e25ffa 100644 --- a/source/visualization/RayTracer/include/G4RTTrackingAction.hh +++ b/source/visualization/RayTracer/include/G4RTTrackingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTTrackingAction.hh,v 1.5 2003/05/30 13:01:20 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RayShooter.hh b/source/visualization/RayTracer/include/G4RayShooter.hh index f0d36d3c1c..c301f9d8df 100644 --- a/source/visualization/RayTracer/include/G4RayShooter.hh +++ b/source/visualization/RayTracer/include/G4RayShooter.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayShooter.hh,v 1.3 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // class description: diff --git a/source/visualization/RayTracer/include/G4RayTracer.hh b/source/visualization/RayTracer/include/G4RayTracer.hh index 9eb5cf77b2..040894077c 100644 --- a/source/visualization/RayTracer/include/G4RayTracer.hh +++ b/source/visualization/RayTracer/include/G4RayTracer.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTracer.hh,v 1.9 2003/09/18 11:14:03 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTracerFeatures.hh b/source/visualization/RayTracer/include/G4RayTracerFeatures.hh index 8352f45d1b..0544fb80dc 100644 --- a/source/visualization/RayTracer/include/G4RayTracerFeatures.hh +++ b/source/visualization/RayTracer/include/G4RayTracerFeatures.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTracerFeatures.hh,v 1.3 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh b/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh index eec5dd3429..4165b7e7ac 100644 --- a/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh +++ b/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RayTracerSceneHandler.hh,v 1.6 2002/12/11 15:59:34 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4RayTracerSceneHandler.hh,v 1.8 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // John Allison 17th March 2000 @@ -48,25 +48,22 @@ public: void AddPrimitive(const G4Polymarker&){} void AddPrimitive(const G4Scale&){} - void AddThis(const G4Box&){} - void AddThis(const G4Cons&){} - void AddThis(const G4Tubs&){} - void AddThis(const G4Trd&){} - void AddThis(const G4Trap&){} - void AddThis(const G4Sphere&){} - void AddThis(const G4Para&){} - void AddThis(const G4Torus&){} - void AddThis(const G4Polycone&){} - void AddThis(const G4Polyhedra&){} - void AddThis(const G4VSolid&){} - void AddThis(const G4VTrajectory&){} - void AddThis(const G4VHit&){} - - static G4int GetSceneCount(); + void AddSolid(const G4Box&){} + void AddSolid(const G4Cons&){} + void AddSolid(const G4Tubs&){} + void AddSolid(const G4Trd&){} + void AddSolid(const G4Trap&){} + void AddSolid(const G4Sphere&){} + void AddSolid(const G4Para&){} + void AddSolid(const G4Torus&){} + void AddSolid(const G4Polycone&){} + void AddSolid(const G4Polyhedra&){} + void AddSolid(const G4VSolid&){} + void AddCompound(const G4VTrajectory&){} + void AddCompound(const G4VHit&){} private: static G4int fSceneIdCount; // Counter for RayTracer scene handlers. - static G4int fSceneCount; // No. of extanct scene handlers. }; #endif diff --git a/source/visualization/RayTracer/include/G4RayTracerViewer.hh b/source/visualization/RayTracer/include/G4RayTracerViewer.hh index fb27c148bb..2d36f186e1 100644 --- a/source/visualization/RayTracer/include/G4RayTracerViewer.hh +++ b/source/visualization/RayTracer/include/G4RayTracerViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTracerViewer.hh,v 1.4 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // John Allison 17th March 2000 diff --git a/source/visualization/RayTracer/include/G4RayTrajectory.hh b/source/visualization/RayTracer/include/G4RayTrajectory.hh index b215d3f9f2..6fc6af9d0d 100644 --- a/source/visualization/RayTracer/include/G4RayTrajectory.hh +++ b/source/visualization/RayTracer/include/G4RayTrajectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectory.hh,v 1.14 2004/06/11 14:30:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh b/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh index ae6b697ab6..c76529f165 100644 --- a/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh +++ b/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectoryPoint.hh,v 1.8 2004/06/11 14:30:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4VFigureFileMaker.hh b/source/visualization/RayTracer/include/G4VFigureFileMaker.hh index 41303bd473..68eeb60ff7 100644 --- a/source/visualization/RayTracer/include/G4VFigureFileMaker.hh +++ b/source/visualization/RayTracer/include/G4VFigureFileMaker.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFigureFileMaker.hh,v 1.4 2001/07/11 10:09:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/include/G4VRTScanner.hh b/source/visualization/RayTracer/include/G4VRTScanner.hh index b76d5010e4..51de26a650 100644 --- a/source/visualization/RayTracer/include/G4VRTScanner.hh +++ b/source/visualization/RayTracer/include/G4VRTScanner.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRTScanner.hh,v 1.1 2003/09/18 11:14:03 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/src/G4RTJpegCoder.cc b/source/visualization/RayTracer/src/G4RTJpegCoder.cc index f5e3d23bde..b5047daa09 100644 --- a/source/visualization/RayTracer/src/G4RTJpegCoder.cc +++ b/source/visualization/RayTracer/src/G4RTJpegCoder.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegCoder.cc,v 1.5 2004/12/07 23:41:00 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTJpegMaker.cc b/source/visualization/RayTracer/src/G4RTJpegMaker.cc index ceb3fe9175..991af53c1b 100644 --- a/source/visualization/RayTracer/src/G4RTJpegMaker.cc +++ b/source/visualization/RayTracer/src/G4RTJpegMaker.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegMaker.cc,v 1.9 2003/06/18 08:23:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTMessenger.cc b/source/visualization/RayTracer/src/G4RTMessenger.cc index bc6937b6bc..3dcfa9ed48 100644 --- a/source/visualization/RayTracer/src/G4RTMessenger.cc +++ b/source/visualization/RayTracer/src/G4RTMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTMessenger.cc,v 1.7 2003/09/18 11:13:25 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTOutBitStream.cc b/source/visualization/RayTracer/src/G4RTOutBitStream.cc index 85b730a4a6..6fb9a75579 100644 --- a/source/visualization/RayTracer/src/G4RTOutBitStream.cc +++ b/source/visualization/RayTracer/src/G4RTOutBitStream.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTOutBitStream.cc,v 1.4 2001/07/11 10:09:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTSimpleScanner.cc b/source/visualization/RayTracer/src/G4RTSimpleScanner.cc index 7cd4f45ef0..865f064bb5 100644 --- a/source/visualization/RayTracer/src/G4RTSimpleScanner.cc +++ b/source/visualization/RayTracer/src/G4RTSimpleScanner.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTSimpleScanner.cc,v 1.1 2003/09/18 11:14:04 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/RayTracer/src/G4RTSteppingAction.cc b/source/visualization/RayTracer/src/G4RTSteppingAction.cc index 244e45f9a6..4a40f8d185 100644 --- a/source/visualization/RayTracer/src/G4RTSteppingAction.cc +++ b/source/visualization/RayTracer/src/G4RTSteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTSteppingAction.cc,v 1.6 2001/07/11 10:09:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTTrackingAction.cc b/source/visualization/RayTracer/src/G4RTTrackingAction.cc index ecfc79f26e..9ad6ef6681 100644 --- a/source/visualization/RayTracer/src/G4RTTrackingAction.cc +++ b/source/visualization/RayTracer/src/G4RTTrackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTTrackingAction.cc,v 1.4 2003/05/30 13:01:21 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RayShooter.cc b/source/visualization/RayTracer/src/G4RayShooter.cc index 2909059a6d..48b39b271b 100644 --- a/source/visualization/RayTracer/src/G4RayShooter.cc +++ b/source/visualization/RayTracer/src/G4RayShooter.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayShooter.cc,v 1.3 2004/12/07 23:41:00 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4RayShooter.hh" diff --git a/source/visualization/RayTracer/src/G4RayTracer.cc b/source/visualization/RayTracer/src/G4RayTracer.cc index 3bd8ef1527..b88c2d6bb8 100644 --- a/source/visualization/RayTracer/src/G4RayTracer.cc +++ b/source/visualization/RayTracer/src/G4RayTracer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RayTracer.cc,v 1.14 2004/12/07 23:41:00 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4RayTracer.cc,v 1.15 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // @@ -141,8 +141,6 @@ void G4RayTracer::Trace(G4String fileName) G4VSceneHandler* G4RayTracer::CreateSceneHandler (const G4String& name) { G4VSceneHandler* pScene = new G4RayTracerSceneHandler (*this, name); - G4cout << G4RayTracerSceneHandler::GetSceneCount () - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc b/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc index 1bb478428f..153634817c 100644 --- a/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc +++ b/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc @@ -21,27 +21,17 @@ // ******************************************************************** // // -// $Id: G4RayTracerSceneHandler.cc,v 1.2 2001/07/11 10:09:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4RayTracerSceneHandler.cc,v 1.3 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4RayTracerSceneHandler.hh" G4RayTracerSceneHandler::G4RayTracerSceneHandler(G4VGraphicsSystem& system, const G4String& name): G4VSceneHandler(system, fSceneIdCount++, name) -{ - fSceneCount++; -} +{} G4RayTracerSceneHandler::~G4RayTracerSceneHandler() -{ - fSceneCount--; -} - -G4int G4RayTracerSceneHandler::GetSceneCount() { - return fSceneCount; -} +{} G4int G4RayTracerSceneHandler::fSceneIdCount = 0; - -G4int G4RayTracerSceneHandler::fSceneCount = 0; diff --git a/source/visualization/RayTracer/src/G4RayTracerViewer.cc b/source/visualization/RayTracer/src/G4RayTracerViewer.cc index 1650a6ab4b..b0e5b029e1 100644 --- a/source/visualization/RayTracer/src/G4RayTracerViewer.cc +++ b/source/visualization/RayTracer/src/G4RayTracerViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTracerViewer.cc,v 1.12 2004/12/07 23:41:01 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4RayTracerViewer.hh" diff --git a/source/visualization/RayTracer/src/G4RayTrajectory.cc b/source/visualization/RayTracer/src/G4RayTrajectory.cc index 1a549a1bf1..3c6de7721b 100644 --- a/source/visualization/RayTracer/src/G4RayTrajectory.cc +++ b/source/visualization/RayTracer/src/G4RayTrajectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectory.cc,v 1.14 2004/06/11 14:30:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc b/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc index 95cdaa8251..5bd5d13f6d 100644 --- a/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc +++ b/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectoryPoint.cc,v 1.5 2004/06/11 14:30:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // diff --git a/source/visualization/Tree/GNUmakefile b/source/visualization/Tree/GNUmakefile index 953cfc7205..f28de06b9a 100644 --- a/source/visualization/Tree/GNUmakefile +++ b/source/visualization/Tree/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2004/09/13 20:57:01 johna Exp $ +# $Id: GNUmakefile,v 1.5 2005/02/15 14:50:36 johna Exp $ name := G4Tree @@ -24,8 +24,13 @@ CPPFLAGS += -I$(G4BASE)/global/HEPGeometry/include CPPFLAGS += -I$(G4BASE)/graphics_reps/include CPPFLAGS += -I$(G4BASE)/intercoms/include CPPFLAGS += -I$(G4BASE)/geometry/management/include +CPPFLAGS += -I$(G4BASE)/geometry/volumes/include CPPFLAGS += -I$(G4BASE)/geometry/solids/CSG/include CPPFLAGS += -I$(G4BASE)/geometry/solids/specific/include CPPFLAGS += -I$(G4BASE)/materials/include +CPPFLAGS += -I$(G4BASE)/digits_hits/hits/include +CPPFLAGS += -I$(G4BASE)/digits_hits/detector/include +CPPFLAGS += -I$(G4BASE)/track/include +CPPFLAGS += -I$(G4BASE)/particles/management/include include $(G4INSTALL)/config/common.gmk diff --git a/source/visualization/Tree/include/G4ASCIITree.hh b/source/visualization/Tree/include/G4ASCIITree.hh index 372da6e3d6..af5fca7581 100644 --- a/source/visualization/Tree/include/G4ASCIITree.hh +++ b/source/visualization/Tree/include/G4ASCIITree.hh @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITree.hh,v 1.6 2004/09/13 20:52:50 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeMessenger.hh b/source/visualization/Tree/include/G4ASCIITreeMessenger.hh index 1eb3b0a92f..6a27a82e12 100644 --- a/source/visualization/Tree/include/G4ASCIITreeMessenger.hh +++ b/source/visualization/Tree/include/G4ASCIITreeMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ASCIITreeMessenger.hh,v 1.5 2004/09/13 20:52:52 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4ASCIITreeMessenger.hh,v 1.6 2005/05/06 08:38:36 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 @@ -35,6 +35,8 @@ #include "G4UImessenger.hh" +#include + class G4ASCIITree; class G4UIcommand; class G4UIcmdWithAnInteger; @@ -46,6 +48,7 @@ public: virtual ~G4ASCIITreeMessenger(); G4String GetCurrentValue (G4UIcommand* command); void SetNewValue (G4UIcommand* command, G4String newValue); + static std::vector fVerbosityGuidance; private: G4ASCIITree* fpASCIITree; G4UIcommand* fpDirectory; diff --git a/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh b/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh index 4e3d205f07..695a3994ab 100644 --- a/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh +++ b/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeSceneHandler.hh,v 1.12 2004/09/13 20:57:10 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeViewer.hh b/source/visualization/Tree/include/G4ASCIITreeViewer.hh index 875d38167c..66941e3045 100644 --- a/source/visualization/Tree/include/G4ASCIITreeViewer.hh +++ b/source/visualization/Tree/include/G4ASCIITreeViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeViewer.hh,v 1.4 2001/07/11 10:09:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4VTree.hh b/source/visualization/Tree/include/G4VTree.hh index 3c0647a102..3a4a5ba374 100644 --- a/source/visualization/Tree/include/G4VTree.hh +++ b/source/visualization/Tree/include/G4VTree.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTree.hh,v 1.4 2001/07/11 10:09:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4VTreeSceneHandler.hh b/source/visualization/Tree/include/G4VTreeSceneHandler.hh index 3cf4cf499d..811b735051 100644 --- a/source/visualization/Tree/include/G4VTreeSceneHandler.hh +++ b/source/visualization/Tree/include/G4VTreeSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTreeSceneHandler.hh,v 1.12 2004/11/11 16:03:41 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VTreeSceneHandler.hh,v 1.14 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 @@ -45,9 +45,9 @@ public: G4VTreeSceneHandler(G4VGraphicsSystem& system, const G4String& name); virtual ~G4VTreeSceneHandler (); - void PreAddThis (const G4Transform3D& objectTransformation, + void PreAddSolid (const G4Transform3D& objectTransformation, const G4VisAttributes&); - void PostAddThis (); + void PostAddSolid (); //////////////////////////////////////////////////////////////// // Functions not used but required by the abstract interface. @@ -66,13 +66,10 @@ public: virtual void BeginModeling(); virtual void EndModeling(); - static G4int GetSceneCount(); - protected: // In the derived class, override G4VScenehandler::RequestPrimitives // to implement dump of the geometry hierarchy. static G4int fSceneIdCount; // Counter for Tree scene handlers. - static G4int fSceneCount; // No. of extanct scene handlers. const G4Transform3D* fpCurrentObjectTransformation; }; diff --git a/source/visualization/Tree/include/G4VTreeSceneHandler.icc b/source/visualization/Tree/include/G4VTreeSceneHandler.icc index 79252a4a8b..7dc65d0ce2 100644 --- a/source/visualization/Tree/include/G4VTreeSceneHandler.icc +++ b/source/visualization/Tree/include/G4VTreeSceneHandler.icc @@ -21,21 +21,17 @@ // ******************************************************************** // // -// $Id: G4VTreeSceneHandler.icc,v 1.4 2001/07/11 10:09:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VTreeSceneHandler.icc,v 1.6 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 18th May 2000 // An artificial graphics scene to find dump geometry hierarchy. -inline G4int G4VTreeSceneHandler::GetSceneCount() { - return fSceneCount; -} - -inline void G4VTreeSceneHandler::PreAddThis +inline void G4VTreeSceneHandler::PreAddSolid (const G4Transform3D& objectTransformation, const G4VisAttributes&) { fpCurrentObjectTransformation = &objectTransformation; } -inline void G4VTreeSceneHandler::PostAddThis () {} +inline void G4VTreeSceneHandler::PostAddSolid () {} diff --git a/source/visualization/Tree/include/G4VTreeViewer.hh b/source/visualization/Tree/include/G4VTreeViewer.hh index 3329e7a51d..a840a6aeee 100644 --- a/source/visualization/Tree/include/G4VTreeViewer.hh +++ b/source/visualization/Tree/include/G4VTreeViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTreeViewer.hh,v 1.4 2001/07/11 10:09:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITree.cc b/source/visualization/Tree/src/G4ASCIITree.cc index a4523adfa1..4e6faa3ed3 100644 --- a/source/visualization/Tree/src/G4ASCIITree.cc +++ b/source/visualization/Tree/src/G4ASCIITree.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ASCIITree.cc,v 1.8 2004/09/13 20:52:54 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4ASCIITree.cc,v 1.9 2005/06/02 17:43:46 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 @@ -51,8 +51,6 @@ G4ASCIITree::~G4ASCIITree () { G4VSceneHandler* G4ASCIITree::CreateSceneHandler (const G4String& name) { G4VSceneHandler* pScene = new G4ASCIITreeSceneHandler (*this, name); - G4cout << G4ASCIITreeSceneHandler::GetSceneCount () - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/Tree/src/G4ASCIITreeMessenger.cc b/source/visualization/Tree/src/G4ASCIITreeMessenger.cc index 0cdabf6371..989e3d7ad4 100644 --- a/source/visualization/Tree/src/G4ASCIITreeMessenger.cc +++ b/source/visualization/Tree/src/G4ASCIITreeMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ASCIITreeMessenger.cc,v 1.8 2004/09/22 20:01:18 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4ASCIITreeMessenger.cc,v 1.13 2005/05/06 08:38:36 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 @@ -37,10 +37,13 @@ #include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithAString.hh" +std::vector G4ASCIITreeMessenger::fVerbosityGuidance; + G4ASCIITreeMessenger::G4ASCIITreeMessenger (G4ASCIITree* ASCIITree): fpASCIITree(ASCIITree) { - G4bool omitable, currentAsDefault; + + G4bool omitable; fpDirectory = new G4UIdirectory ("/vis/ASCIITree/"); fpDirectory -> SetGuidance ("Commands for ASCIITree control."); @@ -49,19 +52,55 @@ G4ASCIITreeMessenger::G4ASCIITreeMessenger fpDirectorySet -> SetGuidance ("Settings for ASCIITree control."); fpCommandVerbose = new G4UIcmdWithAnInteger ("/vis/ASCIITree/verbose", this); - fpCommandVerbose -> SetGuidance ("/vis/ASCIITree/verbose []"); - fpCommandVerbose -> SetGuidance - ("0 (default) mimimum - 10 maximum printing."); - fpCommandVerbose -> SetParameterName ("verbosity", - omitable = true, - currentAsDefault = false); + fVerbosityGuidance.push_back + ("< 10: - does not print daughters of repeated placements," + " does not repeat replicas."); + fVerbosityGuidance.push_back + (">= 10: prints all physical volumes."); + fVerbosityGuidance.push_back + ("The level of detail is given by the units (verbosity%10):"); + fVerbosityGuidance.push_back + (">= 0: prints physical volume name."); + fVerbosityGuidance.push_back + (">= 1: prints logical volume name (and names of sensitive detector" + " and readout geometry, if any)."); + fVerbosityGuidance.push_back + (">= 2: prints solid name and type."); + fVerbosityGuidance.push_back + (">= 3: prints volume and density."); + fVerbosityGuidance.push_back + (">= 4: prints mass of each top physical volume in scene to depth specified."); + fVerbosityGuidance.push_back + (">= 5: prints mass of branch at each volume (can be time consuming)."); + fVerbosityGuidance.push_back + ("Note: by default, culling is switched off so all volumes are seen."); + fVerbosityGuidance.push_back + ("Note: the mass calculation takes into account daughters, normally" + " to unlimited depth, which can be time consuuming. If you want the" + " mass of a particular subtree to a particular depth:"); + fVerbosityGuidance.push_back + (" /vis/open ATree"); + fVerbosityGuidance.push_back + (" /vis/ASCIITree/verbose 14"); + fVerbosityGuidance.push_back + (" /vis/scene/create"); + fVerbosityGuidance.push_back + (" /vis/scene/add/volume ! "); + fVerbosityGuidance.push_back + (" /vis/sceneHandler/attach"); + fVerbosityGuidance.push_back + (" /vis/viewer/flush"); + for (size_t i = 0; i < fVerbosityGuidance.size(); ++i) { + fpCommandVerbose -> SetGuidance(fVerbosityGuidance[i]); + } + fpCommandVerbose -> SetParameterName ("verbosity",omitable = true); + fpCommandVerbose -> SetDefaultValue(0); + fpCommandSetOutFile = new G4UIcmdWithAString ("/vis/ASCIITree/set/outFile", this ); - fpCommandSetOutFile -> SetGuidance - ("/vis/ASCIITree/set/OutFile "); + fpCommandSetOutFile -> SetGuidance ("Set name of output file."); fpCommandSetOutFile -> SetParameterName ("out-filename", - omitable = true, - currentAsDefault = false); + omitable = true); fpCommandSetOutFile -> SetDefaultValue ("G4cout"); } diff --git a/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc b/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc index 9ddac1d508..0bb7d1fc61 100644 --- a/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ASCIITreeSceneHandler.cc,v 1.16 2004/11/11 16:03:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4ASCIITreeSceneHandler.cc,v 1.20 2005/05/06 08:38:36 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 @@ -32,6 +32,7 @@ #include "G4ASCIITreeSceneHandler.hh" #include "G4ASCIITree.hh" +#include "G4ASCIITreeMessenger.hh" #include "G4VSolid.hh" #include "G4PhysicalVolumeModel.hh" #include "G4VPhysicalVolume.hh" @@ -43,6 +44,8 @@ #include "G4Scene.hh" #include "G4ModelingParameters.hh" #include "G4PhysicalVolumeMassScene.hh" +#include "G4VSensitiveDetector.hh" +#include "G4VReadOutGeometry.hh" G4ASCIITreeSceneHandler::G4ASCIITreeSceneHandler (G4VGraphicsSystem& system, @@ -87,36 +90,20 @@ void G4ASCIITreeSceneHandler::WriteHeader (std::ostream& os) const G4ASCIITree* pSystem = (G4ASCIITree*)GetGraphicsSystem(); const G4int verbosity = pSystem->GetVerbosity(); const G4int detail = verbosity % 10; - os << - "# Set verbosity with \"/vis/ASCIITree/verbose \":" - "\n# < 10: - does not print daughters of repeated placements." - "\n# - does not repeat replicas." - "\n# >= 10: prints all physical volumes." - "\n# The level of detail is given by the units (verbosity%10):" - "\n# >= 0: prints physical volume name." - "\n# >= 1: prints logical volume name." - "\n# >= 2: prints solid name and type." - "\n# >= 3: prints volume and density of solid." - "\n# >= 4: calculates and prints mass(es) of volume(s) in scene." - "\n# Note: by default, culling is switched off so all volumes are seen."; - if (detail >=4) { - os << - "\n# Note: the mass is calculated for each physical volume in the scene," - "\n# taking into account daughters up to the depth specified. Culling " - "\n# is ignored. If you want the mass of a particular subtree:" - "\n# /vis/drawVolume " - "\n# /vis/viewer/flush"; + os << "# Set verbosity with \"/vis/ASCIITree/verbose \":"; + for (size_t i = 0; + i < G4ASCIITreeMessenger::fVerbosityGuidance.size(); ++i) { + os << "\n# " << G4ASCIITreeMessenger::fVerbosityGuidance[i]; } - os << "\n# Now printing with verbosity " << verbosity; os << "\n# Format is: PV:n"; - if (detail >= 1) os << " / LV"; + if (detail >= 1) os << " / LV (SD,RO)"; if (detail >= 2) os << " / Solid(type)"; if (detail >= 3) os << ", volume, density"; - os << "\n# where PV = Physical Volume"; - if (detail <2) os << " and"; else os << ","; - os << " n = copy number"; - if (detail >= 2) os << " and LV = Logical Volume"; + if (detail >= 5) os << ", mass of branch"; + os << + "\n# Abbreviations: PV = Physical Volume, LV = Logical Volume," + "\n# SD = Sensitive Detector, RO = Read Out Geometry."; } void G4ASCIITreeSceneHandler::EndModeling () { @@ -147,12 +134,12 @@ void G4ASCIITreeSceneHandler::EndModeling () { << pvModel->GetTopPhysicalVolume()->GetCopyNo() << ", is " << G4BestUnit (volume, "Volume") - << "\nMass of tree to "; + << "\nMass of tree"; G4int requestedDepth = pvModel->GetRequestedDepth(); - if (requestedDepth == G4PhysicalVolumeModel::UNLIMITED) { - G4cout << "unlimited depth"; - } else { - G4cout << "depth " << requestedDepth; + if (requestedDepth != G4PhysicalVolumeModel::UNLIMITED) { + G4cout << ", ignoring daughters at depth " + << requestedDepth + << " and below,"; } G4cout << " is " << G4BestUnit (mass, "Mass") << G4endl; @@ -200,48 +187,59 @@ void G4ASCIITreeSceneHandler::RequestPrimitives(const G4VSolid& solid) { } // Print indented text... - for (G4int i = 0; i < fCurrentDepth; i++ ) *fpOutFile << " "; + if (fpCurrentPV) { + for (G4int i = 0; i < fCurrentDepth; i++ ) *fpOutFile << " "; - *fpOutFile << "\"" << fpCurrentPV->GetName() - << "\":" << fpCurrentPV->GetCopyNo(); + *fpOutFile << "\"" << fpCurrentPV->GetName() + << "\":" << fpCurrentPV->GetCopyNo(); - if (fpCurrentPV->IsReplicated()) { - if (verbosity < 10) { - // Add printing for replicas (when replicas are ignored)... - EAxis axis; - G4int nReplicas; - G4double width; - G4double offset; - G4bool consuming; - fpCurrentPV->GetReplicationData(axis,nReplicas,width,offset,consuming); - G4VPVParameterisation* pP = fpCurrentPV->GetParameterisation(); - if (pP) { - if (detail < 3) { + if (fpCurrentPV->IsReplicated()) { + if (verbosity < 10) { + // Add printing for replicas (when replicas are ignored)... + EAxis axis; + G4int nReplicas; + G4double width; + G4double offset; + G4bool consuming; + fpCurrentPV->GetReplicationData(axis,nReplicas,width,offset,consuming); + G4VPVParameterisation* pP = fpCurrentPV->GetParameterisation(); + if (pP) { + if (detail < 3) { + fReplicaSet.insert(fpCurrentPV); + *fpOutFile << " (" << nReplicas << " parametrised volumes)"; + } + } + else { fReplicaSet.insert(fpCurrentPV); - *fpOutFile << " (" << nReplicas << " parametrised volumes)"; + *fpOutFile << " (" << nReplicas << " replicas)"; } } - else { - fReplicaSet.insert(fpCurrentPV); - *fpOutFile << " (" << nReplicas << " replicas)"; + } + else { + if (fLVSet.find(fpCurrentLV) != fLVSet.end()) { + if (verbosity < 10) { + // Add printing for repeated placement... + *fpOutFile << " (repeated placement)"; + // ...and curtail descent. + ((G4PhysicalVolumeModel*)fpModel)->CurtailDescent(); + } } } - } - else { - if (fLVSet.find(fpCurrentLV) != fLVSet.end()) { - if (verbosity < 10) { - // Add printing for repeated placement... - *fpOutFile << " (repeated placement)"; - // ...and curtail descent. - ((G4PhysicalVolumeModel*)fpModel)->CurtailDescent(); - } - } - } - if (detail >= 1) { - *fpOutFile << " / \"" - << fpCurrentLV->GetName() << "\""; - } + if (detail >= 1) { + *fpOutFile << " / \"" + << fpCurrentLV->GetName() << "\""; + G4VSensitiveDetector* sd = fpCurrentLV->GetSensitiveDetector(); + if (sd) { + *fpOutFile << " (SD=\"" << sd->GetName() << "\""; + G4VReadOutGeometry* roGeom = sd->GetROgeometry(); + if (roGeom) { + *fpOutFile << ",RO=\"" << roGeom->GetName() << "\""; + } + *fpOutFile << ")"; + } + } + } // if (fpCurrentPV) if (detail >= 2) { *fpOutFile << " / \"" @@ -250,28 +248,25 @@ void G4ASCIITreeSceneHandler::RequestPrimitives(const G4VSolid& solid) { << solid.GetEntityType() << ")"; } - if (detail >= 3) { - G4Polyhedron* pPolyhedron = solid.GetPolyhedron(); - if (pPolyhedron) { - G4Material* pMaterial; - G4VPVParameterisation* pP = fpCurrentPV->GetParameterisation(); - if (pP) { - pMaterial = pP -> ComputeMaterial (fPVPCount++, fpCurrentPV); - } else { - pMaterial = fpCurrentLV->GetMaterial(); - } + if (fpCurrentPV) { + if (detail >= 3) { *fpOutFile << ", " - << G4BestUnit(pPolyhedron->GetVolume(),"Volume") + << G4BestUnit(((G4VSolid&)solid).GetCubicVolume(),"Volume") << ", " - << G4BestUnit(pMaterial->GetDensity(), "Volumic Mass"); - } else { - *fpOutFile << " (volume not available)"; + << G4BestUnit(fpCurrentMaterial->GetDensity(), "Volumic Mass"); } - } - if (fLVSet.find(fpCurrentLV) == fLVSet.end()) { - fLVSet.insert(fpCurrentLV); // Record new logical volume. - } + if (detail >= 5) { + *fpOutFile << ", " + << G4BestUnit + (fpCurrentLV->GetMass(fpCurrentPV->IsParameterised(), // Force if so. + fpCurrentMaterial),"Mass"); + } + + if (fLVSet.find(fpCurrentLV) == fLVSet.end()) { + fLVSet.insert(fpCurrentLV); // Record new logical volume. + } + } // if (fpCurrentPV) if (outFileName == "G4cout") { G4cout << G4endl; diff --git a/source/visualization/Tree/src/G4ASCIITreeViewer.cc b/source/visualization/Tree/src/G4ASCIITreeViewer.cc index 3cba7f7fac..6a1480d2c5 100644 --- a/source/visualization/Tree/src/G4ASCIITreeViewer.cc +++ b/source/visualization/Tree/src/G4ASCIITreeViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeViewer.cc,v 1.6 2003/06/16 17:13:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4ASCIITreeViewer.hh" diff --git a/source/visualization/Tree/src/G4GAGTree.cc b/source/visualization/Tree/src/G4GAGTree.cc index cd8dcf2ed5..8870e9e8f9 100644 --- a/source/visualization/Tree/src/G4GAGTree.cc +++ b/source/visualization/Tree/src/G4GAGTree.cc @@ -43,8 +43,6 @@ G4GAGTree::~G4GAGTree () { G4VSceneHandler* G4GAGTree::CreateSceneHandler (const G4String& name) { G4VSceneHandler* pScene = new G4GAGTreeSceneHandler (*this, name); - G4cout << G4GAGTreeSceneHandler::GetSceneCount () - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc b/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc index 297cf47876..b7213a0cc6 100644 --- a/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc @@ -132,6 +132,9 @@ void G4GAGTreeSceneHandler::EndModeling () void G4GAGTreeSceneHandler::RequestPrimitives (const G4VSolid&) { + // Protection if solid drawn not from physical volume tree...(JA) + if (!fpCurrentPV) return; + ////////////////////////////// G4String cur_abs_pv_name ; G4String pv_name_tmp ; diff --git a/source/visualization/Tree/src/G4VTree.cc b/source/visualization/Tree/src/G4VTree.cc index 9a3565be2d..2a93165f7b 100644 --- a/source/visualization/Tree/src/G4VTree.cc +++ b/source/visualization/Tree/src/G4VTree.cc @@ -22,7 +22,7 @@ // // // $Id: G4VTree.cc,v 1.4 2001/07/11 10:09:08 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4VTreeSceneHandler.cc b/source/visualization/Tree/src/G4VTreeSceneHandler.cc index e4837d1cd3..fb881ba345 100644 --- a/source/visualization/Tree/src/G4VTreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4VTreeSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTreeSceneHandler.cc,v 1.8 2004/11/11 16:03:53 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VTreeSceneHandler.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 @@ -40,16 +40,11 @@ G4int G4VTreeSceneHandler::fSceneIdCount = 0; // Counter for Tree scene handlers. -G4int G4VTreeSceneHandler::fSceneCount = 0; -// No. of extanct scene handlers. - G4VTreeSceneHandler::G4VTreeSceneHandler(G4VGraphicsSystem& system, const G4String& name): G4VSceneHandler(system, fSceneIdCount++, name), fpCurrentObjectTransformation (0) -{ - fSceneCount++; -} +{} G4VTreeSceneHandler::~G4VTreeSceneHandler () {} diff --git a/source/visualization/Tree/src/G4VTreeViewer.cc b/source/visualization/Tree/src/G4VTreeViewer.cc index 55dccb2864..09217de124 100644 --- a/source/visualization/Tree/src/G4VTreeViewer.cc +++ b/source/visualization/Tree/src/G4VTreeViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VTreeViewer.cc,v 1.5 2003/06/16 17:13:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4VTreeViewer.hh" diff --git a/source/visualization/VRML/History b/source/visualization/VRML/History index 148d39f74c..e8c8580335 100644 --- a/source/visualization/VRML/History +++ b/source/visualization/VRML/History @@ -1,4 +1,4 @@ -$Id: History,v 1.11 2004/04/27 09:01:40 gcosmo Exp $ +$Id: History,v 1.12 2005/05/27 13:35:52 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,9 @@ committal in the CVS repository ! History file for visualization/VRML sub-category ------------------------------------------------ +27th May 2005 John Allison (VRML-V07-00-00) +- Fixed bug introduced in ClearTransientStore. + 19th April 2004 Gabriele Cosmo (VRML-V06-01-00) - Fixed typo in printout in G4VRML1FileSceneHandler.cc and G4VRML2FileSceneHandler.cc. diff --git a/source/visualization/VRML/g4vrmlview/g4mini.java b/source/visualization/VRML/g4vrmlview/g4mini.java index 4da3391673..e513001ed6 100644 --- a/source/visualization/VRML/g4vrmlview/g4mini.java +++ b/source/visualization/VRML/g4vrmlview/g4mini.java @@ -22,7 +22,7 @@ // // // $Id: g4mini.java,v 1.3 2001/07/11 10:09:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // import java.io.*; import java.net.*; diff --git a/source/visualization/VRML/g4vrmlview/g4vrmlview.java b/source/visualization/VRML/g4vrmlview/g4vrmlview.java index 246c033df2..b6c3c356ac 100644 --- a/source/visualization/VRML/g4vrmlview/g4vrmlview.java +++ b/source/visualization/VRML/g4vrmlview/g4vrmlview.java @@ -22,7 +22,7 @@ // // // $Id: g4vrmlview.java,v 1.3 2001/07/11 10:09:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // import java.io.*; import java.net.*; diff --git a/source/visualization/VRML/include/FRClient.h b/source/visualization/VRML/include/FRClient.h index db0866be70..0d223c9f6f 100644 --- a/source/visualization/VRML/include/FRClient.h +++ b/source/visualization/VRML/include/FRClient.h @@ -22,7 +22,7 @@ // // // $Id: FRClient.h,v 1.5 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // FRClient.h // FukuiRenderer Client diff --git a/source/visualization/VRML/include/G4FRClient.hh b/source/visualization/VRML/include/G4FRClient.hh index e85b097e32..c0494e304d 100644 --- a/source/visualization/VRML/include/G4FRClient.hh +++ b/source/visualization/VRML/include/G4FRClient.hh @@ -22,7 +22,7 @@ // // // $Id: G4FRClient.hh,v 1.7 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4FRClient.hh // Yasuhide Sawada and Satoshi Tanaka diff --git a/source/visualization/VRML/include/G4VRML1.hh b/source/visualization/VRML/include/G4VRML1.hh index b855a290df..b8ace3b2d5 100644 --- a/source/visualization/VRML/include/G4VRML1.hh +++ b/source/visualization/VRML/include/G4VRML1.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML1.hh,v 1.9 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1.hh // Yasuhide Sawada and Satoshi Tanaka diff --git a/source/visualization/VRML/include/G4VRML1File.hh b/source/visualization/VRML/include/G4VRML1File.hh index c3131ecbcd..802d9caa9a 100644 --- a/source/visualization/VRML/include/G4VRML1File.hh +++ b/source/visualization/VRML/include/G4VRML1File.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML1File.hh,v 1.9 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1File.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh b/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh index 31c82027b2..076e675ba5 100644 --- a/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1FileSceneHandler.hh,v 1.13 2003/06/16 17:13:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML1FileSceneHandler.hh,v 1.15 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1FileSceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada @@ -47,26 +47,26 @@ class G4VRML1FileSceneHandler: public G4VSceneHandler { public: G4VRML1FileSceneHandler(G4VRML1File& system, const G4String& name = ""); virtual ~G4VRML1FileSceneHandler(); - void AddThis(const G4Box&); - void AddThis(const G4Cons&); - void AddThis(const G4Tubs&); - void AddThis(const G4Trd&); - void AddThis(const G4Trap&); - void AddThis(const G4Sphere&); - void AddThis(const G4Para&); - void AddThis(const G4Torus&); - void AddThis ( const G4Polycone& polycone ) { - G4VSceneHandler::AddThis (polycone); + void AddSolid(const G4Box&); + void AddSolid(const G4Cons&); + void AddSolid(const G4Tubs&); + void AddSolid(const G4Trd&); + void AddSolid(const G4Trap&); + void AddSolid(const G4Sphere&); + void AddSolid(const G4Para&); + void AddSolid(const G4Torus&); + void AddSolid ( const G4Polycone& polycone ) { + G4VSceneHandler::AddSolid (polycone); } - void AddThis ( const G4Polyhedra& polyhedra) { - G4VSceneHandler::AddThis (polyhedra); + void AddSolid ( const G4Polyhedra& polyhedra) { + G4VSceneHandler::AddSolid (polyhedra); } - void AddThis(const G4VSolid&); - void AddThis ( const G4VTrajectory& traj) { - G4VSceneHandler::AddThis(traj); + void AddSolid(const G4VSolid&); + void AddCompound ( const G4VTrajectory& traj) { + G4VSceneHandler::AddCompound(traj); } - void AddThis ( const G4VHit& hit) { - G4VSceneHandler::AddThis(hit); + void AddCompound ( const G4VHit& hit) { + G4VSceneHandler::AddCompound(hit); } void BeginPrimitives(const G4Transform3D& objectTransformation); @@ -91,8 +91,6 @@ public: void VRMLBeginModeling(); void VRMLEndModeling(); - static G4int GetSceneCount() { return fSceneCount; } - void connectPort(); void closePort(); @@ -126,7 +124,6 @@ private: G4int fMaxFileNum ; static G4int fSceneIdCount; - static G4int fSceneCount; // No. of existing scenes. }; diff --git a/source/visualization/VRML/include/G4VRML1FileViewer.hh b/source/visualization/VRML/include/G4VRML1FileViewer.hh index 8079e37572..69261a3ff3 100644 --- a/source/visualization/VRML/include/G4VRML1FileViewer.hh +++ b/source/visualization/VRML/include/G4VRML1FileViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML1FileViewer.hh,v 1.7 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1FileViewer.hh // Satoshi Tanaka and Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML1SceneHandler.hh b/source/visualization/VRML/include/G4VRML1SceneHandler.hh index 17ff9e987a..46c9fa8530 100644 --- a/source/visualization/VRML/include/G4VRML1SceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML1SceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1SceneHandler.hh,v 1.11 2002/12/11 15:57:55 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML1SceneHandler.hh,v 1.13 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1SceneHandler.hh // Yasuhide Sawada & Satoshi Tanaka @@ -53,26 +53,26 @@ class G4VRML1SceneHandler: public G4VSceneHandler { public: G4VRML1SceneHandler(G4VRML1& system, const G4String& name = ""); virtual ~G4VRML1SceneHandler(); - void AddThis(const G4Box&); - void AddThis(const G4Cons&); - void AddThis(const G4Tubs&); - void AddThis(const G4Trd&); - void AddThis(const G4Trap&); - void AddThis(const G4Sphere&); - void AddThis(const G4Para&); - void AddThis(const G4Torus&); - void AddThis ( const G4Polycone& polycone ) { - G4VSceneHandler::AddThis (polycone); + void AddSolid(const G4Box&); + void AddSolid(const G4Cons&); + void AddSolid(const G4Tubs&); + void AddSolid(const G4Trd&); + void AddSolid(const G4Trap&); + void AddSolid(const G4Sphere&); + void AddSolid(const G4Para&); + void AddSolid(const G4Torus&); + void AddSolid ( const G4Polycone& polycone ) { + G4VSceneHandler::AddSolid (polycone); } - void AddThis ( const G4Polyhedra& polyhedra) { - G4VSceneHandler::AddThis (polyhedra); + void AddSolid ( const G4Polyhedra& polyhedra) { + G4VSceneHandler::AddSolid (polyhedra); } - void AddThis(const G4VSolid&); - void AddThis ( const G4VTrajectory& traj) { - G4VSceneHandler::AddThis(traj); + void AddSolid(const G4VSolid&); + void AddCompound ( const G4VTrajectory& traj) { + G4VSceneHandler::AddCompound(traj); } - void AddThis ( const G4VHit& hit) { - G4VSceneHandler::AddThis(hit); + void AddCompound ( const G4VHit& hit) { + G4VSceneHandler::AddCompound(hit); } void BeginPrimitives(const G4Transform3D& objectTransformation); @@ -97,8 +97,6 @@ public: void VRMLBeginModeling(); void VRMLEndModeling(); - static G4int GetSceneCount() { return fSceneCount; } - void connectPort(int max_trial = MAX_CONNECTION_TRIAL ); void closePort(); @@ -123,7 +121,6 @@ private: G4FRClient fDest ; static G4int fSceneIdCount; - static G4int fSceneCount; // No. of existing scenes. }; diff --git a/source/visualization/VRML/include/G4VRML1Viewer.hh b/source/visualization/VRML/include/G4VRML1Viewer.hh index baff4677f9..90b9639194 100644 --- a/source/visualization/VRML/include/G4VRML1Viewer.hh +++ b/source/visualization/VRML/include/G4VRML1Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML1Viewer.hh,v 1.7 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1Viewer.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2.hh b/source/visualization/VRML/include/G4VRML2.hh index 9d715aba14..e9ce681b01 100644 --- a/source/visualization/VRML/include/G4VRML2.hh +++ b/source/visualization/VRML/include/G4VRML2.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2.hh,v 1.9 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2.hh // Satoshi Tanaka and Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2File.hh b/source/visualization/VRML/include/G4VRML2File.hh index a3bc612b51..bc5f3ce1d5 100644 --- a/source/visualization/VRML/include/G4VRML2File.hh +++ b/source/visualization/VRML/include/G4VRML2File.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2File.hh,v 1.10 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2File.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh b/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh index f59992ecae..d69eb14706 100644 --- a/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2FileSceneHandler.hh,v 1.12 2003/06/16 17:13:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML2FileSceneHandler.hh,v 1.14 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2FileSceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada @@ -47,26 +47,26 @@ class G4VRML2FileSceneHandler: public G4VSceneHandler { public: G4VRML2FileSceneHandler(G4VRML2File& system, const G4String& name = ""); virtual ~G4VRML2FileSceneHandler(); - void AddThis(const G4Box&); - void AddThis(const G4Cons&); - void AddThis(const G4Tubs&); - void AddThis(const G4Trd&); - void AddThis(const G4Trap&); - void AddThis(const G4Sphere&); - void AddThis(const G4Para&); - void AddThis(const G4Torus&); - void AddThis ( const G4Polycone& polycone ) { - G4VSceneHandler::AddThis (polycone); + void AddSolid(const G4Box&); + void AddSolid(const G4Cons&); + void AddSolid(const G4Tubs&); + void AddSolid(const G4Trd&); + void AddSolid(const G4Trap&); + void AddSolid(const G4Sphere&); + void AddSolid(const G4Para&); + void AddSolid(const G4Torus&); + void AddSolid ( const G4Polycone& polycone ) { + G4VSceneHandler::AddSolid (polycone); } - void AddThis ( const G4Polyhedra& polyhedra) { - G4VSceneHandler::AddThis (polyhedra); + void AddSolid ( const G4Polyhedra& polyhedra) { + G4VSceneHandler::AddSolid (polyhedra); } - void AddThis(const G4VSolid&); - void AddThis ( const G4VTrajectory& traj) { - G4VSceneHandler::AddThis(traj); + void AddSolid(const G4VSolid&); + void AddCompound ( const G4VTrajectory& traj) { + G4VSceneHandler::AddCompound(traj); } - void AddThis ( const G4VHit& hit) { - G4VSceneHandler::AddThis(hit); + void AddCompound ( const G4VHit& hit) { + G4VSceneHandler::AddCompound(hit); } void BeginPrimitives(const G4Transform3D& objectTransformation); @@ -88,8 +88,6 @@ public: void BeginModeling(); void EndModeling(); - static G4int GetSceneCount() { return fSceneCount; } - void VRMLBeginModeling(); void VRMLEndModeling(); @@ -133,7 +131,6 @@ private: G4double fPVTransparency ; static G4int fSceneIdCount; - static G4int fSceneCount; // No. of existing scenes. public: std::ofstream fDest ; diff --git a/source/visualization/VRML/include/G4VRML2FileViewer.hh b/source/visualization/VRML/include/G4VRML2FileViewer.hh index 29a256e77d..ca15345d7e 100644 --- a/source/visualization/VRML/include/G4VRML2FileViewer.hh +++ b/source/visualization/VRML/include/G4VRML2FileViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2FileViewer.hh,v 1.9 2003/06/16 17:13:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2FileViewer.hh // Satoshi Tanaka and Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2SceneHandler.hh b/source/visualization/VRML/include/G4VRML2SceneHandler.hh index 6b1fc84562..d93c492fb8 100644 --- a/source/visualization/VRML/include/G4VRML2SceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML2SceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2SceneHandler.hh,v 1.10 2002/12/11 15:57:56 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML2SceneHandler.hh,v 1.12 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2SceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada @@ -51,26 +51,26 @@ class G4VRML2SceneHandler: public G4VSceneHandler { public: G4VRML2SceneHandler(G4VRML2& system, const G4String& name = ""); virtual ~G4VRML2SceneHandler(); - void AddThis(const G4Box&); - void AddThis(const G4Cons&); - void AddThis(const G4Tubs&); - void AddThis(const G4Trd&); - void AddThis(const G4Trap&); - void AddThis(const G4Sphere&); - void AddThis(const G4Para&); - void AddThis(const G4Torus&); - void AddThis ( const G4Polycone& polycone ) { - G4VSceneHandler::AddThis (polycone); + void AddSolid(const G4Box&); + void AddSolid(const G4Cons&); + void AddSolid(const G4Tubs&); + void AddSolid(const G4Trd&); + void AddSolid(const G4Trap&); + void AddSolid(const G4Sphere&); + void AddSolid(const G4Para&); + void AddSolid(const G4Torus&); + void AddSolid ( const G4Polycone& polycone ) { + G4VSceneHandler::AddSolid (polycone); } - void AddThis ( const G4Polyhedra& polyhedra) { - G4VSceneHandler::AddThis (polyhedra); + void AddSolid ( const G4Polyhedra& polyhedra) { + G4VSceneHandler::AddSolid (polyhedra); } - void AddThis(const G4VSolid&); - void AddThis ( const G4VTrajectory& traj) { - G4VSceneHandler::AddThis(traj); + void AddSolid(const G4VSolid&); + void AddCompound ( const G4VTrajectory& traj) { + G4VSceneHandler::AddCompound(traj); } - void AddThis ( const G4VHit& hit) { - G4VSceneHandler::AddThis(hit); + void AddCompound ( const G4VHit& hit) { + G4VSceneHandler::AddCompound(hit); } void BeginPrimitives(const G4Transform3D& objectTransformation); @@ -92,8 +92,6 @@ public: void BeginModeling(); void EndModeling(); - static G4int GetSceneCount() { return fSceneCount; } - void VRMLBeginModeling(); void VRMLEndModeling(); @@ -129,7 +127,6 @@ private: G4double fPVTransparency ; static G4int fSceneIdCount; - static G4int fSceneCount; // No. of existing scenes. public: G4FRClient fDest ; diff --git a/source/visualization/VRML/include/G4VRML2Viewer.hh b/source/visualization/VRML/include/G4VRML2Viewer.hh index 4ea6d7b0b4..9b3ccd2aee 100644 --- a/source/visualization/VRML/include/G4VRML2Viewer.hh +++ b/source/visualization/VRML/include/G4VRML2Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2Viewer.hh,v 1.7 2002/06/23 03:31:43 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2Viewer.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRMLNetConfig.hh b/source/visualization/VRML/include/G4VRMLNetConfig.hh index 601a77f57e..96b443366d 100644 --- a/source/visualization/VRML/include/G4VRMLNetConfig.hh +++ b/source/visualization/VRML/include/G4VRMLNetConfig.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRMLNetConfig.hh,v 1.6 2002/06/23 03:31:43 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRMLNetConfig.hh // Satoshi Tanaka diff --git a/source/visualization/VRML/src/FRClient.cc b/source/visualization/VRML/src/FRClient.cc index 7e2b881efe..6e065eee6a 100644 --- a/source/visualization/VRML/src/FRClient.cc +++ b/source/visualization/VRML/src/FRClient.cc @@ -22,7 +22,7 @@ // // // $Id: FRClient.cc,v 1.6 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // FRClient.cc // FukuiRenderer Client diff --git a/source/visualization/VRML/src/G4FRClient.cc b/source/visualization/VRML/src/G4FRClient.cc index 986462b677..f3c9c51d19 100644 --- a/source/visualization/VRML/src/G4FRClient.cc +++ b/source/visualization/VRML/src/G4FRClient.cc @@ -22,7 +22,7 @@ // // // $Id: G4FRClient.cc,v 1.7 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4FRClient.cc // Yasuhide Sawada & Satoshi Tanaka diff --git a/source/visualization/VRML/src/G4VRML1.cc b/source/visualization/VRML/src/G4VRML1.cc index 53d57b89df..6701ae19b2 100644 --- a/source/visualization/VRML/src/G4VRML1.cc +++ b/source/visualization/VRML/src/G4VRML1.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1.cc,v 1.8 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML1.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1.cc // Yasuhide Sawada & Satoshi Tanaka @@ -75,9 +75,6 @@ G4VSceneHandler* G4VRML1::CreateSceneHandler(const G4String& name) p = new G4VRML1SceneHandler(*this, name); - G4cout << G4VRML1SceneHandler::GetSceneCount() - << " " << fName << " scene handlers extanct." << G4endl; - return p; } diff --git a/source/visualization/VRML/src/G4VRML1File.cc b/source/visualization/VRML/src/G4VRML1File.cc index e571b34ebd..1ec0d2713a 100644 --- a/source/visualization/VRML/src/G4VRML1File.cc +++ b/source/visualization/VRML/src/G4VRML1File.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1File.cc,v 1.8 2001/09/18 07:53:15 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML1File.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1File.cc // Satoshi Tanaka & Yasuhide Sawada @@ -55,9 +55,6 @@ G4VSceneHandler* G4VRML1File::CreateSceneHandler(const G4String& name) p = new G4VRML1FileSceneHandler(*this, name); - G4cout << G4VRML1FileSceneHandler::GetSceneCount() - << " " << fName << " scene handlers extanct." << G4endl; - return p; } diff --git a/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc b/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc index 516011cc3c..2ee49d18d2 100644 --- a/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1FileSceneHandler.cc,v 1.9 2004/04/19 09:08:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML1FileSceneHandler.cc,v 1.10 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1FileSceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada @@ -74,7 +74,6 @@ G4VRML1FileSceneHandler::G4VRML1FileSceneHandler(G4VRML1File& system, const G4St fDest() , fFlagDestOpen( false ) { - fSceneCount++; fCurrentDEF = ""; strcpy(fVRMLFileName, ""); @@ -103,7 +102,6 @@ G4VRML1FileSceneHandler::~G4VRML1FileSceneHandler() #if defined DEBUG_FR_SCENE G4cerr << "***** ~G4VRML1FileSceneHandler" << G4endl; #endif - fSceneCount--; } @@ -203,4 +201,3 @@ void G4VRML1FileSceneHandler::closePort() } G4int G4VRML1FileSceneHandler::fSceneIdCount = 0; -G4int G4VRML1FileSceneHandler::fSceneCount = 0; diff --git a/source/visualization/VRML/src/G4VRML1FileViewer.cc b/source/visualization/VRML/src/G4VRML1FileViewer.cc index 8463cfd694..021a626cf0 100644 --- a/source/visualization/VRML/src/G4VRML1FileViewer.cc +++ b/source/visualization/VRML/src/G4VRML1FileViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1FileViewer.cc,v 1.7 2001/09/18 07:53:15 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML1FileViewer.cc,v 1.8 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRMLView.cc // Satoshi Tanaka & Yasuhide Sawada @@ -36,9 +36,12 @@ #include "G4VRML1File.hh" #include "G4ios.hh" -G4VRML1FileViewer::G4VRML1FileViewer(G4VRML1FileSceneHandler& scene, +G4VRML1FileViewer::G4VRML1FileViewer(G4VRML1FileSceneHandler& sceneHandler, const G4String& name) : - G4VViewer(scene, scene.IncrementViewCount(), name), fSceneHandler(scene) + G4VViewer(sceneHandler, + sceneHandler.IncrementViewCount(), + name), + fSceneHandler(sceneHandler) {} G4VRML1FileViewer::~G4VRML1FileViewer() diff --git a/source/visualization/VRML/src/G4VRML1SceneHandler.cc b/source/visualization/VRML/src/G4VRML1SceneHandler.cc index 9b600af694..c095f82889 100644 --- a/source/visualization/VRML/src/G4VRML1SceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML1SceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1SceneHandler.cc,v 1.8 2003/06/16 17:13:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML1SceneHandler.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1SceneHandler.cc // Yasuhide Sawada and Satoshi Tanaka @@ -70,7 +70,6 @@ G4VRML1SceneHandler::G4VRML1SceneHandler(G4VRML1& system, const G4String& name) fSystem(system), fDest() { - fSceneCount++; fCurrentDEF = ""; } @@ -80,7 +79,6 @@ G4VRML1SceneHandler::~G4VRML1SceneHandler() #if defined DEBUG_FR_SCENE G4cerr << "***** ~G4VRML1SceneHandler" << G4endl; #endif - fSceneCount--; } @@ -129,7 +127,6 @@ void G4VRML1SceneHandler::closePort() G4int G4VRML1SceneHandler::fSceneIdCount = 0; -G4int G4VRML1SceneHandler::fSceneCount = 0; #endif #endif diff --git a/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc index cfedc192c2..630688da35 100644 --- a/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1SceneHandlerFunc.icc,v 1.12 2003/05/30 13:01:24 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML1SceneHandlerFunc.icc,v 1.15 2005/05/27 13:35:52 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML1SceneHandlerFunc.icc // Satoshi Tanaka & Yasuhide Sawada @@ -37,56 +37,56 @@ // End of MACRO -void G4VRML1SCENEHANDLER::AddThis(const G4Trd& trd) +void G4VRML1SCENEHANDLER::AddSolid(const G4Trd& trd) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis trd" << "\n" ; + G4cerr << "***** AddSolid trd" << "\n" ; #endif VRMLBeginModeling () ; ADDTHIS_WITH_NAME(trd) } -void G4VRML1SCENEHANDLER::AddThis(const G4Trap& trap) +void G4VRML1SCENEHANDLER::AddSolid(const G4Trap& trap) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis trap" << "\n" ; + G4cerr << "***** AddSolid trap" << "\n" ; #endif VRMLBeginModeling () ; ADDTHIS_WITH_NAME(trap) } -void G4VRML1SCENEHANDLER::AddThis(const G4Para& para) +void G4VRML1SCENEHANDLER::AddSolid(const G4Para& para) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis para" << "\n" ; + G4cerr << "***** AddSolid para" << "\n" ; #endif VRMLBeginModeling () ; ADDTHIS_WITH_NAME(para) } -void G4VRML1SCENEHANDLER::AddThis(const G4Torus& torus ) +void G4VRML1SCENEHANDLER::AddSolid(const G4Torus& torus ) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis torus" << "\n" ; + G4cerr << "***** AddSolid torus" << "\n" ; #endif VRMLBeginModeling () ; ADDTHIS_WITH_NAME(torus) } -void G4VRML1SCENEHANDLER::AddThis(const G4VSolid& vsolid) +void G4VRML1SCENEHANDLER::AddSolid(const G4VSolid& vsolid) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis vsolid" << "\n" ; + G4cerr << "***** AddSolid vsolid" << "\n" ; #endif VRMLBeginModeling () ; ADDTHIS_WITH_NAME(vsolid) } -void G4VRML1SCENEHANDLER::AddThis(const G4Tubs& tubs) +void G4VRML1SCENEHANDLER::AddSolid(const G4Tubs& tubs) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis tubs" << "\n" ; + G4cerr << "***** AddSolid tubs" << "\n" ; #endif VRMLBeginModeling () ; @@ -120,10 +120,10 @@ void G4VRML1SCENEHANDLER::AddThis(const G4Tubs& tubs) } -void G4VRML1SCENEHANDLER::AddThis(const G4Cons& cons) +void G4VRML1SCENEHANDLER::AddSolid(const G4Cons& cons) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis cons" << "\n" ; + G4cerr << "***** AddSolid cons" << "\n" ; #endif VRMLBeginModeling () ; @@ -159,10 +159,10 @@ void G4VRML1SCENEHANDLER::AddThis(const G4Cons& cons) fCurrentDEF = ""; } -void G4VRML1SCENEHANDLER::AddThis(const G4Box& box) +void G4VRML1SCENEHANDLER::AddSolid(const G4Box& box) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis box" << "\n" ; + G4cerr << "***** AddSolid box" << "\n" ; #endif VRMLBeginModeling () ; @@ -187,10 +187,10 @@ void G4VRML1SCENEHANDLER::AddThis(const G4Box& box) } -void G4VRML1SCENEHANDLER::AddThis(const G4Sphere& sphere) +void G4VRML1SCENEHANDLER::AddSolid(const G4Sphere& sphere) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis sphere" << "\n" ; + G4cerr << "***** AddSolid sphere" << "\n" ; #endif VRMLBeginModeling () ; diff --git a/source/visualization/VRML/src/G4VRML1Viewer.cc b/source/visualization/VRML/src/G4VRML1Viewer.cc index 863f4c3a30..c57a829989 100644 --- a/source/visualization/VRML/src/G4VRML1Viewer.cc +++ b/source/visualization/VRML/src/G4VRML1Viewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1Viewer.cc,v 1.7 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRMLView.cc // Yasuhide Sawada & Satoshi Tanaka diff --git a/source/visualization/VRML/src/G4VRML2.cc b/source/visualization/VRML/src/G4VRML2.cc index 40e1e8868f..23ff9ae532 100644 --- a/source/visualization/VRML/src/G4VRML2.cc +++ b/source/visualization/VRML/src/G4VRML2.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2.cc,v 1.8 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML2.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2.cc // Satoshi Tanaka & Yasuhide Sawada @@ -75,9 +75,6 @@ G4VSceneHandler* G4VRML2::CreateSceneHandler(const G4String& name) p = new G4VRML2SceneHandler(*this, name); - G4cout << G4VRML2SceneHandler::GetSceneCount() - << " " << fName << " scene handlers extanct." << G4endl; - return p; } diff --git a/source/visualization/VRML/src/G4VRML2File.cc b/source/visualization/VRML/src/G4VRML2File.cc index bf9a33aea8..51990badde 100644 --- a/source/visualization/VRML/src/G4VRML2File.cc +++ b/source/visualization/VRML/src/G4VRML2File.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2File.cc,v 1.8 2001/09/18 07:53:16 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VRML2File.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2File.cc // Satoshi Tanaka & Yasuhide Sawada @@ -55,9 +55,6 @@ G4VSceneHandler* G4VRML2File::CreateSceneHandler(const G4String& name) p = new G4VRML2FileSceneHandler(*this, name); - G4cout << G4VRML2FileSceneHandler::GetSceneCount() - << " " << fName << " scene handlers extanct." << G4endl; - return p; } diff --git a/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc b/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc index 4c72538fbe..6432c33b26 100644 --- a/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2FileSceneHandler.cc,v 1.11 2004/12/07 23:41:01 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VRML2FileSceneHandler.cc,v 1.12 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2FileSceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada @@ -74,8 +74,6 @@ G4VRML2FileSceneHandler::G4VRML2FileSceneHandler(G4VRML2File& system, const G4St fPVPickable ( false ), fDest() { - fSceneCount++; - // output file name strcpy(fVRMLFileName, ""); @@ -119,7 +117,6 @@ G4VRML2FileSceneHandler::~G4VRML2FileSceneHandler() #if defined DEBUG_FR_SCENE G4cerr << "***** ~G4VRML2FileSceneHandler" << G4endl; #endif - fSceneCount--; } @@ -218,4 +215,3 @@ void G4VRML2FileSceneHandler::closePort() } G4int G4VRML2FileSceneHandler::fSceneIdCount = 0; -G4int G4VRML2FileSceneHandler::fSceneCount = 0; diff --git a/source/visualization/VRML/src/G4VRML2FileViewer.cc b/source/visualization/VRML/src/G4VRML2FileViewer.cc index f9cdffe061..5bc0740ac4 100644 --- a/source/visualization/VRML/src/G4VRML2FileViewer.cc +++ b/source/visualization/VRML/src/G4VRML2FileViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2FileViewer.cc,v 1.9 2004/12/07 23:41:01 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VRML2FileViewer.cc,v 1.10 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2FileViewer.cc // Satoshi Tanaka & Yasuhide Sawada @@ -38,11 +38,13 @@ #include "G4VRML2File.hh" #include "G4ios.hh" -G4VRML2FileViewer::G4VRML2FileViewer(G4VRML2FileSceneHandler& scene, +G4VRML2FileViewer::G4VRML2FileViewer(G4VRML2FileSceneHandler& sceneHandler, const G4String& name) : - G4VViewer(scene, scene.IncrementViewCount(), name), - fSceneHandler(scene), - fDest(scene.fDest) + G4VViewer(sceneHandler, + sceneHandler.IncrementViewCount(), + name), + fSceneHandler(sceneHandler), + fDest(sceneHandler.fDest) { fViewHalfAngle = 0.5 * 0.785398 ; // 0.5 * 45*deg fsin_VHA = std::sin ( fViewHalfAngle ) ; diff --git a/source/visualization/VRML/src/G4VRML2SceneHandler.cc b/source/visualization/VRML/src/G4VRML2SceneHandler.cc index b313464855..2b0826c7ba 100644 --- a/source/visualization/VRML/src/G4VRML2SceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML2SceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2SceneHandler.cc,v 1.10 2004/12/07 23:41:01 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VRML2SceneHandler.cc,v 1.11 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2SceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada @@ -70,8 +70,6 @@ G4VRML2SceneHandler::G4VRML2SceneHandler(G4VRML2& system, const G4String& name) fPVPickable ( false ), fDest() { - fSceneCount++; - // PV name pickability if( getenv( "G4VRML_PV_PICKABLE" ) != NULL ) { @@ -93,7 +91,6 @@ G4VRML2SceneHandler::~G4VRML2SceneHandler() #if defined DEBUG_FR_SCENE G4cerr << "***** ~G4VRML2SceneHandler" << G4endl; #endif - fSceneCount--; } @@ -142,7 +139,6 @@ void G4VRML2SceneHandler::closePort() G4int G4VRML2SceneHandler::fSceneIdCount = 0; -G4int G4VRML2SceneHandler::fSceneCount = 0; #endif #endif //WIN32 diff --git a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc index d17d4ba06b..d4bb37d04f 100644 --- a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc @@ -21,97 +21,97 @@ // ******************************************************************** // // -// $Id: G4VRML2SceneHandlerFunc.icc,v 1.15 2004/12/07 23:41:01 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VRML2SceneHandlerFunc.icc,v 1.18 2005/05/27 13:35:52 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2SceneHandlerFunc.icc // Satoshi Tanaka & Yasuhide Sawada //#define DEBUG_SCENE_FUNC -void G4VRML2SCENEHANDLER::AddThis(const G4Trd& trd) +void G4VRML2SCENEHANDLER::AddSolid(const G4Trd& trd) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis trd" << "\n" ; + G4cerr << "***** AddSolid trd" << "\n" ; #endif VRMLBeginModeling () ; - G4VSceneHandler::AddThis(trd); + G4VSceneHandler::AddSolid(trd); } -void G4VRML2SCENEHANDLER::AddThis(const G4Trap& trap) +void G4VRML2SCENEHANDLER::AddSolid(const G4Trap& trap) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis trap" << "\n" ; + G4cerr << "***** AddSolid trap" << "\n" ; #endif VRMLBeginModeling () ; - G4VSceneHandler::AddThis(trap); + G4VSceneHandler::AddSolid(trap); } -void G4VRML2SCENEHANDLER::AddThis(const G4Para& para) +void G4VRML2SCENEHANDLER::AddSolid(const G4Para& para) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis para" << "\n" ; + G4cerr << "***** AddSolid para" << "\n" ; #endif VRMLBeginModeling () ; - G4VSceneHandler::AddThis(para); + G4VSceneHandler::AddSolid(para); } -void G4VRML2SCENEHANDLER::AddThis(const G4Torus& torus ) +void G4VRML2SCENEHANDLER::AddSolid(const G4Torus& torus ) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis torus" << "\n" ; + G4cerr << "***** AddSolid torus" << "\n" ; #endif VRMLBeginModeling () ; - G4VSceneHandler::AddThis(torus); + G4VSceneHandler::AddSolid(torus); } -void G4VRML2SCENEHANDLER::AddThis(const G4VSolid& vsolid) +void G4VRML2SCENEHANDLER::AddSolid(const G4VSolid& vsolid) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis vsolid" << "\n" ; + G4cerr << "***** AddSolid vsolid" << "\n" ; #endif VRMLBeginModeling () ; - G4VSceneHandler::AddThis(vsolid); + G4VSceneHandler::AddSolid(vsolid); } -void G4VRML2SCENEHANDLER::AddThis(const G4Tubs& tubs) +void G4VRML2SCENEHANDLER::AddSolid(const G4Tubs& tubs) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis tubs" << "\n" ; + G4cerr << "***** AddSolid tubs" << "\n" ; #endif VRMLBeginModeling () ; - G4VSceneHandler::AddThis(tubs) ; + G4VSceneHandler::AddSolid(tubs) ; } -void G4VRML2SCENEHANDLER::AddThis(const G4Cons& cons) +void G4VRML2SCENEHANDLER::AddSolid(const G4Cons& cons) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis cons" << "\n" ; + G4cerr << "***** AddSolid cons" << "\n" ; #endif VRMLBeginModeling () ; - G4VSceneHandler::AddThis(cons) ; + G4VSceneHandler::AddSolid(cons) ; } -void G4VRML2SCENEHANDLER::AddThis(const G4Box& box) +void G4VRML2SCENEHANDLER::AddSolid(const G4Box& box) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis box" << "\n" ; + G4cerr << "***** AddSolid box" << "\n" ; #endif VRMLBeginModeling () ; - G4VSceneHandler::AddThis(box) ; + G4VSceneHandler::AddSolid(box) ; } -void G4VRML2SCENEHANDLER::AddThis(const G4Sphere& sphere) +void G4VRML2SCENEHANDLER::AddSolid(const G4Sphere& sphere) { #if defined DEBUG_SCENE_FUNC - G4cerr << "***** AddThis sphere" << "\n" ; + G4cerr << "***** AddSolid sphere" << "\n" ; #endif VRMLBeginModeling () ; - G4VSceneHandler::AddThis(sphere) ; + G4VSceneHandler::AddSolid(sphere) ; } void G4VRML2SCENEHANDLER::AddPrimitive(const G4Polyline& polyline) diff --git a/source/visualization/VRML/src/G4VRML2Viewer.cc b/source/visualization/VRML/src/G4VRML2Viewer.cc index 2c4ec51138..d469804f53 100644 --- a/source/visualization/VRML/src/G4VRML2Viewer.cc +++ b/source/visualization/VRML/src/G4VRML2Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2Viewer.cc,v 1.10 2004/12/07 23:41:01 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VRML2Viewer.cc,v 1.11 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // G4VRML2Viewer.cc // Satoshi Tanaka & Yasuhide Sawada @@ -44,10 +44,12 @@ #include "G4VRML2.hh" #include "G4ios.hh" -G4VRML2Viewer::G4VRML2Viewer(G4VRML2SceneHandler& scene, const G4String& name) : - G4VViewer(scene, scene.IncrementViewCount(), name), - fSceneHandler(scene), - fDest(scene.fDest) +G4VRML2Viewer::G4VRML2Viewer(G4VRML2SceneHandler& sceneHandler, const G4String& name) : + G4VViewer(sceneHandler, + sceneHandler.IncrementViewCount(), + name), + fSceneHandler(sceneHandler), + fDest(sceneHandler.fDest) { fViewHalfAngle = 0.5 * 0.785398 ; // 0.5 * 45*deg fsin_VHA = std::sin ( fViewHalfAngle ) ; diff --git a/source/visualization/XXX/History b/source/visualization/XXX/History index d2a8111f6c..d1b4ad6eb5 100644 --- a/source/visualization/XXX/History +++ b/source/visualization/XXX/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2003/11/12 13:16:48 johna Exp $ +$Id: History,v 1.12 2005/06/07 17:08:29 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,14 @@ committal in the CVS repository ! History file for visualization/XXX sub-category (a template graphics system) --------------------------------------------------------------------------- +7th June 2005 John Allison (visXXX-V07-00-00) +- Fixed unused parameter warnings. + +1st June 2005 John Allison +- Removed scene count and included some ongoing developments to do + with making a consistent geometry hierarchy in presence of culled + volumes. + 12th November 2003 John Allison - Added G4XXXSceneHandler::ClearTransientStore. diff --git a/source/visualization/XXX/include/G4XXX.hh b/source/visualization/XXX/include/G4XXX.hh index 4d21aa267f..c6b0433f14 100644 --- a/source/visualization/XXX/include/G4XXX.hh +++ b/source/visualization/XXX/include/G4XXX.hh @@ -22,7 +22,7 @@ // // // $Id: G4XXX.hh,v 1.3 2001/08/25 00:22:06 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/include/G4XXXSceneHandler.hh b/source/visualization/XXX/include/G4XXXSceneHandler.hh index f402e1e5dd..cf1a00b738 100644 --- a/source/visualization/XXX/include/G4XXXSceneHandler.hh +++ b/source/visualization/XXX/include/G4XXXSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XXXSceneHandler.hh,v 1.11 2004/11/11 16:04:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4XXXSceneHandler.hh,v 1.16 2005/06/07 16:46:33 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 @@ -44,22 +44,22 @@ public: //////////////////////////////////////////////////////////////// // No need to implement these, but if you do... - void AddThis(const G4Box&); - void AddThis(const G4Cons&); - void AddThis(const G4Tubs&); - void AddThis(const G4Trd&); - void AddThis(const G4Trap&); - void AddThis(const G4Sphere&); - void AddThis(const G4Para&); - void AddThis(const G4Torus&); - void AddThis(const G4Polycone&); - void AddThis(const G4Polyhedra&); - void AddThis(const G4VSolid&); - void AddThis(const G4VTrajectory&); - void AddThis(const G4VHit&); - // void PreAddThis(const G4Transform3D& objectTransformation, - // const G4VisAttributes&); - // void PostAddThis(); + void AddSolid(const G4Box&); + void AddSolid(const G4Cons&); + void AddSolid(const G4Tubs&); + void AddSolid(const G4Trd&); + void AddSolid(const G4Trap&); + void AddSolid(const G4Sphere&); + void AddSolid(const G4Para&); + void AddSolid(const G4Torus&); + void AddSolid(const G4Polycone&); + void AddSolid(const G4Polyhedra&); + void AddSolid(const G4VSolid&); + void AddCompound(const G4VTrajectory&); + void AddCompound(const G4VHit&); + void PreAddSolid(const G4Transform3D& objectTransformation, + const G4VisAttributes&); + // void PostAddSolid(); //////////////////////////////////////////////////////////////// // Required implementation of pure virtual functions... @@ -103,14 +103,8 @@ public: //void ClearStore (); void ClearTransientStore (); - //////////////////////////////////////////////////////////////// - // Required... - - static G4int GetSceneCount() {return fSceneCount;} - protected: static G4int fSceneIdCount; // Counter for XXX scene handlers. - static G4int fSceneCount; // No. of extanct scene handlers. private: #ifdef G4XXXDEBUG diff --git a/source/visualization/XXX/include/G4XXXViewer.hh b/source/visualization/XXX/include/G4XXXViewer.hh index 0d27fe85f7..b10988e887 100644 --- a/source/visualization/XXX/include/G4XXXViewer.hh +++ b/source/visualization/XXX/include/G4XXXViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4XXXViewer.hh,v 1.5 2001/11/19 15:09:23 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/src/G4XXX.cc b/source/visualization/XXX/src/G4XXX.cc index 413b5af18e..0c83aed0f2 100644 --- a/source/visualization/XXX/src/G4XXX.cc +++ b/source/visualization/XXX/src/G4XXX.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XXX.cc,v 1.3 2001/08/25 00:22:20 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4XXX.cc,v 1.4 2005/06/02 17:00:11 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 @@ -42,8 +42,6 @@ G4XXX::~G4XXX() {} G4VSceneHandler* G4XXX::CreateSceneHandler(const G4String& name) { G4VSceneHandler* pScene = new G4XXXSceneHandler(*this, name); - G4cout << G4XXXSceneHandler::GetSceneCount() - << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } diff --git a/source/visualization/XXX/src/G4XXXSceneHandler.cc b/source/visualization/XXX/src/G4XXXSceneHandler.cc index bd64ba8429..95581b4a51 100644 --- a/source/visualization/XXX/src/G4XXXSceneHandler.cc +++ b/source/visualization/XXX/src/G4XXXSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XXXSceneHandler.cc,v 1.17 2004/11/11 16:04:27 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4XXXSceneHandler.cc,v 1.23 2005/06/07 16:46:33 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 5th April 2001 @@ -58,15 +58,10 @@ G4int G4XXXSceneHandler::fSceneIdCount = 0; // Counter for XXX scene handlers. -G4int G4XXXSceneHandler::fSceneCount = 0; -// No. of extanct scene handlers. - G4XXXSceneHandler::G4XXXSceneHandler(G4VGraphicsSystem& system, const G4String& name): G4VSceneHandler(system, fSceneIdCount++, name) -{ - fSceneCount++; -} +{} G4XXXSceneHandler::~G4XXXSceneHandler() {} @@ -91,147 +86,232 @@ void G4XXXSceneHandler::PrintThings() { } #endif -void G4XXXSceneHandler::AddThis(const G4Box& box) { +#include +std::vector > fPVPath; +typedef +std::vector >::const_iterator +PVPath_const_iterator; + +void G4XXXSceneHandler::PreAddSolid +(const G4Transform3D&, const G4VisAttributes&) { + using namespace std; + G4cout << + "Current PV/LV/depth: " + << fpCurrentPV->GetName() << + "/" + << fpCurrentLV->GetName() << + "/" + << fCurrentDepth + << G4endl; + // How to establish a tree (even when some volumes have been + // culled)... + static G4int lastDepth = 0; + static G4LogicalVolume* lastMotherLV = 0; + G4int copyNo = fpCurrentPV->GetCopyNo(); + if (fCurrentDepth > lastDepth) { + while (fCurrentDepth > lastDepth++) { + fPVPath.push_back(make_pair((G4VPhysicalVolume*)0,0)); + } + fPVPath.back() = make_pair(fpCurrentPV,copyNo); + } else if (fCurrentDepth == lastDepth) { + fPVPath.back() = make_pair(fpCurrentPV,copyNo); + } else { + while (fCurrentDepth < lastDepth--) { + fPVPath.pop_back(); + } + fPVPath.back() = make_pair(fpCurrentPV,copyNo); + } + lastDepth = fCurrentDepth; + lastMotherLV = fpCurrentPV->GetMotherLogical(); + + // Debug printing... + for (PVPath_const_iterator i = fPVPath.begin(); i != fPVPath.end(); ++i) { + if ((*i).first) { + G4cout << '/' << (*i).first->GetName(); + } else { + G4cout << 0; + } + G4cout << ':' << (*i).second; + } + G4cout << G4endl; + + /*********************************************** + fLVSet.insert(fpCurrentLV); + G4LogicalVolume* motherLV = fpCurrentPV->GetMotherLogical(); + if (motherLV) { + if (fLVSet.find(motherLV) == fLVSet.end()) { + // Mother not previously encountered - must have been culled. + G4cout << "Mother LV \"" << motherLV->GetName() + << "\" not found." << G4endl; + // Search back up hierarchy... + do { + G4LogicalVolume* possibleMotherLV = 0; + G4LogicalVolumeStore* Store = G4LogicalVolumeStore::GetInstance(); + for ( size_t LV=0; LV < Store->size(); LV++ ) { + G4LogicalVolume* aLogVol = (*Store)[LV]; + if(aLogVol != this) { // Don't look for it inside itself! + for (G4int daughter=0; daughter < aLogVol->GetNoDaughters(); daughter++ ) { + if( aLogVol->GetDaughter(daughter)->GetLogicalVolume()==this ) + { + // aLogVol is the mother !!! + // + motherLogVol = aLogVol; + break; + } + } + } + } + motherLV = motherLV->GetPhysicalVolume()->GetMotherLogical(); + } while (motherLV && fLVSet.find(motherLV) == fLVSet.end()); + G4cout << "Mother LV \"" << motherLV->GetName() + << "\" found." << G4endl; + } + } + ****************************************/ + +} + +void G4XXXSceneHandler::AddSolid(const G4Box& box) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Box& box) called for " + "G4XXXSceneHandler::AddSolid(const G4Box& box) called for " << box.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(box); // Invoke default action. + G4VSceneHandler::AddSolid(box); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4Cons& cons) { +void G4XXXSceneHandler::AddSolid(const G4Cons& cons) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Cons& cons) called for " + "G4XXXSceneHandler::AddSolid(const G4Cons& cons) called for " << cons.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(cons); // Invoke default action. + G4VSceneHandler::AddSolid(cons); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4Tubs& tubs) { +void G4XXXSceneHandler::AddSolid(const G4Tubs& tubs) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Tubs& tubs) called for " + "G4XXXSceneHandler::AddSolid(const G4Tubs& tubs) called for " << tubs.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(tubs); // Invoke default action. + G4VSceneHandler::AddSolid(tubs); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4Trd& trd) { +void G4XXXSceneHandler::AddSolid(const G4Trd& trd) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Trd& trd) called for " + "G4XXXSceneHandler::AddSolid(const G4Trd& trd) called for " << trd.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(trd); // Invoke default action. + G4VSceneHandler::AddSolid(trd); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4Trap& trap) { +void G4XXXSceneHandler::AddSolid(const G4Trap& trap) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Trap& trap) called for " + "G4XXXSceneHandler::AddSolid(const G4Trap& trap) called for " << trap.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(trap); // Invoke default action. + G4VSceneHandler::AddSolid(trap); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4Sphere& sphere) { +void G4XXXSceneHandler::AddSolid(const G4Sphere& sphere) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Sphere& sphere) called for " + "G4XXXSceneHandler::AddSolid(const G4Sphere& sphere) called for " << sphere.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(sphere); // Invoke default action. + G4VSceneHandler::AddSolid(sphere); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4Para& para) { +void G4XXXSceneHandler::AddSolid(const G4Para& para) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Para& para) called for " + "G4XXXSceneHandler::AddSolid(const G4Para& para) called for " << para.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(para); // Invoke default action. + G4VSceneHandler::AddSolid(para); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4Torus& torus) { +void G4XXXSceneHandler::AddSolid(const G4Torus& torus) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Torus& torus) called for " + "G4XXXSceneHandler::AddSolid(const G4Torus& torus) called for " << torus.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(torus); // Invoke default action. + G4VSceneHandler::AddSolid(torus); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4Polycone& polycone) { +void G4XXXSceneHandler::AddSolid(const G4Polycone& polycone) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Polycone& polycone) called for " + "G4XXXSceneHandler::AddSolid(const G4Polycone& polycone) called for " << polycone.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(polycone); // Invoke default action. + G4VSceneHandler::AddSolid(polycone); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4Polyhedra& polyhedra) { +void G4XXXSceneHandler::AddSolid(const G4Polyhedra& polyhedra) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Polyhedra& polyhedra) called for " + "G4XXXSceneHandler::AddSolid(const G4Polyhedra& polyhedra) called for " << polyhedra.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(polyhedra); // Invoke default action. + G4VSceneHandler::AddSolid(polyhedra); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4VSolid& solid) { +void G4XXXSceneHandler::AddSolid(const G4VSolid& solid) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4Solid& solid) called for " + "G4XXXSceneHandler::AddSolid(const G4Solid& solid) called for " << solid.GetName() << G4endl; PrintThings(); #endif - G4VSceneHandler::AddThis(solid); // Invoke default action. + G4VSceneHandler::AddSolid(solid); // Invoke default action. } -void G4XXXSceneHandler::AddThis(const G4VTrajectory& traj) { +void G4XXXSceneHandler::AddCompound(const G4VTrajectory& traj) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4VTrajectory& traj) called." + "G4XXXSceneHandler::AddCompound(const G4VTrajectory& traj) called." << G4endl; #endif - G4VSceneHandler::AddThis(traj); // Draw trajectory in good old way for now. + G4VSceneHandler::AddCompound(traj); // Draw trajectory in good old way for now. traj.ShowTrajectory(); G4cout << G4endl; } -void G4XXXSceneHandler::AddThis(const G4VHit& hit) { +void G4XXXSceneHandler::AddCompound(const G4VHit& hit) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddThis(const G4VHit& hit) called." + "G4XXXSceneHandler::AddCompound(const G4VHit& hit) called." << G4endl; #endif - G4VSceneHandler::AddThis(hit); // Invoke default action. + G4VSceneHandler::AddCompound(hit); // Invoke default action. } void G4XXXSceneHandler::AddPrimitive(const G4Polyline& polyline) { @@ -338,7 +418,7 @@ void G4XXXSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) { //Get colour, etc.. //const G4Colour& c = pVA -> GetColour (); - // Initial action depending on drwaing style. + // Initial action depending on drawing style. switch (drawing_style) { case (G4ViewParameters::hsr): { @@ -400,7 +480,6 @@ void G4XXXSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) { } while (notLastFace); } -//void G4XXXSceneHandler::AddPrimitive(const G4NURBS& nurbs) { void G4XXXSceneHandler::AddPrimitive(const G4NURBS&) { #ifdef G4XXXDEBUG G4cout << @@ -415,6 +494,10 @@ void G4XXXSceneHandler::AddPrimitive(const G4NURBS&) { void G4XXXSceneHandler::ClearTransientStore () { G4VSceneHandler::ClearTransientStore (); + // This is typically called after an update and before drawing hits + // of the next event. To simulate the clearing of "transients" + // (hits, etc.) in a system without a graphical database, the + // detector is redrawn... if (fpViewer) { fpViewer -> SetView (); fpViewer -> ClearView (); diff --git a/source/visualization/XXX/src/G4XXXViewer.cc b/source/visualization/XXX/src/G4XXXViewer.cc index 3a24153d37..32ffc7b9f4 100644 --- a/source/visualization/XXX/src/G4XXXViewer.cc +++ b/source/visualization/XXX/src/G4XXXViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4XXXViewer.cc,v 1.6 2003/11/06 15:06:51 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4XXXViewer.hh" diff --git a/source/visualization/externals/zlib/GNUmakefile b/source/visualization/externals/zlib/GNUmakefile new file mode 100644 index 0000000000..63ab841a8f --- /dev/null +++ b/source/visualization/externals/zlib/GNUmakefile @@ -0,0 +1,12 @@ +# $Id: GNUmakefile,v 1.1 2005/05/12 19:39:31 allison Exp $ +# ------------------------------------------------------------- +# GNUmakefile for zlib. John Allison, 5/5/05. + +name := G4zlib + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk +include $(G4INSTALL)/config/common.gmk diff --git a/source/visualization/externals/zlib/History b/source/visualization/externals/zlib/History new file mode 100755 index 0000000000..ec37b1f932 --- /dev/null +++ b/source/visualization/externals/zlib/History @@ -0,0 +1,24 @@ +.$Id: History,v 1.1 2005/05/25 23:18:52 duns Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Category History file + --------------------- +This file should be used by G4 developers and category coordinators +to briefly summarize all major modifications introduced in the code +and keep track of all category-tags. +It DOES NOT substitute the CVS log-message one should put at every +committal in the CVS repository ! + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +History file for visualization/HepRep sub-category +-------------------------------------------------- +25 May 2005 Mark Donszelmann (vis-zlib-V07-00-00 against geant4-07-00-ref-03) +- zlib version 1.2.2 + diff --git a/source/visualization/HepRep/include/zlib/ZLIB-README b/source/visualization/externals/zlib/README similarity index 90% rename from source/visualization/HepRep/include/zlib/ZLIB-README rename to source/visualization/externals/zlib/README index 4b85ff6760..82e0f365b8 100644 --- a/source/visualization/HepRep/include/zlib/ZLIB-README +++ b/source/visualization/externals/zlib/README @@ -1,16 +1,13 @@ -Mark Donszelmann - 18/11/2004 +Mark Donszelmann - 4 May 2005 ============================= Files renamed to .cc -Functions were modified to compile with C++ compiler, type-name rather than name { type, in: -adler32.cc, compress.cc, crc32.cc, deflate.cc, gzio.cc, infback.cc, inffast.cc, inflate.cc -inftrees.cc, trees.cc, uncompr.cc -In: deflate.cc and trees.cc all strings are catsed to (char*) to avoid warnings. -Files zconf.h zlib.h and zutil.h were prefix with HepRep- (HepRep) -to avoid clashes with the same files in /usr/include and /usr/local/include -on unix systems. -Further modifications marked with MD: in: -HepRep-zconf.h, HepRep-zlib.h, inflate.h, infback.cc, inffast.cc, inflate.cc -inftrees.cc, gzio.cc +Removed all files for reading zlib format. +Functions were modified to compile with C++ compiler, "type-name" rather than +"name { type", in: + +adler32.cc, compress.cc, crc32.cc, deflate.cc, trees.cc + +In: deflate.cc and trees.cc all strings are casted to (char*) to avoid warnings. ============================================================= ZLIB DATA COMPRESSION LIBRARY diff --git a/source/visualization/HepRep/include/zlib/crc32.h b/source/visualization/externals/zlib/include/crc32.h similarity index 100% rename from source/visualization/HepRep/include/zlib/crc32.h rename to source/visualization/externals/zlib/include/crc32.h diff --git a/source/visualization/HepRep/include/zlib/deflate.h b/source/visualization/externals/zlib/include/deflate.h similarity index 99% rename from source/visualization/HepRep/include/zlib/deflate.h rename to source/visualization/externals/zlib/include/deflate.h index e1e31883e9..6d221663be 100644 --- a/source/visualization/HepRep/include/zlib/deflate.h +++ b/source/visualization/externals/zlib/include/deflate.h @@ -8,12 +8,12 @@ subject to change. Applications should only use zlib.h. */ -/* @(#) $Id: deflate.h,v 1.4 2004/11/22 19:08:58 duns Exp $ */ +/* @(#) $Id: deflate.h,v 1.1 2005/05/12 21:04:53 duns Exp $ */ #ifndef DEFLATE_H #define DEFLATE_H -#include "HepRep-zutil.h" +#include "zutil.h" /* define NO_GZIP when compiling if you want to disable gzip header and trailer creation by deflate(). NO_GZIP would be used to avoid linking in diff --git a/source/visualization/HepRep/include/zlib/trees.h b/source/visualization/externals/zlib/include/trees.h similarity index 100% rename from source/visualization/HepRep/include/zlib/trees.h rename to source/visualization/externals/zlib/include/trees.h diff --git a/source/visualization/HepRep/include/zlib/HepRep-zconf.h b/source/visualization/externals/zlib/include/zconf.h similarity index 76% rename from source/visualization/HepRep/include/zlib/HepRep-zconf.h rename to source/visualization/externals/zlib/include/zconf.h index d4a9fc727d..8c681b0862 100644 --- a/source/visualization/HepRep/include/zlib/HepRep-zconf.h +++ b/source/visualization/externals/zlib/include/zconf.h @@ -3,59 +3,56 @@ * For conditions of distribution and use, see copyright notice in zlib.h */ -/* @(#) $Id: HepRep-zconf.h,v 1.4 2004/11/22 19:08:58 duns Exp $ */ +/* @(#) $Id: zconf.h,v 1.1 2005/05/12 21:04:53 duns Exp $ */ -#ifndef _HEPREP_ZCONF_H -#define _HEPREP_ZCONF_H +#ifndef _ZCONF_H +#define _ZCONF_H /* * If you *really* need a unique prefix for all types and library functions, * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. */ #ifdef Z_PREFIX -/* MD: changed z_ into heprep_z_ */ -# define deflateInit_ heprep_z_deflateInit_ -# define deflate heprep_z_deflate -# define deflateEnd heprep_z_deflateEnd -# define inflateInit_ heprep_z_inflateInit_ -# define inflate heprep_z_inflate -# define inflateEnd heprep_z_inflateEnd -# define deflateInit2_ heprep_z_deflateInit2_ -# define deflateSetDictionary heprep_z_deflateSetDictionary -# define deflateCopy heprep_z_deflateCopy -# define deflateReset heprep_z_deflateReset -# define deflateParams heprep_z_deflateParams -# define deflateBound heprep_z_deflateBound -# define deflatePrime heprep_z_deflatePrime -# define inflateInit2_ heprep_z_inflateInit2_ -# define inflateSetDictionary heprep_z_inflateSetDictionary -# define inflateSync heprep_z_inflateSync -# define inflateSyncPoint heprep_z_inflateSyncPoint -# define inflateCopy heprep_z_inflateCopy -# define inflateReset heprep_z_inflateReset -# define inflateBack heprep_z_inflateBack -# define inflateBackEnd heprep_z_inflateBackEnd -# define compress heprep_z_compress -# define compress2 heprep_z_compress2 -# define compressBound heprep_z_compressBound -# define uncompress heprep_z_uncompress -# define adler32 heprep_z_adler32 -# define crc32 heprep_z_crc32 -# define get_crc_table heprep_z_get_crc_table -# define zError heprep_z_zError -/* MD: added define for lonely symbol not renamed */ -# define z_errmsg heprep_z_errmsg +# define deflateInit_ z_deflateInit_ +# define deflate z_deflate +# define deflateEnd z_deflateEnd +# define inflateInit_ z_inflateInit_ +# define inflate z_inflate +# define inflateEnd z_inflateEnd +# define deflateInit2_ z_deflateInit2_ +# define deflateSetDictionary z_deflateSetDictionary +# define deflateCopy z_deflateCopy +# define deflateReset z_deflateReset +# define deflateParams z_deflateParams +# define deflateBound z_deflateBound +# define deflatePrime z_deflatePrime +# define inflateInit2_ z_inflateInit2_ +# define inflateSetDictionary z_inflateSetDictionary +# define inflateSync z_inflateSync +# define inflateSyncPoint z_inflateSyncPoint +# define inflateCopy z_inflateCopy +# define inflateReset z_inflateReset +# define inflateBack z_inflateBack +# define inflateBackEnd z_inflateBackEnd +# define compress z_compress +# define compress2 z_compress2 +# define compressBound z_compressBound +# define uncompress z_uncompress +# define adler32 z_adler32 +# define crc32 z_crc32 +# define get_crc_table z_get_crc_table +# define zError z_zError -# define Byte heprep_z_Byte -# define uInt heprep_z_uInt -# define uLong heprep_z_uLong -# define Bytef heprep_z_Bytef -# define charf heprep_z_charf -# define intf heprep_z_intf -# define uIntf heprep_z_uIntf -# define uLongf heprep_z_uLongf -# define voidpf heprep_z_voidpf -# define voidp heprep_z_voidp +# define Byte z_Byte +# define uInt z_uInt +# define uLong z_uLong +# define Bytef z_Bytef +# define charf z_charf +# define intf z_intf +# define uIntf z_uIntf +# define uLongf z_uLongf +# define voidpf z_voidpf +# define voidp z_voidp #endif #if defined(__MSDOS__) && !defined(MSDOS) @@ -326,4 +323,4 @@ typedef uLong FAR uLongf; # pragma map(inflate_copyright,"INCOPY") #endif -#endif /* _HEPREP_ZCONF_H */ +#endif /* _ZCONF_H */ diff --git a/source/visualization/HepRep/include/zlib/HepRep-zlib.h b/source/visualization/externals/zlib/include/zlib.h similarity index 99% rename from source/visualization/HepRep/include/zlib/HepRep-zlib.h rename to source/visualization/externals/zlib/include/zlib.h index 8b1caea689..593a867418 100644 --- a/source/visualization/HepRep/include/zlib/HepRep-zlib.h +++ b/source/visualization/externals/zlib/include/zlib.h @@ -28,14 +28,13 @@ (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). */ -#ifndef _HEPREP_ZLIB_H -#define _HEPREP_ZLIB_H +#ifndef _ZLIB_H +#define _ZLIB_H -#include "HepRep-zconf.h" +#include "zconf.h" #ifdef __cplusplus -/* MD: make all functions C++ mangled */ -/* extern "C" { */ +extern "C" { #endif #define ZLIB_VERSION "1.2.2" @@ -1185,8 +1184,7 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF((z_stream FAR *strm, int windowBits, inflateBackInit_((strm), (windowBits), (window), \ ZLIB_VERSION, sizeof(z_stream)) -/* MD: do not forget to change this one... */ -#if !defined(_HEPREP_ZUTIL_H) && !defined(NO_DUMMY_DECL) +#if !defined(_ZUTIL_H) && !defined(NO_DUMMY_DECL) struct internal_state {int dummy;}; /* hack for buggy compilers */ #endif @@ -1195,8 +1193,7 @@ ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z)); ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); #ifdef __cplusplus -/* MD: make all functions C++ mangled */ -/* } */ +} #endif -#endif /* _HEPREP_ZLIB_H */ +#endif /* _ZLIB_H */ diff --git a/source/visualization/HepRep/include/zlib/HepRep-zutil.h b/source/visualization/externals/zlib/include/zutil.h similarity index 97% rename from source/visualization/HepRep/include/zlib/HepRep-zutil.h rename to source/visualization/externals/zlib/include/zutil.h index ce4e04ffef..e4e0d3246c 100644 --- a/source/visualization/HepRep/include/zlib/HepRep-zutil.h +++ b/source/visualization/externals/zlib/include/zutil.h @@ -8,13 +8,13 @@ subject to change. Applications should only use zlib.h. */ -/* @(#) $Id: HepRep-zutil.h,v 1.3 2004/11/22 19:08:58 duns Exp $ */ +/* @(#) $Id: zutil.h,v 1.1 2005/05/12 21:04:53 duns Exp $ */ -#ifndef _HEPREP_ZUTIL_H -#define _HEPREP_ZUTIL_H +#ifndef _ZUTIL_H +#define _ZUTIL_H #define ZLIB_INTERNAL -#include "HepRep-zlib.h" +#include "zlib.h" #ifdef STDC # include @@ -260,4 +260,4 @@ void zcfree OF((voidpf opaque, voidpf ptr)); #define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) #define TRY_FREE(s, p) {if (p) ZFREE(s, p);} -#endif /* _HEPREP_ZUTIL_H */ +#endif /* _ZUTIL_H */ diff --git a/source/visualization/HepRep/src/adler32.cc b/source/visualization/externals/zlib/src/adler32.cc similarity index 96% rename from source/visualization/HepRep/src/adler32.cc rename to source/visualization/externals/zlib/src/adler32.cc index 5cb3efedab..3495ee1c65 100644 --- a/source/visualization/HepRep/src/adler32.cc +++ b/source/visualization/externals/zlib/src/adler32.cc @@ -3,10 +3,10 @@ * For conditions of distribution and use, see copyright notice in zlib.h */ -/* @(#) $Id: adler32.cc,v 1.1 2004/11/18 22:45:29 duns Exp $ */ +/* @(#) $Id: adler32.cc,v 1.1 2005/05/12 21:04:53 duns Exp $ */ #define ZLIB_INTERNAL -#include "HepRep-zlib.h" +#include "zlib.h" #define BASE 65521UL /* largest prime smaller than 65536 */ #define NMAX 5552 diff --git a/source/visualization/HepRep/src/compress.cc b/source/visualization/externals/zlib/src/compress.cc similarity index 96% rename from source/visualization/HepRep/src/compress.cc rename to source/visualization/externals/zlib/src/compress.cc index cefb767adb..1df0e92c85 100644 --- a/source/visualization/HepRep/src/compress.cc +++ b/source/visualization/externals/zlib/src/compress.cc @@ -3,10 +3,10 @@ * For conditions of distribution and use, see copyright notice in zlib.h */ -/* @(#) $Id: compress.cc,v 1.3 2004/11/18 22:45:29 duns Exp $ */ +/* @(#) $Id: compress.cc,v 1.1 2005/05/12 21:04:53 duns Exp $ */ #define ZLIB_INTERNAL -#include "HepRep-zlib.h" +#include "zlib.h" /* =========================================================================== Compresses the source buffer into the destination buffer. The level diff --git a/source/visualization/HepRep/src/crc32.cc b/source/visualization/externals/zlib/src/crc32.cc similarity index 98% rename from source/visualization/HepRep/src/crc32.cc rename to source/visualization/externals/zlib/src/crc32.cc index 7ca2e118d4..169dbd4ce0 100644 --- a/source/visualization/HepRep/src/crc32.cc +++ b/source/visualization/externals/zlib/src/crc32.cc @@ -9,7 +9,7 @@ * of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. */ -/* @(#) $Id: crc32.cc,v 1.2 2004/11/22 19:08:58 duns Exp $ */ +/* @(#) $Id: crc32.cc,v 1.1 2005/05/12 21:04:53 duns Exp $ */ /* Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore @@ -26,7 +26,7 @@ # endif /* !DYNAMIC_CRC_TABLE */ #endif /* MAKECRCH */ -#include "HepRep-zutil.h" /* for STDC and FAR definitions */ +#include "zutil.h" /* for STDC and FAR definitions */ #define local static diff --git a/source/visualization/HepRep/src/deflate.cc b/source/visualization/externals/zlib/src/deflate.cc similarity index 99% rename from source/visualization/HepRep/src/deflate.cc rename to source/visualization/externals/zlib/src/deflate.cc index 7a4456fe65..ea48a46e01 100644 --- a/source/visualization/HepRep/src/deflate.cc +++ b/source/visualization/externals/zlib/src/deflate.cc @@ -47,7 +47,7 @@ * */ -/* @(#) $Id: deflate.cc,v 1.9 2004/11/22 19:08:59 duns Exp $ */ +/* @(#) $Id: deflate.cc,v 1.1 2005/05/12 21:04:53 duns Exp $ */ #include "deflate.h" diff --git a/source/visualization/HepRep/src/trees.cc b/source/visualization/externals/zlib/src/trees.cc similarity index 99% rename from source/visualization/HepRep/src/trees.cc rename to source/visualization/externals/zlib/src/trees.cc index ceae6bd339..c5e2bceed3 100644 --- a/source/visualization/HepRep/src/trees.cc +++ b/source/visualization/externals/zlib/src/trees.cc @@ -29,7 +29,7 @@ * Addison-Wesley, 1983. ISBN 0-201-06672-6. */ -/* @(#) $Id: trees.cc,v 1.6 2004/11/22 19:08:59 duns Exp $ */ +/* @(#) $Id: trees.cc,v 1.1 2005/05/12 21:04:53 duns Exp $ */ /* #define GEN_TREES_H */ diff --git a/source/visualization/HepRep/src/zutil.cc b/source/visualization/externals/zlib/src/zutil.cc similarity index 98% rename from source/visualization/HepRep/src/zutil.cc rename to source/visualization/externals/zlib/src/zutil.cc index 3f671e005c..1bff78321b 100644 --- a/source/visualization/HepRep/src/zutil.cc +++ b/source/visualization/externals/zlib/src/zutil.cc @@ -3,9 +3,9 @@ * For conditions of distribution and use, see copyright notice in zlib.h */ -/* @(#) $Id: zutil.cc,v 1.4 2004/11/22 19:31:37 duns Exp $ */ +/* @(#) $Id: zutil.cc,v 1.1 2005/05/12 21:04:53 duns Exp $ */ -#include "HepRep-zutil.h" +#include "zutil.h" #ifndef NO_DUMMY_DECL struct internal_state {int dummy;}; /* for buggy compilers */ diff --git a/source/visualization/management/GNUmakefile b/source/visualization/management/GNUmakefile index 21c9bb9a90..843362e3dd 100644 --- a/source/visualization/management/GNUmakefile +++ b/source/visualization/management/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.8 2004/06/17 13:54:27 gcosmo Exp $ +# $Id: GNUmakefile,v 1.9 2005/03/03 16:30:50 allison Exp $ # ------------------------------------------------------------- # GNUmakefile for visualization library. John Allison, 5/7/95. @@ -25,6 +25,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include CPPFLAGS += -I$(G4BASE)/global/HEPGeometry/include CPPFLAGS += -I$(G4BASE)/geometry/solids/CSG/include CPPFLAGS += -I$(G4BASE)/geometry/solids/specific/include +CPPFLAGS += -I$(G4BASE)/geometry/solids/Boolean/include CPPFLAGS += -I$(G4BASE)/geometry/management/include CPPFLAGS += -I$(G4BASE)/geometry/volumes/include CPPFLAGS += -I$(G4BASE)/geometry/navigation/include diff --git a/source/visualization/management/History b/source/visualization/management/History new file mode 100644 index 0000000000..d556a5a060 --- /dev/null +++ b/source/visualization/management/History @@ -0,0 +1,35 @@ +$Id: History,v 1.2 2005/06/07 17:04:27 allison Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Category History file + --------------------- +This file should be used by G4 developers and category coordinators +to briefly summarize all major modifications introduced in the code +and keep track of all category-tags. +It DOES NOT substitute the CVS log-message one should put at every +committal in the CVS repository ! + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + + -------------------------------------------------------- + * Started 31st May 2005. Hitherto, management history * + * has been in the top visualization history file. * + -------------------------------------------------------- + +History file for visualization management sub-category +------------------------------------------------------ + +7th June 2005 John Allison (visman-V07-00-02) +- /vis/scene/notifyHandlers: Fixed case of scene handler with no viewer. + +31st May 2005 John Allison (visman-V07-00-01) +- G4VisCommandsSceneAdd.cc: Fixed /vis/scene/add/text to accept text + with spaces. +- G4ViewParameters.cc: Printed WARNING: Viewpoint direction is very + close to the up vector direction. diff --git a/source/visualization/management/include/G4GraphicsSystemList.hh b/source/visualization/management/include/G4GraphicsSystemList.hh index 9605127e8c..adebb96bd0 100644 --- a/source/visualization/management/include/G4GraphicsSystemList.hh +++ b/source/visualization/management/include/G4GraphicsSystemList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GraphicsSystemList.hh,v 1.8 2003/06/16 17:14:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 2nd April 1996 diff --git a/source/visualization/management/include/G4Scene.hh b/source/visualization/management/include/G4Scene.hh index 0e30a9dbb0..31dee378be 100644 --- a/source/visualization/management/include/G4Scene.hh +++ b/source/visualization/management/include/G4Scene.hh @@ -22,7 +22,7 @@ // // // $Id: G4Scene.hh,v 1.14 2003/11/27 11:48:03 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Scene John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4Scene.icc b/source/visualization/management/include/G4Scene.icc index 7b27ddbb83..bd8942388f 100644 --- a/source/visualization/management/include/G4Scene.icc +++ b/source/visualization/management/include/G4Scene.icc @@ -22,7 +22,7 @@ // // // $Id: G4Scene.icc,v 1.11 2003/11/27 11:48:06 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Scene data John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4SceneHandlerList.hh b/source/visualization/management/include/G4SceneHandlerList.hh index 1b12e664c7..772f4db98c 100644 --- a/source/visualization/management/include/G4SceneHandlerList.hh +++ b/source/visualization/management/include/G4SceneHandlerList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SceneHandlerList.hh,v 1.7 2003/06/16 17:14:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison May 1996 diff --git a/source/visualization/management/include/G4SceneList.hh b/source/visualization/management/include/G4SceneList.hh index bafdeb75fd..998a9e27b9 100644 --- a/source/visualization/management/include/G4SceneList.hh +++ b/source/visualization/management/include/G4SceneList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SceneList.hh,v 1.9 2003/06/16 17:14:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 9th August 1998 diff --git a/source/visualization/management/include/G4VGraphicsSystem.hh b/source/visualization/management/include/G4VGraphicsSystem.hh index 6681027275..ae9fde5528 100644 --- a/source/visualization/management/include/G4VGraphicsSystem.hh +++ b/source/visualization/management/include/G4VGraphicsSystem.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGraphicsSystem.hh,v 1.10 2003/06/16 17:14:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VGraphicsSystem.icc b/source/visualization/management/include/G4VGraphicsSystem.icc index c586c41705..1134c60987 100644 --- a/source/visualization/management/include/G4VGraphicsSystem.icc +++ b/source/visualization/management/include/G4VGraphicsSystem.icc @@ -22,7 +22,7 @@ // // // $Id: G4VGraphicsSystem.icc,v 1.6 2001/07/11 10:09:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VSceneHandler.hh b/source/visualization/management/include/G4VSceneHandler.hh index 85bac6a7c9..a32d6f0e28 100644 --- a/source/visualization/management/include/G4VSceneHandler.hh +++ b/source/visualization/management/include/G4VSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSceneHandler.hh,v 1.22 2004/08/03 15:55:33 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VSceneHandler.hh,v 1.24 2005/01/27 20:06:07 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 19th July 1996. @@ -38,6 +38,8 @@ #include "globals.hh" +#include + #include "G4VGraphicsScene.hh" #include "G4ViewerList.hh" #include "G4ViewParameters.hh" @@ -51,6 +53,7 @@ class G4VModel; class G4VGraphicsSystem; class G4LogicalVolume; class G4VPhysicalVolume; +class G4Material; class G4VSceneHandler: public G4VGraphicsScene { @@ -66,28 +69,61 @@ public: // With description virtual ~G4VSceneHandler (); - ////////////////////////////////////////////////////////////// - // Functions for adding raw GEANT4 objects, if the graphics system - // can can understand them (optional on the part of the graphics - // system). If your graphics system is sophisticated enough to - // handle a particular solid shape as a primitive, in your derived - // class write a function to override one or more of the following. - // See the implementation of G4VSceneHandler::AddThis (const G4Box& box) for - // more suggestions. If not, please implement the base class - // invocation. - virtual void AddThis (const G4Box&); - virtual void AddThis (const G4Cons&); - virtual void AddThis (const G4Tubs&); - virtual void AddThis (const G4Trd&); - virtual void AddThis (const G4Trap&); - virtual void AddThis (const G4Sphere&); - virtual void AddThis (const G4Para&); - virtual void AddThis (const G4Torus&); - virtual void AddThis (const G4Polycone&); - virtual void AddThis (const G4Polyhedra&); - virtual void AddThis (const G4VSolid&); // For solids not above. - virtual void AddThis (const G4VTrajectory&); - virtual void AddThis (const G4VHit&); + /////////////////////////////////////////////////////////////////// + // Methods for adding raw GEANT4 objects to the scene handler. They + // must always be called in the triplet PreAddSolid, AddSolid and + // PostAddSolid. The transformation and visualization attributes + // must be set by the call to PreAddSolid. If your graphics system + // is sophisticated enough to handle a particular solid shape as a + // primitive, in your derived class write a function to override one + // or more of the following. See the implementation of + // G4VSceneHandler::AddSolid (const G4Box& box) for more + // suggestions. If not, please implement the base class invocation. + + virtual void PreAddSolid (const G4Transform3D& objectTransformation, + const G4VisAttributes& visAttribs); + // objectTransformation is the transformation in the world + // coordinate system of the object about to be added, and visAttribs + // is its visualization attributes. + // IMPORTANT: invoke this from your polymorphic versions, e.g.: + // void MyXXXSceneHandler::PreAddSolid + // (const G4Transform3D& objectTransformation, + // const G4VisAttributes& visAttribs) { + // G4VSceneHandler::PreAddSolid (objectTransformation, visAttribs); + // ... + // } + + virtual void PostAddSolid (); + // IMPORTANT: invoke this from your polymorphic versions, e.g.: + // void MyXXXSceneHandler::PostAddSolid () { + // ... + // G4VSceneHandler::PostAddSolid (objectTransformation, visAttribs); + // } + + virtual void AddSolid (const G4Box&); + virtual void AddSolid (const G4Cons&); + virtual void AddSolid (const G4Tubs&); + virtual void AddSolid (const G4Trd&); + virtual void AddSolid (const G4Trap&); + virtual void AddSolid (const G4Sphere&); + virtual void AddSolid (const G4Para&); + virtual void AddSolid (const G4Torus&); + virtual void AddSolid (const G4Polycone&); + virtual void AddSolid (const G4Polyhedra&); + virtual void AddSolid (const G4VSolid&); // For solids not above. + + /////////////////////////////////////////////////////////////////// + // Methods for adding "compound" GEANT4 objects to the scene + // handler. These methods may either (a) invoke "user code" that + // uses the "user interface", G4VVisManager (see, for example, + // G4VSceneHandler, which for trajectories uses + // G4VTrajectory::DrawTrajectory, via G4TrajectoriesModel in the + // Modeling Category) or (b) invoke AddPrimitives below (between + // calls to Begin/EndPrimitives) or (c) use graphics-system-specific + // code or (d) any combination of the above. + + virtual void AddCompound (const G4VTrajectory&); + virtual void AddCompound (const G4VHit&); /////////////////////////////////////////////////////////////// // Other inherited functions. @@ -97,26 +133,6 @@ public: // With description // particular type of model - non-pure, i.e., no requirement to // implement. See G4PhysicalVolumeModel.hh for details. - virtual void PreAddThis (const G4Transform3D& objectTransformation, - const G4VisAttributes& visAttribs); - // objectTransformation is the transformation in the world - // coordinate system of the object about to be added, and visAttribs - // is its visualization attributes. - // IMPORTANT: invoke this from your polymorphic versions, e.g.: - // void MyXXXSceneHandler::PreAddThis - // (const G4Transform3D& objectTransformation, - // const G4VisAttributes& visAttribs) { - // G4VSceneHandler::PreAddThis (objectTransformation, visAttribs); - // ... - // } - - virtual void PostAddThis (); - // IMPORTANT: invoke this from your polymorphic versions, e.g.: - // void MyXXXSceneHandler::PostAddThis () { - // ... - // G4VSceneHandler::PostAddThis (objectTransformation, visAttribs); - // } - ////////////////////////////////////////////////////////////// // Functions for adding primitives. @@ -248,7 +264,7 @@ public: // With description protected: ////////////////////////////////////////////////////////////// - // Default routine used by default AddThis (). + // Default routine used by default AddSolid (). virtual void RequestPrimitives (const G4VSolid& solid); @@ -269,11 +285,14 @@ protected: G4bool fReadyForTransients; // I.e., not processing scene. G4VModel* fpModel; // Current model. - const G4Transform3D* fpObjectTransformation; // Accum'd obj. transfn. + const G4Transform3D* fpObjectTransformation; // Current + // accumulated object transformation. + G4int fNestingDepth; // For Begin/EndPrimitives. const G4VisAttributes* fpVisAttribs; // Working vis attributes. G4int fCurrentDepth; // Current depth of geom. hierarchy. G4VPhysicalVolume* fpCurrentPV; // Current physical volume. G4LogicalVolume* fpCurrentLV; // Current logical volume. + G4Material* fpCurrentMaterial; // Current material. private: diff --git a/source/visualization/management/include/G4VSceneHandler.icc b/source/visualization/management/include/G4VSceneHandler.icc index 8ca67ea533..a88ecd9d2e 100644 --- a/source/visualization/management/include/G4VSceneHandler.icc +++ b/source/visualization/management/include/G4VSceneHandler.icc @@ -22,7 +22,7 @@ // // // $Id: G4VSceneHandler.icc,v 1.12 2001/08/09 20:13:40 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4VUserVisAction.hh b/source/visualization/management/include/G4VUserVisAction.hh new file mode 100644 index 0000000000..12ef480a5d --- /dev/null +++ b/source/visualization/management/include/G4VUserVisAction.hh @@ -0,0 +1,59 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VUserVisAction.hh,v 1.4 2005/03/16 17:18:04 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +// + +// Class Description: +// +// G4VUserVisAction is added to the scene by the command +// /vis/scene/add/userAction, which instantiates a G4CallbackModel to +// add to the RunDurationModels. Thus the pure virtual Draw() method +// is invoked whenever the viewer needs to "visit the kernel", e.g., +// to remake its graphical database, if any, or simply to refresh the +// screen. operator() is defined to satisfy the template +// G4CallbackModel. +// +// See the User Guide for Application Developers, Section 8.8.7 and 8.8.8. + + +#ifndef G4VUSERVISACTION_HH +#define G4VUSERVISACTION_HH + +#include "G4Transform3D.hh" + +class G4VUserVisAction { + +public: // With description + G4VUserVisAction() {} + virtual ~G4VUserVisAction() {} + virtual void Draw() = 0; + void operator()(const G4Transform3D& = G4Transform3D::Identity) { + Draw(); + } + +}; + +#endif diff --git a/source/visualization/management/include/G4VViewer.hh b/source/visualization/management/include/G4VViewer.hh index ef97398d78..7f4045688b 100644 --- a/source/visualization/management/include/G4VViewer.hh +++ b/source/visualization/management/include/G4VViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VViewer.hh,v 1.14 2004/07/01 10:16:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VViewer.hh,v 1.16 2005/06/02 17:43:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 27th March 1996 @@ -46,7 +46,7 @@ public: // With description friend std::ostream& operator << (std::ostream& os, const G4VViewer& v); - G4VViewer (G4VSceneHandler& scene, G4int id, const G4String& name = ""); + G4VViewer (G4VSceneHandler&, G4int id, const G4String& name = ""); virtual ~G4VViewer (); virtual void Initialise (); @@ -103,8 +103,8 @@ public: // With description const G4VisAttributes* GetApplicableVisAttributes (const G4VisAttributes*) const; - void SetNeedKernelVisit (); - // Sets individual need-visit flags. + void SetNeedKernelVisit (G4bool need); + // Sets individual need-visit flag. void NeedKernelVisit (); // Flags all views the need to re-visit the GEANT4 kernel to refresh diff --git a/source/visualization/management/include/G4VViewer.icc b/source/visualization/management/include/G4VViewer.icc index e0cb2d3c47..6345ff262e 100644 --- a/source/visualization/management/include/G4VViewer.icc +++ b/source/visualization/management/include/G4VViewer.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VViewer.icc,v 1.9 2001/07/14 21:48:22 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VViewer.icc,v 1.10 2005/02/23 11:24:52 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 30th December 1996 @@ -57,6 +57,6 @@ inline void G4VViewer::SetDefaultViewParameters (const G4ViewParameters& vp) { fDefaultVP = vp; } -inline void G4VViewer::SetNeedKernelVisit () { - fNeedKernelVisit = true; +inline void G4VViewer::SetNeedKernelVisit (G4bool need) { + fNeedKernelVisit = need; } diff --git a/source/visualization/management/include/G4VVisCommand.hh b/source/visualization/management/include/G4VVisCommand.hh index 21384e78cd..62d32d595b 100644 --- a/source/visualization/management/include/G4VVisCommand.hh +++ b/source/visualization/management/include/G4VVisCommand.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VVisCommand.hh,v 1.16 2004/08/03 15:57:44 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VVisCommand.hh,v 1.17 2005/03/09 23:48:15 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. @@ -59,13 +59,6 @@ protected: // Data members. static G4VisManager* fpVisManager; - static std::vector sceneNameCommands; - typedef std::vector::iterator sceneNameCommandsIterator; - static std::vector sceneHandlerNameCommands; - typedef std::vector::iterator - sceneHandlerNameCommandsIterator; - static std::vector viewerNameCommands; - typedef std::vector::iterator viewerNameCommandsIterator; }; #include "G4VVisCommand.icc" diff --git a/source/visualization/management/include/G4VVisCommand.icc b/source/visualization/management/include/G4VVisCommand.icc index 682d367609..a28cfddd68 100644 --- a/source/visualization/management/include/G4VVisCommand.icc +++ b/source/visualization/management/include/G4VVisCommand.icc @@ -22,7 +22,7 @@ // // // $Id: G4VVisCommand.icc,v 1.4 2001/07/11 10:09:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. diff --git a/source/visualization/management/include/G4ViewParameters.hh b/source/visualization/management/include/G4ViewParameters.hh index 8ce2ed4e42..3137884fea 100644 --- a/source/visualization/management/include/G4ViewParameters.hh +++ b/source/visualization/management/include/G4ViewParameters.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ViewParameters.hh,v 1.15 2004/07/23 15:24:08 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4ViewParameters.hh,v 1.17 2005/05/31 16:54:01 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 19th July 1996 @@ -175,9 +175,9 @@ public: // With description void ClearCutawayPlanes (); void SetExplodeFactor (G4double explodeFactor); void UnsetExplodeFactor (); - void SetNoOfSides (G4int nSides); + G4int SetNoOfSides (G4int nSides); // Returns actual number set. void SetViewpointDirection (const G4Vector3D& viewpointDirection); - // Prefer the following to get lightpoint direction right too. + // Calls the following to get lightpoint direction right too. void SetViewAndLights (const G4Vector3D& viewpointDirection); // Also sets lightpoint direction according to G4bool fLightsMoveWithCamera. void SetUpVector (const G4Vector3D& upVector); diff --git a/source/visualization/management/include/G4ViewParameters.icc b/source/visualization/management/include/G4ViewParameters.icc index 56873acfb4..2ae789959d 100644 --- a/source/visualization/management/include/G4ViewParameters.icc +++ b/source/visualization/management/include/G4ViewParameters.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ViewParameters.icc,v 1.6 2004/07/23 15:24:12 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4ViewParameters.icc,v 1.7 2005/05/31 16:54:01 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 20th October 1996 @@ -208,7 +208,7 @@ inline void G4ViewParameters::UnsetSectionPlane () { inline void G4ViewParameters::SetViewpointDirection (const G4Vector3D& viewpointDirection) { - fViewpointDirection = viewpointDirection; + SetViewAndLights (viewpointDirection); } inline void G4ViewParameters::SetExplodeFactor (G4double explodeFactor) { diff --git a/source/visualization/management/include/G4ViewerList.hh b/source/visualization/management/include/G4ViewerList.hh index 3e74018113..93be740205 100644 --- a/source/visualization/management/include/G4ViewerList.hh +++ b/source/visualization/management/include/G4ViewerList.hh @@ -22,7 +22,7 @@ // // // $Id: G4ViewerList.hh,v 1.7 2003/06/16 17:14:12 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison May 1996 diff --git a/source/visualization/management/include/G4VisCommands.hh b/source/visualization/management/include/G4VisCommands.hh index 053f7f084a..45c8f788a4 100644 --- a/source/visualization/management/include/G4VisCommands.hh +++ b/source/visualization/management/include/G4VisCommands.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommands.hh,v 1.3 2001/08/05 02:29:02 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/ top level commands - John Allison 5th February 2001 diff --git a/source/visualization/management/include/G4VisCommandsCompound.hh b/source/visualization/management/include/G4VisCommandsCompound.hh index d37207b2cb..7655f70139 100644 --- a/source/visualization/management/include/G4VisCommandsCompound.hh +++ b/source/visualization/management/include/G4VisCommandsCompound.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsCompound.hh,v 1.7 2001/07/11 10:09:15 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisCommandsCompound.hh,v 1.8 2005/02/15 14:50:52 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // Compound /vis/ commands - John Allison 15th May 2000 @@ -83,7 +83,7 @@ public: private: G4VisCommandSpecify (const G4VisCommandSpecify&); G4VisCommandSpecify& operator = (const G4VisCommandSpecify&); - G4UIcmdWithAString* fpCommand; + G4UIcommand* fpCommand; }; #endif diff --git a/source/visualization/management/include/G4VisCommandsScene.hh b/source/visualization/management/include/G4VisCommandsScene.hh index c80ca6bf87..51861fe0f2 100644 --- a/source/visualization/management/include/G4VisCommandsScene.hh +++ b/source/visualization/management/include/G4VisCommandsScene.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsScene.hh,v 1.14 2003/11/27 11:48:09 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisCommandsScene.hh,v 1.15 2005/03/09 23:48:15 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/scene commands - John Allison 9th August 1998 @@ -41,7 +41,6 @@ public: virtual ~G4VVisCommandScene (); protected: G4String CurrentSceneName (); - void UpdateCandidateLists (); private: G4VVisCommandScene (const G4VVisCommandScene&); G4VVisCommandScene& operator = (const G4VVisCommandScene&); @@ -61,18 +60,6 @@ private: G4int fId; }; -class G4VisCommandSceneEdit: public G4VVisCommandScene { -public: - G4VisCommandSceneEdit (); - virtual ~G4VisCommandSceneEdit (); - G4String GetCurrentValue (G4UIcommand* command); - void SetNewValue (G4UIcommand* command, G4String newValue); -private: - G4VisCommandSceneEdit (const G4VisCommandSceneEdit&); - G4VisCommandSceneEdit& operator = (const G4VisCommandSceneEdit&); - G4UIcmdWithAString* fpCommand; -}; - class G4VisCommandSceneEndOfEventAction: public G4VVisCommandScene { public: G4VisCommandSceneEndOfEventAction (); @@ -124,18 +111,6 @@ private: G4UIcommand* fpCommand; }; -class G4VisCommandSceneRemove: public G4VVisCommandScene { -public: - G4VisCommandSceneRemove (); - virtual ~G4VisCommandSceneRemove (); - G4String GetCurrentValue (G4UIcommand* command); - void SetNewValue (G4UIcommand* command, G4String newValue); -private: - G4VisCommandSceneRemove (const G4VisCommandSceneRemove&); - G4VisCommandSceneRemove& operator = (const G4VisCommandSceneRemove&); - G4UIcmdWithAString* fpCommand; -}; - class G4VisCommandSceneSelect: public G4VVisCommandScene { public: G4VisCommandSceneSelect (); diff --git a/source/visualization/management/include/G4VisCommandsSceneAdd.hh b/source/visualization/management/include/G4VisCommandsSceneAdd.hh index c9400e012b..b3d7f5ecc6 100644 --- a/source/visualization/management/include/G4VisCommandsSceneAdd.hh +++ b/source/visualization/management/include/G4VisCommandsSceneAdd.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneAdd.hh,v 1.10 2002/11/11 18:31:28 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisCommandsSceneAdd.hh,v 1.14 2005/04/10 21:04:39 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/scene commands - John Allison 9th August 1998 @@ -31,8 +31,12 @@ #include "G4VisCommandsScene.hh" +class G4UIcmdWithoutParameter; class G4UIcmdWithAnInteger; +#include "G4Transform3D.hh" +#include "G4VisAttributes.hh" + class G4VisCommandSceneAddAxes: public G4VVisCommandScene { public: G4VisCommandSceneAddAxes (); @@ -83,6 +87,29 @@ private: G4UIcommand* fpCommand; }; +class G4VisCommandSceneAddLogo: public G4VVisCommandScene { +public: + G4VisCommandSceneAddLogo (); + virtual ~G4VisCommandSceneAddLogo (); + G4String GetCurrentValue (G4UIcommand* command); + void SetNewValue (G4UIcommand* command, G4String newValue); +private: + G4VisCommandSceneAddLogo (const G4VisCommandSceneAddLogo&); + G4VisCommandSceneAddLogo& operator = (const G4VisCommandSceneAddLogo&); + class G4Logo { + public: + G4Logo(G4double height, const G4VisAttributes&, G4VisManager*); + ~G4Logo(); + void operator()(const G4Transform3D&); + private: + G4double fHeight; + G4VisAttributes fVisAtts; + G4VisManager* fpVisManager; + G4Polyhedron *fpG, *fp4; + }; + G4UIcommand* fpCommand; +}; + class G4VisCommandSceneAddScale: public G4VVisCommandScene { public: G4VisCommandSceneAddScale (); @@ -120,6 +147,18 @@ private: G4UIcmdWithAnInteger* fpCommand; }; +class G4VisCommandSceneAddUserAction: public G4VVisCommandScene { +public: + G4VisCommandSceneAddUserAction (); + virtual ~G4VisCommandSceneAddUserAction (); + G4String GetCurrentValue (G4UIcommand* command); + void SetNewValue (G4UIcommand* command, G4String newValue); +private: + G4VisCommandSceneAddUserAction (const G4VisCommandSceneAddUserAction&); + G4VisCommandSceneAddUserAction& operator = (const G4VisCommandSceneAddUserAction&); + G4UIcommand* fpCommand; +}; + class G4VisCommandSceneAddVolume: public G4VVisCommandScene { public: G4VisCommandSceneAddVolume (); diff --git a/source/visualization/management/include/G4VisCommandsSceneHandler.hh b/source/visualization/management/include/G4VisCommandsSceneHandler.hh index a39a987754..bb7301107d 100644 --- a/source/visualization/management/include/G4VisCommandsSceneHandler.hh +++ b/source/visualization/management/include/G4VisCommandsSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneHandler.hh,v 1.6 2001/07/11 10:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisCommandsSceneHandler.hh,v 1.7 2005/03/09 23:48:15 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/sceneHandler commands - John Allison 10th October 1998 @@ -34,16 +34,7 @@ class G4UIcommand; class G4UIcmdWithAString; -class G4VVisCommandSceneHandler: public G4VVisCommand { -public: - // Uses compiler defaults for copy constructor and assignment. - G4VVisCommandSceneHandler (); - ~G4VVisCommandSceneHandler (); -protected: - void UpdateCandidateLists (); -}; - -class G4VisCommandSceneHandlerAttach: public G4VVisCommandSceneHandler { +class G4VisCommandSceneHandlerAttach: public G4VVisCommand { public: // Uses compiler defaults for copy constructor and assignment. G4VisCommandSceneHandlerAttach (); @@ -54,7 +45,7 @@ private: G4UIcmdWithAString* fpCommand; }; -class G4VisCommandSceneHandlerCreate: public G4VVisCommandSceneHandler { +class G4VisCommandSceneHandlerCreate: public G4VVisCommand { public: // Uses compiler defaults for copy constructor and assignment. G4VisCommandSceneHandlerCreate (); @@ -67,7 +58,7 @@ private: G4int fId; }; -class G4VisCommandSceneHandlerList: public G4VVisCommandSceneHandler { +class G4VisCommandSceneHandlerList: public G4VVisCommand { public: // Uses compiler defaults for copy constructor and assignment. G4VisCommandSceneHandlerList (); @@ -78,18 +69,7 @@ private: G4UIcommand* fpCommand; }; -class G4VisCommandSceneHandlerRemove: public G4VVisCommandSceneHandler { -public: - // Uses compiler defaults for copy constructor and assignment. - G4VisCommandSceneHandlerRemove (); - ~G4VisCommandSceneHandlerRemove (); - G4String GetCurrentValue (G4UIcommand* command); - void SetNewValue (G4UIcommand* command, G4String newValue); -private: - G4UIcmdWithAString* fpCommand; -}; - -class G4VisCommandSceneHandlerSelect: public G4VVisCommandSceneHandler { +class G4VisCommandSceneHandlerSelect: public G4VVisCommand { public: // Uses compiler defaults for copy constructor and assignment. G4VisCommandSceneHandlerSelect (); diff --git a/source/visualization/management/include/G4VisCommandsViewer.hh b/source/visualization/management/include/G4VisCommandsViewer.hh index 255cfba835..cdf54d8c89 100644 --- a/source/visualization/management/include/G4VisCommandsViewer.hh +++ b/source/visualization/management/include/G4VisCommandsViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewer.hh,v 1.16 2004/07/14 15:38:49 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisCommandsViewer.hh,v 1.17 2005/03/09 23:48:15 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/viewer commands - John Allison 25th October 1998 @@ -44,7 +44,6 @@ public: virtual ~G4VVisCommandViewer (); protected: void SetViewParameters(G4VViewer*, const G4ViewParameters&); - void UpdateCandidateLists (); private: G4VVisCommandViewer (const G4VVisCommandViewer&); G4VVisCommandViewer& operator = (const G4VVisCommandViewer&); @@ -142,18 +141,6 @@ private: G4UIcmdWithAString* fpCommand; }; -class G4VisCommandViewerRemove: public G4VVisCommandViewer { -public: - G4VisCommandViewerRemove (); - virtual ~G4VisCommandViewerRemove (); - G4String GetCurrentValue (G4UIcommand* command); - void SetNewValue (G4UIcommand* command, G4String newValue); -private: - G4VisCommandViewerRemove (const G4VisCommandViewerRemove&); - G4VisCommandViewerRemove& operator = (const G4VisCommandViewerRemove&); - G4UIcmdWithAString* fpCommand; -}; - class G4VisCommandViewerReset: public G4VVisCommandViewer { public: G4VisCommandViewerReset (); diff --git a/source/visualization/management/include/G4VisCommandsViewerSet.hh b/source/visualization/management/include/G4VisCommandsViewerSet.hh index 512531babf..65c2c4245e 100644 --- a/source/visualization/management/include/G4VisCommandsViewerSet.hh +++ b/source/visualization/management/include/G4VisCommandsViewerSet.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsViewerSet.hh,v 1.13 2004/07/23 15:24:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/viewer/set commands - John Allison 16th May 2000 diff --git a/source/visualization/management/include/G4VisExecutive.hh b/source/visualization/management/include/G4VisExecutive.hh new file mode 100644 index 0000000000..3ed9053cdd --- /dev/null +++ b/source/visualization/management/include/G4VisExecutive.hh @@ -0,0 +1,104 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VisExecutive.hh,v 1.1 2005/02/04 16:42:37 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +// +// John Allison 2nd February 2005 (based on MyVisManager, 24th January 1998). +// +// Class description +// +// Concrete Visualization Manager that implements the virtual function +// RegisterGraphicsSystems. This is executed when you Initialise() +// or Initialize() the vis manager. It exploits C-pre-processor +// variables G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles +// if environment variables of the same name are set. +// +// Include this file and write code to instantiate G4VisExecutive just +// once as beginning of operations. Before you compile, set +// appropriate environment variables. If you change your +// environment you must force recompilation (the make files will not +// detect the need to do this). Typically, your main program file +// will contain: +// +// #ifdef G4VIS_USE +// #include "G4VisExecutive.hh" +// #endif +// ... +// int main() { +// ... +// #ifdef G4VIS_USE +// // Instantiate and initialise Visualization Manager. +// G4VisManager* visManager = new G4VisExecutive; +// // visManager -> SetVerboseLevel (verbosityString); +// // visManager -> RegisterGraphicsSystem (new G4XXX); +// visManager -> Initialize (); +// #endif +// ... +// #ifdef G4VIS_USE +// G4cout << "Deleting vis manager..." << G4endl; +// delete visManager; +// G4cout << "Vis manager deleted." << G4endl; +// #endif +// +// The implementation is included as an .icc file because - for those +// graphics systems that need external libraries - only those +// systems that have been selected by the flags may be instantiated +// without causing unresolved references (only the user knows which +// libraries are available on his/her computer). It also ensures +// that libraries can be linked in the right order, without circular +// dependencies. (Note that some graphics systems, notable those +// that write files for off-line viewing, do not suffer these +// restrictions and are always registered.) Additional graphics +// systems, XXX say, can be individually registered before +// invocation of Initialise() with RegisterGraphicsSystem(new XXX). +// +// Alternatively, you can implement an empty function here and just +// register the systems you want in your main(), e.g.: +// G4VisManager* visManager = new G4VisExecutive; +// visManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +// +// See class description of G4VisManager for more details. + +#ifndef G4VISEXECUTIVE_HH +#define G4VISEXECUTIVE_HH + +#include "G4VisManager.hh" + +class G4VisExecutive: public G4VisManager { + +public: // With description + + G4VisExecutive (); + +private: + + void RegisterGraphicsSystems (); + +}; + +#include "G4VisExecutive.icc" + +#endif + diff --git a/examples/novice/N07/src/ExN07VisManager.cc b/source/visualization/management/include/G4VisExecutive.icc old mode 100755 new mode 100644 similarity index 93% rename from examples/novice/N07/src/ExN07VisManager.cc rename to source/visualization/management/include/G4VisExecutive.icc index efa05107fb..7e8b660143 --- a/examples/novice/N07/src/ExN07VisManager.cc +++ b/source/visualization/management/include/G4VisExecutive.icc @@ -21,13 +21,11 @@ // ******************************************************************** // // -// $Id: ExN07VisManager.cc,v 1.2 2003/11/13 15:11:55 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisExecutive.icc,v 1.2 2005/05/06 08:42:47 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // - -#ifdef G4VIS_USE - -#include "ExN07VisManager.hh" +// +// John Allison 24th January 1998. // Supported drivers... @@ -35,8 +33,8 @@ #include "G4ASCIITree.hh" #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" -#include "G4HepRepFile.hh" #include "G4HepRep.hh" +#include "G4HepRepFile.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -75,16 +73,17 @@ #include "G4VRML2.hh" #endif -ExN07VisManager::ExN07VisManager () {} -void ExN07VisManager::RegisterGraphicsSystems () { +G4VisExecutive::G4VisExecutive () {} + +void G4VisExecutive::RegisterGraphicsSystems () { // Graphics Systems not needing external packages or libraries... RegisterGraphicsSystem (new G4ASCIITree); RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); RegisterGraphicsSystem (new G4HepRep); + RegisterGraphicsSystem (new G4HepRepFile); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); @@ -126,10 +125,7 @@ void ExN07VisManager::RegisterGraphicsSystems () { if (fVerbose > 0) { G4cout << "\nYou have successfully chosen to use the following graphics systems." - << G4endl; + << G4endl; PrintAvailableGraphicsSystems (); } } - -#endif - diff --git a/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh b/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh index ba5c706f40..000045159d 100644 --- a/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh +++ b/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfDAWNFILE.hh,v 1.4 2001/07/11 10:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #ifndef G4VISFEATURESOFDAWNFILE_HH #define G4VISFEATURESOFDAWNFILE_HH diff --git a/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh b/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh index 79f678c57c..43c3b89fa2 100644 --- a/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh +++ b/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfFukuiRenderer.hh,v 1.4 2001/07/11 10:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh b/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh index 652fecbf30..d424a05427 100644 --- a/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh +++ b/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfOpenGL.hh,v 1.4 2001/07/11 10:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh b/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh index 6798fc5009..134a27b476 100644 --- a/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh +++ b/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfOpenInventor.hh,v 1.4 2001/07/11 10:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/management/include/G4VisManager.hh b/source/visualization/management/include/G4VisManager.hh index 15b816af4c..531f2f8a2c 100644 --- a/source/visualization/management/include/G4VisManager.hh +++ b/source/visualization/management/include/G4VisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisManager.hh,v 1.33 2004/07/14 15:38:52 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisManager.hh,v 1.38 2005/03/09 23:48:15 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // @@ -94,6 +94,7 @@ class G4Scene; class G4UIcommand; class G4UImessenger; class G4VisStateDependent; +class G4VUserVisAction; class G4VisManager: public G4VVisManager { @@ -169,28 +170,28 @@ public: // With description // for representing hits, digis, etc. void Draw (const G4Circle&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); void Draw (const G4NURBS&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); void Draw (const G4Polyhedron&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); void Draw (const G4Polyline&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); void Draw (const G4Polymarker&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); void Draw (const G4Scale&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); void Draw (const G4Square&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); void Draw (const G4Text&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); //////////////////////////////////////////////////////////////////// // Now functions that implement the pure virtual functions of @@ -198,26 +199,23 @@ public: // With description // visualization attributes needed in some cases override any // visualization attributes that are associated with the object // itself - thus you can, for example, change the colour of a - // physical volume. The objectTransformation defaults to - // G4Transform3D::Identity by inheritance from G4VVisManager. + // physical volume. - void Draw (const G4VHit&, - const G4Transform3D& objectTransformation); + void Draw (const G4VHit&); - void Draw (const G4VTrajectory&, G4int i_mode, - const G4Transform3D& objectTransformation); + void Draw (const G4VTrajectory&, G4int i_mode); // i_mode is a parameter that can be used to control the drawing of // the trajectory. See, e.g., G4VTrajectory::DrawTrajectory. // i_mode defaults to 0 by inheritance from G4VVisManager. void Draw (const G4LogicalVolume&, const G4VisAttributes&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); void Draw (const G4VPhysicalVolume&, const G4VisAttributes&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); void Draw (const G4VSolid&, const G4VisAttributes&, - const G4Transform3D& objectTransformation); + const G4Transform3D& objectTransformation = G4Transform3D::Identity); //////////////////////////////////////////////////////////////////////// // Now other pure virtual functions of G4VVisManager... @@ -234,12 +232,6 @@ public: // With description void CreateViewer (G4String name = ""); // Creates viewer for the current scene handler. - void DeleteCurrentSceneHandler (); - // Leaves current scene handler and viewer undefined! - - void DeleteCurrentViewer (); - // Leaves current scene and view undefined! - private: void BeginOfRun (); @@ -262,6 +254,8 @@ public: // With description void Disable(); // Global enable/disable functions. + G4VUserVisAction* GetUserAction () const; + G4VisExtent GetUserActionExtent () const; G4VGraphicsSystem* GetCurrentGraphicsSystem () const; G4Scene* GetCurrentScene () const; G4VSceneHandler* GetCurrentSceneHandler () const; @@ -275,6 +269,10 @@ public: // With description Verbosity GetVerbosity () const; void GetWindowSizeHint (G4int& xHint, G4int& yHint) const; // Note: GetWindowSizeHint information is returned via the G4int& arguments. + + void SetUserAction (G4VUserVisAction* pVisAction, + const G4VisExtent& = G4VisExtent::NullExtent); + void SetUserActionExtent (const G4VisExtent&); void SetCurrentGraphicsSystem (G4VGraphicsSystem* pSystem); void SetCurrentScene (G4Scene*); void SetCurrentSceneHandler (G4VSceneHandler* pScene); @@ -308,7 +306,7 @@ public: // With description static G4String VerbosityString(Verbosity); // Converts the verbosity into a string for suitable for printing. - static G4String VerbosityGuidanceString; + static std::vector VerbosityGuidanceStrings; // Guidance on the use of visualization verbosity. protected: @@ -327,6 +325,8 @@ protected: static G4VisManager* fpInstance; // Pointer to single instance. G4bool fInitialised; + G4VUserVisAction* fpUserVisAction; // User vis action callback. + G4VisExtent fUserVisActionExtent; G4VGraphicsSystem* fpGraphicsSystem; // Current graphics system. G4Scene* fpScene; // Current scene. G4VSceneHandler* fpSceneHandler; // Current scene handler. diff --git a/source/visualization/management/include/G4VisManager.icc b/source/visualization/management/include/G4VisManager.icc index 5731fa8fc4..d59ff1fc11 100644 --- a/source/visualization/management/include/G4VisManager.icc +++ b/source/visualization/management/include/G4VisManager.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisManager.icc,v 1.8 2001/08/05 02:29:05 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisManager.icc,v 1.9 2005/02/19 22:07:21 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // GEANT4 Visualization Manager - John Allison 02/Jan/1996. @@ -31,6 +31,14 @@ inline void G4VisManager::Initialize () { Initialise (); } +inline G4VisExtent G4VisManager::GetUserActionExtent () const { + return fUserVisActionExtent; +} + +inline G4VUserVisAction* G4VisManager::GetUserAction () const { + return fpUserVisAction; +} + inline G4VSceneHandler* G4VisManager::GetCurrentSceneHandler () const { return fpSceneHandler; } @@ -66,6 +74,10 @@ inline void G4VisManager::GetWindowSizeHint xHint = fWindowSizeHintX; yHint = fWindowSizeHintY; } +inline void G4VisManager::SetUserActionExtent (const G4VisExtent& extent) { + fUserVisActionExtent = extent; +} + inline void G4VisManager::SetCurrentScene (G4Scene* pScene) { fpScene = pScene; } diff --git a/source/visualization/management/include/G4VisStateDependent.hh b/source/visualization/management/include/G4VisStateDependent.hh index 9a268d05b0..46beac52c3 100644 --- a/source/visualization/management/include/G4VisStateDependent.hh +++ b/source/visualization/management/include/G4VisStateDependent.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisStateDependent.hh,v 1.4 2001/07/11 10:09:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // A "state dependent" service class for G4VisManager. // John Allison 29th November 1999 diff --git a/source/visualization/management/include/MyVisManager.cc b/source/visualization/management/include/MyVisManager.cc index 95d9be880e..ca2b151cba 100644 --- a/source/visualization/management/include/MyVisManager.cc +++ b/source/visualization/management/include/MyVisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: MyVisManager.cc,v 1.19 2003/11/06 15:24:52 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: MyVisManager.cc,v 1.20 2005/02/04 16:42:41 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 24th January 1998. @@ -78,7 +78,13 @@ #endif -MyVisManager::MyVisManager () {} +MyVisManager::MyVisManager () { + G4cout << + "\n*********************************************************************\n" + "MyVisManager: WARNING: Deprecated class - use G4VisExecutive instead." + "\n*********************************************************************\n" + << G4endl; +} void MyVisManager::RegisterGraphicsSystems () { diff --git a/source/visualization/management/include/MyVisManager.hh b/source/visualization/management/include/MyVisManager.hh index d79ff3f99b..266ea2522b 100644 --- a/source/visualization/management/include/MyVisManager.hh +++ b/source/visualization/management/include/MyVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: MyVisManager.hh,v 1.5 2001/07/11 10:09:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 24th January 1998. diff --git a/source/visualization/management/src/G4GraphicsSystemList.cc b/source/visualization/management/src/G4GraphicsSystemList.cc index dd6aa9c72a..1b512d02e5 100644 --- a/source/visualization/management/src/G4GraphicsSystemList.cc +++ b/source/visualization/management/src/G4GraphicsSystemList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GraphicsSystemList.cc,v 1.3 2001/07/11 10:09:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4GraphicsSystemList.hh" diff --git a/source/visualization/management/src/G4Scene.cc b/source/visualization/management/src/G4Scene.cc index 6c5bd44e94..19ffabece5 100644 --- a/source/visualization/management/src/G4Scene.cc +++ b/source/visualization/management/src/G4Scene.cc @@ -22,7 +22,7 @@ // // // $Id: G4Scene.cc,v 1.14 2003/11/27 11:48:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // Scene data John Allison 19th July 1996. diff --git a/source/visualization/management/src/G4SceneHandlerList.cc b/source/visualization/management/src/G4SceneHandlerList.cc index e903248725..79ab49149a 100644 --- a/source/visualization/management/src/G4SceneHandlerList.cc +++ b/source/visualization/management/src/G4SceneHandlerList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SceneHandlerList.cc,v 1.3 2001/07/11 10:09:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4SceneHandlerList.hh" diff --git a/source/visualization/management/src/G4SceneList.cc b/source/visualization/management/src/G4SceneList.cc index 0f7e6970d9..c42d3d22ca 100644 --- a/source/visualization/management/src/G4SceneList.cc +++ b/source/visualization/management/src/G4SceneList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SceneList.cc,v 1.5 2001/07/11 10:09:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4SceneList.hh" diff --git a/source/visualization/management/src/G4VGraphicsSystem.cc b/source/visualization/management/src/G4VGraphicsSystem.cc index eb6d7f9f52..f204f1fa87 100644 --- a/source/visualization/management/src/G4VGraphicsSystem.cc +++ b/source/visualization/management/src/G4VGraphicsSystem.cc @@ -22,7 +22,7 @@ // // // $Id: G4VGraphicsSystem.cc,v 1.10 2003/06/16 17:14:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/src/G4VSceneHandler.cc b/source/visualization/management/src/G4VSceneHandler.cc index a7c95ada34..24a3b4f281 100644 --- a/source/visualization/management/src/G4VSceneHandler.cc +++ b/source/visualization/management/src/G4VSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSceneHandler.cc,v 1.33 2004/12/10 18:16:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4VSceneHandler.cc,v 1.40 2005/06/07 17:03:17 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 19th July 1996 @@ -79,6 +79,7 @@ G4VSceneHandler::G4VSceneHandler (G4VGraphicsSystem& system, G4int id, const G4S fReadyForTransients (false), fpModel (0), fpObjectTransformation (&G4Transform3D::Identity), + fNestingDepth (0), fpVisAttribs (0), fCurrentDepth (0), fpCurrentPV (0), @@ -106,35 +107,36 @@ G4VSceneHandler::~G4VSceneHandler () { void G4VSceneHandler::EndModeling () {} -void G4VSceneHandler::PreAddThis (const G4Transform3D& objectTransformation, +void G4VSceneHandler::PreAddSolid (const G4Transform3D& objectTransformation, const G4VisAttributes& visAttribs) { fpObjectTransformation = &objectTransformation; fpVisAttribs = &visAttribs; } -void G4VSceneHandler::PostAddThis () { +void G4VSceneHandler::PostAddSolid () { fpObjectTransformation = &G4Transform3D::Identity; fpVisAttribs = 0; } void G4VSceneHandler::ClearStore () { - if (fpViewer) fpViewer -> NeedKernelVisit (); + // if (fpViewer) fpViewer -> NeedKernelVisit (true); // ?? Viewer is supposed to be smart enough to know when to visit // kernel, but a problem in OpenGL Stored seems to require a forced // kernel visit triggered by the above code. John Allison Aug 2001 + // Feb 2005 - commented out. Let's fix OpenGL if necessary. } void G4VSceneHandler::ClearTransientStore () { } -void G4VSceneHandler::AddThis (const G4Box& box) { +void G4VSceneHandler::AddSolid (const G4Box& box) { RequestPrimitives (box); // If your graphics system is sophisticated enough to handle a // particular solid shape as a primitive, in your derived class write a // function to override this. (Note: some compilers warn that your // function "hides" this one. That's OK.) // Your function might look like this... -// void G4MyScene::AddThis (const G4Box& box) { +// void G4MyScene::AddSolid (const G4Box& box) { // Get parameters of appropriate object, e.g.: // G4double dx = box.GetXHalfLength (); // G4double dy = box.GetYHalfLength (); @@ -142,52 +144,51 @@ void G4VSceneHandler::AddThis (const G4Box& box) { // and Draw or Store in your display List. } -void G4VSceneHandler::AddThis (const G4Tubs& tubs) { +void G4VSceneHandler::AddSolid (const G4Tubs& tubs) { RequestPrimitives (tubs); } -void G4VSceneHandler::AddThis (const G4Cons& cons) { +void G4VSceneHandler::AddSolid (const G4Cons& cons) { RequestPrimitives (cons); } -void G4VSceneHandler::AddThis (const G4Trd& trd) { +void G4VSceneHandler::AddSolid (const G4Trd& trd) { RequestPrimitives (trd); } -void G4VSceneHandler::AddThis (const G4Trap& trap) { +void G4VSceneHandler::AddSolid (const G4Trap& trap) { RequestPrimitives (trap); } -void G4VSceneHandler::AddThis (const G4Sphere& sphere) { +void G4VSceneHandler::AddSolid (const G4Sphere& sphere) { RequestPrimitives (sphere ); } -void G4VSceneHandler::AddThis (const G4Para& para) { +void G4VSceneHandler::AddSolid (const G4Para& para) { RequestPrimitives (para); } -void G4VSceneHandler::AddThis (const G4Torus& torus) { +void G4VSceneHandler::AddSolid (const G4Torus& torus) { RequestPrimitives (torus); } -void G4VSceneHandler::AddThis (const G4Polycone& polycone) { +void G4VSceneHandler::AddSolid (const G4Polycone& polycone) { RequestPrimitives (polycone); } -void G4VSceneHandler::AddThis (const G4Polyhedra& polyhedra) { +void G4VSceneHandler::AddSolid (const G4Polyhedra& polyhedra) { RequestPrimitives (polyhedra); } -void G4VSceneHandler::AddThis (const G4VSolid& solid) { +void G4VSceneHandler::AddSolid (const G4VSolid& solid) { RequestPrimitives (solid); } -void G4VSceneHandler::AddThis (const G4VTrajectory& traj) { - +void G4VSceneHandler::AddCompound (const G4VTrajectory& traj) { traj.DrawTrajectory(((G4TrajectoriesModel*)fpModel)->GetDrawingMode()); } -void G4VSceneHandler::AddThis (const G4VHit& hit) { +void G4VSceneHandler::AddCompound (const G4VHit& hit) { ((G4VHit&)hit).Draw(); // Cast to non-const because Draw is non-const!!!! } @@ -198,7 +199,8 @@ void G4VSceneHandler::AddViewerToList (G4VViewer* pViewer) { void G4VSceneHandler::EstablishSpecials (G4PhysicalVolumeModel& pvModel) { pvModel.DefinePointersToWorkingSpace (&fCurrentDepth, &fpCurrentPV, - &fpCurrentLV); + &fpCurrentLV, + &fpCurrentMaterial); } void G4VSceneHandler::BeginModeling () { @@ -208,9 +210,18 @@ void G4VSceneHandler::BeginPrimitives (const G4Transform3D& objectTransformation) { if (!fpModel) G4Exception ("G4VSceneHandler::BeginPrimitives: NO MODEL!!!"); fpObjectTransformation = &objectTransformation; + fNestingDepth++; + if (fNestingDepth > 1) + G4Exception("G4VSceneHandler::BeginPrimitives: Nesting detected." + "\n It is illegal to nest Begin/EndPrimitives."); } -void G4VSceneHandler::EndPrimitives () {} +void G4VSceneHandler::EndPrimitives () { + if (fNestingDepth <= 0) + G4Exception("G4VSceneHandler::EndPrimitives: Nesting error"); + fNestingDepth--; + fpObjectTransformation = &G4Transform3D::Identity; +} void G4VSceneHandler::AddPrimitive (const G4Scale& scale) { @@ -264,22 +275,22 @@ void G4VSceneHandler::AddPrimitive (const G4Scale& scale) { // Transform appropriately... - G4Transform3D rotation; - switch (scale.GetDirection()) { - case G4Scale::x: - break; - case G4Scale::y: - rotation = G4RotateZ3D(piBy2); - break; - case G4Scale::z: - rotation = G4RotateY3D(piBy2); - break; - } - - G4double sxmid(scale.GetXmid()); - G4double symid(scale.GetYmid()); - G4double szmid(scale.GetZmid()); + G4Transform3D transformation; if (scale.GetAutoPlacing()) { + G4Transform3D rotation; + switch (scale.GetDirection()) { + case G4Scale::x: + break; + case G4Scale::y: + rotation = G4RotateZ3D(piBy2); + break; + case G4Scale::z: + rotation = G4RotateY3D(piBy2); + break; + } + G4double sxmid(scale.GetXmid()); + G4double symid(scale.GetYmid()); + G4double szmid(scale.GetZmid()); sxmid = xmin + oneMinusMargin * (xmax - xmin); symid = ymin + margin * (ymax - ymin); szmid = zmin + oneMinusMargin * (zmax - zmin); @@ -294,12 +305,12 @@ void G4VSceneHandler::AddPrimitive (const G4Scale& scale) { szmid -= halfLength; break; } + G4Translate3D translation(sxmid, symid, szmid); + transformation = translation * rotation; + } else { + if (fpModel) transformation = fpModel->GetTransformation(); } - G4Translate3D translation(sxmid, symid, szmid); - - G4Transform3D transformation(translation * rotation); - // Draw... // We would like to call BeginPrimitives(transformation) here but // calling BeginPrimitives from within an AddPrimitive is not @@ -310,7 +321,7 @@ void G4VSceneHandler::AddPrimitive (const G4Scale& scale) { AddPrimitive(tick21.transform(transformation)); AddPrimitive(tick22.transform(transformation)); G4Text text(scale.GetAnnotation(),textPosition.transform(transformation)); - text.SetScreenSize(24.); + text.SetScreenSize(12.); AddPrimitive(text); } @@ -358,7 +369,7 @@ void G4VSceneHandler::SetScene (G4Scene* pScene) { // Notify all viewers that a kernel visit is required. G4ViewerListIterator i; for (i = fViewerList.begin(); i != fViewerList.end(); i++) { - (*i) -> SetNeedKernelVisit (); + (*i) -> SetNeedKernelVisit (true); } } @@ -408,8 +419,8 @@ void G4VSceneHandler::RequestPrimitives (const G4VSolid& solid) { G4cout << "ERROR: G4VSceneHandler::RequestPrimitives" "\n Polyhedron not available for " << solid.GetName () << - ".\nThis means it cannot be visualized on most systems." - "\nContact the Visualization Coordinator." << G4endl; + ".\n This means it cannot be visualized on most systems." + "\n Contact the Visualization Coordinator." << G4endl; } } break; @@ -428,6 +439,10 @@ void G4VSceneHandler::ProcessScene (G4VViewer&) { const std::vector& runDurationModelList = fpScene -> GetRunDurationModelList (); + /* + const std::vector& endOfEventModelList = + fpScene -> GetEndOfEventModelList (); + */ if (runDurationModelList.size ()) { G4VisManager::Verbosity verbosity = @@ -439,6 +454,10 @@ void G4VSceneHandler::ProcessScene (G4VViewer&) { G4ModelingParameters* pMP = CreateModelingParameters (); for (size_t i = 0; i < runDurationModelList.size (); i++) { G4VModel* pModel = runDurationModelList[i]; + // Note: this is not the place to take action on + // pModel->GetTransformation(). The model must take care of + // this in pModel->DescribeYourselfTo(*this). See, for example, + // G4PhysicalVolumeModel and /vis/scene/add/logo. const G4ModelingParameters* tempMP = pModel -> GetModelingParameters (); // NOTE THAT pModel->GetModelingParameters() COULD BE ZERO. @@ -456,6 +475,17 @@ void G4VSceneHandler::ProcessScene (G4VViewer&) { pModel -> DescribeYourselfTo (*this); pModel -> SetModelingParameters (tempMP); } + /* + for (size_t i = 0; i < endOfEventModelList.size (); i++) { + G4VModel* pModel = endOfEventModelList[i]; + const G4ModelingParameters* tempMP = + pModel -> GetModelingParameters (); + pModel -> SetModelingParameters (pMP); + SetModel (pModel); // Store for use by derived class. + pModel -> DescribeYourselfTo (*this); + pModel -> SetModelingParameters (tempMP); + } + */ delete pMP; SetModel (0); // Flags invalid model. EndModeling (); diff --git a/source/visualization/management/src/G4VViewer.cc b/source/visualization/management/src/G4VViewer.cc index 1c215168f4..5b6328dd21 100644 --- a/source/visualization/management/src/G4VViewer.cc +++ b/source/visualization/management/src/G4VViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VViewer.cc,v 1.17 2003/06/16 17:14:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VViewer.cc,v 1.18 2005/02/23 11:35:58 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 27th March 1996 @@ -98,12 +98,14 @@ void G4VViewer::NeedKernelVisit () { // } // ??...but, there's a problem in OpenGL Stored which seems to // require *all* viewers to revisit the kernel, so... + /* const G4ViewerList& viewerList = fSceneHandler.GetViewerList (); G4ViewerListConstIterator i; for (i = viewerList.begin(); i != viewerList.end(); i++) { - (*i) -> SetNeedKernelVisit (); + (*i) -> SetNeedKernelVisit (true); } - + */ + // Feb 2005 - commented out. Let's fix OpenGL if necessary. } void G4VViewer::FinishView () {} diff --git a/source/visualization/management/src/G4VVisCommand.cc b/source/visualization/management/src/G4VVisCommand.cc index 99658fd9f5..d45cf2986d 100644 --- a/source/visualization/management/src/G4VVisCommand.cc +++ b/source/visualization/management/src/G4VVisCommand.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VVisCommand.cc,v 1.13 2004/08/03 15:57:48 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VVisCommand.cc,v 1.15 2005/03/09 23:48:15 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. @@ -38,12 +38,6 @@ G4VVisCommand::~G4VVisCommand () {} G4VisManager* G4VVisCommand::fpVisManager = 0; -std::vector G4VVisCommand::sceneNameCommands; - -std::vector G4VVisCommand::sceneHandlerNameCommands; - -std::vector G4VVisCommand::viewerNameCommands; - G4String G4VVisCommand::ConvertToString (G4double x, G4double y, const char * unitName) { @@ -63,8 +57,7 @@ void G4VVisCommand::ConvertToDoublePair(const G4String& paramString, G4double x, y; char unts[30]; - const char* t = paramString; - std::istrstream is((char*)t); + std::istrstream is(paramString); is >> x >> y >> unts; G4String unt = unts; diff --git a/source/visualization/management/src/G4ViewParameters.cc b/source/visualization/management/src/G4ViewParameters.cc index 01375dca78..0c36e8b2c6 100644 --- a/source/visualization/management/src/G4ViewParameters.cc +++ b/source/visualization/management/src/G4ViewParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ViewParameters.cc,v 1.17 2004/12/07 23:41:01 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4ViewParameters.cc,v 1.20 2005/05/31 16:54:01 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 19th July 1996 @@ -72,7 +72,7 @@ G4ViewParameters::G4ViewParameters (): fAutoRefresh (false) { fDefaultMarker.SetScreenSize (5.); - // Markers are 5 pixels radius, 10 pixels diameter. + // Markers are 5 pixels "overall" size, i.e., diameter. } G4ViewParameters::~G4ViewParameters () { @@ -166,30 +166,42 @@ void G4ViewParameters::SetVisibleDensity (G4double visibleDensity) { } } -void G4ViewParameters::SetNoOfSides (G4int nSides) { - const G4int nSidesMin = 3; +G4int G4ViewParameters::SetNoOfSides (G4int nSides) { + const G4int nSidesMin = 12; if (nSides < nSidesMin) { nSides = nSidesMin; G4cout << "G4ViewParameters::SetNoOfSides: attempt to set the" "\nnumber of sides per circle < " << nSidesMin - << "; forced to" << nSides << G4endl; + << "; forced to " << nSides << G4endl; } fNoOfSides = nSides; + return fNoOfSides; } void G4ViewParameters::SetViewAndLights (const G4Vector3D& viewpointDirection) { + fViewpointDirection = viewpointDirection; - if (fLightsMoveWithCamera) { - G4Vector3D zprime = fViewpointDirection.unit (); - G4Vector3D xprime = (fUpVector.cross (zprime)).unit (); - G4Vector3D yprime = zprime.cross (xprime); - fActualLightpointDirection = - fRelativeLightpointDirection.x () * xprime + - fRelativeLightpointDirection.y () * yprime + - fRelativeLightpointDirection.x () * zprime; + + // If the requested viewpoint direction is parallel to the up + // vector, the orientation of the view is undefined... + if (fViewpointDirection.unit() * fUpVector.unit() > .9999) { + G4cout << + "WARNING: Viewpoint direction is very close to the up vector direction." + "\n Consider setting the up vector to obtain definable behaviour." + << G4endl; } - else { + + // Move the lights too if requested... + if (fLightsMoveWithCamera) { + G4Vector3D zprime = fViewpointDirection.unit (); + G4Vector3D xprime = (fUpVector.cross (zprime)).unit (); + G4Vector3D yprime = zprime.cross (xprime); + fActualLightpointDirection = + fRelativeLightpointDirection.x () * xprime + + fRelativeLightpointDirection.y () * yprime + + fRelativeLightpointDirection.x () * zprime; + } else { fActualLightpointDirection = fRelativeLightpointDirection; } } diff --git a/source/visualization/management/src/G4ViewerList.cc b/source/visualization/management/src/G4ViewerList.cc index 178e977d0a..91d51226f9 100644 --- a/source/visualization/management/src/G4ViewerList.cc +++ b/source/visualization/management/src/G4ViewerList.cc @@ -22,7 +22,7 @@ // // // $Id: G4ViewerList.cc,v 1.3 2001/07/11 10:09:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4ViewerList.hh" diff --git a/source/visualization/management/src/G4VisCommands.cc b/source/visualization/management/src/G4VisCommands.cc index 6b9dedd152..67ff5141b8 100644 --- a/source/visualization/management/src/G4VisCommands.cc +++ b/source/visualization/management/src/G4VisCommands.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommands.cc,v 1.8 2004/08/03 15:57:51 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisCommands.cc,v 1.9 2005/03/03 16:13:08 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/ top level commands - John Allison 5th February 2001 @@ -39,7 +39,6 @@ G4VisCommandEnable::G4VisCommandEnable () { G4bool omitable; fpCommand = new G4UIcmdWithABool("/vis/enable", this); - fpCommand -> SetGuidance("/vis/enable [true|false]"); fpCommand -> SetGuidance("Enables/disables visualization system."); fpCommand -> SetParameterName("enabled", omitable=true); fpCommand -> SetDefaultValue(true); @@ -73,8 +72,9 @@ G4VisCommandVerbose::G4VisCommandVerbose () { G4bool omitable; fpCommand = new G4UIcmdWithAString("/vis/verbose", this); - fpCommand -> SetGuidance("/vis/verbose []"); - fpCommand -> SetGuidance(G4VisManager::VerbosityGuidanceString); + for (size_t i = 0; i < G4VisManager::VerbosityGuidanceStrings.size(); ++i) { + fpCommand -> SetGuidance(G4VisManager::VerbosityGuidanceStrings[i]); + } fpCommand -> SetParameterName("verbosity", omitable=true); fpCommand -> SetDefaultValue("warnings"); } diff --git a/source/visualization/management/src/G4VisCommandsCompound.cc b/source/visualization/management/src/G4VisCommandsCompound.cc index 1793e8ba40..ac26bd8924 100644 --- a/source/visualization/management/src/G4VisCommandsCompound.cc +++ b/source/visualization/management/src/G4VisCommandsCompound.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsCompound.cc,v 1.26 2004/07/15 15:39:11 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisCommandsCompound.cc,v 1.28 2005/03/03 16:13:08 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // Compound /vis/ commands - John Allison 15th May 2000 @@ -37,14 +37,12 @@ G4VisCommandDrawTree::G4VisCommandDrawTree() { G4bool omitable; fpCommand = new G4UIcommand("/vis/drawTree", this); - fpCommand->SetGuidance("/vis/drawTree [] []"); - fpCommand->SetGuidance("Default: world ATree"); fpCommand->SetGuidance ("(DTREE) Creates a scene consisting of this physical volume and" - "\n produces a represntation of the geometry hieracrhy."); + "\n produces a representation of the geometry hieracrhy."); fpCommand->SetGuidance("The scene becomes current."); G4UIparameter* parameter; - parameter = new G4UIparameter("PVname", 's', omitable = true); + parameter = new G4UIparameter("physical-volume-name", 's', omitable = true); parameter -> SetDefaultValue("world"); fpCommand -> SetParameter (parameter); parameter = new G4UIparameter("system", 's', omitable = true); @@ -59,8 +57,7 @@ G4VisCommandDrawTree::~G4VisCommandDrawTree() { void G4VisCommandDrawTree::SetNewValue(G4UIcommand*, G4String newValue) { G4String pvname, system; - const char* t = newValue; - std::istrstream is((char*)t); + std::istrstream is(newValue); is >> pvname >> system; G4UImanager* UImanager = G4UImanager::GetUIpointer(); @@ -82,14 +79,12 @@ G4VisCommandDrawView::G4VisCommandDrawView() { G4bool omitable; fpCommand = new G4UIcommand("/vis/drawView", this); fpCommand->SetGuidance - ("/vis/drawView [] [] [] []" - " [] [] [] []"); - fpCommand->SetGuidance("Default: 0 0 0 0 cm 1 0 cm"); + ("Draw view from this angle, etc."); G4UIparameter* parameter; - parameter = new G4UIparameter("theta-deg", 'd', omitable = true); + parameter = new G4UIparameter("theta-degrees", 'd', omitable = true); parameter -> SetDefaultValue(0.); fpCommand -> SetParameter (parameter); - parameter = new G4UIparameter("phi-deg", 'd', omitable = true); + parameter = new G4UIparameter("phi-degrees", 'd', omitable = true); parameter -> SetDefaultValue(0.); fpCommand -> SetParameter (parameter); parameter = new G4UIparameter("pan-right", 'd', omitable = true); @@ -138,8 +133,7 @@ void G4VisCommandDrawView::SetNewValue(G4UIcommand*, G4String newValue) { G4String zoomFactor; G4String dolly; G4String dollyUnit; - const char* t = newValue; - std::istrstream is((char*)t); + std::istrstream is(newValue); is >> thetaDeg >> phiDeg >> panRight >> panUp >> panUnit >> zoomFactor >> dolly >> dollyUnit; @@ -173,8 +167,6 @@ void G4VisCommandDrawView::SetNewValue(G4UIcommand*, G4String newValue) { G4VisCommandDrawVolume::G4VisCommandDrawVolume() { G4bool omitable; fpCommand = new G4UIcmdWithAString("/vis/drawVolume", this); - fpCommand->SetGuidance("/vis/drawVolume []"); - fpCommand->SetGuidance("Default: world volume"); fpCommand->SetGuidance ("Creates a scene consisting of this physical volume and asks the" "\n current viewer to draw it."); @@ -212,12 +204,10 @@ void G4VisCommandDrawVolume::SetNewValue(G4UIcommand*, G4String newValue) { G4VisCommandOpen::G4VisCommandOpen() { G4bool omitable; fpCommand = new G4UIcommand("/vis/open", this); - fpCommand->SetGuidance("/vis/open [] []"); fpCommand->SetGuidance - ("For this graphics system, creates a scene handler ready for drawing."); - fpCommand->SetGuidance("The scene handler becomes current."); - fpCommand->SetGuidance("The scene handler name is auto-generated."); - fpCommand->SetGuidance("The 2nd parameter is the window size hint."); + ("Creates a scene handler ready for drawing."); + fpCommand->SetGuidance + ("The scene handler becomes current (the name is auto-generated)."); G4UIparameter* parameter; parameter = new G4UIparameter("graphics-system-name", 's', omitable = false); const G4GraphicsSystemList& gslist = @@ -237,7 +227,8 @@ G4VisCommandOpen::G4VisCommandOpen() { candidates = candidates.strip(); parameter->SetParameterCandidates(candidates); fpCommand->SetParameter(parameter); - parameter = new G4UIparameter("pixels", 'i', omitable = true); + parameter = new G4UIparameter("window-size-hint", 'i', omitable = true); + parameter->SetGuidance("pixels"); parameter->SetDefaultValue(600); fpCommand->SetParameter(parameter); } @@ -248,8 +239,7 @@ G4VisCommandOpen::~G4VisCommandOpen() { void G4VisCommandOpen::SetNewValue (G4UIcommand*, G4String newValue) { G4String systemName, windowSizeHint; - const char* t = newValue; - std::istrstream is((char*)t); + std::istrstream is(newValue); is >> systemName >> windowSizeHint; G4UImanager* UImanager = G4UImanager::GetUIpointer(); G4int keepVerbose = UImanager->GetVerboseLevel(); @@ -267,14 +257,32 @@ void G4VisCommandOpen::SetNewValue (G4UIcommand*, G4String newValue) { G4VisCommandSpecify::G4VisCommandSpecify() { G4bool omitable; - fpCommand = new G4UIcmdWithAString("/vis/specify", this); - fpCommand->SetGuidance("/vis/specify "); + fpCommand = new G4UIcommand("/vis/specify", this); + fpCommand->SetGuidance + ("Draws logical volume with Boolean components, voxels and readout geometry."); fpCommand->SetGuidance ("Creates a scene consisting of this logical volume and asks the" - "\n current viewer to draw it and the geometry to print the" - "\n specification."); + "\n current viewer to draw it to the specified depth of descent" + "\n showing boolean components (if any), voxels (if any)" + "\n and readout geometry (if any), under control of the appropriate flag."); + fpCommand->SetGuidance + ("Note: voxels are not constructed until start of run - /run/beamOn."); fpCommand->SetGuidance("The scene becomes current."); - fpCommand->SetParameterName("logical-volume-name", omitable = false); + G4UIparameter* parameter; + parameter = new G4UIparameter("logical-volume-name", 's', omitable = false); + fpCommand->SetParameter(parameter); + parameter = new G4UIparameter("depth-of-descent", 'i', omitable = true); + parameter->SetDefaultValue(1); + fpCommand->SetParameter(parameter); + parameter = new G4UIparameter("booleans-flag", 'b', omitable = true); + parameter->SetDefaultValue(true); + fpCommand->SetParameter(parameter); + parameter = new G4UIparameter("voxels-flag", 'b', omitable = true); + parameter->SetDefaultValue(true); + fpCommand->SetParameter(parameter); + parameter = new G4UIparameter("readout-flag", 'b', omitable = true); + parameter->SetDefaultValue(true); + fpCommand->SetParameter(parameter); } G4VisCommandSpecify::~G4VisCommandSpecify() { @@ -289,7 +297,7 @@ void G4VisCommandSpecify::SetNewValue(G4UIcommand*, G4String newValue) { if (keepVerbose >= 2 || verbosity >= G4VisManager::confirmations) newVerbose = 2; UImanager->SetVerboseLevel(newVerbose); - UImanager->ApplyCommand(G4String("/geometry/print " + newValue)); + // UImanager->ApplyCommand(G4String("/geometry/print " + newValue)); UImanager->ApplyCommand("/vis/scene/create"); UImanager->ApplyCommand(G4String("/vis/scene/add/logicalVolume " + newValue)); UImanager->ApplyCommand("/vis/sceneHandler/attach"); diff --git a/source/visualization/management/src/G4VisCommandsScene.cc b/source/visualization/management/src/G4VisCommandsScene.cc index af59352720..61f51ed121 100644 --- a/source/visualization/management/src/G4VisCommandsScene.cc +++ b/source/visualization/management/src/G4VisCommandsScene.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsScene.cc,v 1.37 2003/12/01 11:12:59 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisCommandsScene.cc,v 1.42 2005/06/07 17:00:59 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/scene commands - John Allison 9th August 1998 @@ -49,34 +49,16 @@ G4String G4VVisCommandScene::CurrentSceneName () { return currentSceneName; } -void G4VVisCommandScene::UpdateCandidateLists () { - - G4SceneList& sceneList = fpVisManager -> SetSceneList (); - G4int iScene, nScenes = sceneList.size (); - G4String nameList; - for (iScene = 0; iScene < nScenes; iScene++) { - nameList += sceneList [iScene] -> GetName () + " "; - } - nameList = nameList.strip (); - sceneNameCommandsIterator i; - for (i = sceneNameCommands.begin (); i != sceneNameCommands.end (); ++i) { - (*i)->GetParameter (0) -> SetParameterCandidates (nameList); - } -} - ////////////// /vis/scene/create /////////////////////////////////////// G4VisCommandSceneCreate::G4VisCommandSceneCreate (): fId (0) { - G4bool omitable, currentAsDefault; + G4bool omitable; fpCommand = new G4UIcmdWithAString ("/vis/scene/create", this); - fpCommand -> SetGuidance ("/vis/scene/create []"); - fpCommand -> SetGuidance ("Creates an empty scene."); - fpCommand -> SetGuidance ("Invents a name if not supplied."); - fpCommand -> SetGuidance ("This scene becomes current."); - fpCommand -> SetParameterName ("scene-name", - omitable = true, - currentAsDefault = true); - sceneNameCommands.push_back (fpCommand); + fpCommand -> SetGuidance + ("Creates an empty scene."); + fpCommand -> SetGuidance + ("Invents a name if not supplied. This scene becomes current."); + fpCommand -> SetParameterName ("scene-name", omitable = true); } G4VisCommandSceneCreate::~G4VisCommandSceneCreate () { @@ -91,7 +73,7 @@ G4String G4VisCommandSceneCreate::NextName () { } G4String G4VisCommandSceneCreate::GetCurrentValue (G4UIcommand*) { - return NextName (); + return ""; } void G4VisCommandSceneCreate::SetNewValue (G4UIcommand*, G4String newValue) { @@ -125,89 +107,24 @@ void G4VisCommandSceneCreate::SetNewValue (G4UIcommand*, G4String newValue) { if (verbosity >= G4VisManager::confirmations) { G4cout << "New empty scene \"" << newName << "\" created." << G4endl; } - - UpdateCandidateLists (); } UpdateVisManagerScene (newName); } -////////////// /vis/scene/edit /////////////////////////////////////// - -G4VisCommandSceneEdit::G4VisCommandSceneEdit () { - G4bool omitable, currentAsDefault; - fpCommand = new G4UIcmdWithAString ("/vis/scene/edit", this); - fpCommand -> SetGuidance ("/vis/scene/edit []"); - fpCommand -> SetGuidance ("Edits a scene (default current scene)."); - fpCommand -> SetGuidance ("This scene becomes current."); - fpCommand -> SetParameterName ("scene-name", - omitable = true, - currentAsDefault = true); - sceneNameCommands.push_back (fpCommand); -} - -G4VisCommandSceneEdit::~G4VisCommandSceneEdit () { - delete fpCommand; -} - -G4String G4VisCommandSceneEdit::GetCurrentValue (G4UIcommand*) { - return CurrentSceneName (); -} - -void G4VisCommandSceneEdit::SetNewValue (G4UIcommand*, G4String newValue) { - - G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); - - G4String sceneName; - std::istrstream is ((char*)newValue.data()); - is >> sceneName; - - G4SceneList& sceneList = fpVisManager -> SetSceneList (); - G4int iScene, nScenes = sceneList.size (); - G4Scene* pScene; - for (iScene = 0; iScene < nScenes; iScene++) { - pScene = sceneList [iScene]; - if (pScene -> GetName () == sceneName) break; - } - if (iScene >= nScenes) { - if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: G4VisCommandSceneEdit::SetNewValue: Scene \"" - << sceneName << "\" not found." - "\n /vis/scene/list to see scenes." - << G4endl; - } - return; - } - else { - if (verbosity >= G4VisManager::confirmations) { - G4cout << "Scene \"" << sceneName << "\" contains:" << G4endl; - G4String uiCommand ("/vis/scene/list "); - uiCommand += sceneName; - uiCommand += " confirmations"; - G4UImanager::GetUIpointer () -> ApplyCommand (uiCommand); - G4cout << - "BUT...YOU CAN DO NOTHING YET - /vis/scene/edit FACILITY IN PREPARATION." - << G4endl; - } - } - - UpdateVisManagerScene (sceneName); -} - ////////////// /vis/scene/endOfEventAction //////////////////////////// G4VisCommandSceneEndOfEventAction::G4VisCommandSceneEndOfEventAction () { G4bool omitable; fpCommand = new G4UIcmdWithAString ("/vis/scene/endOfEventAction", this); fpCommand -> SetGuidance - ("/vis/scene/endOfEventAction [accumulate|refresh]"); + ("Accumulate or refresh the viewer for each new event."); fpCommand -> SetGuidance - ("Requests viewer" - "\na) to accumulate hits, etc., event by event, or" - "\nb) to show them at end of event or, for direct-screen viewers," - "\n to refresh the screen just before drawing the next event." - "\n Detector remains or is redrawn."); - fpCommand -> SetParameterName ("action", - omitable = true); + ("\"accumulate\": viewer accumulates hits, etc., event by event, or"); + fpCommand -> SetGuidance + ("\"refresh\": viewer shows them at end of event or, for direct-screen" + "\n viewers, refreshes the screen just before drawing the next event."); + fpCommand -> SetGuidance ("The detector remains or is redrawn."); + fpCommand -> SetParameterName ("action", omitable = true); fpCommand -> SetCandidates ("accumulate refresh"); fpCommand -> SetDefaultValue ("refresh"); } @@ -226,7 +143,7 @@ void G4VisCommandSceneEndOfEventAction::SetNewValue (G4UIcommand*, G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4String action; - std::istrstream is ((char*)newValue.data()); + std::istrstream is (newValue); is >> action; G4Scene* pScene = fpVisManager->GetCurrentScene(); @@ -275,15 +192,15 @@ G4VisCommandSceneEndOfRunAction::G4VisCommandSceneEndOfRunAction () { G4bool omitable; fpCommand = new G4UIcmdWithAString ("/vis/scene/endOfRunAction", this); fpCommand -> SetGuidance - ("/vis/scene/endOfRunAction [accumulate|refresh]"); + ("Accumulate or refresh the viewer for each new run."); fpCommand -> SetGuidance - ("Requests viewer" - "\na) to accumulate hits, etc., run by run, or" - "\nb) to show them at end of run or, for direct-screen viewers," - "\n to refresh the screen just before drawing the next event." - "\n Detector remains or is redrawn."); - fpCommand -> SetParameterName ("action", - omitable = true); + ("\"accumulate\": viewer accumulates hits, etc., run by run, or"); + fpCommand -> SetGuidance + ("\"refresh\": viewer shows them at end of run or, for direct-screen" + "\n viewers, refreshes the screen just before drawing the first" + "\n event of the next run."); + fpCommand -> SetGuidance ("The detector remains or is redrawn."); + fpCommand -> SetParameterName ("action", omitable = true); fpCommand -> SetCandidates ("accumulate refresh"); fpCommand -> SetDefaultValue ("refresh"); } @@ -302,7 +219,7 @@ void G4VisCommandSceneEndOfRunAction::SetNewValue (G4UIcommand*, G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4String action; - std::istrstream is ((char*)newValue.data()); + std::istrstream is (newValue); is >> action; G4Scene* pScene = fpVisManager->GetCurrentScene(); @@ -350,23 +267,16 @@ void G4VisCommandSceneEndOfRunAction::SetNewValue (G4UIcommand*, G4VisCommandSceneList::G4VisCommandSceneList () { G4bool omitable; fpCommand = new G4UIcommand ("/vis/scene/list", this); - fpCommand -> SetGuidance ("/vis/scene/list [] []"); fpCommand -> SetGuidance ("Lists scene(s)."); - fpCommand -> SetGuidance (" default is \"all\""); fpCommand -> SetGuidance - ("See /vis/verbose for definition of verbosity."); + ("\"help /vis/verbose\" for definition of verbosity."); G4UIparameter* parameter; - parameter = new G4UIparameter ("scene-name", 's', - omitable = true); - parameter -> SetCurrentAsDefault (false); + parameter = new G4UIparameter ("scene-name", 's', omitable = true); parameter -> SetDefaultValue ("all"); fpCommand -> SetParameter (parameter); - parameter = new G4UIparameter ("verbosity", 's', - omitable = true); - parameter -> SetCurrentAsDefault (false); + parameter = new G4UIparameter ("verbosity", 's', omitable = true); parameter -> SetDefaultValue (0); fpCommand -> SetParameter (parameter); - sceneNameCommands.push_back (fpCommand); } G4VisCommandSceneList::~G4VisCommandSceneList () { @@ -379,10 +289,13 @@ G4String G4VisCommandSceneList::GetCurrentValue (G4UIcommand*) { void G4VisCommandSceneList::SetNewValue (G4UIcommand*, G4String newValue) { G4String name, verbosityString; - std::istrstream is ((char*)newValue.data()); + std::istrstream is (newValue); is >> name >> verbosityString; G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosityValue(verbosityString); + const G4Scene* currentScene = fpVisManager -> GetCurrentScene (); + G4String currentName; + if (currentScene) currentName = currentScene->GetName(); G4SceneList& sceneList = fpVisManager -> SetSceneList (); G4int iScene, nScenes = sceneList.size (); @@ -394,7 +307,13 @@ void G4VisCommandSceneList::SetNewValue (G4UIcommand*, G4String newValue) { if (name != iName) continue; } found = true; - G4cout << "Scene name: \"" << iName << "\""; + if (iName == currentName) { + G4cout << " (current)"; + } + else { + G4cout << " "; + } + G4cout << " scene \"" << iName << "\""; if (verbosity >= G4VisManager::confirmations) { G4int i; G4cout << "\n Run-duration models:"; @@ -436,18 +355,18 @@ G4VisCommandSceneNotifyHandlers::G4VisCommandSceneNotifyHandlers () { G4bool omitable; fpCommand = new G4UIcommand ("/vis/scene/notifyHandlers", this); fpCommand -> SetGuidance - ("/vis/scene/notifyHandlers [] [r[efresh]|f[lush]]"); + ("Notifies scene handlers and forces re-rendering."); fpCommand -> SetGuidance - ("Notifies scene handlers of possible changes of scene and forces a" - "reconstruction of any graphical databases."); - fpCommand -> SetGuidance (" default is current scene name."); - fpCommand -> SetGuidance - ("Clears and refreshes all viewers of current scene." + ("Notifies the handler(s) of the specified scene and forces a" + "\nreconstruction of any graphical databases." + "\nClears and refreshes all viewers of current scene." "\n The default action \"refresh\" does not issue \"update\" (see" "\n /vis/viewer/update)." "\nIf \"flush\" is specified, it issues an \"update\" as well as" - "\n \"refresh\". Useful for refreshing and initiating post-processing" + "\n \"refresh\" - useful for refreshing and initiating post-processing" "\n for graphics systems which need post-processing."); + fpCommand -> SetGuidance + ("The default for is the current scene name."); fpCommand -> SetGuidance ("This command does not change current scene, scene handler or viewer."); G4UIparameter* parameter; @@ -458,8 +377,8 @@ G4VisCommandSceneNotifyHandlers::G4VisCommandSceneNotifyHandlers () { parameter = new G4UIparameter ("refresh-flush", 's', omitable = true); parameter -> SetDefaultValue("refresh"); + parameter -> SetParameterCandidates("refresh flush"); fpCommand -> SetParameter (parameter); - sceneNameCommands.push_back (fpCommand); } G4VisCommandSceneNotifyHandlers::~G4VisCommandSceneNotifyHandlers () { @@ -476,7 +395,7 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4String sceneName, refresh_flush; - std::istrstream is ((char*)newValue.data()); + std::istrstream is (newValue); is >> sceneName >> refresh_flush; G4bool flush(false); if (refresh_flush(0) == 'f') flush = true; @@ -501,6 +420,16 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, return; } + // Store current context... + G4VSceneHandler* pCurrentSceneHandler = + fpVisManager -> GetCurrentSceneHandler(); + G4VViewer* pCurrentViewer = fpVisManager -> GetCurrentViewer(); + G4Scene* pCurrentScene = fpVisManager -> GetCurrentScene(); + G4VisManager::Verbosity currentVerbosity = fpVisManager -> GetVerbosity(); + + // Suppress messages during this process (only print errors)... + //fpVisManager -> SetVerboseLevel(G4VisManager::errors); + // For each scene handler, if it contains the scene, clear and // rebuild the graphical database, then for each viewer set (make // current), clear, (re)draw, and show. @@ -517,8 +446,12 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, const G4int nViewers = viewerList.size (); for (G4int iV = 0; iV < nViewers; iV++) { G4VViewer* aViewer = viewerList [iV]; - aSceneHandler -> SetCurrentViewer (aViewer); // Temporarily. - aViewer -> SetView (); // Temporarily switch contexts. + aSceneHandler -> SetCurrentViewer (aViewer); + // Ensure consistency of vis manager... + fpVisManager -> SetCurrentViewer(aViewer); + fpVisManager -> SetCurrentSceneHandler(aSceneHandler); + fpVisManager -> SetCurrentScene(aScene); + aViewer -> SetView (); //??aViewer -> ClearView (); aViewer -> DrawView (); if (flush) aViewer -> ShowView (); @@ -543,87 +476,26 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, } } } - // Reclaim original context... - G4VSceneHandler* pCurrentSceneHandler = - fpVisManager -> GetCurrentSceneHandler(); - G4VViewer* pCurrentViewer = fpVisManager -> GetCurrentViewer(); + + // Reclaim original context - but set viewer first, then scene + // handler, because the latter might have been created very recently + // and, not yet having a viewer, the current viewer will, + // temporarily, refer to another scene handler. SetCurrentViewer + // actually resets the scene handler, which is what we don't want, + // so we set it again on the next line... + fpVisManager -> SetCurrentViewer(pCurrentViewer); + fpVisManager -> SetCurrentSceneHandler(pCurrentSceneHandler); + fpVisManager -> SetCurrentScene(pCurrentScene); + fpVisManager -> SetVerboseLevel(currentVerbosity); + // Take care of special case of scene handler with no viewer yet. if (pCurrentSceneHandler) { - pCurrentSceneHandler -> SetCurrentViewer (pCurrentViewer); - if (pCurrentViewer && pCurrentSceneHandler->GetScene()) - pCurrentViewer -> SetView (); - } -} - -////////////// /vis/scene/remove /////////////////////////////////////// - -G4VisCommandSceneRemove::G4VisCommandSceneRemove () { - G4bool omitable, currentAsDefault; - fpCommand = new G4UIcmdWithAString ("/vis/scene/remove", this); - fpCommand -> SetGuidance ("/vis/scene/remove "); - fpCommand -> SetGuidance ("Removes scenes."); - fpCommand -> SetGuidance - ("/vis/scene/list to see possibilities."); - fpCommand -> SetParameterName ("scene-name", - omitable = false, - currentAsDefault = true); - sceneNameCommands.push_back (fpCommand); -} - -G4VisCommandSceneRemove::~G4VisCommandSceneRemove () { - delete fpCommand; -} - -G4String G4VisCommandSceneRemove::GetCurrentValue (G4UIcommand*) { - return CurrentSceneName (); -} - -void G4VisCommandSceneRemove::SetNewValue (G4UIcommand*, G4String newValue) { - - G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); - - G4String& removeName = newValue; - const G4String& currentSceneName = - fpVisManager -> GetCurrentScene () -> GetName (); - G4SceneList& sceneList = fpVisManager -> SetSceneList (); - G4SceneListIterator iScene; - for (iScene = sceneList.begin(); iScene != sceneList.end(); ++iScene) { - if ((*iScene) -> GetName () == removeName) break; - } - if (iScene != sceneList.end()) { - delete *iScene; - sceneList.erase (iScene); - if (verbosity >= G4VisManager::confirmations) { - G4cout << "Scene \"" << removeName << "\" removed." << G4endl; - } - UpdateCandidateLists (); - if (sceneList.empty ()) { - if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: No scenes left. Please create a new one." - << G4endl; + G4ViewerList& viewerList = pCurrentSceneHandler -> SetViewerList (); + const G4int nViewers = viewerList.size (); + if (nViewers) { + pCurrentSceneHandler -> SetCurrentViewer (pCurrentViewer); + if (pCurrentViewer && pCurrentSceneHandler->GetScene()) { + pCurrentViewer -> SetView (); } - UpdateVisManagerScene (); - } - else { - if (currentSceneName == removeName) { - if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: Current scene is now \"" - << fpVisManager -> GetCurrentScene () -> GetName () - << "\"" << G4endl; - } - UpdateVisManagerScene (sceneList [0] -> GetName ()); - } - else { - if (verbosity >= G4VisManager::confirmations) { - G4cout << "Current scene unchanged." << G4endl; - } - } - } - } - else { - if (verbosity >= G4VisManager::warnings) { - G4cout << "WARNING: Scene \"" << removeName - << "\" not found - \"/vis/scene/list\" to see possibilities." - << G4endl; } } } @@ -631,16 +503,13 @@ void G4VisCommandSceneRemove::SetNewValue (G4UIcommand*, G4String newValue) { ////////////// /vis/scene/select /////////////////////////////////////// G4VisCommandSceneSelect::G4VisCommandSceneSelect () { - G4bool omitable, currentAsDefault; + G4bool omitable; fpCommand = new G4UIcmdWithAString ("/vis/scene/select", this); - fpCommand -> SetGuidance ("/vis/scene/select []"); - fpCommand -> SetGuidance ("Selects current scene."); - fpCommand -> SetGuidance - ("Specify scene by name (\"/vis/scene/list\" to see possibilities)."); - fpCommand -> SetParameterName ("scene-name", - omitable = true, - currentAsDefault = true); - sceneNameCommands.push_back (fpCommand); + fpCommand -> SetGuidance ("Selects a scene"); + fpCommand -> SetGuidance + ("Makes the scene current. \"/vis/scene/list\" to see" + "\n possible scene names."); + fpCommand -> SetParameterName ("scene-name", omitable = false); } G4VisCommandSceneSelect::~G4VisCommandSceneSelect () { @@ -648,7 +517,7 @@ G4VisCommandSceneSelect::~G4VisCommandSceneSelect () { } G4String G4VisCommandSceneSelect::GetCurrentValue (G4UIcommand*) { - return CurrentSceneName (); + return ""; } void G4VisCommandSceneSelect::SetNewValue (G4UIcommand*, G4String newValue) { diff --git a/source/visualization/management/src/G4VisCommandsSceneAdd.cc b/source/visualization/management/src/G4VisCommandsSceneAdd.cc index 61962470be..cdf4104fc7 100644 --- a/source/visualization/management/src/G4VisCommandsSceneAdd.cc +++ b/source/visualization/management/src/G4VisCommandsSceneAdd.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneAdd.cc,v 1.42 2004/12/07 23:41:01 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VisCommandsSceneAdd.cc,v 1.56 2005/06/27 15:32:46 gunter Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/scene commands - John Allison 9th August 1998 #include "G4VisCommandsSceneAdd.hh" @@ -44,10 +44,16 @@ #include "G4ParticleDefinition.hh" #include "G4FlavoredParallelWorldModel.hh" #include "G4ApplicationState.hh" +#include "G4VUserVisAction.hh" +#include "G4CallbackModel.hh" +#include "G4UnionSolid.hh" +#include "G4SubtractionSolid.hh" +#include "G4Polyhedron.hh" #include "G4UIcommand.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithoutParameter.hh" +#include "G4Tokenizer.hh" #include "G4ios.hh" #include @@ -67,9 +73,7 @@ static void G4VisCommandsSceneAddUnsuccessful G4VisCommandSceneAddAxes::G4VisCommandSceneAddAxes () { G4bool omitable; fpCommand = new G4UIcommand ("/vis/scene/add/axes", this); - fpCommand -> SetGuidance - ("/vis/scene/add/axes [] [] [] [] []"); - fpCommand -> SetGuidance ("Default: 0 0 0 1 m"); + fpCommand -> SetGuidance ("Add axes."); fpCommand -> SetGuidance ("Draws axes at (x0, y0, z0) of given length."); G4UIparameter* parameter; @@ -87,7 +91,6 @@ G4VisCommandSceneAddAxes::G4VisCommandSceneAddAxes () { fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("unit", 's', omitable = true); parameter->SetDefaultValue ("m"); - parameter->SetGuidance ("mm, cm, or m."); fpCommand->SetParameter (parameter); } @@ -114,14 +117,20 @@ void G4VisCommandSceneAddAxes::SetNewValue (G4UIcommand*, G4String newValue) { G4String unitString; G4double x0, y0, z0, length; - const char* s = newValue; - std::istrstream is ((char*)s); + std::istrstream is (newValue); is >> x0 >> y0 >> z0 >> length >> unitString; G4double unit = G4UIcommand::ValueOf(unitString); x0 *= unit; y0 *= unit; z0 *= unit; length *= unit; G4VModel* model = new G4AxesModel(x0, y0, z0, length); + + model->SetExtent(G4VisExtent(x0 - length, x0 + length, + y0 - length, y0 + length, + z0 - length, z0 + length)); + // This extent gets "added" to existing scene extent in + // AddRunDurationModel below. + const G4String& currentSceneName = pScene -> GetName (); G4bool successful = pScene -> AddRunDurationModel (model, warn); if (successful) { @@ -140,12 +149,9 @@ void G4VisCommandSceneAddAxes::SetNewValue (G4UIcommand*, G4String newValue) { G4VisCommandSceneAddGhosts::G4VisCommandSceneAddGhosts () { G4bool omitable; fpCommand = new G4UIcmdWithAString ("/vis/scene/add/ghosts", this); - fpCommand -> SetGuidance - ("/vis/scene/add/ghosts []"); fpCommand -> SetGuidance ("Adds ghost volumes (G4FlavoredParallelWorld) to the current scene."); - fpCommand -> SetGuidance - ("Selects by particle (default = \"all\")."); + fpCommand -> SetGuidance ("Selects by particle."); fpCommand -> SetParameterName ("particle", omitable = true); fpCommand -> SetDefaultValue ("all"); } @@ -256,11 +262,10 @@ void G4VisCommandSceneAddGhosts::SetNewValue(G4UIcommand*, G4String newValue) { G4VisCommandSceneAddHits::G4VisCommandSceneAddHits () { fpCommand = new G4UIcmdWithoutParameter ("/vis/scene/add/hits", this); - fpCommand -> SetGuidance - ("Adds hits to current scene."); + fpCommand -> SetGuidance ("Adds hits to current scene."); fpCommand -> SetGuidance ("Hits are drawn at end of event when the scene in which" - " they are added is current."); + "\nthey are added is current."); } G4VisCommandSceneAddHits::~G4VisCommandSceneAddHits () { @@ -302,24 +307,27 @@ void G4VisCommandSceneAddHits::SetNewValue (G4UIcommand*, G4String) { G4VisCommandSceneAddLogicalVolume::G4VisCommandSceneAddLogicalVolume () { G4bool omitable; fpCommand = new G4UIcommand ("/vis/scene/add/logicalVolume", this); - fpCommand -> SetGuidance - ("/vis/scene/add/logicalVolume " - " []"); fpCommand -> SetGuidance ("Adds a logical volume to the current scene,"); fpCommand -> SetGuidance - (" showing voxels and boolean components (if any)."); - fpCommand -> SetGuidance - ("1st parameter: volume name."); - // fpCommand -> SetGuidance // Not implemented - should be in geom? - // (" \"list\" to list all volumes."); - fpCommand -> SetGuidance - ("2nd parameter: depth of descending geometry hierarchy (default 1)."); + ("Shows boolean components (if any), voxels (if any) and readout geometry" + "\n(if any). Note: voxels are not constructed until start of run -" + "\n \"/run/beamOn\"."); G4UIparameter* parameter; - parameter = new G4UIparameter ("volume", 's', omitable = false); + parameter = new G4UIparameter ("logical-volume-name", 's', omitable = false); fpCommand -> SetParameter (parameter); - parameter = new G4UIparameter ("depth", 'i', omitable = true); + parameter = new G4UIparameter ("depth-of-descent", 'i', omitable = true); + parameter -> SetGuidance ("Depth of descent of geometry hierarchy."); parameter -> SetDefaultValue (1); fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("booleans-flag", 'b', omitable = true); + parameter -> SetDefaultValue (true); + fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("voxels-flag", 'b', omitable = true); + parameter -> SetDefaultValue (true); + fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("readout-flag", 'b', omitable = true); + parameter -> SetDefaultValue (true); + fpCommand -> SetParameter (parameter); } G4VisCommandSceneAddLogicalVolume::~G4VisCommandSceneAddLogicalVolume () { @@ -346,9 +354,9 @@ void G4VisCommandSceneAddLogicalVolume::SetNewValue (G4UIcommand*, G4String name; G4int requestedDepthOfDescent; - const char* s = newValue; - std::istrstream is ((char*)s); - is >> name >> requestedDepthOfDescent; + G4bool booleans, voxels, readout; + std::istrstream is (newValue); + is >> name >> requestedDepthOfDescent >> booleans >> voxels >> readout; G4LogicalVolumeStore *pLVStore = G4LogicalVolumeStore::GetInstance(); int nLV = pLVStore -> size (); @@ -366,7 +374,8 @@ void G4VisCommandSceneAddLogicalVolume::SetNewValue (G4UIcommand*, return; } - G4VModel* model = new G4LogicalVolumeModel (pLV, requestedDepthOfDescent); + G4VModel* model = new G4LogicalVolumeModel + (pLV, requestedDepthOfDescent, booleans, voxels, readout); const G4String& currentSceneName = pScene -> GetName (); G4bool successful = pScene -> AddRunDurationModel (model, warn); if (successful) { @@ -374,7 +383,14 @@ void G4VisCommandSceneAddLogicalVolume::SetNewValue (G4UIcommand*, G4cout << "Logical volume \"" << pLV -> GetName () << " with requested depth of descent " << requestedDepthOfDescent - << ",\n has been added to scene \"" << currentSceneName << "\"." + << ",\n with"; + if (!booleans) G4cout << "out"; + G4cout << " boolean components, with"; + if (!voxels) G4cout << "out"; + G4cout << " voxels and with"; + if (!readout) G4cout << "out"; + G4cout << " readout geometry," + << "\n has been added to scene \"" << currentSceneName << "\"." << G4endl; } } @@ -383,15 +399,339 @@ void G4VisCommandSceneAddLogicalVolume::SetNewValue (G4UIcommand*, } +////////////// /vis/scene/add/logo ////////////////////////////////// + +G4VisCommandSceneAddLogo::G4VisCommandSceneAddLogo () { + G4bool omitable; + fpCommand = new G4UIcommand ("/vis/scene/add/logo", this); + fpCommand -> SetGuidance + ("Adds a G4 logo to the current scene."); + fpCommand -> SetGuidance + ("The placement, if automatic, is similar to that of scale -" + "\n\"help /vis/scene/add/scale\" for more information."); + G4UIparameter* parameter; + parameter = new G4UIparameter ("height", 'd', omitable = true); + parameter->SetDefaultValue (1.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("unit", 's', omitable = true); + parameter->SetDefaultValue ("m"); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("direction", 's', omitable = true); + parameter->SetGuidance ("'x', 'y' or 'z' - otherwise defaults to 'x'."); + parameter->SetDefaultValue ("x"); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("red", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("green", 'd', omitable = true); + parameter->SetDefaultValue (1.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("blue", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("auto|manual", 's', omitable = true); + parameter->SetGuidance + ("Automatic placement or manual placement at (xmid,ymid,zmid)."); + parameter->SetDefaultValue ("auto"); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("xmid", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("ymid", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("zmid", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("unit", 's', omitable = true); + parameter->SetDefaultValue ("m"); + fpCommand->SetParameter (parameter); +} + +G4VisCommandSceneAddLogo::~G4VisCommandSceneAddLogo () { + delete fpCommand; +} + +G4String G4VisCommandSceneAddLogo::GetCurrentValue (G4UIcommand*) { + return ""; +} + +void G4VisCommandSceneAddLogo::SetNewValue (G4UIcommand*, G4String newValue) { + + G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); + G4bool warn(verbosity >= G4VisManager::warnings); + + G4Scene* pScene = fpVisManager->GetCurrentScene(); + if (!pScene) { + if (verbosity >= G4VisManager::errors) { + G4cout << "ERROR: No current scene. Please create one." << G4endl; + } + return; + } + + G4double userHeight, red, green, blue, xmid, ymid, zmid; + G4String userHeightUnit, direction, auto_manual, positionUnit; + std::istrstream is (newValue); + is >> userHeight >> userHeightUnit >> direction + >> red >> green >> blue + >> auto_manual + >> xmid >> ymid >> zmid >> positionUnit; + + G4double height = userHeight * G4UIcommand::ValueOf(userHeightUnit); + G4double unit = G4UIcommand::ValueOf(positionUnit); + xmid *= unit; ymid *= unit; zmid *= unit; + + G4Scale::Direction logoDirection (G4Scale::x); + if (direction(0) == 'y') logoDirection = G4Scale::y; + if (direction(0) == 'z') logoDirection = G4Scale::z; + + G4bool autoPlacing (false); if (auto_manual(0) == 'a') autoPlacing = true; + // Parameters read and interpreted. + + // Useful constants, etc... + const G4double halfHeight(height / 2.); + const G4double comfort(0.01); // 0.15 seems too big. 0.05 might be better. + const G4double onePlusComfort(1. + comfort); + const G4double freeHeightFraction (1. + 2. * comfort); + + const G4VisExtent& sceneExtent = pScene->GetExtent(); // Existing extent. + const G4double xmin = sceneExtent.GetXmin(); + const G4double xmax = sceneExtent.GetXmax(); + const G4double ymin = sceneExtent.GetYmin(); + const G4double ymax = sceneExtent.GetYmax(); + const G4double zmin = sceneExtent.GetZmin(); + const G4double zmax = sceneExtent.GetZmax(); + + // Test existing extent and issue warnings... + G4bool worried(false); + if (sceneExtent.GetExtentRadius() == 0) { + worried = true; + if (verbosity >= G4VisManager::warnings) { + G4cout << + "WARNING: Existing scene does not yet have any extent." + "\n Maybe you have not yet added any geometrical object." + << G4endl; + } + } + // Test existing scene for room... + G4bool room (true); + switch (logoDirection) { + case G4Scale::x: + if (freeHeightFraction * (xmax - xmin) < height) room = false; break; + case G4Scale::y: + if (freeHeightFraction * (ymax - ymin) < height) room = false; break; + case G4Scale::z: + if (freeHeightFraction * (zmax - zmin) < height) room = false; break; + } + if (!room) { + worried = true; + if (verbosity >= G4VisManager::warnings) { + G4cout << + "WARNING: Not enough room in existing scene. Maybe logo is too large." + << G4endl; + } + } + if (worried) { + if (verbosity >= G4VisManager::warnings) { + G4cout << + "WARNING: The logo you have asked for is bigger than the existing" + "\n scene. Maybe you have added it too soon. It is recommended that" + "\n you add the logo last so that it can be correctly auto-positioned" + "\n so as not to be obscured by any existing object and so that the" + "\n view parameters can be correctly recalculated." + << G4endl; + } + } + + // Now figure out the extent... + // + // From the G4Scale.hh: + // + // This creates a representation of annotated line in the specified + // direction with tick marks at the end. If autoPlacing is true it + // is required to be centred at the front, right, bottom corner of + // the world space, comfortably outside the existing bounding + // box/sphere so that existing objects do not obscure it. Otherwise + // it is required to be drawn with mid-point at (xmid, ymid, zmid). + // + // The auto placing algorithm might be: + // x = xmin + (1 + comfort) * (xmax - xmin) + // y = ymin - comfort * (ymax - ymin) + // z = zmin + (1 + comfort) * (zmax - zmin) + // if direction == x then (x - length,y,z) to (x,y,z) + // if direction == y then (x,y,z) to (x,y + length,z) + // if direction == z then (x,y,z - length) to (x,y,z) + // + // End of clip from G4Scale.hh: + + G4double sxmid(xmid), symid(ymid), szmid(zmid); + if (autoPlacing) { + sxmid = xmin + onePlusComfort * (xmax - xmin); + symid = ymin - comfort * (ymax - ymin); + szmid = zmin + onePlusComfort * (zmax - zmin); + switch (logoDirection) { + case G4Scale::x: + sxmid -= halfHeight; + break; + case G4Scale::y: + symid += halfHeight; + break; + case G4Scale::z: + szmid -= halfHeight; + break; + } + } + G4double sxmin(sxmid), sxmax(sxmid); + G4double symin(symid), symax(symid); + G4double szmin(szmid), szmax(szmid); + G4Transform3D transform; + switch (logoDirection) { + case G4Scale::x: + sxmin = sxmid - halfHeight; + sxmax = sxmid + halfHeight; + break; + case G4Scale::y: + symin = symid - halfHeight; + symax = symid + halfHeight; + transform = G4RotateZ3D(halfpi); + break; + case G4Scale::z: + szmin = szmid - halfHeight; + szmax = szmid + halfHeight; + transform = G4RotateY3D(halfpi); + break; + } + transform = G4Translate3D(sxmid,symid,szmid) * transform; + + G4VisAttributes visAtts(G4Colour(red, green, blue)); + visAtts.SetForceSolid(true); // Always solid. + + G4Logo* logo = new G4Logo(height,visAtts,fpVisManager); + G4VModel* model = + new G4CallbackModel(logo); + model->SetGlobalDescription("G4Logo"); + model->SetGlobalTag("G4Logo"); + model->SetTransformation(transform); + // Note: it is the responsibility of the model to act upon this, but + // the extent is in local coordinates... + G4double& h = height; + G4double h2 = h/2.; + G4VisExtent extent(-h,h,-h2,h2,-h2,h2); + model->SetExtent(extent); + // This extent gets "added" to existing scene extent in + // AddRunDurationModel below. + const G4String& currentSceneName = pScene -> GetName (); + G4bool successful = pScene -> AddRunDurationModel (model, warn); + if (successful) { + if (verbosity >= G4VisManager::confirmations) { + G4cout << "G4 Logo of height " << userHeight << ' ' << userHeightUnit + << ", "; + switch (logoDirection) { + case G4Scale::x: + G4cout << 'x'; + break; + case G4Scale::y: + G4cout << 'y'; + break; + case G4Scale::z: + G4cout << 'z'; + break; + } + G4cout << "-direction, added to scene \"" << currentSceneName << "\""; + if (verbosity >= G4VisManager::parameters) { + G4cout << "\n with extent " << extent + << "\n at " << transform.getRotation() + << transform.getTranslation(); + } + G4cout << G4endl; + } + } + else G4VisCommandsSceneAddUnsuccessful(verbosity); + UpdateVisManagerScene (currentSceneName); +} + +G4VisCommandSceneAddLogo::G4Logo::G4Logo +(G4double height, const G4VisAttributes& visAtts, G4VisManager* pVisManager): + fHeight(height), + fVisAtts(visAtts), + fpVisManager(pVisManager) + { + const G4double& h = height; + const G4double h2 = 0.5 * h; // Half height. + const G4double ri = 0.25 * h; // Inner radius. + const G4double ro = 0.5 * h; // Outer radius. + const G4double ro2 = 0.5 * ro; // Half outer radius. + const G4double w = ro - ri; // Width. + const G4double w2 = 0.5 * w; // Half width. + const G4double d2 = 0.2 * h; // Half depth. + const G4double f1 = 0.05 * h; // left edge of stem of "4". + const G4double f2 = -0.3 * h; // bottom edge of cross of "4". + const G4double e = 1.e-4 * h; // epsilon. + const G4double xt = f1, yt = h2; // Top of slope. + const G4double xb = -h2, yb = f2 + w; // Bottom of slope. + const G4double dx = xt - xb, dy = yt - yb; + const G4double angle = std::atan2(dy,dx); + G4RotationMatrix rm; + rm.rotateZ(angle*rad); + const G4double d = std::sqrt(dx * dx + dy * dy); + const G4double s = h; // Half height of square subtractor + const G4double y8 = s; // Choose y of subtractor for outer slope. + const G4double x8 = ((-s * d - dx * (yt - y8)) / dy) + xt; + G4double y9 = s; // Choose y of subtractor for inner slope. + G4double x9 = ((-(s - w) * d - dx * (yt - y8)) / dy) + xt; + // But to get inner, we make a triangle translated by... + const G4double xtr = s - f1, ytr = -s - f2 -w; + x9 += xtr; y9 += ytr; + + // G... + G4Tubs tG("tG",ri,ro,d2,0.15*pi,1.85*pi); + G4Box bG("bG",w2,ro2,d2); + G4UnionSolid logoG("logoG",&tG,&bG,G4Translate3D(ri+w2,-ro2,0.)); + fpG = logoG.CreatePolyhedron(); + fpG->SetVisAttributes(&fVisAtts); + fpG->Transform(G4Translate3D(-0.55*h,0.,0.)); + + // 4... + G4Box b1("b1",h2,h2,d2); + G4Box bS("bS",s,s,d2+e); // Subtractor. + G4Box bS2("bS2",s,s,d2+2.*e); // 2nd Subtractor. + G4SubtractionSolid s1("s1",&b1,&bS,G4Translate3D(f1-s,f2-s,0.)); + G4SubtractionSolid s2("s2",&s1,&bS,G4Translate3D(f1+s+w,f2-s,0.)); + G4SubtractionSolid s3("s3",&s2,&bS,G4Translate3D(f1+s+w,f2+s+w,0.)); + G4SubtractionSolid s4 + ("s4",&s3,&bS,G4Transform3D(rm,G4ThreeVector(x8,y8,0.))); + G4SubtractionSolid s5 // Triangular hole. + ("s5",&bS,&bS2,G4Transform3D(rm,G4ThreeVector(x9,y9,0.))); + G4SubtractionSolid logo4("logo4",&s4,&s5,G4Translate3D(-xtr,-ytr,0.)); + fp4 = logo4.CreatePolyhedron(); + /* Experiment with creating own polyhedron... + int nNodes = 4; + int nFaces = 4; + double xyz[][3] = {{0,0,0},{1*m,0,0},{0,1*m,0},{0,0,1*m}}; + int faces[][4] = {{1,3,2,0},{1,2,4,0},{1,4,3,0},{2,3,4,0}}; + fp4 = new G4Polyhedron(); + fp4->createPolyhedron(nNodes,nFaces,xyz,faces); + */ + fp4->SetVisAttributes(&fVisAtts); + fp4->Transform(G4Translate3D(0.55*h,0.,0.)); +} + +G4VisCommandSceneAddLogo::G4Logo::~G4Logo() { + delete fpG; + delete fp4; +} + +void G4VisCommandSceneAddLogo::G4Logo::operator() + (const G4Transform3D& transform) { + fpVisManager->Draw(*fpG,transform); + fpVisManager->Draw(*fp4,transform); +} + ////////////// /vis/scene/add/scale ////////////////////////////////// G4VisCommandSceneAddScale::G4VisCommandSceneAddScale () { G4bool omitable; fpCommand = new G4UIcommand ("/vis/scene/add/scale", this); - fpCommand -> SetGuidance - ("/vis/scene/add/scale [ ] [x|y|z] [] [] [] [auto|manual] [ ]"); - fpCommand -> SetGuidance - ("Defaults: 1 m x 1 0 0 auto 0 0 0 m"); fpCommand -> SetGuidance ("Adds an annotated scale line to the current scene."); fpCommand -> SetGuidance (G4Scale::GetGuidanceString()); @@ -403,6 +743,7 @@ G4VisCommandSceneAddScale::G4VisCommandSceneAddScale () { parameter->SetDefaultValue ("m"); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("direction", 's', omitable = true); + parameter->SetGuidance ("'x', 'y' or 'z' - otherwise defaults to 'x'."); parameter->SetDefaultValue ("x"); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("red", 'd', omitable = true); @@ -415,6 +756,8 @@ G4VisCommandSceneAddScale::G4VisCommandSceneAddScale () { parameter->SetDefaultValue (0.); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("auto|manual", 's', omitable = true); + parameter->SetGuidance + ("Automatic placement or manual placement at (xmid,ymid,zmid)."); parameter->SetDefaultValue ("auto"); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("xmid", 'd', omitable = true); @@ -478,7 +821,7 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { // Useful constants, etc... const G4double halfLength(length / 2.); - const G4double comfort(0.15); + const G4double comfort(0.01); // 0.15 seems too big. 0.05 might be better. const G4double onePlusComfort(1. + comfort); const G4double freeLengthFraction (1. + 2. * comfort); @@ -531,9 +874,10 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { } } - // Let's go ahead a construct a scale and a scale model... + // Let's go ahead a construct a scale and a scale model. Since the + // placing is done here, this G4Scale is *not* auto-placed... G4Scale scale(length, annotation, scaleDirection, - autoPlacing, xmid, ymid, zmid); + false, xmid, ymid, zmid); G4VisAttributes* pVisAttr = new G4VisAttributes(G4Colour(red, green, blue)); // Created of the heap because it needs a long lifetime. This is a // mess. The model determines the life but the vis atttributes are @@ -568,6 +912,7 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { // G4VSceneHandler::AddPrimitive(const G4Scale&) - simply has to // ensure it's within the new extent. // + G4double sxmid(xmid), symid(ymid), szmid(zmid); if (autoPlacing) { sxmid = xmin + onePlusComfort * (xmax - xmin); @@ -588,21 +933,34 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { G4double sxmin(sxmid), sxmax(sxmid); G4double symin(symid), symax(symid); G4double szmin(szmid), szmax(szmid); + G4Transform3D transform; + G4VisExtent scaleExtent; switch (scaleDirection) { case G4Scale::x: sxmin = sxmid - halfLength; sxmax = sxmid + halfLength; + scaleExtent = G4VisExtent(-halfLength,halfLength,0,0,0,0); break; case G4Scale::y: symin = symid - halfLength; symax = symid + halfLength; + transform = G4RotateZ3D(halfpi); + scaleExtent = G4VisExtent(0,0,-halfLength,halfLength,0,0); break; case G4Scale::z: szmin = szmid - halfLength; szmax = szmid + halfLength; + transform = G4RotateY3D(halfpi); + scaleExtent = G4VisExtent(0,0,0,0,-halfLength,halfLength); break; } - G4VisExtent scaleExtent(sxmin, sxmax, symin, symax, szmin, szmax); + transform = G4Translate3D(sxmid,symid,szmid) * transform; + ////////// G4VisExtent scaleExtent(sxmin, sxmax, symin, symax, szmin, szmax); + + + model->SetTransformation(transform); + // Note: it is the responsibility of the model to act upon this, but + // the extent is in local coordinates... model->SetExtent(scaleExtent); // This extent gets "added" to existing scene extent in // AddRunDurationModel below. @@ -612,8 +970,13 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { if (successful) { if (verbosity >= G4VisManager::confirmations) { G4cout << "Scale of " << annotation - << " has been added to scene \"" << currentSceneName << "\"." - << G4endl; + << " added to scene \"" << currentSceneName << "\"."; + if (verbosity >= G4VisManager::parameters) { + G4cout << "\n with extent " << scaleExtent + << "\n at " << transform.getRotation() + << transform.getTranslation(); + } + G4cout << G4endl; } } else G4VisCommandsSceneAddUnsuccessful(verbosity); @@ -627,34 +990,38 @@ G4VisCommandSceneAddText::G4VisCommandSceneAddText () { G4bool omitable; fpCommand = new G4UIcommand ("/vis/scene/add/text", this); fpCommand -> SetGuidance - ("Adds text at (x*unit, y*unit, z*unit) with font_size x_offset y_offset."); - fpCommand -> SetGuidance - ("Font size and offsets in pixels."); + ("Adds text to current scene."); G4UIparameter* parameter; parameter = new G4UIparameter ("x", 'd', omitable = true); - parameter->SetDefaultValue (0.); + parameter->SetDefaultValue (0); + parameter->SetGuidance ("x"); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("y", 'd', omitable = true); - parameter->SetDefaultValue (0.); + parameter->SetDefaultValue (0); + parameter->SetGuidance ("y"); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("z", 'd', omitable = true); - parameter->SetDefaultValue (0.); + parameter->SetDefaultValue (0); + parameter->SetGuidance ("z"); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("unit", 's', omitable = true); - parameter->SetDefaultValue ("mm"); - parameter->SetGuidance ("mm, cm, or m."); + parameter->SetDefaultValue ("m"); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("font_size", 'd', omitable = true); - parameter->SetDefaultValue (0.); + parameter->SetDefaultValue (12); + parameter->SetGuidance ("pixels"); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("x_offset", 'd', omitable = true); - parameter->SetDefaultValue (0.); + parameter->SetDefaultValue (0); + parameter->SetGuidance ("pixels"); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("y_offset", 'd', omitable = true); - parameter->SetDefaultValue (0.); + parameter->SetDefaultValue (0); + parameter->SetGuidance ("pixels"); fpCommand->SetParameter (parameter); parameter = new G4UIparameter ("text", 's', omitable = true); - parameter->SetDefaultValue ("text"); + parameter->SetGuidance ("The rest of the line is text."); + parameter->SetDefaultValue ("Hello G4"); fpCommand->SetParameter (parameter); } @@ -679,11 +1046,15 @@ void G4VisCommandSceneAddText::SetNewValue (G4UIcommand*, G4String newValue) { return; } - G4String text, unitString; - G4double x, y, z, font_size, x_offset, y_offset; - const char* s = newValue; - std::istrstream is ((char*)s); - is >> x >> y >> z >> unitString >> font_size >> x_offset >> y_offset >> text; + G4Tokenizer next(newValue); + G4double x = StoD(next()); + G4double y = StoD(next()); + G4double z = StoD(next()); + G4String unitString = next(); + G4double font_size = StoD(next()); + G4double x_offset = StoD(next()); + G4double y_offset = StoD(next()); + G4String text = next("\n"); G4double unit = G4UIcommand::ValueOf(unitString); x *= unit; y *= unit; z *= unit; @@ -712,20 +1083,17 @@ G4VisCommandSceneAddTrajectories::G4VisCommandSceneAddTrajectories () { G4bool omitable; fpCommand = new G4UIcmdWithAnInteger ("/vis/scene/add/trajectories", this); - fpCommand -> SetGuidance - ("/vis/scene/add/trajectories [drawing-mode]"); - fpCommand -> SetGuidance - ("Default integer parameter: 0"); fpCommand -> SetGuidance ("Adds trajectories to current scene."); fpCommand -> SetGuidance ("Causes trajectories, if any, to be drawn at the end of processiing an" "\nevent. The drawing mode is an integer that is passed to the" "\nDrawTrajectory method. The default implementation in G4VTrajectory," - "\nif drawing-mode > 0, draws the trajectory as a polyline and, if" - "\ndrawing-mode != 0, draws markers of screen size std::abs(drawing-mode)/1000" - "\nin pixels at each step and auxiliary point, if any. So drawing-mode" - "\n== 5000 is a good choice." + "\nif drawing-mode >= 0, draws the trajectory as a polyline (blue for" + "\npositive, red for negative, green for neutral) and, if" + "\ndrawing-mode != 0, draws markers of screen size" + "\nstd::abs(drawing-mode)/1000 pixels at each step and auxiliary point," + "\nif any. So drawing-mode = 5000 is a good choice." "\nEnable storing with \"/tracking/storeTrajectory 1\"." "\nSee also \"/vis/scene/endOfEventAction\"."); fpCommand -> SetParameterName ("drawing-mode", omitable = true); @@ -755,8 +1123,7 @@ void G4VisCommandSceneAddTrajectories::SetNewValue (G4UIcommand*, } G4int drawingMode; - const char* s = newValue; - std::istrstream is ((char*)s); + std::istrstream is (newValue); is >> drawingMode; G4TrajectoriesModel* model = new G4TrajectoriesModel(drawingMode); const G4String& currentSceneName = pScene -> GetName (); @@ -770,35 +1137,173 @@ void G4VisCommandSceneAddTrajectories::SetNewValue (G4UIcommand*, } } +////////////// /vis/scene/add/userAction /////////////////////////////////// + +G4VisCommandSceneAddUserAction::G4VisCommandSceneAddUserAction () { + G4bool omitable; + fpCommand = new G4UIcommand("/vis/scene/add/userAction",this); + fpCommand -> SetGuidance + ("Add Vis User Action, if any, to current scene."); + fpCommand -> SetGuidance + ("Optional arguments define the extent of the callback drawing. You may" + "\nnot need this if the extent has been defined in the original" + "\nSetUserAction or is defined by other components of the scene. But if" + "\nthe user action is the only component of the scene, you will certainly" + "\nneed to set the extent either in SetUserAction or here. A scene must" + "\nhave an extent one way or another so that the viewer can calculate" + "\nhow to point the camera."); + G4UIparameter* parameter; + parameter = new G4UIparameter ("xmin", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("xmax", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("ymin", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("ymax", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("zmin", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("zmax", 'd', omitable = true); + parameter->SetDefaultValue (0.); + fpCommand->SetParameter (parameter); + parameter = new G4UIparameter ("unit", 's', omitable = true); + parameter->SetDefaultValue ("cm"); + fpCommand->SetParameter (parameter); +} + +G4VisCommandSceneAddUserAction::~G4VisCommandSceneAddUserAction () { + delete fpCommand; +} + +G4String G4VisCommandSceneAddUserAction::GetCurrentValue (G4UIcommand*) { + return ""; +} + +void G4VisCommandSceneAddUserAction::SetNewValue (G4UIcommand*, + G4String newValue) { + + G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); + G4bool warn(verbosity >= G4VisManager::warnings); + + G4VUserVisAction* visAction = fpVisManager->GetUserAction(); + if (!visAction) { + if (warn) { + G4cout << "WARNING: No User Vis Action registered." << G4endl; + } + return; + } + + G4Scene* pScene = fpVisManager->GetCurrentScene(); + if (!pScene) { + if (verbosity >= G4VisManager::errors) { + G4cout << "ERROR: No current scene. Please create one." << G4endl; + } + return; + } + + G4String unitString; + G4double xmin, xmax, ymin, ymax, zmin, zmax; + std::istrstream is (newValue); + is >> xmin >> xmax >> ymin >> ymax >> zmin >> zmax >> unitString; + G4double unit = G4UIcommand::ValueOf(unitString); + xmin *= unit; xmax *= unit; + ymin *= unit; ymax *= unit; + zmin *= unit; zmax *= unit; + G4VisExtent commandExtent(xmin,xmax,ymin,ymax,zmin,zmax); + + G4VisExtent extent; + if (commandExtent.GetExtentRadius() > 0.) { + extent = commandExtent; + } else if (fpVisManager->GetUserActionExtent().GetExtentRadius() > 0.) { + extent = fpVisManager->GetUserActionExtent(); + } else { + if (warn) { + G4cout << "WARNING: User Vis Action extent is null." << G4endl; + } + } + + G4VModel* model = new G4CallbackModel(visAction); + model->SetGlobalDescription("Vis User Action"); + model->SetGlobalTag("Vis User Action"); + model->SetExtent(extent); + const G4String& currentSceneName = pScene -> GetName (); + pScene -> AddRunDurationModel (model, warn); + if (verbosity >= G4VisManager::confirmations) { + G4cout << "User Vis Action added to scene \"" + << currentSceneName << "\""; + if (verbosity >= G4VisManager::parameters) { + G4cout << "\n with extent " << extent; + } + G4cout << G4endl; + } +} + ////////////// /vis/scene/add/volume /////////////////////////////////////// G4VisCommandSceneAddVolume::G4VisCommandSceneAddVolume () { G4bool omitable; fpCommand = new G4UIcommand ("/vis/scene/add/volume", this); + fpCommand -> SetGuidance + ("Adds a physical volume to current scene, with optional clipping volume."); + fpCommand -> SetGuidance + ("If physical-volume-name is \"world\" (the default), the top of the" + "\ntracking tree is used (GetNavigatorForTracking()->GetWorldVolume())." + "\nOtherwise a search of the tracking tree is made, taking the first" + "\nmatching occurence only. To see a representation of the geometry" + "\nhierarchy of the tracking tree, try \"/vis/drawTree\" or one of the" + "\ndriver/browser combinations that have the required functionality," + "\ne.g., HepRepFile/XML with the WIRED3/4 browser."); fpCommand -> SetGuidance - ("/vis/scene/add/volume [] [] []"); - fpCommand -> SetGuidance ("Adds a physical volume to the current scene."); - fpCommand -> SetGuidance ("Note: adds first occurence only."); - fpCommand -> SetGuidance - ("1st parameter: volume name (default \"world\")."); - // fpCommand -> SetGuidance // Not implemented - should be in geom? - // (" \"list\" to list all volumes."); - fpCommand -> SetGuidance - ("2nd parameter: copy number (default -1)." - "\n If negative, first occurrence of physical-volume-name is selected."); - fpCommand -> SetGuidance - ("3rd parameter: depth of descending geometry hierarchy" - " (default G4Scene::UNLIMITED (-1))."); + ("If clip-volume-type is specified, the subsequent parameters are used to" + "\nto define a clipping volume. For example," + "\n\"vis/scene/add/volume ! ! ! box km 0 1 0 1 0 1\" will draw the world" + "\nwith the positive octant cut away."); G4UIparameter* parameter; - parameter = new G4UIparameter ("volume", 's', omitable = true); + parameter = new G4UIparameter ("physical-volume-name", 's', omitable = true); parameter -> SetDefaultValue ("world"); fpCommand -> SetParameter (parameter); parameter = new G4UIparameter ("copy-no", 'i', omitable = true); + parameter -> SetGuidance + ("If negative, matches any copy no. First name match is taken."); parameter -> SetDefaultValue (-1); fpCommand -> SetParameter (parameter); - parameter = new G4UIparameter ("depth", 'i', omitable = true); + parameter = new G4UIparameter ("depth-of-descent", 'i', omitable = true); + parameter -> SetGuidance + ("Depth of descent of geometry hierarchy. Default = unlimited depth."); parameter -> SetDefaultValue (G4Scene::UNLIMITED); fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("clip-volume-type", 's', omitable = true); + parameter -> SetDefaultValue ("none"); + parameter -> SetGuidance + ("For \"box\", the parameters are xmin,xmax,ymin,ymax,zmin,zmax." + "\n Only \"box\" is programmed at present."); + fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("parameter-unit", 's', omitable = true); + parameter -> SetDefaultValue ("m"); + fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("parameter-1", 'd', omitable = true); + parameter -> SetDefaultValue (0.); + fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("parameter-2", 'd', omitable = true); + parameter -> SetDefaultValue (0.); + fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("parameter-3", 'd', omitable = true); + parameter -> SetDefaultValue (0.); + fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("parameter-4", 'd', omitable = true); + parameter -> SetDefaultValue (0.); + fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("parameter-5", 'd', omitable = true); + parameter -> SetDefaultValue (0.); + fpCommand -> SetParameter (parameter); + parameter = new G4UIparameter ("parameter-6", 'd', omitable = true); + parameter -> SetDefaultValue (0.); + fpCommand -> SetParameter (parameter); } G4VisCommandSceneAddVolume::~G4VisCommandSceneAddVolume () { @@ -823,12 +1328,17 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, return; } - G4String name; - G4int copyNo; - G4int requestedDepthOfDescent; - const char* s = newValue; - std::istrstream is ((char*)s); - is >> name >> copyNo >> requestedDepthOfDescent; + G4String name, clipVolumeType, parameterUnit; + G4int copyNo, requestedDepthOfDescent; + G4double param1, param2, param3, param4, param5, param6; + std::istrstream is (newValue); + is >> name >> copyNo >> requestedDepthOfDescent + >> clipVolumeType >> parameterUnit + >> param1 >> param2 >> param3 >> param4 >> param5 >> param6; + G4double unit = G4UIcommand::ValueOf(parameterUnit); + param1 *= unit; param2 *= unit; param3 *= unit; + param4 *= unit; param5 *= unit; param6 *= unit; + G4VPhysicalVolume* world = G4TransportationManager::GetTransportationManager () -> GetNavigatorForTracking () -> GetWorldVolume (); @@ -886,6 +1396,20 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, } } + if (clipVolumeType == "box") { + const G4double dX = (param2 - param1) / 2.; + const G4double dY = (param4 - param3) / 2.; + const G4double dZ = (param6 - param5) / 2.; + const G4double x0 = (param2 + param1) / 2.; + const G4double y0 = (param4 + param3) / 2.; + const G4double z0 = (param6 + param5) / 2.; + G4Box clippingBox("_clipping_box",dX,dY,dZ); + G4Polyhedron* clippingPolyhedron = new G4PolyhedronBox(dX,dY,dZ); + // Created on the heap and left there. + clippingPolyhedron->Transform(G4Translate3D(x0,y0,z0)); + model->SetClippingPolyhedron(clippingPolyhedron); + } // If any other shape consider NumberOfRotationSides!!!!!!!!!!! + const G4String& currentSceneName = pScene -> GetName (); G4bool successful = pScene -> AddRunDurationModel (model, warn); if (successful) { @@ -897,15 +1421,14 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, G4cout << ", copy no. " << copyNo << ","; } G4cout << " found at depth " << foundDepth - << ",\n with "; + << ",\n with a requested depth of further descent of "; if (requestedDepthOfDescent < 0) { - G4cout << "unlimited (-1)"; + G4cout << "<0 (unlimited)"; } else { G4cout << requestedDepthOfDescent; } - G4cout << " further requested depth of descent" - << ",\n has been added to scene \"" << currentSceneName << "\"." + G4cout << ",\n has been added to scene \"" << currentSceneName << "\"." << G4endl; } } diff --git a/source/visualization/management/src/G4VisCommandsSceneHandler.cc b/source/visualization/management/src/G4VisCommandsSceneHandler.cc index 6e5d82dbff..1aa0b6316a 100644 --- a/source/visualization/management/src/G4VisCommandsSceneHandler.cc +++ b/source/visualization/management/src/G4VisCommandsSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneHandler.cc,v 1.24 2003/06/16 17:14:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisCommandsSceneHandler.cc,v 1.27 2005/03/10 19:33:03 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/sceneHandler commands - John Allison 10th October 1998 @@ -37,48 +37,18 @@ #include "G4ios.hh" #include -G4VVisCommandSceneHandler::G4VVisCommandSceneHandler () {} - -G4VVisCommandSceneHandler::~G4VVisCommandSceneHandler () {} - -void G4VVisCommandSceneHandler::UpdateCandidateLists () { - - const G4SceneHandlerList& list = - fpVisManager -> GetAvailableSceneHandlers (); - - G4String sceneHandlerNameList; - for (size_t iScene = 0; iScene < list.size (); iScene++) { - G4VSceneHandler* sceneHandler = list [iScene]; - sceneHandlerNameList += sceneHandler -> GetName () + " "; - } - sceneHandlerNameList = sceneHandlerNameList.strip (); - sceneHandlerNameCommandsIterator i; - for (i = sceneHandlerNameCommands.begin (); - i != sceneHandlerNameCommands.end (); ++i) { - G4String candidates = sceneHandlerNameList; - if ((*i) -> GetCommandPath () == G4String ("/vis/sceneHandler/list")) - candidates += " all"; - (*i) -> GetParameter (0) -> SetParameterCandidates (candidates); - } -} - ////////////// /vis/sceneHandler/attach /////////////////////////////////////// G4VisCommandSceneHandlerAttach::G4VisCommandSceneHandlerAttach () { G4bool omitable, currentAsDefault; fpCommand = new G4UIcmdWithAString ("/vis/sceneHandler/attach", this); - fpCommand -> SetGuidance - ("/vis/sceneHandler/attach []"); fpCommand -> SetGuidance ("Attaches scene to current scene handler."); fpCommand -> SetGuidance - ("If scene-name is omitted, current scene is attached."); - fpCommand -> SetGuidance - ("To see scenes and scene handlers, use \"/vis/scene/list\"" - "\n and \"/vis/sceneHandler/list\""); + ("If scene-name is omitted, current scene is attached. To see scenes and" + "\nscene handlers, use \"/vis/scene/list\" and \"/vis/sceneHandler/list\""); fpCommand -> SetParameterName ("scene-name", omitable = true, currentAsDefault = true); - sceneNameCommands.push_back (fpCommand); } G4VisCommandSceneHandlerAttach::~G4VisCommandSceneHandlerAttach () { @@ -157,26 +127,15 @@ void G4VisCommandSceneHandlerAttach::SetNewValue (G4UIcommand*, G4VisCommandSceneHandlerCreate::G4VisCommandSceneHandlerCreate (): fId (0) { G4bool omitable; fpCommand = new G4UIcommand ("/vis/sceneHandler/create", this); - fpCommand -> SetGuidance - ("/vis/sceneHandler/create"); - fpCommand -> SetGuidance - (" [] []"); fpCommand -> SetGuidance ("Creates an scene handler for a specific graphics system."); fpCommand -> SetGuidance - ("Attaches current scene, if any. You can change attached scenes with"); - fpCommand -> SetGuidance - (" /vis/sceneHandler/attach []."); - fpCommand -> SetGuidance - ("Default graphics system is current graphics system."); - fpCommand -> SetGuidance - ("Invents a scene handler name if not supplied."); - fpCommand -> SetGuidance - ("This scene handler becomes current."); + ("Attaches current scene, if any. (You can change attached scenes with" + "\n\"/vis/sceneHandler/attach\".) Invents a scene handler name if not" + "\nsupplied. This scene handler becomes current."); G4UIparameter* parameter; parameter = new G4UIparameter ("graphics-system-name", - 's', omitable = true); - parameter -> SetDefaultValue("error"); + 's', omitable = false); const G4GraphicsSystemList& gslist = fpVisManager -> GetAvailableGraphicsSystems (); G4String candidates; @@ -239,7 +198,7 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand*, G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4String graphicsSystem, newName; - std::istrstream is ((char*)newValue.data()); + std::istrstream is (newValue); is >> graphicsSystem >> newName; const G4GraphicsSystemList& gsl = @@ -314,8 +273,6 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand*, // Attach scene. if (fpVisManager -> GetCurrentScene ()) G4UImanager::GetUIpointer () -> ApplyCommand ("/vis/sceneHandler/attach"); - - UpdateCandidateLists (); } ////////////// /vis/sceneHandler/list /////////////////////////////////////// @@ -323,24 +280,16 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand*, G4VisCommandSceneHandlerList::G4VisCommandSceneHandlerList () { G4bool omitable; fpCommand = new G4UIcommand ("/vis/sceneHandler/list", this); - fpCommand -> SetGuidance - ("/vis/sceneHandler/list [] []"); fpCommand -> SetGuidance ("Lists scene handler(s)."); - fpCommand -> SetGuidance (" default is \"all\""); fpCommand -> SetGuidance - ("See /vis/verbose for definition of verbosity."); + ("\"help /vis/verbose\" for definition of verbosity."); G4UIparameter* parameter; - parameter = new G4UIparameter("scene-handler-name", 's', - omitable = true); - parameter -> SetCurrentAsDefault (false); + parameter = new G4UIparameter("scene-handler-name", 's', omitable = true); parameter -> SetDefaultValue ("all"); fpCommand -> SetParameter (parameter); - parameter = new G4UIparameter ("verbosity", 's', - omitable = true); - parameter -> SetCurrentAsDefault (false); + parameter = new G4UIparameter ("verbosity", 's', omitable = true); parameter -> SetDefaultValue (0); fpCommand -> SetParameter (parameter); - sceneHandlerNameCommands.push_back (fpCommand); } G4VisCommandSceneHandlerList::~G4VisCommandSceneHandlerList () { @@ -354,19 +303,30 @@ G4String G4VisCommandSceneHandlerList::GetCurrentValue (G4UIcommand*) { void G4VisCommandSceneHandlerList::SetNewValue (G4UIcommand*, G4String newValue) { G4String name, verbosityString; - std::istrstream is ((char*)newValue.data()); + std::istrstream is (newValue); is >> name >> verbosityString; G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosityValue(verbosityString); + const G4VSceneHandler* currentSceneHandler = + fpVisManager -> GetCurrentSceneHandler (); + G4String currentName; + if (currentSceneHandler) currentName = currentSceneHandler->GetName(); const G4SceneHandlerList& list = fpVisManager -> GetAvailableSceneHandlers (); G4bool found = false; for (size_t iSH = 0; iSH < list.size (); iSH++) { + const G4String& iName = list [iSH] -> GetName (); if (name != "all") { - if (name != list [iSH] -> GetName ()) continue; + if (name != iName) continue; } found = true; - G4cout << "Scene handler \"" << list [iSH] -> GetName () << "\"" + if (iName == currentName) { + G4cout << " (current)"; + } + else { + G4cout << " "; + } + G4cout << " scene handler \"" << list [iSH] -> GetName () << "\"" << " (" << list [iSH] -> GetGraphicsSystem () -> GetName () << ")"; if (verbosity >= G4VisManager::parameters) { G4cout << "\n " << *(list [iSH]); @@ -382,94 +342,17 @@ void G4VisCommandSceneHandlerList::SetNewValue (G4UIcommand*, } } -////////////// /vis/sceneHandler/remove /////////////////////////////////////// - -G4VisCommandSceneHandlerRemove::G4VisCommandSceneHandlerRemove () { - G4bool omitable, currentAsDefault; - fpCommand = new G4UIcmdWithAString ("/vis/sceneHandler/remove", this); - fpCommand -> SetGuidance ("/vis/sceneHandler/remove "); - fpCommand -> SetGuidance ("Removes scene handlers."); - fpCommand -> SetGuidance - ("Specify scene handler by name (\"/vis/sceneHandler/list\"" - "\n to see possibilities)."); - fpCommand -> SetParameterName ("scene-handler-name", - omitable = false, - currentAsDefault = true); - sceneHandlerNameCommands.push_back (fpCommand); -} - -G4VisCommandSceneHandlerRemove::~G4VisCommandSceneHandlerRemove () { - delete fpCommand; -} - -G4String G4VisCommandSceneHandlerRemove::GetCurrentValue (G4UIcommand*) { - G4VSceneHandler* sceneHandler = fpVisManager -> GetCurrentSceneHandler (); - if (sceneHandler) { - return sceneHandler -> GetName (); - } - else { - return "none"; - } -} - -void G4VisCommandSceneHandlerRemove::SetNewValue (G4UIcommand*, - G4String newValue) { - - G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); - - G4String& removeName = newValue; - G4VSceneHandler* currentSceneHandler = - fpVisManager -> GetCurrentSceneHandler (); - G4String currentName; - if (currentSceneHandler) { - currentName = currentSceneHandler -> GetName (); - } - - G4SceneHandlerList& list = fpVisManager -> SetAvailableSceneHandlers (); - G4SceneHandlerListIterator iSH; - for (iSH = list.begin(); iSH != list.end(); ++iSH) { - if ((*iSH) -> GetName () == removeName) break; - } - - if (iSH == list.end()) { - if (verbosity >= G4VisManager::errors) { - G4cout << "ERROR: Scene handler \"" << removeName << - "\" not found - \"/vis/sceneHandler/list\" to see possibilities." - << G4endl; - } - return; - } - - if (verbosity >= G4VisManager::confirmations) { - G4cout << "Scene handler \"" << removeName << "\" removed." << G4endl; - } - if (removeName == currentName) { - fpVisManager -> DeleteCurrentSceneHandler (); - } - else { - list.erase (iSH); - if (verbosity >= G4VisManager::confirmations) { - G4cout << "Current scene handler unchanged." << G4endl; - } - } - - UpdateCandidateLists (); -} - ////////////// /vis/sceneHandler/select /////////////////////////////////////// G4VisCommandSceneHandlerSelect::G4VisCommandSceneHandlerSelect () { - G4bool omitable, currentAsDefault; + G4bool omitable; fpCommand = new G4UIcmdWithAString ("/vis/sceneHandler/select", this); - fpCommand -> SetGuidance ("/vis/sceneHandler/select []"); - fpCommand -> SetGuidance ("Selects current scene handler."); - fpCommand -> SetGuidance - ("Specify scene handler by name (\"/vis/sceneHandler/list\"" - "\n to see possibilities)."); + fpCommand -> SetGuidance ("Selects a scene handler."); + fpCommand -> SetGuidance + ("Makes the scene handler current. \"/vis/sceneHandler/list\" to see" + "\n possible scene handler names."); fpCommand -> SetParameterName ("scene-handler-name", - omitable = true, - currentAsDefault = true); - sceneHandlerNameCommands.push_back (fpCommand); + omitable = false); } G4VisCommandSceneHandlerSelect::~G4VisCommandSceneHandlerSelect () { @@ -477,13 +360,7 @@ G4VisCommandSceneHandlerSelect::~G4VisCommandSceneHandlerSelect () { } G4String G4VisCommandSceneHandlerSelect::GetCurrentValue (G4UIcommand*) { - G4VSceneHandler* sceneHandler = fpVisManager -> GetCurrentSceneHandler (); - if (sceneHandler) { - return sceneHandler -> GetName (); - } - else { - return "none"; - } + return ""; } void G4VisCommandSceneHandlerSelect::SetNewValue (G4UIcommand*, diff --git a/source/visualization/management/src/G4VisCommandsViewer.cc b/source/visualization/management/src/G4VisCommandsViewer.cc index cbebc2e386..3c980bc78c 100644 --- a/source/visualization/management/src/G4VisCommandsViewer.cc +++ b/source/visualization/management/src/G4VisCommandsViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewer.cc,v 1.39 2004/08/03 15:57:56 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisCommandsViewer.cc,v 1.45 2005/03/16 17:55:02 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/viewer commands - John Allison 25th October 1998 @@ -61,42 +61,18 @@ void G4VVisCommandViewer::SetViewParameters } } -void G4VVisCommandViewer::UpdateCandidateLists () { - - const G4SceneHandlerList& sceneHandlerList = - fpVisManager -> GetAvailableSceneHandlers (); - G4int nHandlers = sceneHandlerList.size (); - - G4String viewerNameList; - for (int iHandler = 0; iHandler < nHandlers; iHandler++) { - G4VSceneHandler* sceneHandler = sceneHandlerList [iHandler]; - const G4ViewerList& viewerList = sceneHandler -> GetViewerList (); - for (size_t iViewer = 0; iViewer < viewerList.size (); iViewer++) { - viewerNameList += viewerList [iViewer] -> GetShortName () + " "; - } - } - viewerNameList = viewerNameList.strip (); - viewerNameCommandsIterator i; - for (i = viewerNameCommands.begin (); i != viewerNameCommands.end (); ++i) { - (*i)->GetParameter (0) -> SetParameterCandidates (viewerNameList); - } -} - ////////////// /vis/viewer/clear /////////////////////////////////////// G4VisCommandViewerClear::G4VisCommandViewerClear () { G4bool omitable, currentAsDefault; fpCommand = new G4UIcmdWithAString ("/vis/viewer/clear", this); - fpCommand -> SetGuidance ("/vis/viewer/clear []"); fpCommand -> SetGuidance ("Clears viewer."); - fpCommand -> SetGuidance ("Viewer becomes current."); - fpCommand -> SetGuidance - ("Specify viewer by name (\"/vis/viewer/list\"" - "\n to see possibilities)."); + fpCommand -> SetGuidance + ("By default, clears current viewer. Specified viewer becomes current." + "\n\"/vis/viewer/list\" to see possible viewer names."); fpCommand -> SetParameterName ("viewer-name", omitable = true, currentAsDefault = true); - viewerNameCommands.push_back (fpCommand); } G4VisCommandViewerClear::~G4VisCommandViewerClear () { @@ -105,12 +81,7 @@ G4VisCommandViewerClear::~G4VisCommandViewerClear () { G4String G4VisCommandViewerClear::GetCurrentValue (G4UIcommand*) { G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); - if (viewer) { - return viewer -> GetName (); - } - else { - return "none"; - } + return viewer ? viewer -> GetName () : G4String("none"); } void G4VisCommandViewerClear::SetNewValue (G4UIcommand*, G4String newValue) { @@ -142,20 +113,13 @@ G4VisCommandViewerCreate::G4VisCommandViewerCreate (): fId (0) { G4bool omitable; fpCommand = new G4UIcommand ("/vis/viewer/create", this); fpCommand -> SetGuidance - ("/vis/viewer/create [] [] []"); + ("Creates a viewer for the specified scene handler."); fpCommand -> SetGuidance - ("Creates an viewer for a specific scene handler."); - fpCommand -> SetGuidance - ("Default scene handler is the current scene handler."); - fpCommand -> SetGuidance - ("Invents a name if not supplied. (Note: the system adds information"); - fpCommand -> SetGuidance - ("to the name for identification - only the characters up to the first"); - fpCommand -> SetGuidance - ("blank are used for removing, selecting, etc.)"); - fpCommand -> SetGuidance - ("The 3rd parameter is a window size hint."); - fpCommand -> SetGuidance ("This scene handler and viewer become current."); + ("Default scene handler is the current scene handler. Invents a name" + "\nif not supplied. (Note: the system adds information to the name" + "\nfor identification - only the characters up to the first blank are" + "\nused for removing, selecting, etc.) This scene handler and viewer" + "\nbecome current."); G4UIparameter* parameter; parameter = new G4UIparameter ("scene-handler", 's', omitable = true); parameter -> SetCurrentAsDefault (true); @@ -163,10 +127,10 @@ G4VisCommandViewerCreate::G4VisCommandViewerCreate (): fId (0) { parameter = new G4UIparameter ("viewer-name", 's', omitable = true); parameter -> SetCurrentAsDefault (true); fpCommand -> SetParameter (parameter); - parameter = new G4UIparameter ("pixels", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter = new G4UIparameter ("window-size-hint", 'i', omitable = true); + parameter -> SetGuidance ("pixels"); + parameter -> SetDefaultValue (600); fpCommand -> SetParameter (parameter); - viewerNameCommands.push_back (fpCommand); } G4VisCommandViewerCreate::~G4VisCommandViewerCreate () { @@ -215,7 +179,7 @@ void G4VisCommandViewerCreate::SetNewValue (G4UIcommand*, G4String newValue) { G4String sceneHandlerName, newName; G4int windowSizeHint; - std::istrstream is ((char*)newValue.data()); + std::istrstream is (newValue); is >> sceneHandlerName; // Now need to handle the possibility that the second string @@ -254,7 +218,7 @@ void G4VisCommandViewerCreate::SetNewValue (G4UIcommand*, G4String newValue) { } if (iHandler < 0 || iHandler >= nHandlers) { - // Invalid command line argument or non. + // Invalid command line argument or none. // This shouldn't happen!!!!!! if (verbosity >= G4VisManager::errors) { G4cout << "G4VisCommandViewerCreate::SetNewValue:" @@ -305,7 +269,6 @@ void G4VisCommandViewerCreate::SetNewValue (G4UIcommand*, G4String newValue) { if (verbosity >= G4VisManager::confirmations) { G4cout << "New viewer \"" << newName << "\" created." << G4endl; } - UpdateCandidateLists (); } else { if (verbosity >= G4VisManager::errors) { @@ -327,9 +290,9 @@ G4VisCommandViewerDolly::G4VisCommandViewerDolly (): fpCommandDolly = new G4UIcmdWithADoubleAndUnit ("/vis/viewer/dolly", this); fpCommandDolly -> SetGuidance - ("/vis/viewer/dolly [] []"); + ("Incremental dolly."); fpCommandDolly -> SetGuidance - ("Moves the camera incrementally in by this distance."); + ("Moves the camera incrementally towards target point."); fpCommandDolly -> SetParameterName("increment", omitable=true, currentAsDefault=true); @@ -338,9 +301,9 @@ G4VisCommandViewerDolly::G4VisCommandViewerDolly (): fpCommandDollyTo = new G4UIcmdWithADoubleAndUnit ("/vis/viewer/dollyTo", this); fpCommandDollyTo -> SetGuidance - ("/vis/viewer/dollyTo [] []"); + ("Dolly to specific coordinate."); fpCommandDollyTo -> SetGuidance - ("Moves the camera in this distance relative to standard target point."); + ("Places the camera towards target point relative to standard camera point."); fpCommandDollyTo -> SetParameterName("distance", omitable=true, currentAsDefault=true); @@ -402,19 +365,16 @@ void G4VisCommandViewerDolly::SetNewValue (G4UIcommand* command, G4VisCommandViewerFlush::G4VisCommandViewerFlush () { G4bool omitable, currentAsDefault; fpCommand = new G4UIcmdWithAString ("/vis/viewer/flush", this); - fpCommand -> SetGuidance ("/vis/viewer/flush []"); fpCommand -> SetGuidance - ("Compound command: /vis/viewer/refresh + /vis/viewer/update."); + ("Compound command: \"/vis/viewer/refresh\" + \"/vis/viewer/update\"."); fpCommand -> SetGuidance ("Useful for refreshing and initiating post-processing for graphics" - "\n systems which need post-processing. Viewer becomes current."); - fpCommand -> SetGuidance - ("Specify viewer by name (\"/vis/viewer/list\"" - "\n to see possibilities)."); + "\nsystems which need post-processing. By default, acts on current" + "\nviewer. \"/vis/viewer/list\" to see possible viewers. Viewer" + "\nbecomes current."); fpCommand -> SetParameterName ("viewer-name", omitable = true, currentAsDefault = true); - viewerNameCommands.push_back (fpCommand); } G4VisCommandViewerFlush::~G4VisCommandViewerFlush () { @@ -424,12 +384,7 @@ G4VisCommandViewerFlush::~G4VisCommandViewerFlush () { G4String G4VisCommandViewerFlush::GetCurrentValue (G4UIcommand*) { G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); - if (viewer) { - return viewer -> GetName (); - } - else { - return "none"; - } + return viewer ? viewer -> GetName () : G4String("none"); } void G4VisCommandViewerFlush::SetNewValue (G4UIcommand*, G4String newValue) { @@ -467,21 +422,16 @@ void G4VisCommandViewerFlush::SetNewValue (G4UIcommand*, G4String newValue) { G4VisCommandViewerList::G4VisCommandViewerList () { G4bool omitable; fpCommand = new G4UIcommand ("/vis/viewer/list", this); - fpCommand -> SetGuidance - ("/vis/viewer/list [] []"); fpCommand -> SetGuidance ("Lists viewers(s)."); - fpCommand -> SetGuidance (" default is \"all\""); fpCommand -> SetGuidance - ("See /vis/verbose for definition of verbosity."); + ("See \"/vis/verbose\" for definition of verbosity."); G4UIparameter* parameter; parameter = new G4UIparameter("viewer-name", 's', omitable = true); - parameter -> SetCurrentAsDefault (false); parameter -> SetDefaultValue ("all"); fpCommand -> SetParameter (parameter); parameter = new G4UIparameter ("verbosity", 's', omitable = true); - parameter -> SetCurrentAsDefault (false); parameter -> SetDefaultValue (0); fpCommand -> SetParameter (parameter); } @@ -496,7 +446,7 @@ G4String G4VisCommandViewerList::GetCurrentValue (G4UIcommand*) { void G4VisCommandViewerList::SetNewValue (G4UIcommand*, G4String newValue) { G4String name, verbosityString; - std::istrstream is ((char*)newValue.data()); + std::istrstream is (newValue); is >> name >> verbosityString; G4String shortName = fpVisManager -> ViewerShortName (name); G4VisManager::Verbosity verbosity = @@ -580,9 +530,10 @@ G4VisCommandViewerPan::G4VisCommandViewerPan (): fpCommandPan = new G4UIcommand ("/vis/viewer/pan", this); fpCommandPan -> SetGuidance - ("/vis/viewer/pan [] [] []"); + ("Incremental pan."); fpCommandPan -> SetGuidance - ("Moves the camera incrementally right and up by these amounts."); + ("Moves the camera incrementally right and up by these amounts (as seen" + "\nfrom viewpoint direction)."); G4UIparameter* parameter; parameter = new G4UIparameter("right-increment", 'd', omitable = true); parameter -> SetCurrentAsDefault (true); @@ -597,10 +548,10 @@ G4VisCommandViewerPan::G4VisCommandViewerPan (): fpCommandPanTo = new G4UIcommand ("/vis/viewer/panTo", this); fpCommandPanTo -> SetGuidance - ("/vis/viewer/panTo [] [] []"); + ("Pan to specific coordinate."); fpCommandPanTo -> SetGuidance - ("Moves the camera to this position right and up relative to standard" - "target point (as seen from viewpoint direction)."); + ("Places the camera in this position right and up relative to standard" + "\ntarget point (as seen from viewpoint direction)."); parameter = new G4UIparameter("right", 'd', omitable = true); parameter -> SetCurrentAsDefault (true); fpCommandPanTo -> SetParameter (parameter); @@ -668,17 +619,14 @@ void G4VisCommandViewerPan::SetNewValue (G4UIcommand* command, G4VisCommandViewerRefresh::G4VisCommandViewerRefresh () { G4bool omitable, currentAsDefault; fpCommand = new G4UIcmdWithAString ("/vis/viewer/refresh", this); - fpCommand -> SetGuidance ("/vis/viewer/refresh []"); fpCommand -> SetGuidance ("Refreshes viewer."); - fpCommand -> SetGuidance ("Viewer becomes current."); - fpCommand -> SetGuidance - ("Specify viewer by name (\"/vis/viewer/list\"" - "\n to see possibilities)."); + fpCommand -> SetGuidance + ("By default, acts on current viewer. \"/vis/viewer/list\"" + "\nto see possible viewers. Viewer becomes current."); fpCommand -> SetParameterName ("viewer-name", omitable = true, currentAsDefault = true); - viewerNameCommands.push_back (fpCommand); } G4VisCommandViewerRefresh::~G4VisCommandViewerRefresh () { @@ -687,12 +635,7 @@ G4VisCommandViewerRefresh::~G4VisCommandViewerRefresh () { G4String G4VisCommandViewerRefresh::GetCurrentValue (G4UIcommand*) { G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); - if (viewer) { - return viewer -> GetName (); - } - else { - return "none"; - } + return viewer ? viewer -> GetName () : G4String("none"); } void G4VisCommandViewerRefresh::SetNewValue (G4UIcommand*, G4String newValue) { @@ -748,8 +691,8 @@ void G4VisCommandViewerRefresh::SetNewValue (G4UIcommand*, G4String newValue) { G4cout << "Refreshing viewer \"" << viewer -> GetName () << "\"..." << G4endl; } - viewer -> SetView (); - viewer -> ClearView (); + //??viewer -> SetView (); + //??viewer -> ClearView (); viewer -> DrawView (); if (verbosity >= G4VisManager::confirmations) { G4cout << "Viewer \"" << viewer -> GetName () << "\"" << " refreshed." @@ -757,95 +700,18 @@ void G4VisCommandViewerRefresh::SetNewValue (G4UIcommand*, G4String newValue) { } } -////////////// /vis/viewer/remove /////////////////////////////////////// - -G4VisCommandViewerRemove::G4VisCommandViewerRemove () { - G4bool omitable, currentAsDefault; - fpCommand = new G4UIcmdWithAString ("/vis/viewer/remove", this); - fpCommand -> SetGuidance ("/vis/viewer/remove "); - fpCommand -> SetGuidance ("Removes viewer."); - fpCommand -> SetGuidance - ("Specify viewer by name (\"/vis/viewer/list\"" - "\n to see possibilities)."); - fpCommand -> SetParameterName ("viewer-name", - omitable = false, - currentAsDefault = true); - viewerNameCommands.push_back (fpCommand); -} - -G4VisCommandViewerRemove::~G4VisCommandViewerRemove () { - delete fpCommand; -} - -G4String G4VisCommandViewerRemove::GetCurrentValue (G4UIcommand*) { - G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); - if (viewer) { - return viewer -> GetName (); - } - else { - return "none"; - } -} - -void G4VisCommandViewerRemove::SetNewValue (G4UIcommand*, G4String newValue) { - - G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); - - G4String& removeName = newValue; - - G4VViewer* currentViewer = fpVisManager -> GetCurrentViewer (); - G4String currentShortName; - if (currentViewer) { - currentShortName = currentViewer -> GetShortName (); - } - else { - currentShortName = "none"; - } - - G4VViewer* viewer = fpVisManager -> GetViewer (removeName); - if (!viewer) { - if (verbosity >= G4VisManager::errors) { - G4cout << "ERROR: Viewer \"" << removeName - << "\" not found - \"/vis/viewer/list\" to see possibilities." - << G4endl; - } - return; - } - - if (verbosity >= G4VisManager::confirmations) { - G4cout << "Viewer \"" << viewer -> GetName () << "\" removed." << G4endl; - } - if (viewer -> GetShortName () == currentShortName) { - fpVisManager -> DeleteCurrentViewer (); - } - else { - G4VSceneHandler* sceneHandler = viewer -> GetSceneHandler (); - G4ViewerList& viewerList = sceneHandler -> SetViewerList (); - viewerList.remove (viewer); - if (verbosity >= G4VisManager::confirmations) { - G4cout << "Current viewer is unchanged (\"" - << currentViewer -> GetName () << "\")." << G4endl; - } - } - - UpdateCandidateLists (); -} - ////////////// /vis/viewer/reset /////////////////////////////////////// G4VisCommandViewerReset::G4VisCommandViewerReset () { G4bool omitable, currentAsDefault; fpCommand = new G4UIcmdWithAString ("/vis/viewer/reset", this); - fpCommand -> SetGuidance ("/vis/viewer/reset []"); fpCommand -> SetGuidance ("Resets viewer."); - fpCommand -> SetGuidance ("Viewer becomes current."); - fpCommand -> SetGuidance - ("Specify viewer by name (\"/vis/viewer/list\"" - "\n to see possibilities)."); + fpCommand -> SetGuidance + ("By default, acts on current viewer. \"/vis/viewer/list\"" + "\nto see possible viewers. Viewer becomes current."); fpCommand -> SetParameterName ("viewer-name", omitable = true, currentAsDefault = true); - viewerNameCommands.push_back (fpCommand); } G4VisCommandViewerReset::~G4VisCommandViewerReset () { @@ -883,17 +749,12 @@ void G4VisCommandViewerReset::SetNewValue (G4UIcommand*, G4String newValue) { ////////////// /vis/viewer/select /////////////////////////////////////// G4VisCommandViewerSelect::G4VisCommandViewerSelect () { - G4bool omitable, currentAsDefault; + G4bool omitable; fpCommand = new G4UIcmdWithAString ("/vis/viewer/select", this); - fpCommand -> SetGuidance ("/vis/viewer/select "); - fpCommand -> SetGuidance ("Selects current viewer."); + fpCommand -> SetGuidance ("Selects viewer."); fpCommand -> SetGuidance - ("Specify viewer by name (\"/vis/viewer/list\"" - "\n to see possibilities)."); - fpCommand -> SetParameterName ("viewer-name", - omitable = false, - currentAsDefault = true); - viewerNameCommands.push_back (fpCommand); + ("Specify viewer by name. \"/vis/viewer/list\" to see possible viewers."); + fpCommand -> SetParameterName ("viewer-name", omitable = false); } G4VisCommandViewerSelect::~G4VisCommandViewerSelect () { @@ -901,13 +762,7 @@ G4VisCommandViewerSelect::~G4VisCommandViewerSelect () { } G4String G4VisCommandViewerSelect::GetCurrentValue (G4UIcommand*) { - G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); - if (viewer) { - return viewer -> GetName (); - } - else { - return "none"; - } + return ""; } void G4VisCommandViewerSelect::SetNewValue (G4UIcommand*, G4String newValue) { @@ -944,20 +799,16 @@ void G4VisCommandViewerSelect::SetNewValue (G4UIcommand*, G4String newValue) { G4VisCommandViewerUpdate::G4VisCommandViewerUpdate () { G4bool omitable, currentAsDefault; fpCommand = new G4UIcmdWithAString ("/vis/viewer/update", this); - fpCommand -> SetGuidance ("/vis/viewer/update []"); fpCommand -> SetGuidance ("Triggers graphical database post-processing for viewers" - " using that technique."); + "\nusing that technique."); fpCommand -> SetGuidance - ("For such viewers the view only becomes visible with this command."); - fpCommand -> SetGuidance ("Viewer becomes current."); - fpCommand -> SetGuidance - ("Specify viewer by name (\"/vis/viewer/list\"" - "\n to see possibilities)."); + ("For such viewers the view only becomes visible with this command." + "\nBy default, acts on current viewer. \"/vis/viewer/list\"" + "\nto see possible viewers. Viewer becomes current."); fpCommand -> SetParameterName ("viewer-name", omitable = true, currentAsDefault = true); - viewerNameCommands.push_back (fpCommand); } G4VisCommandViewerUpdate::~G4VisCommandViewerUpdate () { @@ -981,6 +832,29 @@ void G4VisCommandViewerUpdate::SetNewValue (G4UIcommand*, G4String newValue) { G4String& updateName = newValue; G4VViewer* viewer = fpVisManager -> GetViewer (updateName); + G4VSceneHandler* sceneHandler = viewer->GetSceneHandler(); + if (!sceneHandler) { + if (verbosity >= G4VisManager::errors) { + G4cout << "ERROR: Viewer \"" << updateName << "\"" << + " has no scene handler - report serious bug." + << G4endl; + } + return; + } + + G4Scene* scene = sceneHandler->GetScene(); + if (!scene) { + if (verbosity >= G4VisManager::warnings) { + G4cout << "WARNING: SceneHandler \"" << sceneHandler->GetName() + << "\", to which viewer \"" << updateName << "\"" << + "\n is attached, has no scene - \"/vis/scene/create\" and" + "\"/vis/sceneHandler/attach\"" + "\n (or use compound command \"/vis/drawVolume\")." + << G4endl; + } + return; + } + if (viewer) { if (verbosity >= G4VisManager::confirmations) { G4cout << "Viewer \"" << viewer -> GetName () << "\""; @@ -1007,20 +881,18 @@ G4VisCommandViewerZoom::G4VisCommandViewerZoom (): fpCommandZoom = new G4UIcmdWithADouble ("/vis/viewer/zoom", this); + fpCommandZoom -> SetGuidance ("Incremental zoom."); fpCommandZoom -> SetGuidance - ("/vis/viewer/zoom []"); - fpCommandZoom -> SetGuidance - ("Multiplies magnification by this factor."); + ("Multiplies current magnification by this factor."); fpCommandZoom -> SetParameterName("multiplier", omitable=true, currentAsDefault=true); fpCommandZoomTo = new G4UIcmdWithADouble ("/vis/viewer/zoomTo", this); + fpCommandZoomTo -> SetGuidance ("Absolute zoom."); fpCommandZoomTo -> SetGuidance - ("/vis/viewer/zoomTo []"); - fpCommandZoomTo -> SetGuidance - ("Magnifies by this factor relative to standard view."); + ("Magnifies standard magnification by this factor."); fpCommandZoomTo -> SetParameterName("factor", omitable=true, currentAsDefault=true); diff --git a/source/visualization/management/src/G4VisCommandsViewerSet.cc b/source/visualization/management/src/G4VisCommandsViewerSet.cc index 0916a5c632..33825c39e1 100644 --- a/source/visualization/management/src/G4VisCommandsViewerSet.cc +++ b/source/visualization/management/src/G4VisCommandsViewerSet.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewerSet.cc,v 1.28 2004/12/07 23:41:02 perl Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-03 $ +// $Id: G4VisCommandsViewerSet.cc,v 1.34 2005/05/06 08:46:50 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // /vis/viewer/set commands - John Allison 16th May 2000 @@ -35,6 +35,7 @@ #include "G4UIcmdWithADouble.hh" #include "G4UnitsTable.hh" #include "G4VisManager.hh" +#include "G4Polyhedron.hh" G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fLightsVector (G4ThreeVector(1.,1.,1.)), @@ -46,66 +47,64 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fpCommandAll = new G4UIcmdWithAString ("/vis/viewer/set/all",this); fpCommandAll->SetGuidance - ("/vis/viewer/set/all " - "\nCopies view parameters (except the autoRefresh status) from" - "\n from-viewer to current viewer."); + ("Copies view parameters."); + fpCommandAll->SetGuidance + ("Copies view parameters (except the autoRefresh status) from" + "\nfrom-viewer to current viewer."); fpCommandAll->SetParameterName ("from-viewer-name",omitable = false); - viewerNameCommands.push_back (fpCommandAll); fpCommandAutoRefresh = new G4UIcmdWithABool ("/vis/viewer/set/autoRefresh",this); + fpCommandAutoRefresh->SetGuidance("Sets auto-refresh."); fpCommandAutoRefresh->SetGuidance - ("/vis/viewer/set/autoRefresh [true|false]"); - fpCommandAutoRefresh->SetGuidance(" default: false"); - fpCommandAutoRefresh->SetGuidance - ("View is automatically refreshed after a change of view parameters."); + ("If true, view is automatically refreshed after a change of" + "\nview parameters."); fpCommandAutoRefresh->SetParameterName("auto-refresh",omitable = true); fpCommandAutoRefresh->SetDefaultValue(false); fpCommandAuxEdge = new G4UIcmdWithABool ("/vis/viewer/set/auxiliaryEdge",this); - fpCommandAuxEdge->SetGuidance("/vis/viewer/set/auxiliaryEdge [true|false]"); - fpCommandAuxEdge->SetGuidance(" default: false"); + fpCommandAuxEdge->SetGuidance("Sets visibility of auxiliary edges"); fpCommandAuxEdge->SetGuidance - ("Auxiliary edges become visible/invisible."); + ("Auxiliary edges, i.e., those that are part of a curved surface," + "\nsometimes called soft edges, become visible/invisible."); fpCommandAuxEdge->SetParameterName("edge",omitable = true); fpCommandAuxEdge->SetDefaultValue(false); fpCommandCulling = new G4UIcommand("/vis/viewer/set/culling",this); + fpCommandCulling->SetGuidance ("Set culling options."); fpCommandCulling->SetGuidance - ("/vis/viewer/set/culling global|coveredDaughters|invisible|density" - " [true|false] [density] [unit]"); + ("\"global\": enables/disables all other culling options."); fpCommandCulling->SetGuidance - ( - " default: none true 0.01 g/cm3" - "\n global: enables other culling options/disables culling." - "\n coveredDaughters: does not send volumes that would not be seen on the" - "\n screen because covered by ancester volumes in surface drawing mode," - "\n and then only if the volumes are visible and opaque, and then only if" - "\n no sections or cutways are in operation. Intended solely to improve" - "\n the speed of rendering visible volumes." - "\n invisible: culls objects with invisible attribute." - "\n density: culls volumes with density lower than threshold. Useful for" - "\n eliminating \"container volumes\" with no physical correspondence whose" - "\n material is usually air. If this is selected, provide threshold" - "\n density and unit (g/cm3, mg/cm3 or kg/m3)." + ("\"coveredDaughters\": culls, i.e., eliminates, volumes that would not" + "\nbe seen because covered by ancester volumes in surface drawing mode," + "\nand then only if the ancesters are visible and opaque, and then only" + "\nif no sections or cutaways are in operation. Intended solely to" + "\nimprove the speed of rendering visible volumes."); + fpCommandCulling->SetGuidance + ("\"invisible\": culls objects with the invisible attribute set."); + fpCommandCulling->SetGuidance + ("\"density\": culls volumes with density lower than threshold. Useful" + "\nfor eliminating \"container volumes\" with no physical correspondence," + "\nwhose material is usually air. If this is selected, provide threshold" + "\ndensity and unit (g/cm3 mg/cm3 or kg/m3)." ); parameter = new G4UIparameter("culling-option",'s',omitable = false); parameter->SetParameterCandidates ("global coveredDaughters invisible density"); fpCommandCulling->SetParameter(parameter); - parameter = new G4UIparameter("flag",'b',omitable = true); + parameter = new G4UIparameter("action",'b',omitable = true); parameter->SetDefaultValue("true"); fpCommandCulling->SetParameter(parameter); - parameter = new G4UIparameter("density",'d',omitable = true); + parameter = new G4UIparameter("density-threshold",'d',omitable = true); parameter->SetDefaultValue("0.01"); fpCommandCulling->SetParameter(parameter); parameter = new G4UIparameter("unit",'s',omitable = true); + parameter->SetParameterCandidates ("g/cm3, mg/cm3 kg/m3"); parameter->SetDefaultValue("g/cm3"); fpCommandCulling->SetParameter(parameter); fpCommandEdge = new G4UIcmdWithABool("/vis/viewer/set/edge",this); - fpCommandEdge->SetGuidance("/vis/viewer/set/edge [true|false]"); fpCommandEdge->SetGuidance(" default: true"); fpCommandEdge->SetGuidance ("Edges become visible/invisible in surface mode."); @@ -114,10 +113,6 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fpCommandGlobalMarkerScale = new G4UIcmdWithADouble ("/vis/viewer/set/globalMarkerScale", this); - fpCommandGlobalMarkerScale -> SetGuidance - ("/vis/viewer/set/globalMarkerScale []"); - fpCommandGlobalMarkerScale -> SetGuidance - (" default: 1"); fpCommandGlobalMarkerScale -> SetGuidance ("Multiplies marker sizes by this factor."); fpCommandGlobalMarkerScale -> SetParameterName("scale-factorr", @@ -126,8 +121,6 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fpCommandHiddenEdge = new G4UIcmdWithABool("/vis/viewer/set/hiddenEdge",this); - fpCommandHiddenEdge->SetGuidance("/vis/viewer/set/hiddenEdge [true|false]"); - fpCommandHiddenEdge->SetGuidance(" default: true"); fpCommandHiddenEdge->SetGuidance ("Edges become hidden/seen in wireframe or surface mode."); fpCommandHiddenEdge->SetParameterName("hidden-edge",omitable = true); @@ -136,34 +129,27 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fpCommandHiddenMarker = new G4UIcmdWithABool("/vis/viewer/set/hiddenMarker",this); fpCommandHiddenMarker->SetGuidance - ("/vis/viewer/set/hiddenMarker [true|false]"); - fpCommandHiddenMarker->SetGuidance(" default: true"); - fpCommandHiddenMarker->SetGuidance - ("Markers are hidden by/seen though closer objects."); + ("If true, closer objects hide markers. Otherwise, markers always show."); fpCommandHiddenMarker->SetParameterName("hidden-marker",omitable = true); fpCommandHiddenMarker->SetDefaultValue(true); fpCommandLightsMove = new G4UIcmdWithAString ("/vis/viewer/set/lightsMove",this); fpCommandLightsMove->SetGuidance - ("/vis/viewer/set/lightsMove with-camera|with-object"); - fpCommandLightsMove->SetGuidance - ("Note: parameter will be parsed for \"cam\" or \"obj\"."); + ("Lights move with camera or with object"); fpCommandLightsMove->SetParameterName("lightsMove",omitable = false); + fpCommandLightsMove->SetCandidates + ("cam camera with-camera obj object with-object"); fpCommandLightsThetaPhi = new G4UIcommand ("/vis/viewer/set/lightsThetaPhi", this); - fpCommandLightsThetaPhi -> SetGuidance - ("/vis/viewer/set/lightsThetaPhi [] [] [deg|rad]"); - fpCommandLightsThetaPhi -> SetGuidance - (" default: 60 45 deg - becomes \"current as default\""); - fpCommandLightsThetaPhi -> SetGuidance + fpCommandLightsThetaPhi->SetGuidance ("Set direction from target to lights."); parameter = new G4UIparameter("theta", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue(60.); fpCommandLightsThetaPhi -> SetParameter (parameter); parameter = new G4UIparameter("phi", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue(45.); fpCommandLightsThetaPhi -> SetParameter (parameter); parameter = new G4UIparameter ("unit", 's', omitable = true); parameter -> SetDefaultValue ("deg"); @@ -171,40 +157,32 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fpCommandLightsVector = new G4UIcommand ("/vis/viewer/set/lightsVector", this); - fpCommandLightsVector -> SetGuidance - ("/vis/viewer/set/lightsVector [] [] []"); - fpCommandLightsVector -> SetGuidance - (" default: 1 1 1 - becomes \"current as default\""); - fpCommandLightsVector -> SetGuidance + fpCommandLightsVector->SetGuidance ("Set direction from target to lights."); parameter = new G4UIparameter("x", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (1); fpCommandLightsVector -> SetParameter (parameter); parameter = new G4UIparameter("y", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (1); fpCommandLightsVector -> SetParameter (parameter); parameter = new G4UIparameter ("z", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (1); fpCommandLightsVector -> SetParameter (parameter); fpCommandLineSegments = new G4UIcmdWithAnInteger ("/vis/viewer/set/lineSegmentsPerCircle",this); fpCommandLineSegments->SetGuidance - ("/vis/viewer/set/lineSegmentsPerCircle []"); + ("Set number of sides per circle for polygon/polyhedron drawing."); fpCommandLineSegments->SetGuidance - (" default: 24"); - fpCommandLineSegments->SetGuidance - ("Number of sides per circle in polygon/polyhedron graphical" - "\nrepresentation of objects with curved lines/surfaces."); + ("Refers to graphical representation of objects with curved lines/surfaces."); fpCommandLineSegments->SetParameterName("line-segments",omitable = true); fpCommandLineSegments->SetDefaultValue(24); fpCommandProjection = new G4UIcommand("/vis/viewer/set/projection",this); fpCommandProjection->SetGuidance - ("/vis/viewer/set/projection" - " o[rthogonal]|p[erspective] [] [deg|rad]"); - fpCommandProjection->SetGuidance(" default: orthogonal 30 deg"); + ("Orthogonal or perspective projection."); parameter = new G4UIparameter("projection",'s',omitable = true); + parameter->SetParameterCandidates("o orthogonal p perspective"); parameter->SetDefaultValue("orthogonal"); fpCommandProjection->SetParameter(parameter); parameter = new G4UIparameter("field-half-angle",'d',omitable = true); @@ -214,19 +192,15 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): parameter->SetDefaultValue("deg"); fpCommandProjection->SetParameter(parameter); - fpCommandSectionPlane = new G4UIcommand - ("/vis/viewer/set/sectionPlane on|off [x] [y] [z] [units] [nx] [ny] [nz]",this); + fpCommandSectionPlane = new G4UIcommand("/vis/viewer/set/sectionPlane",this); fpCommandSectionPlane -> SetGuidance - (" default: none 0 0 0 cm 1 0 0"); + ("Set plane for drawing section (DCUT)."); fpCommandSectionPlane -> SetGuidance - ( - "Set plane for drawing section (DCUT). Specify plane by" - "\nx y z units nx ny nz, e.g., for a y-z plane at x = 1 cm:" - "\n/vis/viewer/set/sectionPlane on 1 0 0 cm 1 0 0" - "\nTo turn off: /vis/viewer/set/sectionPlane off" - ); + ("E.g., for a y-z plane at x = 1 cm:" + "\n\"/vis/viewer/set/sectionPlane on 1 0 0 cm 1 0 0\"." + "\nTo turn off: /vis/viewer/set/sectionPlane off"); parameter = new G4UIparameter("Selector",'c',true); - parameter -> SetDefaultValue ("?"); + parameter -> SetDefaultValue ("on"); fpCommandSectionPlane->SetParameter(parameter); parameter = new G4UIparameter("x",'d',omitable = true); parameter -> SetDefaultValue (0); @@ -258,23 +232,22 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fpCommandSectionPlane->SetParameter(parameter); fpCommandStyle = new G4UIcmdWithAString ("/vis/viewer/set/style",this); - fpCommandStyle->SetGuidance ("/vis/viewer/set/style w[ireframe]|s[urface]"); + fpCommandStyle->SetGuidance ("Set style of drawing."); + fpCommandStyle->SetGuidance + ("(Hidden line drawing is controlled by \"/vis/viewer/set/hiddenEdge\".)"); fpCommandStyle->SetParameterName ("style",omitable = false); + fpCommandStyle->SetCandidates("w wireframe s surface"); fpCommandUpThetaPhi = new G4UIcommand ("/vis/viewer/set/upThetaPhi", this); + fpCommandUpThetaPhi -> SetGuidance ("Set up vector."); fpCommandUpThetaPhi -> SetGuidance - ("/vis/viewer/set/upThetaPhi [] [] [deg|rad]"); - fpCommandUpThetaPhi -> SetGuidance - (" default: 90 90 deg - becomes \"current as default\""); - fpCommandUpThetaPhi -> SetGuidance - ("Set up vector. Viewer will attempt always to show" - " this direction upwards."); + ("Viewer will attempt always to show this direction upwards."); parameter = new G4UIparameter("theta", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (90.); fpCommandUpThetaPhi -> SetParameter (parameter); parameter = new G4UIparameter("phi", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (90.); fpCommandUpThetaPhi -> SetParameter (parameter); parameter = new G4UIparameter ("unit", 's', omitable = true); parameter -> SetDefaultValue ("deg"); @@ -282,37 +255,30 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fpCommandUpVector = new G4UIcommand ("/vis/viewer/set/upVector", this); + fpCommandUpVector -> SetGuidance ("Set up vector."); fpCommandUpVector -> SetGuidance - ("/vis/viewer/set/upVector [] [] []"); - fpCommandUpVector -> SetGuidance - (" default: 0 1 0 - becomes \"current as default\""); - fpCommandUpVector -> SetGuidance - ("Set up vector. Viewer will attempt always to show" - " this direction upwards."); + ("Viewer will attempt always to show this direction upwards."); parameter = new G4UIparameter("x", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (0.); fpCommandUpVector -> SetParameter (parameter); parameter = new G4UIparameter("y", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (1.); fpCommandUpVector -> SetParameter (parameter); parameter = new G4UIparameter ("z", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (0.); fpCommandUpVector -> SetParameter (parameter); fpCommandViewpointThetaPhi = new G4UIcommand ("/vis/viewer/set/viewpointThetaPhi", this); fpCommandViewpointThetaPhi -> SetGuidance - ("/vis/viewer/set/viewpointThetaPhi [] [] [deg|rad]"); + ("Set direction from target to camera."); fpCommandViewpointThetaPhi -> SetGuidance - (" default: 0 0 deg - becomes \"current as default\""); - fpCommandViewpointThetaPhi -> SetGuidance - ("Set direction from target to camera. Also changes lightpoint direction" - "\nif lights are set to move with camera."); + ("Also changes lightpoint direction if lights are set to move with camera."); parameter = new G4UIparameter("theta", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (60.); fpCommandViewpointThetaPhi -> SetParameter (parameter); parameter = new G4UIparameter("phi", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (45.); fpCommandViewpointThetaPhi -> SetParameter (parameter); parameter = new G4UIparameter ("unit", 's', omitable = true); parameter -> SetDefaultValue ("deg"); @@ -321,20 +287,17 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fpCommandViewpointVector = new G4UIcommand ("/vis/viewer/set/viewpointVector", this); fpCommandViewpointVector -> SetGuidance - ("/vis/viewer/set/viewpointVector [] [] []"); + ("Set direction from target to camera."); fpCommandViewpointVector -> SetGuidance - (" default: 0 0 1 - becomes \"current as default\""); - fpCommandViewpointVector -> SetGuidance - ("Set direction from target to camera. Also changes lightpoint direction" - "\nif lights are set to move with camera."); + ("Also changes lightpoint direction if lights are set to move with camera."); parameter = new G4UIparameter("x", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (1.); fpCommandViewpointVector -> SetParameter (parameter); parameter = new G4UIparameter("y", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (1.); fpCommandViewpointVector -> SetParameter (parameter); parameter = new G4UIparameter ("z", 'd', omitable = true); - parameter -> SetCurrentAsDefault (true); + parameter -> SetDefaultValue (1.); fpCommandViewpointVector -> SetParameter (parameter); } @@ -360,26 +323,8 @@ G4VisCommandsViewerSet::~G4VisCommandsViewerSet() { delete fpCommandViewpointVector; } -G4String G4VisCommandsViewerSet::GetCurrentValue(G4UIcommand* command) { - G4String currentValue; - if (command == fpCommandLightsThetaPhi) { - currentValue = ConvertToString(fLightsVector.theta(), - fLightsVector.phi(), "deg"); - } - else if (command == fpCommandLightsVector) { - currentValue = G4UIcommand::ConvertToString(fLightsVector); - } - else if (command == fpCommandViewpointThetaPhi) { - currentValue = ConvertToString(fViewpointVector.theta(), - fViewpointVector.phi(), "deg"); - } - else if (command == fpCommandViewpointVector) { - currentValue = G4UIcommand::ConvertToString(fViewpointVector); - } - else { - currentValue = "invalid"; - } - return currentValue; +G4String G4VisCommandsViewerSet::GetCurrentValue(G4UIcommand*) { + return ""; } void G4VisCommandsViewerSet::SetNewValue @@ -456,7 +401,7 @@ void G4VisCommandsViewerSet::SetNewValue G4String cullingOption, stringFlag, unit; G4double density; G4bool boolFlag; - std::istrstream is ((char*)newValue.data()); + std::istrstream is (newValue); is >> cullingOption >> stringFlag >> density >> unit; boolFlag = G4UIcommand::ConvertToBool(stringFlag); if (cullingOption == "global") { @@ -662,7 +607,7 @@ void G4VisCommandsViewerSet::SetNewValue else if (command == fpCommandLineSegments) { G4int nSides = G4UIcommand::ConvertToInt(newValue); - vp.SetNoOfSides(nSides); + nSides = vp.SetNoOfSides(nSides); if (verbosity >= G4VisManager::confirmations) { G4cout << "Number of line segements per circle in polygon approximation is " @@ -679,7 +624,7 @@ void G4VisCommandsViewerSet::SetNewValue else if (newValue[iPos] == 'p') { // "perspective" G4String dummy; G4String unit; - std::istrstream is ((char*)newValue.data()); + std::istrstream is (newValue); is >> dummy >> fieldHalfAngle >> unit; fieldHalfAngle *= G4UIcommand::ValueOf(unit); if (fieldHalfAngle > 89.5 * deg || fieldHalfAngle <= 0.0) { @@ -716,8 +661,7 @@ void G4VisCommandsViewerSet::SetNewValue else if (command == fpCommandSectionPlane) { G4String choice, unit; G4double x, y, z, nx, ny, nz; - const char* t = newValue; - std::istrstream is ((char*)t); + std::istrstream is (newValue); is >> choice >> x >> y >> z >> unit >> nx >> ny >> nz; G4int iSelector = -1; @@ -825,7 +769,7 @@ void G4VisCommandsViewerSet::SetNewValue } else if (command == fpCommandUpVector) { - fUpVector = G4UIcommand::ConvertTo3Vector(newValue); + fUpVector = G4UIcommand::ConvertTo3Vector(newValue).unit(); vp.SetUpVector(fUpVector); if (verbosity >= G4VisManager::confirmations) { G4cout << "Up direction set to " << vp.GetUpVector() << G4endl; @@ -851,7 +795,7 @@ void G4VisCommandsViewerSet::SetNewValue } else if (command == fpCommandViewpointVector) { - fViewpointVector = G4UIcommand::ConvertTo3Vector(newValue); + fViewpointVector = G4UIcommand::ConvertTo3Vector(newValue).unit(); vp.SetViewAndLights(fViewpointVector); if (verbosity >= G4VisManager::confirmations) { G4cout << "Viewpoint direction set to " diff --git a/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc b/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc index c55fa7e367..b66a088008 100644 --- a/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc +++ b/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfDAWNFILE.cc,v 1.5 2001/07/11 10:09:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // #include "G4VisFeaturesOfDAWNFILE.hh" diff --git a/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc b/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc index ddf3080b79..48eb1e237b 100644 --- a/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc +++ b/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfFukuiRenderer.cc,v 1.4 2001/07/11 10:09:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc b/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc index 9b99ecd955..c5887a2d85 100644 --- a/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc +++ b/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfOpenGL.cc,v 1.4 2001/07/11 10:09:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc b/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc index 1992ac27c4..ee78cd2a20 100644 --- a/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc +++ b/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfOpenInventor.cc,v 1.4 2001/07/11 10:09:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // diff --git a/source/visualization/management/src/G4VisManager.cc b/source/visualization/management/src/G4VisManager.cc index 5862b3bc1b..5de7c2eaa5 100644 --- a/source/visualization/management/src/G4VisManager.cc +++ b/source/visualization/management/src/G4VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisManager.cc,v 1.58 2004/07/14 15:39:07 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VisManager.cc,v 1.63 2005/03/09 23:48:15 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // GEANT4 Visualization Manager - John Allison 02/Jan/1996. @@ -63,6 +63,7 @@ G4VisManager* G4VisManager::fpInstance = 0; G4VisManager::G4VisManager (): fInitialised (false), + fpUserVisAction (0), fpGraphicsSystem (0), fpScene (0), fpSceneHandler (0), @@ -71,6 +72,23 @@ G4VisManager::G4VisManager (): fVerbose (1), fpStateDependent (0) // All other objects use default constructors. { + VerbosityGuidanceStrings.push_back + ("Simple graded message scheme - digit or string (1st character defines):"); + VerbosityGuidanceStrings.push_back + (" 0) quiet, // Nothing is printed."); + VerbosityGuidanceStrings.push_back + (" 1) startup, // Startup and endup messages are printed..."); + VerbosityGuidanceStrings.push_back + (" 2) errors, // ...and errors..."); + VerbosityGuidanceStrings.push_back + (" 3) warnings, // ...and warnings..."); + VerbosityGuidanceStrings.push_back + (" 4) confirmations, // ...and confirming messages..."); + VerbosityGuidanceStrings.push_back + (" 5) parameters, // ...and parameters of scenes and views..."); + VerbosityGuidanceStrings.push_back + (" 6) all // ...and everything available."); + if (fpInstance) { G4Exception ("G4VisManager: attempt to Construct more than one VisManager."); @@ -344,27 +362,21 @@ void G4VisManager::Draw (const G4Text& text, } } -void G4VisManager::Draw (const G4VHit& hit, - const G4Transform3D& objectTransform) { +void G4VisManager::Draw (const G4VHit& hit) { if (IsValidView ()) { ClearTransientStoreIfMarked(); CheckModel(); - fpSceneHandler -> BeginPrimitives (objectTransform); - fpSceneHandler -> AddThis (hit); - fpSceneHandler -> EndPrimitives (); + fpSceneHandler -> AddCompound (hit); } } void G4VisManager::Draw (const G4VTrajectory& traj, - G4int i_mode, - const G4Transform3D& objectTransform) { + G4int i_mode) { if (IsValidView ()) { ClearTransientStoreIfMarked(); fpSceneHandler -> SetModel (&dummyTrajectoriesModel); dummyTrajectoriesModel.SetDrawingMode(i_mode); - fpSceneHandler -> BeginPrimitives (objectTransform); - fpSceneHandler -> AddThis (traj); - fpSceneHandler -> EndPrimitives (); + fpSceneHandler -> AddCompound (traj); } } @@ -382,9 +394,9 @@ void G4VisManager::Draw (const G4VSolid& solid, if (IsValidView ()) { ClearTransientStoreIfMarked(); CheckModel(); - fpSceneHandler -> PreAddThis (objectTransform, attribs); + fpSceneHandler -> PreAddSolid (objectTransform, attribs); solid.DescribeYourselfTo (*fpSceneHandler); - fpSceneHandler -> PostAddThis (); + fpSceneHandler -> PostAddSolid (); } } @@ -485,102 +497,6 @@ void G4VisManager::CreateViewer (G4String name) { else PrintInvalidPointers (); } -void G4VisManager::DeleteCurrentSceneHandler () { - if (fVerbosity >= confirmations) { - G4cout << "G4VisManager::DeleteCurrentSceneHandler: scene handler \"" - << fpSceneHandler -> GetName () - << "\"\n and its viewer(s) are being deleted." - << G4endl; - } - if(fpSceneHandler) { - fAvailableSceneHandlers.remove (fpSceneHandler); - delete fpSceneHandler; - } - const G4SceneHandlerList& sceneHandlerList = fAvailableSceneHandlers; - G4int nSH = sceneHandlerList.size (); - G4int iSH; - for (iSH = 0; iSH < nSH; iSH++) { - if (sceneHandlerList [iSH] -> GetViewerList ().size ()) break; - } - if (iSH < nSH) { - fpSceneHandler = sceneHandlerList [iSH]; - fpViewer = fpSceneHandler -> GetViewerList () [0]; - if (fVerbosity >= confirmations) { - G4cout << " Scene handler is now \"" - << fpSceneHandler -> GetName (); - G4cout << "\"\n and viewer now \"" - << fpViewer -> GetName () - << "." << G4endl; - } - IsValidView (); // Check. - } - else if (nSH) { - fpSceneHandler = fAvailableSceneHandlers [0]; - fpViewer = 0; - // Make it impossible for user action code to Draw. - SetConcreteInstance(0); - if (fVerbosity >= warnings) { - G4cout << "WARNING: scene handler is now \"" - << fpSceneHandler -> GetName (); - G4cout << "\" but it has no viewers -\n please create one." - << G4endl; - } - } - else { - fpSceneHandler = 0; - fpViewer = 0; - // Make it impossible for user action code to Draw. - SetConcreteInstance(0); - if (fVerbosity >= warnings) { - G4cout << - "WARNING: There are now no scene handlers left." - "\n /vis/sceneHandler/select to select a scene handler and" - "\n /vis/viewer/select to select a viewer," - "\n or maybe you will have to create one." - << G4endl; - } - } -} - -void G4VisManager::DeleteCurrentViewer () { - if (fVerbosity >= confirmations) { - G4cout << "G4VisManager::DeleteCurrentViewer: viewer \"" - << fpViewer -> GetName () - << "\" being deleted." - << G4endl; - } - if (fpViewer ) { - fpViewer -> GetSceneHandler () -> RemoveViewerFromList (fpViewer); - delete fpViewer; - } - const G4ViewerList& viewerList = fpSceneHandler -> GetViewerList (); - if (viewerList.size () > 0) { - fpViewer = viewerList [0]; - fpSceneHandler -> SetCurrentViewer (fpViewer); - if (IsValidView ()) { - if (fVerbosity >= confirmations) { - G4cout << " Viewer is now \"" - << fpViewer -> GetName () - << "\"." << G4endl; - } - } - } - else { - fpViewer = 0; - fpSceneHandler -> SetCurrentViewer (0); - // Make it impossible for user action code to Draw. - SetConcreteInstance(0); - if (fVerbosity >= warnings) { - G4cout << - "WARNING: There are now no viewers left for this scene handler." - "\n /vis/sceneHandler/select to select a different scene handler" - "\n and /vis/viewer/select to select a viewer, or maybe you will" - "\n have to create some." - << G4endl; - } - } -} - void G4VisManager::GeometryHasChanged () { if (fVerbosity >= confirmations) { G4cout << "G4VisManager::GeometryHasChanged() called." << G4endl; @@ -656,6 +572,21 @@ void G4VisManager::GeometryHasChanged () { } +void G4VisManager::SetUserAction +(G4VUserVisAction* pVisAction, + const G4VisExtent& extent) { + fpUserVisAction = pVisAction; + fUserVisActionExtent = extent; + if (extent.GetExtentRadius() <= 0.) { + if (fVerbosity >= warnings) { + G4cout << + "WARNING: No extent set for user vis action. (You may" + "\n set it later when adding with /vis/scene/add/userAction.)" + << G4endl; + } + } +} + void G4VisManager::SetCurrentGraphicsSystem (G4VGraphicsSystem* pSystem) { fpGraphicsSystem = pSystem; if (fVerbosity >= confirmations) { @@ -792,7 +723,6 @@ void G4VisManager::RegisterMessengers () { fMessengerList.push_back (new G4VisCommandSceneEndOfRunAction); fMessengerList.push_back (new G4VisCommandSceneList); fMessengerList.push_back (new G4VisCommandSceneNotifyHandlers); - fMessengerList.push_back (new G4VisCommandSceneRemove); fMessengerList.push_back (new G4VisCommandSceneSelect); directory = new G4UIdirectory ("/vis/scene/add/"); @@ -802,9 +732,11 @@ void G4VisManager::RegisterMessengers () { fMessengerList.push_back (new G4VisCommandSceneAddGhosts); fMessengerList.push_back (new G4VisCommandSceneAddHits); fMessengerList.push_back (new G4VisCommandSceneAddLogicalVolume); + fMessengerList.push_back (new G4VisCommandSceneAddLogo); fMessengerList.push_back (new G4VisCommandSceneAddScale); fMessengerList.push_back (new G4VisCommandSceneAddText); fMessengerList.push_back (new G4VisCommandSceneAddTrajectories); + fMessengerList.push_back (new G4VisCommandSceneAddUserAction); fMessengerList.push_back (new G4VisCommandSceneAddVolume); directory = new G4UIdirectory ("/vis/sceneHandler/"); @@ -813,7 +745,6 @@ void G4VisManager::RegisterMessengers () { fMessengerList.push_back (new G4VisCommandSceneHandlerAttach); fMessengerList.push_back (new G4VisCommandSceneHandlerCreate); fMessengerList.push_back (new G4VisCommandSceneHandlerList); - fMessengerList.push_back (new G4VisCommandSceneHandlerRemove); fMessengerList.push_back (new G4VisCommandSceneHandlerSelect); directory = new G4UIdirectory ("/vis/viewer/"); @@ -826,7 +757,6 @@ void G4VisManager::RegisterMessengers () { fMessengerList.push_back (new G4VisCommandViewerList); fMessengerList.push_back (new G4VisCommandViewerPan); fMessengerList.push_back (new G4VisCommandViewerRefresh); - fMessengerList.push_back (new G4VisCommandViewerRemove); fMessengerList.push_back (new G4VisCommandViewerReset); fMessengerList.push_back (new G4VisCommandViewerSelect); fMessengerList.push_back (new G4VisCommandViewerUpdate); @@ -839,8 +769,8 @@ void G4VisManager::RegisterMessengers () { // Compound commands... fMessengerList.push_back (new G4VisCommandDrawTree); - fMessengerList.push_back (new G4VisCommandDrawVolume); fMessengerList.push_back (new G4VisCommandDrawView); + fMessengerList.push_back (new G4VisCommandDrawVolume); fMessengerList.push_back (new G4VisCommandOpen); fMessengerList.push_back (new G4VisCommandSpecify); } @@ -973,17 +903,7 @@ G4VViewer* G4VisManager::GetViewer (const G4String& viewerName) const { else return 0; } -G4String G4VisManager::VerbosityGuidanceString -("\n default: warnings" - "\nSimple graded message scheme - digit or string (1st character defines):" - "\n 0) quiet, // Nothing is printed." - "\n 1) startup, // Startup and endup messages are printed..." - "\n 2) errors, // ...and errors..." - "\n 3) warnings, // ...and warnings..." - "\n 4) confirmations, // ...and confirming messages..." - "\n 5) parameters, // ...and parameters of scenes and views..." - "\n 6) all // ...and everything available." - ); +std::vector G4VisManager::VerbosityGuidanceStrings; G4String G4VisManager::VerbosityString(Verbosity verbosity) { G4String s; @@ -1012,16 +932,17 @@ G4VisManager::GetVerbosityValue(const G4String& verbosityString) { else if (s(0) == 'a') verbosity = all; else { G4int intVerbosity; - const char* t = s; - std::istrstream is((char*)t); + std::istrstream is(s); is >> intVerbosity; if (!is) { G4cout << "ERROR: G4VisManager::GetVerbosityValue: invalid verbosity \"" - << verbosityString << "\"\n" - << VerbosityGuidanceString - << "\n Returning \"warnings\" == " << (G4int)warnings - << G4endl; + << verbosityString << "\""; + for (size_t i = 0; i < VerbosityGuidanceStrings.size(); ++i) { + G4cout << '\n' << VerbosityGuidanceStrings[i]; + } verbosity = warnings; + G4cout << "\n Returning " << VerbosityString(verbosity) + << G4endl; } else { verbosity = GetVerbosityValue(intVerbosity); diff --git a/source/visualization/management/src/G4VisStateDependent.cc b/source/visualization/management/src/G4VisStateDependent.cc index a6ce3c8743..0b5740a413 100644 --- a/source/visualization/management/src/G4VisStateDependent.cc +++ b/source/visualization/management/src/G4VisStateDependent.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisStateDependent.cc,v 1.5 2002/12/05 01:37:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ #include "G4VisStateDependent.hh" diff --git a/source/visualization/modeling/GNUmakefile b/source/visualization/modeling/GNUmakefile index dc7d1af389..acf7a25179 100644 --- a/source/visualization/modeling/GNUmakefile +++ b/source/visualization/modeling/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.8 2004/06/08 08:18:26 gcosmo Exp $ +# $Id: GNUmakefile,v 1.9 2005/02/15 14:51:15 johna Exp $ # -------------------------------------------------------------- # GNUmakefile for modeling library. John Allison, 31/12/1997. # -------------------------------------------------------------- @@ -34,6 +34,7 @@ CPPFLAGS += -I$(G4BASE)/run/include CPPFLAGS += -I$(G4BASE)/event/include CPPFLAGS += -I$(G4BASE)/digits_hits/hits/include CPPFLAGS += -I$(G4BASE)/digits_hits/digits/include +CPPFLAGS += -I$(G4BASE)/digits_hits/detector/include CPPFLAGS += -I$(G4BASE)/tracking/include CPPFLAGS += -I$(G4BASE)/track/include CPPFLAGS += -I$(G4BASE)/intercoms/include diff --git a/source/visualization/modeling/History b/source/visualization/modeling/History index 3d152150dc..35451bb4ab 100644 --- a/source/visualization/modeling/History +++ b/source/visualization/modeling/History @@ -1,4 +1,4 @@ -$Id: History,v 1.30 2004/11/11 16:07:33 johna Exp $ +$Id: History,v 1.35 2005/06/07 16:56:40 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,22 @@ committal in the CVS repository ! History file for visualization/modeling --------------------------------------- +7th June 2005 John Allison (modeling-V07-00-02) +- G4PhysicalVolumeModel: fixed case of off-origin volume. +- G4TextModel: Further small improvement. + +31st May 2005 John Allison (modeling-V07-00-01) +- G4TextModel: Improved global tag for better identification. + +6th May 2005 John Allison (modeling-V07-00-00) +- G4PhysicalVolumeModel: SetCopyNo of replicas and paramaterised volumes. + +3rd March 2005 John Allison (vis-V07-00-08) +- Added Set methods to G4VModel. +- Added argument to G4CallbackModel::operator()(const G4Transform3D&) so that + the model could implement a given transformation. Provided default for + G4VUserVisAction::(const G4Transform3D& = G4Transform3D::Identity). + 11th November 2004 John Allison (vis-V06-02-05) - Made use use of smart method GetPolyhedron for solids. This greatly speeds 2nd and subsequent drawings when kernel access is required. diff --git a/source/visualization/modeling/include/G4AxesModel.hh b/source/visualization/modeling/include/G4AxesModel.hh index 735380da3e..222c5bc528 100644 --- a/source/visualization/modeling/include/G4AxesModel.hh +++ b/source/visualization/modeling/include/G4AxesModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4AxesModel.hh,v 1.4 2001/08/24 20:34:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/include/G4AxesModel.icc b/source/visualization/modeling/include/G4AxesModel.icc index 30688d6c1b..ebca6da306 100644 --- a/source/visualization/modeling/include/G4AxesModel.icc +++ b/source/visualization/modeling/include/G4AxesModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4AxesModel.icc,v 1.3 2001/08/24 20:34:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ inline G4String G4AxesModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4BoundingSphereScene.hh b/source/visualization/modeling/include/G4BoundingSphereScene.hh index d676064893..3014aa076c 100644 --- a/source/visualization/modeling/include/G4BoundingSphereScene.hh +++ b/source/visualization/modeling/include/G4BoundingSphereScene.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BoundingSphereScene.hh,v 1.13 2003/05/30 13:01:31 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4BoundingSphereScene.hh,v 1.15 2005/06/07 16:54:33 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 7th June 1997 @@ -51,23 +51,27 @@ class G4BoundingSphereScene: public G4VGraphicsScene { public: G4BoundingSphereScene (G4VModel* pModel = 0); virtual ~G4BoundingSphereScene (); - void AddThis (const G4Box& s) {Accrue (s);} - void AddThis (const G4Cons& s) {Accrue (s);} - void AddThis (const G4Tubs& s) {Accrue (s);} - void AddThis (const G4Trd& s) {Accrue (s);} - void AddThis (const G4Trap& s) {Accrue (s);} - void AddThis (const G4Sphere& s) {Accrue (s);} - void AddThis (const G4Para& s) {Accrue (s);} - void AddThis (const G4Torus& s) {Accrue (s);} - void AddThis (const G4Polycone& s) {Accrue (s);} - void AddThis (const G4Polyhedra& s) {Accrue (s);} - void AddThis (const G4VSolid& s) {Accrue (s);} - void AddThis (const G4VTrajectory&) {} - void AddThis (const G4VHit&) {} - void PreAddThis (const G4Transform3D& objectTransformation, - const G4VisAttributes&); - void PostAddThis () {} + void PreAddSolid (const G4Transform3D& objectTransformation, + const G4VisAttributes&); + void PostAddSolid () {} + void AddSolid (const G4Box& s) {Accrue (s);} + void AddSolid (const G4Cons& s) {Accrue (s);} + void AddSolid (const G4Tubs& s) {Accrue (s);} + void AddSolid (const G4Trd& s) {Accrue (s);} + void AddSolid (const G4Trap& s) {Accrue (s);} + void AddSolid (const G4Sphere& s) {Accrue (s);} + void AddSolid (const G4Para& s) {Accrue (s);} + void AddSolid (const G4Torus& s) {Accrue (s);} + void AddSolid (const G4Polycone& s) {Accrue (s);} + void AddSolid (const G4Polyhedra& s) {Accrue (s);} + void AddSolid (const G4VSolid& s) {Accrue (s);} + void AddCompound (const G4VTrajectory&) {} + void AddCompound (const G4VHit&) {} G4VisExtent GetBoundingSphereExtent (); + const G4Point3D& GetCentre() const {return fCentre;} + G4double GetRadius() const {return fRadius;} + + void SetCentre(const G4Point3D& centre) {fCentre = centre;} //////////////////////////////////////////////////////////////// // The following 2 functions can be used by any code which wishes to diff --git a/source/visualization/modeling/include/G4CallbackModel.hh b/source/visualization/modeling/include/G4CallbackModel.hh new file mode 100644 index 0000000000..a38bea5523 --- /dev/null +++ b/source/visualization/modeling/include/G4CallbackModel.hh @@ -0,0 +1,74 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4CallbackModel.hh,v 1.3 2005/03/03 16:22:02 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ +// +// +// John Allison 31st December 1997. +// +// Class Description: +// +// G4CallbackModel calls a user-defined function containing, for +// example, calls to the Draw methods of G4VVisManager. This allows +// the user to add his own graphical objects to a scene. The idea is +// that the callback function is invoked by the vis system to refresh +// the screen or remake a graphical database whenever required. +// +// The user instantiates a function object containing, for example, +// calls to the Draw methods of G4VVisManager. A base class +// G4VUserVisAction is provided in the visualisation category. A +// G4CallbackModel is made by instantiating this template with a +// pointer to the function object. The G4VisManager does this for the +// user if he/she registers it (SetUserAction) and issues the command +// /vis/scene/add/userAction. See the User Guide for Application +// Developers, Section 8.8.7 and 8.8.8. + +#ifndef G4CALLBACKMODEL_HH +#define G4CALLBACKMODEL_HH + +#include "G4VModel.hh" + +template class G4CallbackModel: public G4VModel { + + public: + G4CallbackModel(F* function): + fFunction(function) {} + ~G4CallbackModel() {} + void DescribeYourselfTo(G4VGraphicsScene&) { + (*fFunction)(fTransform); + } + +protected: + + F* fFunction; + +private: + + // Private copy constructor and assigment operator - copying and + // assignment not allowed. Keeps CodeWizard happy. + G4CallbackModel (const G4CallbackModel&); + G4CallbackModel& operator = (const G4CallbackModel&); +}; + +#endif diff --git a/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh b/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh index ac6c1b7530..01adcf158f 100644 --- a/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh +++ b/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4FlavoredParallelWorldModel.hh,v 1.6 2001/07/11 10:09:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // P. Mora de Freitas et M.Verderi - 19 June 1998. // diff --git a/source/visualization/modeling/include/G4HitsModel.hh b/source/visualization/modeling/include/G4HitsModel.hh index 28c33a85d4..9621835cd0 100644 --- a/source/visualization/modeling/include/G4HitsModel.hh +++ b/source/visualization/modeling/include/G4HitsModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4HitsModel.hh,v 1.7 2001/08/24 20:36:13 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 26th August 1998. diff --git a/source/visualization/modeling/include/G4HitsModel.icc b/source/visualization/modeling/include/G4HitsModel.icc index d358032e30..7424be9ac5 100644 --- a/source/visualization/modeling/include/G4HitsModel.icc +++ b/source/visualization/modeling/include/G4HitsModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4HitsModel.icc,v 1.6 2001/08/24 20:36:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ inline G4String G4HitsModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4LogicalVolumeModel.hh b/source/visualization/modeling/include/G4LogicalVolumeModel.hh index 6c25f53ed5..ccbdc3397e 100644 --- a/source/visualization/modeling/include/G4LogicalVolumeModel.hh +++ b/source/visualization/modeling/include/G4LogicalVolumeModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolumeModel.hh,v 1.5 2001/07/11 10:09:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4LogicalVolumeModel.hh,v 1.6 2005/02/15 14:51:25 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 26th July 1999. @@ -53,6 +53,9 @@ public: // With description G4LogicalVolumeModel (G4LogicalVolume*, G4int soughtDepth = 1, + G4bool booleans = true, + G4bool voxels = true, + G4bool readout = true, const G4Transform3D& modelTransformation = G4Transform3D::Identity, const G4ModelingParameters* = 0); @@ -77,6 +80,9 @@ protected: // Data members... G4LogicalVolume* fpLV; + G4bool fBooleans; // Flag for drawing boolean components. + G4bool fVoxels; // Flag for drawing voxels. + G4bool fReadout; // Flag for drawing readout geometry. }; diff --git a/source/visualization/modeling/include/G4ModelingParameters.hh b/source/visualization/modeling/include/G4ModelingParameters.hh index 2cdb9cce7f..e5e8ef7b0d 100644 --- a/source/visualization/modeling/include/G4ModelingParameters.hh +++ b/source/visualization/modeling/include/G4ModelingParameters.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ModelingParameters.hh,v 1.8 2003/06/16 17:14:28 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4ModelingParameters.hh,v 1.10 2005/03/15 12:56:29 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 31st December 1997. @@ -109,7 +109,7 @@ public: // With description void SetDensityCulling (G4bool); void SetVisibleDensity (G4double); void SetCullingCovered (G4bool); - void SetNoOfSides (G4int); + G4int SetNoOfSides (G4int); // Returns actual number set. void SetViewGeom (); void UnsetViewGeom (); void SetViewHits (); diff --git a/source/visualization/modeling/include/G4ModelingParameters.icc b/source/visualization/modeling/include/G4ModelingParameters.icc index 9da770df44..a1c68569d6 100644 --- a/source/visualization/modeling/include/G4ModelingParameters.icc +++ b/source/visualization/modeling/include/G4ModelingParameters.icc @@ -22,7 +22,7 @@ // // // $Id: G4ModelingParameters.icc,v 1.4 2001/07/11 10:09:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4NullModel.hh b/source/visualization/modeling/include/G4NullModel.hh index 9e6f81511f..0e28409d2c 100644 --- a/source/visualization/modeling/include/G4NullModel.hh +++ b/source/visualization/modeling/include/G4NullModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NullModel.hh,v 1.6 2001/08/24 20:36:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 4th April 1998. diff --git a/source/visualization/modeling/include/G4PhysicalVolumeMassScene.hh b/source/visualization/modeling/include/G4PhysicalVolumeMassScene.hh index be440f0903..373ed6580a 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeMassScene.hh +++ b/source/visualization/modeling/include/G4PhysicalVolumeMassScene.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeMassScene.hh,v 1.2 2004/12/10 18:19:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-05 $ +// $Id: G4PhysicalVolumeMassScene.hh,v 1.4 2005/01/27 20:06:35 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 12th September 2004 @@ -66,6 +66,7 @@ class G4VPhysicalVolume; class G4LogicalVolume; class G4PhysicalVolumeModel; +class G4Material; class G4PhysicalVolumeMassScene: public G4VGraphicsScene { @@ -87,21 +88,21 @@ public: // With description public: // Force execution of AccrueMass for all solids... - void AddThis (const G4Box& s) {AccrueMass (s);} - void AddThis (const G4Cons & s) {AccrueMass (s);} - void AddThis (const G4Tubs& s) {AccrueMass (s);} - void AddThis (const G4Trd& s) {AccrueMass (s);} - void AddThis (const G4Trap& s) {AccrueMass (s);} - void AddThis (const G4Sphere& s) {AccrueMass (s);} - void AddThis (const G4Para& s) {AccrueMass (s);} - void AddThis (const G4Torus& s) {AccrueMass (s);} - void AddThis (const G4Polycone& s) {AccrueMass (s);} - void AddThis (const G4Polyhedra& s) {AccrueMass (s);} - void AddThis (const G4VSolid& s) {AccrueMass (s);} - void AddThis (const G4VTrajectory&) {} - void AddThis (const G4VHit&) {} - void PreAddThis (const G4Transform3D&, const G4VisAttributes&) {} - void PostAddThis () {} + void PreAddSolid (const G4Transform3D&, const G4VisAttributes&) {} + void PostAddSolid () {} + void AddSolid (const G4Box& s) {AccrueMass (s);} + void AddSolid (const G4Cons & s) {AccrueMass (s);} + void AddSolid (const G4Tubs& s) {AccrueMass (s);} + void AddSolid (const G4Trd& s) {AccrueMass (s);} + void AddSolid (const G4Trap& s) {AccrueMass (s);} + void AddSolid (const G4Sphere& s) {AccrueMass (s);} + void AddSolid (const G4Para& s) {AccrueMass (s);} + void AddSolid (const G4Torus& s) {AccrueMass (s);} + void AddSolid (const G4Polycone& s) {AccrueMass (s);} + void AddSolid (const G4Polyhedra& s) {AccrueMass (s);} + void AddSolid (const G4VSolid& s) {AccrueMass (s);} + void AddCompound (const G4VTrajectory&) {} + void AddCompound (const G4VHit&) {} void EstablishSpecials (G4PhysicalVolumeModel&); //////////////////////////////////////////////////////////////// @@ -130,6 +131,7 @@ private: G4int fCurrentDepth; // Current depth of geom. hierarchy. G4VPhysicalVolume* fpCurrentPV; // Current physical volume. G4LogicalVolume* fpCurrentLV; // Current logical volume. + G4Material* fpCurrentMaterial; // Current material. }; #endif diff --git a/source/visualization/modeling/include/G4PhysicalVolumeModel.hh b/source/visualization/modeling/include/G4PhysicalVolumeModel.hh index 267c79d446..535513e806 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeModel.hh +++ b/source/visualization/modeling/include/G4PhysicalVolumeModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeModel.hh,v 1.17 2004/09/13 18:04:55 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicalVolumeModel.hh,v 1.20 2005/03/09 16:23:21 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 31st December 1997. @@ -49,6 +49,7 @@ class G4LogicalVolume; class G4VSolid; class G4Material; class G4VisAttributes; +class G4Polyhedron; class G4PhysicalVolumeModel: public G4VModel { @@ -88,23 +89,34 @@ public: // With description const G4PhysicalVolumeModel* GetG4PhysicalVolumeModel () const { return this; } + G4PhysicalVolumeModel* GetG4PhysicalVolumeModel () { return this; } const G4VPhysicalVolume* GetTopPhysicalVolume () const {return fpTopPV;} + G4int GetRequestedDepth () const {return fRequestedDepth;} + const G4Polyhedron* GetClippingVolume () const { + return fpClippingPolyhedron; + } + void SetRequestedDepth (G4int requestedDepth) { fRequestedDepth = requestedDepth; } + void SetClippingPolyhedron (const G4Polyhedron* pClippingPolyhedron) { + fpClippingPolyhedron = pClippingPolyhedron; + } + G4bool Validate (G4bool warn); // Validate, but allow internal changes (hence non-const function). void DefinePointersToWorkingSpace (G4int* pCurrentDepth, G4VPhysicalVolume** ppCurrentPV, - G4LogicalVolume** ppCurrentLV); + G4LogicalVolume** ppCurrentLV, + G4Material** ppCurrentMaterial); // For use (optional) by the scene handler if it needs to know about // the current information maintained through these pointers. @@ -121,7 +133,7 @@ protected: G4int requestedDepth, G4LogicalVolume*, G4VSolid*, - const G4Material*, + G4Material*, const G4Transform3D&, G4VGraphicsScene&); @@ -149,7 +161,9 @@ protected: G4int fCurrentDepth; // Current depth of geom. hierarchy. G4VPhysicalVolume* fpCurrentPV; // Current physical volume. G4LogicalVolume* fpCurrentLV; // Current logical volume. + G4Material* fpCurrentMaterial; // Current material. G4bool fCurtailDescent;// Can be set to curtail descent. + const G4Polyhedron*fpClippingPolyhedron; //////////////////////////////////////////////////////////// // Pointers to working space in scene, if required. @@ -157,6 +171,7 @@ protected: G4int* fpCurrentDepth; // Current depth of geom. hierarchy. G4VPhysicalVolume** fppCurrentPV; // Current physical volume. G4LogicalVolume** fppCurrentLV; // Current logical volume. + G4Material** fppCurrentMaterial; // Current material. private: diff --git a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh index 1ac85f5460..ba143ec93b 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh +++ b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeSearchScene.hh,v 1.11 2003/05/30 13:01:31 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicalVolumeSearchScene.hh,v 1.13 2005/01/27 20:06:37 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 10th August 1998. @@ -52,22 +52,22 @@ public: G4PhysicalVolumeSearchScene (const G4String& requiredPhysicalVolumeName, G4int requiredCopyNo); virtual ~G4PhysicalVolumeSearchScene (); - void AddThis (const G4Box& s) {FindVolume (s);} - void AddThis (const G4Cons & s) {FindVolume (s);} - void AddThis (const G4Tubs& s) {FindVolume (s);} - void AddThis (const G4Trd& s) {FindVolume (s);} - void AddThis (const G4Trap& s) {FindVolume (s);} - void AddThis (const G4Sphere& s) {FindVolume (s);} - void AddThis (const G4Para& s) {FindVolume (s);} - void AddThis (const G4Torus& s) {FindVolume (s);} - void AddThis (const G4Polycone& s) {FindVolume (s);} - void AddThis (const G4Polyhedra& s) {FindVolume (s);} - void AddThis (const G4VSolid& s) {FindVolume (s);} - void AddThis (const G4VTrajectory&) {} - void AddThis (const G4VHit&) {} - void PreAddThis (const G4Transform3D& objectTransformation, - const G4VisAttributes&); - void PostAddThis (); + void PreAddSolid (const G4Transform3D& objectTransformation, + const G4VisAttributes&); + void PostAddSolid (); + void AddSolid (const G4Box& s) {FindVolume (s);} + void AddSolid (const G4Cons & s) {FindVolume (s);} + void AddSolid (const G4Tubs& s) {FindVolume (s);} + void AddSolid (const G4Trd& s) {FindVolume (s);} + void AddSolid (const G4Trap& s) {FindVolume (s);} + void AddSolid (const G4Sphere& s) {FindVolume (s);} + void AddSolid (const G4Para& s) {FindVolume (s);} + void AddSolid (const G4Torus& s) {FindVolume (s);} + void AddSolid (const G4Polycone& s) {FindVolume (s);} + void AddSolid (const G4Polyhedra& s) {FindVolume (s);} + void AddSolid (const G4VSolid& s) {FindVolume (s);} + void AddCompound (const G4VTrajectory&) {} + void AddCompound (const G4VHit&) {} void EstablishSpecials (G4PhysicalVolumeModel&); G4int GetFoundDepth () const; G4VPhysicalVolume* GetFoundVolume () const; @@ -94,6 +94,7 @@ private: G4int fCurrentDepth; // Current depth of geom. hierarchy. G4VPhysicalVolume* fpCurrentPV; // Current physical volume. G4LogicalVolume* fpCurrentLV; // Current logical volume. + G4Material* fpCurrentMaterial; // Current material. const G4Transform3D* fpCurrentObjectTransformation; G4int fFoundDepth; // Found depth. G4VPhysicalVolume* fpFoundPV; // Found physical volume. diff --git a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc index 4d4a27e9f6..857f8a6173 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc +++ b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc @@ -21,20 +21,20 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeSearchScene.icc,v 1.4 2001/07/11 10:09:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicalVolumeSearchScene.icc,v 1.5 2005/01/27 20:06:42 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 10th August 1998. // An artificial scene to find physical volumes. -inline void G4PhysicalVolumeSearchScene::PreAddThis +inline void G4PhysicalVolumeSearchScene::PreAddSolid (const G4Transform3D& objectTransformation, const G4VisAttributes&) { fpCurrentObjectTransformation = &objectTransformation; } -inline void G4PhysicalVolumeSearchScene::PostAddThis () {} +inline void G4PhysicalVolumeSearchScene::PostAddSolid () {} inline G4int G4PhysicalVolumeSearchScene::GetFoundDepth () const { return fFoundDepth; diff --git a/source/visualization/modeling/include/G4ScaleModel.hh b/source/visualization/modeling/include/G4ScaleModel.hh index 73ba4a272e..73fd2855a1 100644 --- a/source/visualization/modeling/include/G4ScaleModel.hh +++ b/source/visualization/modeling/include/G4ScaleModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4ScaleModel.hh,v 1.2 2001/08/24 20:36:18 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 21st July 2001. diff --git a/source/visualization/modeling/include/G4ScaleModel.icc b/source/visualization/modeling/include/G4ScaleModel.icc index d66454fd4e..75637ff63c 100644 --- a/source/visualization/modeling/include/G4ScaleModel.icc +++ b/source/visualization/modeling/include/G4ScaleModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4ScaleModel.icc,v 1.2 2001/08/24 20:36:19 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ inline G4String G4ScaleModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4TextModel.hh b/source/visualization/modeling/include/G4TextModel.hh index f981fc452d..c6864b89ca 100644 --- a/source/visualization/modeling/include/G4TextModel.hh +++ b/source/visualization/modeling/include/G4TextModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TextModel.hh,v 1.4 2001/08/24 20:36:21 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4TextModel.hh,v 1.5 2005/05/31 17:01:25 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 3rd April 2001 @@ -64,7 +64,7 @@ private: G4TextModel (const G4TextModel&); G4TextModel& operator = (const G4TextModel&); - G4Text fText; + G4Text fG4Text; }; diff --git a/source/visualization/modeling/include/G4TextModel.icc b/source/visualization/modeling/include/G4TextModel.icc index 0dbb09068a..70969453c3 100644 --- a/source/visualization/modeling/include/G4TextModel.icc +++ b/source/visualization/modeling/include/G4TextModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4TextModel.icc,v 1.3 2001/08/24 20:36:22 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ inline G4String G4TextModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4TrajectoriesModel.hh b/source/visualization/modeling/include/G4TrajectoriesModel.hh index ee34396949..2dc1dc3a45 100644 --- a/source/visualization/modeling/include/G4TrajectoriesModel.hh +++ b/source/visualization/modeling/include/G4TrajectoriesModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoriesModel.hh,v 1.8 2002/11/11 18:39:28 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 26th August 1998. diff --git a/source/visualization/modeling/include/G4TrajectoriesModel.icc b/source/visualization/modeling/include/G4TrajectoriesModel.icc index 30d8742341..4215f9b4cb 100644 --- a/source/visualization/modeling/include/G4TrajectoriesModel.icc +++ b/source/visualization/modeling/include/G4TrajectoriesModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoriesModel.icc,v 1.6 2001/08/24 20:36:24 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ inline G4String G4TrajectoriesModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4VModel.hh b/source/visualization/modeling/include/G4VModel.hh index ff41fb665f..adb160bac9 100644 --- a/source/visualization/modeling/include/G4VModel.hh +++ b/source/visualization/modeling/include/G4VModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VModel.hh,v 1.14 2003/06/16 17:14:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VModel.hh,v 1.16 2005/03/03 16:39:15 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 31st December 1997. @@ -73,26 +73,28 @@ public: // With description const G4VisExtent& GetExtent () const; // Extent of visible objects in local coordinate system. - // Define protected data member in derived class constructor. const G4String& GetGlobalDescription () const; // A description which does not change and lasts the life of the model. - // Define protected data member in derived class constructor. const G4String& GetGlobalTag () const; // A tag which does not change and lasts the life of the model. - // Define protected data member in derived class constructor. const G4Transform3D& GetTransformation () const; - // Model transformation, i.e., position and orientation of model in world. + // Model transformation, i.e., position and orientation of model in + // world. It is the responsibility of the model to apply this + // transformation before passing items to the graphics scene. virtual const G4PhysicalVolumeModel* GetG4PhysicalVolumeModel () const; virtual G4PhysicalVolumeModel* GetG4PhysicalVolumeModel (); // Returns 0 unless implemented by derived class. + // Set methods for above... void SetModelingParameters (const G4ModelingParameters*); - void SetExtent (const G4VisExtent&); + void SetGlobalDescription (const G4String&); + void SetGlobalTag (const G4String&); + void SetTransformation (const G4Transform3D&); virtual G4bool Validate (G4bool warn = true); // Validate, but allow internal changes (hence non-const function). diff --git a/source/visualization/modeling/include/G4VModel.icc b/source/visualization/modeling/include/G4VModel.icc index b92689fb48..a665522f7e 100644 --- a/source/visualization/modeling/include/G4VModel.icc +++ b/source/visualization/modeling/include/G4VModel.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VModel.icc,v 1.9 2001/07/25 21:12:20 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4VModel.icc,v 1.10 2005/03/03 16:39:15 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 31st December 1997. @@ -64,3 +64,15 @@ inline void G4VModel::SetModelingParameters (const G4ModelingParameters* pMP) { inline void G4VModel::SetExtent (const G4VisExtent& extent) { fExtent = extent; } + +inline void G4VModel::SetGlobalDescription (const G4String& desc) { + fGlobalDescription = desc; +} + +inline void G4VModel::SetGlobalTag (const G4String& tag) { + fGlobalTag = tag; +} + +inline void G4VModel::SetTransformation (const G4Transform3D& transform) { + fTransform = transform; +} diff --git a/source/visualization/modeling/src/G4AxesModel.cc b/source/visualization/modeling/src/G4AxesModel.cc index 1acecfe836..1ccc9dc39f 100644 --- a/source/visualization/modeling/src/G4AxesModel.cc +++ b/source/visualization/modeling/src/G4AxesModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4AxesModel.cc,v 1.5 2001/08/14 18:43:29 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/src/G4BoundingSphereScene.cc b/source/visualization/modeling/src/G4BoundingSphereScene.cc index dbcbb31fb8..24c1b4c9e1 100644 --- a/source/visualization/modeling/src/G4BoundingSphereScene.cc +++ b/source/visualization/modeling/src/G4BoundingSphereScene.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BoundingSphereScene.cc,v 1.8 2001/07/25 21:10:22 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4BoundingSphereScene.cc,v 1.9 2005/01/27 20:06:49 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 7th June 1997 @@ -42,7 +42,7 @@ G4BoundingSphereScene::G4BoundingSphereScene (G4VModel* pModel): G4BoundingSphereScene::~G4BoundingSphereScene () {} -void G4BoundingSphereScene::PreAddThis +void G4BoundingSphereScene::PreAddSolid (const G4Transform3D& objectTransformation, const G4VisAttributes&) { fpObjectTransformation = &objectTransformation; diff --git a/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc b/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc index 1de8f8b569..662db26b7f 100644 --- a/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc +++ b/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4FlavoredParallelWorldModel.cc,v 1.6 2002/11/20 17:21:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // P. Mora de Freitas et M.Verderi - 19 June 1998. // Model for flavored parallel world volumes. diff --git a/source/visualization/modeling/src/G4HitsModel.cc b/source/visualization/modeling/src/G4HitsModel.cc index 586e059a0e..fad262655b 100644 --- a/source/visualization/modeling/src/G4HitsModel.cc +++ b/source/visualization/modeling/src/G4HitsModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HitsModel.cc,v 1.9 2002/10/24 15:07:21 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4HitsModel.cc,v 1.11 2005/01/27 20:06:52 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 26th August 1998. @@ -54,10 +54,9 @@ void G4HitsModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { for (int iHC = 0; iHC < nHC; iHC++) { G4VHitsCollection* HC = HCE -> GetHC (iHC); if (HC) { - size_t nHits = HC -> GetSize (); - for(size_t iHit = 0; iHit < nHits; ++iHit) { + for(size_t iHit = 0; iHit < HC->GetSize(); ++iHit) { G4VHit* hit = HC -> GetHit (iHit); - sceneHandler.AddThis (*hit); + sceneHandler.AddCompound (*hit); } } } diff --git a/source/visualization/modeling/src/G4LogicalVolumeModel.cc b/source/visualization/modeling/src/G4LogicalVolumeModel.cc index bf9cdc513a..8e4060c418 100644 --- a/source/visualization/modeling/src/G4LogicalVolumeModel.cc +++ b/source/visualization/modeling/src/G4LogicalVolumeModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolumeModel.cc,v 1.9 2003/11/03 17:08:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4LogicalVolumeModel.cc,v 1.11 2005/02/15 14:51:33 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 26th July 1999. @@ -36,10 +36,15 @@ #include "G4ModelingParameters.hh" #include "G4VGraphicsScene.hh" #include "G4DrawVoxels.hh" +#include "G4VSensitiveDetector.hh" +#include "G4VReadOutGeometry.hh" G4LogicalVolumeModel::G4LogicalVolumeModel (G4LogicalVolume* pLV, G4int soughtDepth, + G4bool booleans, + G4bool voxels, + G4bool readout, const G4Transform3D& modelTransformation, const G4ModelingParameters* pMP): // Instantiate a G4PhysicalVolumeModel with a G4PVPlacement to @@ -60,7 +65,10 @@ G4LogicalVolumeModel::G4LogicalVolumeModel modelTransformation, pMP, true), // Use full extent. - fpLV (pLV) + fpLV (pLV), + fBooleans (booleans), + fVoxels (voxels), + fReadout (readout) { fGlobalTag = fpLV -> GetName (); fGlobalDescription = "G4LogicalVolumeModel " + fGlobalTag; @@ -83,19 +91,39 @@ void G4LogicalVolumeModel::DescribeYourselfTo G4PhysicalVolumeModel::DescribeYourselfTo (sceneHandler); fpMP = tpMP; - if (fpTopPV->GetLogicalVolume()->GetVoxelHeader()) { - // Add Voxels. - G4DrawVoxels dv; - G4PlacedPolyhedronList* pPPL = - dv.CreatePlacedPolyhedra (fpTopPV -> GetLogicalVolume ()); - for (size_t i = 0; i < pPPL -> size (); i++) { - const G4Transform3D& transform = (*pPPL)[i].GetTransform (); - const G4Polyhedron& polyhedron = (*pPPL)[i].GetPolyhedron (); - sceneHandler.BeginPrimitives (transform); - sceneHandler.AddPrimitive (polyhedron); - sceneHandler.EndPrimitives (); + if (fVoxels) { + if (fpTopPV->GetLogicalVolume()->GetVoxelHeader()) { + // Add Voxels. + G4DrawVoxels dv; + G4PlacedPolyhedronList* pPPL = + dv.CreatePlacedPolyhedra (fpTopPV -> GetLogicalVolume ()); + for (size_t i = 0; i < pPPL -> size (); i++) { + const G4Transform3D& transform = (*pPPL)[i].GetTransform (); + const G4Polyhedron& polyhedron = (*pPPL)[i].GetPolyhedron (); + sceneHandler.BeginPrimitives (transform); + sceneHandler.AddPrimitive (polyhedron); + sceneHandler.EndPrimitives (); + } + delete pPPL; + } + } + + if (fReadout) { + // Draw readout geometry... + G4VSensitiveDetector* sd = fpLV->GetSensitiveDetector(); + if (sd) { + G4VReadOutGeometry* roGeom = sd->GetROgeometry(); + if (roGeom) { + G4VPhysicalVolume* roWorld = roGeom->GetROWorld(); + G4cout << "Readout geometry \"" << roGeom->GetName() + << "\" with top physical volume \"" + << roWorld->GetName() + << "\"" << G4endl; + G4PhysicalVolumeModel pvModel(roWorld); + pvModel.SetModelingParameters(fpMP); + pvModel.DescribeYourselfTo(sceneHandler); + } } - delete pPPL; } } @@ -106,23 +134,27 @@ void G4LogicalVolumeModel::DescribeSolid G4VSolid* pSol, const G4VisAttributes* pVisAttribs, G4VGraphicsScene& sceneHandler) { - // Look for "constituents". Could be a Boolean solid. - G4VSolid* pSol0 = pSol -> GetConstituentSolid (0); - if (pSol0) { // Composite solid... - G4VSolid* pSol1 = pSol -> GetConstituentSolid (1); - if (!pSol1) { - G4Exception - ("G4PhysicalVolumeModel::DescribeSolid:" - " 2nd component solid is missing."); + + if (fBooleans) { + // Look for "constituents". Could be a Boolean solid. + G4VSolid* pSol0 = pSol -> GetConstituentSolid (0); + if (pSol0) { // Composite solid... + G4VSolid* pSol1 = pSol -> GetConstituentSolid (1); + if (!pSol1) { + G4Exception + ("G4PhysicalVolumeModel::DescribeSolid:" + " 2nd component solid is missing."); + } + // Draw these constituents white and "forced wireframe"... + G4VisAttributes constituentAttributes; + constituentAttributes.SetForceWireframe(true); + DescribeSolid (theAT, pSol0, &constituentAttributes, sceneHandler); + DescribeSolid (theAT, pSol1, &constituentAttributes, sceneHandler); } - // Draw these constituents white and "forced wireframe"... - G4VisAttributes constituentAttributes; - constituentAttributes.SetForceWireframe(true); - DescribeSolid (theAT, pSol0, &constituentAttributes, sceneHandler); - DescribeSolid (theAT, pSol1, &constituentAttributes, sceneHandler); } + // In any case draw the original/resultant solid... - sceneHandler.PreAddThis (theAT, *pVisAttribs); + sceneHandler.PreAddSolid (theAT, *pVisAttribs); pSol -> DescribeYourselfTo (sceneHandler); - sceneHandler.PostAddThis (); + sceneHandler.PostAddSolid (); } diff --git a/source/visualization/modeling/src/G4ModelingParameters.cc b/source/visualization/modeling/src/G4ModelingParameters.cc index d5e48a00e9..a7f52afb14 100644 --- a/source/visualization/modeling/src/G4ModelingParameters.cc +++ b/source/visualization/modeling/src/G4ModelingParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ModelingParameters.cc,v 1.6 2003/06/16 17:14:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4ModelingParameters.cc,v 1.7 2005/03/15 12:56:29 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 31st December 1997. @@ -115,8 +115,8 @@ void G4ModelingParameters::SetVisibleDensity (G4double visibleDensity) { } } -void G4ModelingParameters::SetNoOfSides (G4int nSides) { - const G4int nSidesMin = 3; +G4int G4ModelingParameters::SetNoOfSides (G4int nSides) { + const G4int nSidesMin = 12; if (nSides < nSidesMin) { nSides = nSidesMin; G4cout << "G4ModelingParameters::SetNoOfSides: attempt to set the" @@ -124,6 +124,7 @@ void G4ModelingParameters::SetNoOfSides (G4int nSides) { << "; forced to" << nSides << G4endl; } fNoOfSides = nSides; + return fNoOfSides; } void G4ModelingParameters::PrintDifferences diff --git a/source/visualization/modeling/src/G4NullModel.cc b/source/visualization/modeling/src/G4NullModel.cc index 8bddaa2359..95a50088a7 100644 --- a/source/visualization/modeling/src/G4NullModel.cc +++ b/source/visualization/modeling/src/G4NullModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NullModel.cc,v 1.7 2003/05/30 13:01:32 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 4th April 1998. diff --git a/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc b/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc index 36e069ef23..6335298037 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeMassScene.cc,v 1.3 2004/11/11 16:06:49 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicalVolumeMassScene.cc,v 1.4 2005/01/26 16:48:56 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 10th August 1998. @@ -48,7 +48,8 @@ G4PhysicalVolumeMassScene::G4PhysicalVolumeMassScene (): fLastDensity (0.), fCurrentDepth (0), fpCurrentPV (0), - fpCurrentLV (0) + fpCurrentLV (0), + fpCurrentMaterial (0) {} G4PhysicalVolumeMassScene::~G4PhysicalVolumeMassScene () {} @@ -57,7 +58,8 @@ void G4PhysicalVolumeMassScene::EstablishSpecials (G4PhysicalVolumeModel& pvModel) { pvModel.DefinePointersToWorkingSpace (&fCurrentDepth, &fpCurrentPV, - &fpCurrentLV); + &fpCurrentLV, + &fpCurrentMaterial); } void G4PhysicalVolumeMassScene::Reset () @@ -72,7 +74,7 @@ void G4PhysicalVolumeMassScene::Reset () fCurrentDepth = 0; fpCurrentPV = 0; fpCurrentLV = 0; - + fpCurrentMaterial = 0; } void G4PhysicalVolumeMassScene::AccrueMass (const G4VSolid& solid) @@ -82,8 +84,9 @@ void G4PhysicalVolumeMassScene::AccrueMass (const G4VSolid& solid) fPVPCount = 0; } - G4double currentVolume; - G4double currentDensity; + G4double currentVolume = ((G4VSolid&)solid).GetCubicVolume(); + G4double currentDensity = fpCurrentMaterial->GetDensity(); + /* Using G4Polyhedron... (gives slightly different answers on Tubs, e.g.). G4Polyhedron* pPolyhedron = solid.GetPolyhedron(); if (pPolyhedron) { G4Material* pMaterial; @@ -93,6 +96,7 @@ void G4PhysicalVolumeMassScene::AccrueMass (const G4VSolid& solid) } else { pMaterial = fpCurrentLV->GetMaterial(); } + assert(pMaterial == fpCurrentMaterial); currentVolume = pPolyhedron->GetVolume(); currentDensity = pMaterial->GetDensity(); } else { @@ -106,6 +110,7 @@ void G4PhysicalVolumeMassScene::AccrueMass (const G4VSolid& solid) currentVolume = 0.; currentDensity = 0.; } + */ if (fCurrentDepth == 0) fVolume = currentVolume; diff --git a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc index 74414ffd79..0cdca9f39a 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeModel.cc,v 1.25 2004/09/22 19:50:32 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicalVolumeModel.cc,v 1.32 2005/06/07 16:54:33 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 31st December 1997. @@ -41,6 +41,8 @@ #include "G4BoundingSphereScene.hh" #include "G4PhysicalVolumeSearchScene.hh" #include "G4TransportationManager.hh" +#include "G4VVisManager.hh" +#include "G4Polyhedron.hh" #include @@ -60,9 +62,11 @@ G4PhysicalVolumeModel::G4PhysicalVolumeModel fpCurrentPV (0), fpCurrentLV (0), fCurtailDescent (false), + fpClippingPolyhedron (0), fpCurrentDepth (0), fppCurrentPV (0), - fppCurrentLV (0) + fppCurrentLV (0), + fppCurrentMaterial (0) { const int len = 8; char a [len]; std::ostrstream o (a, len); o.seekp (std::ios::beg); @@ -98,9 +102,18 @@ void G4PhysicalVolumeModel::CalculateExtent () { false); // View digis - not relevant for physical volume model. fpMP = &mParams; DescribeYourselfTo (bsScene); - fExtent = bsScene.GetBoundingSphereExtent (); - if (!(fExtent.GetXmin() < fExtent.GetXmax())) { + G4double radius = bsScene.GetRadius(); + if (radius < 0.) { // Nothing in the scene. fExtent = fpTopPV -> GetLogicalVolume () -> GetSolid () -> GetExtent (); + } else { + // Transform back to coordinates relative to the top + // transformation, which is in G4VModel::fTransform. This makes + // it conform to all models, which are defined by a + // transformation and an extent relative to that + // transformation... + G4Point3D centre = bsScene.GetCentre(); + centre.transform(fTransform.inverse()); + fExtent = G4VisExtent(centre, radius); } fpMP = tempMP; fRequestedDepth = tempRequestedDepth; @@ -133,13 +146,14 @@ void G4PhysicalVolumeModel::DescribeYourselfTo if (fpCurrentDepth) *fpCurrentDepth = fCurrentDepth; if (fppCurrentPV) *fppCurrentPV = fpCurrentPV; if (fppCurrentLV) *fppCurrentLV = fpCurrentLV; - + if (fppCurrentMaterial) *fppCurrentMaterial = fpCurrentMaterial; sceneHandler.DecommissionSpecials (*this); // Clear pointers to working space. fpCurrentDepth = 0; fppCurrentPV = 0; fppCurrentLV = 0; + fppCurrentMaterial = 0; } } @@ -162,10 +176,12 @@ G4String G4PhysicalVolumeModel::GetCurrentDescription () const { void G4PhysicalVolumeModel::DefinePointersToWorkingSpace (G4int* pCurrentDepth, G4VPhysicalVolume** ppCurrentPV, - G4LogicalVolume** ppCurrentLV) { + G4LogicalVolume** ppCurrentLV, + G4Material** ppCurrentMaterial) { fpCurrentDepth = pCurrentDepth; fppCurrentPV = ppCurrentPV; fppCurrentLV = ppCurrentLV; + fppCurrentMaterial = ppCurrentMaterial; } void G4PhysicalVolumeModel::VisitGeometryAndGetVisReps @@ -209,6 +225,7 @@ void G4PhysicalVolumeModel::VisitGeometryAndGetVisReps pMaterial = pP -> ComputeMaterial (n, pVPV); pP -> ComputeTransformation (n, pVPV); pSol -> ComputeDimensions (pP, n, pVPV); + pVPV -> SetCopyNo (n); DescribeAndDescend (pVPV, requestedDepth, pLV, pSol, pMaterial, theAT, sceneHandler); } @@ -268,8 +285,7 @@ void G4PhysicalVolumeModel::VisitGeometryAndGetVisReps } pVPV -> SetTranslation (translation); pVPV -> SetRotation (pRotation); - // pVPV -> SetCopyNo (n); // Has no effect and might even be - // dangerous. + pVPV -> SetCopyNo (n); pSol = pLV -> GetSolid (); pMaterial = pLV -> GetMaterial (); DescribeAndDescend (pVPV, requestedDepth, pLV, pSol, pMaterial, @@ -289,7 +305,7 @@ void G4PhysicalVolumeModel::DescribeAndDescend G4int requestedDepth, G4LogicalVolume* pLV, G4VSolid* pSol, - const G4Material* pMaterial, + G4Material* pMaterial, const G4Transform3D& theAT, G4VGraphicsScene& sceneHandler) { @@ -298,8 +314,10 @@ void G4PhysicalVolumeModel::DescribeAndDescend if (fpCurrentDepth) *fpCurrentDepth = fCurrentDepth; fpCurrentPV = pVPV; fpCurrentLV = pLV; + fpCurrentMaterial = pMaterial; if (fppCurrentPV) *fppCurrentPV = fpCurrentPV; if (fppCurrentLV) *fppCurrentLV = fpCurrentLV; + if (fppCurrentMaterial) *fppCurrentMaterial = fpCurrentMaterial; const G4RotationMatrix objectRotation = pVPV -> GetObjectRotationValue (); const G4ThreeVector& translation = pVPV -> GetTranslation (); @@ -384,9 +402,40 @@ void G4PhysicalVolumeModel::DescribeSolid G4VSolid* pSol, const G4VisAttributes* pVisAttribs, G4VGraphicsScene& sceneHandler) { - sceneHandler.PreAddThis (theAT, *pVisAttribs); - pSol -> DescribeYourselfTo (sceneHandler); - sceneHandler.PostAddThis (); + + sceneHandler.PreAddSolid (theAT, *pVisAttribs); + if (fpClippingPolyhedron) // Clip and force polyhedral representation... + { + G4Polyhedron clipper(*fpClippingPolyhedron); // Local copy. + clipper.Transform(theAT.inverse()); + + G4Polyhedron::SetNumberOfRotationSteps (fpMP->GetNoOfSides()); + G4Polyhedron* pClippee = pSol->GetPolyhedron(); + G4Polyhedron::ResetNumberOfRotationSteps (); + if (pClippee) // Solid can provide. + { + G4Polyhedron clipped(pClippee->subtract(clipper)); + if(clipped.IsErrorBooleanProcess()) + { + G4cout << + "WARNING: G4PhysicalVolumeModel::DescribeSolid: polyhedron for solid\n \"" + << pSol->GetName() << + "\" skipped due to error during Boolean processing." + << G4endl; + } + else + { + clipped.SetVisAttributes(pVisAttribs); + G4VVisManager::GetConcreteInstance()->Draw(clipped,theAT); + } + } + } + else // Standard treatment... + { + pSol -> DescribeYourselfTo (sceneHandler); + + } + sceneHandler.PostAddSolid (); } G4bool G4PhysicalVolumeModel::IsThisCulled (const G4LogicalVolume* pLV, diff --git a/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc b/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc index 345e86d476..6f8c609821 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeSearchScene.cc,v 1.7 2003/05/30 13:01:32 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4PhysicalVolumeSearchScene.cc,v 1.8 2005/01/26 17:07:37 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 10th August 1998. @@ -41,6 +41,7 @@ G4PhysicalVolumeSearchScene::G4PhysicalVolumeSearchScene fCurrentDepth (0), fpCurrentPV (0), fpCurrentLV (0), + fpCurrentMaterial (0), fpCurrentObjectTransformation (0), fFoundDepth (0), fpFoundPV (0), @@ -54,7 +55,8 @@ void G4PhysicalVolumeSearchScene::EstablishSpecials (G4PhysicalVolumeModel& pvModel) { pvModel.DefinePointersToWorkingSpace (&fCurrentDepth, &fpCurrentPV, - &fpCurrentLV); + &fpCurrentLV, + &fpCurrentMaterial); } void G4PhysicalVolumeSearchScene::FindVolume (const G4VSolid&) { diff --git a/source/visualization/modeling/src/G4ScaleModel.cc b/source/visualization/modeling/src/G4ScaleModel.cc index 623b3b5a2a..6880b2c118 100644 --- a/source/visualization/modeling/src/G4ScaleModel.cc +++ b/source/visualization/modeling/src/G4ScaleModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4ScaleModel.cc,v 1.3 2001/08/14 18:43:31 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 21st July 2001. diff --git a/source/visualization/modeling/src/G4TextModel.cc b/source/visualization/modeling/src/G4TextModel.cc index 65d4f97b7b..7aac5fef27 100644 --- a/source/visualization/modeling/src/G4TextModel.cc +++ b/source/visualization/modeling/src/G4TextModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TextModel.cc,v 1.4 2001/08/14 18:43:32 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4TextModel.cc,v 1.6 2005/06/07 16:53:40 allison Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 3rd April 2001 @@ -33,15 +33,23 @@ #include "G4ModelingParameters.hh" #include "G4VGraphicsScene.hh" +#include "G4UnitsTable.hh" +#include + G4TextModel::~G4TextModel () {} -G4TextModel::G4TextModel (const G4Text& text): fText(text) { - fGlobalTag = "G4TextModel: " + fText.GetText(); +G4TextModel::G4TextModel (const G4Text& g4Text): fG4Text(g4Text) { + std::ostringstream oss; + oss << "G4TextModel: \"" << fG4Text.GetText() + << "\" at " << G4BestUnit(g4Text.GetPosition(),"Length") + << "with size " << g4Text.GetScreenSize() + << " with offsets " << g4Text.GetXOffset() << ',' << g4Text.GetYOffset(); + fGlobalTag = oss.str(); fGlobalDescription = fGlobalTag; } void G4TextModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { sceneHandler.BeginPrimitives (); - sceneHandler.AddPrimitive (fText); + sceneHandler.AddPrimitive (fG4Text); sceneHandler.EndPrimitives (); } diff --git a/source/visualization/modeling/src/G4TrajectoriesModel.cc b/source/visualization/modeling/src/G4TrajectoriesModel.cc index a58f045c7a..b8753435c9 100644 --- a/source/visualization/modeling/src/G4TrajectoriesModel.cc +++ b/source/visualization/modeling/src/G4TrajectoriesModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrajectoriesModel.cc,v 1.12 2002/11/11 18:39:28 johna Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// $Id: G4TrajectoriesModel.cc,v 1.14 2005/01/27 20:07:05 johna Exp $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 26th August 1998. @@ -48,9 +48,8 @@ void G4TrajectoriesModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { if (event) { G4TrajectoryContainer* TC = event -> GetTrajectoryContainer (); if (TC) { - G4int nT = TC -> entries (); - for (int iT = 0; iT < nT; iT++) { - sceneHandler.AddThis (*((*TC) [iT])); + for (G4int iT = 0; iT < TC->entries(); iT++) { + sceneHandler.AddCompound (*((*TC) [iT])); } } } diff --git a/source/visualization/modeling/src/G4VModel.cc b/source/visualization/modeling/src/G4VModel.cc index c6cf244065..d8183152b4 100644 --- a/source/visualization/modeling/src/G4VModel.cc +++ b/source/visualization/modeling/src/G4VModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VModel.cc,v 1.9 2003/06/16 17:14:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-00-cand-01 $ +// GEANT4 tag $Name: geant4-07-01 $ // // // John Allison 31st December 1997.